реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Установка lock байта в C8051F300.
fillsv
сообщение Jan 22 2013, 19:02
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 21-04-10
Пользователь №: 56 788



Программирую C8051F500 через Keil. Как с его помощью установить lock байт, для запрета чтения и записи флеш памяти через программатор?
Lock байт - это последний байт флеш-памяти. Т.е. Keil при генерации прошивки должен последним байтом прошивки прописать нужный байт. Как ему это указать?
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Jan 23 2013, 03:51
Сообщение #2


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Так ведь залочка нужна в процессе производства, а там куда удобнее использовать FlashUtil или MCUProductionProgrammer, в которых опции залочки есть.
Можно и в Кейле приготовить, через отдельный файл и опции линкера, здесь об этом уже было, но утонуло в недрах. Вместо строки поставить отдельный байт и указать линкеру соответствующий адрес.
(upd) Заранее приготовленный файл с лок-байтом сводит к нулю вероятность ошибки на производстве, так что "code_at" таки оптимальный вариант, независимо от способа программирования.


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
fillsv
сообщение Jan 24 2013, 06:38
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 21-04-10
Пользователь №: 56 788



Спасибо! Я разобрался и в Вашем примере, и с MCUProductionProgrammer, все работает!
Могу добавить ещё один вариант, который мне подсказали.

Код
CSEG AT 1DFFh

CFG_BYTE_0:  DB  00h

END
Go to the top of the page
 
+Quote Post
редактор
сообщение Jan 25 2013, 05:30
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



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

В Си расположение по адресу (без шаманства) выглядит так
Код
code unsigned char LockByte _at_ 0xFDFF; // байт блокировки страниц памяти


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016