СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №6/2012

ПРОГРАММИРОВАНИЕ ре и предназначенные для защиты па мяти микроконтроллеров C8051F321 и C8051F067. Рассмотрим программу защиты па мяти микроконтроллера C8051F321. Эта программа должна обнулить единственный регистр блокировки чтения и записи/стирания, распо ложенный по адресу 3dffh. Началь ный адрес программы в памяти микроконтроллера определяет ся настройкой ассемблера. Напри мер, если используется ассемблер 2500 A.D. Macro Assembler v.4.02a, то для того чтобы расположить про грамму, например, с адреса 3dffh, необходимо установить .org 3dffh. Если используется ассемблер Keil A51 Macro Assembler v.6.14, эта на стройка имеет вид CSEG AT 3DFFH. Что касается кода операции nop, то он всегда равен 00h, т.к. зависит не от типа транслятора, а от самого ассем блера I8051 совместимых микрокон троллеров. Таким образом, программа защиты памяти микроконтроллера C8051F321 на 2500 A.D. Macro Assembler состо ит из одного оператора (nop) и трёх параметров и выглядит следующим об разом: .CODE .org 3dffh nop .end Назовём эту программу zas321.asm. Для трансляции этой программыи по лучения её в Intel Hex формате потре буется *.bat файл следующего содер жания: x8051 zas321.asm t d pause link c zas321.obj pause Назовём этот файл zas321.bat. Результат трансляции zas321.asm с ассемблера показывает (см. рис. 1), что по адресу 3dffh памяти записан нуле вой байт данных (строка 3). По сборке программы видно, что размер (Size) ко да программы равен одному байту, программа расположена по адресу 3dffh, а файл был создан в hex форма те zas321.hex. Текст файла приведён ниже: :013DFF0000C3 :00000001FF Программа защиты памяти микро контроллера C8051F321 на ассемблере Keil A51 Macro Assembler v.6.14 выгля дит следующем образом: CSEG AT 3DFFH nop END Назовём эту программу zas321.А51. Для трансляции этой программы и получения её в Intel Hex формате не обходим *.bat файл следующего содер жания: a51.exe zas321.a51 print object(zas321.obj) pause bl51.exe zas321.obj to zas321 ixref print(bl_zas321.lst) oh51 zas321 pause Назовём этот файл zas321_A51.bat. Фрагмент листинга результата ассемб лирования программы zas321.А51 с по мощью файла zas321_A51.bat приве дён ниже: LOC OBJ LINE SOURCE 1 CSEG AT 3DFFH 3DFF 00 2 nop 3 END _A51 MACRO ASSEMBLER ZAS321 Видно, что по адресу памяти 3dffh записан нулевой байт данных. Е с л и п е р е д з а п у с к о м ф а й л а zas321_A51.bat удалитьфайл zas321.hex предыдущей трансляции, полученный с помощью файла zas321.bat, то после запуска файла zas321_A51.bat вновь сформируется файл zas321.hex, кото рый будет точно таким же: :013DFF0000C3 :00000001FF Это означает, что, независимо от транслятора, результатом будет про грамма zas321.hex. Теперь рассмотримпрограмму защи ты п амя т и ми к р о к он т р о л л е р а C8051F067. Эта программа должна об нулить два регистра: регистр блокиров ки записи/стирания, расположенный по адресу 7ffeh, и регистр блокировки чтения, расположенныйпо адресу 7fffh. Программа на языке 2500 A.D. Macro As sembler выглядит следующим образом: 69 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2012 Рис. 1. Результат трансляции программы zas321.asm с помощью файла zas321.bat © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy