F60-67 (1041605), страница 33
Текст из файла (страница 33)
Если страница, содержащая байты защиты, не заблокированадля операций записи/стирания, то, используя JTAG-порт, можно стереть эту страницу и сбросить байтызащиты.Если страница, содержащая байты защиты, заблокирована для операций записи/стирания, то дляразблокирования любой области Flash-памяти, защищенной байтами защиты, необходимо стереть всепространство памяти программ, используя операцию стирания JTAG-интерфейса. Обращение к любомубайту защиты во время выполнения операции JTAG-стирания автоматически инициирует стираниевсего пространства памяти программ.
Эта операция стирания может быть выполнена только черезJTAG-интерфейс и не может быть выполнена из программы, запущенной на МК.179Ред. 1.2C8051F060/1/2/3/4/5/6/7Рисунок 16.1. Карта распределения Flash-памяти программ и байты защиты(C8051F060/1/2/3/4/5)Биты защиты чтенияи записи/стирания(бит 7 – старший)БитБлок памяти765432100xE000 - 0xFBFD0xC000 - 0xDFFF0xA000 - 0xBFFF0x8000 - 0x9FFF0x6000 - 0x7FFF0x4000 - 0x5FFF0x2000 - 0x3FFF0x0000 - 0x1FFFSFLE = 0SFLE = 10xFFFFЗарезервировано0xFC00Байт блокировки чтения0xFBFFБайт блокировкизаписи/стирания0xFBFEСверхоперативная память(только данные)0x007F0x00000xFBFDАдресное пространствопамяти программ/данныхГраница области, доступнойдля чтения из программы0x0000Байт блокировки чтения FLASH-памятиБиты 7-0: Каждый бит блокирует соответствующий блок памяти (бит 7 - старший).0: Операции чтения через JTAG-интерфейс для соответствующего блока заблокированы (запрещены).1: Операции чтения через JTAG-интерфейс для соответствующего блока разблокированы(разрешены).Байт блокировки записи/стирания FLASH-памятиБиты 7-0: Каждый бит блокирует соответствующий блок памяти.0: Операции записи/стирания через JTAG-интерфейс для соответствующего блока заблокированы(запрещены).1: Операции записи/стирания через JTAG-интерфейс для соответствующего блока разблокированы(разрешены).ПРИМЕЧАНИЕ: Если заблокирован блок, содержащий байты защиты, то байты защиты можнозаписывать, но нельзя стирать.Граница области, доступной для чтения из программыГраница области памяти, доступной для чтения из программы, определяется содержимым регистраFLACL (см.
рис. 16.3). Программе, запущенной на выполнение в адресном пространстве выше этогоадреса (т.е. в верхнем разделе), запрещено использовать команды MOVX или MOVC для чтения, записиили стирания ячеек области памяти, расположенной ниже этого адреса (т.е. в нижнем разделе).Ред. 1.2180C8051F060/1/2/3/4/5/6/7Рисунок 16.2. Карта распределения Flash-памяти программ и байты защиты(C8051F066/7)Биты защиты чтенияи записи/стирания(бит 7 – старший)БитБлок памяти76543210ОтсутствуетОтсутствуетОтсутствуетОтсутствует0x6000 - 0x7FFD0x4000 - 0x5FFF0x2000 - 0x3FFF0x0000 - 0x1FFFSFLE = 0SFLE = 10xFFFFЗарезервировано0x8000Байт блокировки чтенияБайт блокировкизаписи/стиранияСверхоперативная память(только данные)0x007F0x00000x7FFF0x7FFE0x7FFDАдресное пространствопамяти программ/данныхГраница области, доступнойдля чтения из программы0x0000Байт блокировки чтения FLASH-памятиБиты 7-0: Каждый бит блокирует соответствующий блок памяти (бит 7 - старший).0: Операции чтения через JTAG-интерфейс для соответствующего блока заблокированы (запрещены).1: Операции чтения через JTAG-интерфейс для соответствующего блока разблокированы(разрешены).Байт блокировки записи/стирания FLASH-памятиБиты 7-0: Каждый бит блокирует соответствующий блок памяти.0: Операции записи/стирания через JTAG-интерфейс для соответствующего блока заблокированы(запрещены).1: Операции записи/стирания через JTAG-интерфейс для соответствующего блока разблокированы(разрешены).ПРИМЕЧАНИЕ: Если заблокирован блок, содержащий байты защиты, то байты защиты можнозаписывать, но нельзя стирать.Граница области, доступной для чтения из программыГраница области памяти, доступной для чтения из программы, определяется содержимым регистраFLACL (см.
рис. 16.3). Программе, запущенной на выполнение в адресном пространстве выше этогоадреса (т.е. в верхнем разделе), запрещено использовать команды MOVX или MOVC для чтения, записиили стирания ячеек области памяти, расположенной ниже этого адреса (т.е. в нижнем разделе).Ограничение доступа к Flash-памяти (см. рис. 16.3) представляет собой функцию защиты, котораязащищает патентованный программный код и данные от прочтения программой, запущенной на МКC8051F060/1/2/3/4/5/6/7. Эта функция обеспечивает поддержку ОЕМ-производителей, которые передраспространением МК желают запрограммировать их дополнительным программным обеспечением,являющимся собственностью фирмы. При этом фирменное программное обеспечение будет защищено, а воставшееся пространство памяти программ можно позднее запрограммировать дополнительный код.181Ред.
1.2C8051F060/1/2/3/4/5/6/7Граница области, доступной для программного чтения (Flash Access Limit - FAL), представляет собой16-битный адрес, который делит пространство памяти программ на два логических раздела. Первый из нихявляется верхним разделом и состоит из всех ячеек памяти программ, находящихся выше адреса FAL (включаяи сам адрес FAL). Второй является нижним разделом и состоит из всех ячеек памяти программ с адресами от0x0000 до FAL адреса (не включая сам адрес FAL).
Программа, запущенная в верхнем разделе, можетисполнять код из нижнего раздела, но ей запрещено читать ячейки из нижнего раздела, используя командуMOVC. (Выполнение команды MOVC из верхнего раздела с адресом источника данных, указывающим нанижний раздел, всегда в качестве результата будет возвращать значение 0x00.) Программа, запущенная внижнем разделе, может обращаться к ячейкам памяти как из верхнего, так и из нижнего разделов безограничений.Дополнительные встроенные фирменные программы следует размещать в нижнем разделе. При сбросеуправление передается этим программам через вектор сброса. Как только завершится процесс начальнойинициализации, произойдет переход по предопределенному адресу в верхнем разделе. Программа, запущеннаяв верхнем разделе, может выполнять программный код из нижнего раздела, если известны точки входа, но неможет прочитать содержимое нижнего раздела.
Программному коду, запущенному в нижнем разделе,параметры могут передаваться следующим образом:- параметры размещаются в стеке до вызова программного кода из нижнего раздела;- параметры размещаются в регистрах внутреннего ОЗУ до вызова программного кода из нижнегораздела;- параметры размещаются в определенных ячейках памяти в верхнем разделе.Адрес FAL задается в регистре ограничения доступа к Flash-памяти (FLACL).
16-разрядный FAL адресвычисляется как 0xNN00, где NN представляет собой содержимое регистра FLACL. Таким образом, адрес FALможно задать в любом месте пространства памяти программ на границах 256-байтных секторов. Однако, 512байтный размер сектора стирания требует использовать в качестве адреса FAL границы 512-байтных секторов.При сбросе в регистр FLACL по умолчанию записывается 0x00, устанавливая тем самым адрес FAL 0x0000 иразрешая доступ по чтению ко всем ячейкам памяти программ.Рисунок 16.3. FLACL: Регистр ограничения доступа к Flash-памятиR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес: 0xB7SFR страница: FБиты 7-0: FLACL: Адрес границы программно-доступной области Flash-памяти.Этот регистр содержит старший байт 16-разрядного адреса границы области памяти программ, доступнойдля операций чтения/записи/стирания.
Значение полного 16-разрядного адреса ограничения доступарассчитывается как 0xNN00, где NN заменяется содержимым регистра FLACL. Запись в этот региструстанавливает адрес границы программно-доступной области Flash-памяти. Этот регистр может бытьзаписан только один раз после сброса. Все последующие попытки записать этот регистр игнорируются доследующего сброса. Чтобы полностью защитить все ячейки памяти с адресами ниже этой границы,необходимо сбросить в 0 бит 0 регистра FLACL; тогда адрес FAL совпадет границей 512-байтногосектора Flash-памяти.Ред.
1.2182C8051F060/1/2/3/4/5/6/716.3.1. Обзор методов защиты FLASH-памятиМК C8051F060/1/2/3/4/5/6/7 поддерживают три метода доступа к Flash-памяти:1) доступ к Flash-памяти с помощью интерфейса JTAG;2) доступ к Flash-памяти из программы, находящейся ниже адреса FAL;3) доступ к Flash-памяти из программы, находящейся выше адреса FAL.Доступ к Flash-памяти с помощью интерфейса JTAG:1. Байты блокировки чтения и записи/стирания (байты защиты) обеспечивают защиту от доступа кFlash-памяти с помощью интерфейса JTAG.2. Любую незаблокированную страницу можно прочитать, записать или стереть.3. Заблокированные страницы нельзя прочитать, записать или стереть.4. Прочитать байты защиты можно всегда.5.