Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установка lock байта в C8051F300.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
fillsv
Программирую C8051F500 через Keil. Как с его помощью установить lock байт, для запрета чтения и записи флеш памяти через программатор?
Lock байт - это последний байт флеш-памяти. Т.е. Keil при генерации прошивки должен последним байтом прошивки прописать нужный байт. Как ему это указать?
Harbinger
Так ведь залочка нужна в процессе производства, а там куда удобнее использовать FlashUtil или MCUProductionProgrammer, в которых опции залочки есть.
Можно и в Кейле приготовить, через отдельный файл и опции линкера, здесь об этом уже было, но утонуло в недрах. Вместо строки поставить отдельный байт и указать линкеру соответствующий адрес.
(upd) Заранее приготовленный файл с лок-байтом сводит к нулю вероятность ошибки на производстве, так что "code_at" таки оптимальный вариант, независимо от способа программирования.
fillsv
Спасибо! Я разобрался и в Вашем примере, и с MCUProductionProgrammer, все работает!
Могу добавить ещё один вариант, который мне подсказали.

Код
CSEG AT 1DFFh

CFG_BYTE_0:  DB  00h

END
редактор
Такой вариант возможен, если у вас памяти менее 64К. на Silabs582 128К ПЗУ и байт блокировки находится в банке памяти, не доступном напрямую (сперва надо переключить странцу и все такое). В этом случае либо пользовать утилиту производителя, либо вживить в код проверку байта и если не блокирован, то записать блокировку.

В Си расположение по адресу (без шаманства) выглядит так
Код
code unsigned char LockByte _at_ 0xFDFF; // байт блокировки страниц памяти
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.