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

 
 
> Как добавить данные DATA FLASH в HEX-файл, SiLabs 121
редактор
сообщение May 15 2009, 05:06
Сообщение #1


Местный
***

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



Используется SiLabs C8051F121
Есть необходимость во время программирования записать данные в DataFlash.
Подскажите, кто знает, как объявить эти данные в программе (Си или АСМ не важно) чтобы они после компиляции попали в HEX-файл.
Могу руками дописать дописать несколько строк в HEX, но не знаю по какому адресу их расположить.
Делать приложение для записи этих данных через программатор пока не хочется.

Заранее всем спасибо!


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
редактор
сообщение May 18 2009, 04:00
Сообщение #2


Местный
***

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



В большинстве МК от SiLabs имеется два вида flash-памяти память программ и память данных.

Программа состоит из двух частей: загрузчика и непосредственно приложения.
Загрузчик служит для обновления программы.Также при старте загрузчик проверяет контрольную сумму приложения и далее разрешает или блокирует работу приложения.
Чтобы точно знать с чем сравнивать контрольную сумму решил использовать flash-память данных для хранения контрольной суммы.

Держать их в области кода не очень удобно, так как для перезаписи необходимо стирать часть программы, разнести их адреса с программой кБайт так на 10 возможно,(опыт имеется).
Хотелось сделать более красиво. Есть энергонезависимая память для данных, надо ее пользовать. В процессе работы доступ раcписан, и все хорошо.

А вот при программировании получается возможно записать только код в flash-память программ.
Поэтому приходиться делать несколько лишних операций: записать загрузчик, записать приложение, собрать стенд в котором дать загрузчику команду на расчет контрольной суммы и ее запись.

Для упрощения процесса настройки интересуюсь КАК ЗАПИСАТЬ FLASH-ПАМЯТЬ ДАННЫХ ИЗ ПРОГРАММАТОРА.
Это возможно. В командах работы с USB-адаптером есть описание. Нужно лишь приложение, которое это может делать, в KEIL таких настроек не нашел.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
barabek
сообщение May 18 2009, 10:55
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(редактор @ May 18 2009, 15:00) *
В большинстве МК от SiLabs имеется два вида flash-памяти память программ и память данных.

Я не работал конкретно с 121. Но судя по описанию он не отличается от остальных. Но в них НЕТ отдельной flash памяти данных! Есть память программ с возможностью записи из самой программы. Хотя это к делу не относится, скорее к терминологии ;-)
. А по делу Вам уже kosyak подсказал. Если бы Вы на этапе программирования знали контрольную сумму, было бы проще. Из родной IDE silab можно сразу ячейки кода менять в соответствующем окне code и нажатием кнопки "туды-сюды"
Go to the top of the page
 
+Quote Post
редактор
сообщение May 19 2009, 03:40
Сообщение #4


Местный
***

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



Цитата(barabek @ May 18 2009, 14:55) *
Я не работал конкретно с 121. Но судя по описанию он не отличается от остальных. Но в них НЕТ отдельной flash памяти данных! Есть память программ с возможностью записи из самой программы. Хотя это к делу не относится, скорее к терминологии ;-)
. А по делу Вам уже kosyak подсказал. Если бы Вы на этапе программирования знали контрольную сумму, было бы проще. Из родной IDE silab можно сразу ячейки кода менять в соответствующем окне code и нажатием кнопки "туды-сюды"


В большинстве MK от SiLabs (за все не берусь но работал с сериями 12X, 04x) кроме памяти программ имеется от 128 до 256 бай FLASH-памяти для долговременного хранения данных.

Цитата(kosyak© @ May 18 2009, 09:11) *
На сайте силабса есть такое приложение
https://www.silabs.com/Support%20Documents/...nProgrammer.zip
Оно идет с исходниками - можно поправить его под собственные нужды.
А вообще - что Вам мешает прошивать девайс с помощью собственного загрузчика? Т.е. записываете в контроллер только загрузчик а саму программу шьете уже с помощью своих средств загрузки.


Когда делаешь сам, то можно и через загрузчик и из IDE. Но необходимо отдать конечные файлы и методику программирования на производство.
И чем меньше там кнопок и действий тем надежнее. Отсюда и желание зашивать сразу все и везде.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение May 27 2009, 14:01
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(редактор @ May 19 2009, 07:40) *
В большинстве MK от SiLabs (за все не берусь но работал с сериями 12X, 04x) кроме памяти программ имеется от 128 до 256 бай FLASH-памяти для долговременного хранения данных.


Добрый день.
Для начала выставьте тип выходного файла hex HEX-386 (для кейла в настройках проекта, для других наверное опциями).
Попробуйте осуществить запись по адресам начиная с 0x020000.
Когда я использовал в проекте все 128 кбайт, то код валялся в HEX файле в адресном пространстве от 0x000000 до 0x01FFFF
Возможно что за основным кодом начинается скратчь.

И самое интересное, я сам такой HEX утилитой Силабовой не заливал (все время из кейла), но наткнулся на сообщения, что у народа такой хек залить силабовой утилитой не получилось (видно не различет формат). Т.е. программа после такой заливки не работала, хотя залитая из кейла работает.

Вот тут есть по поводу программирования таких хеков на производстве.

Удачи


--------------------
Удачи.
Go to the top of the page
 
+Quote Post



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

 


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


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