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

 
 
> Микроконтроллеры SiLabs C8051Fxxx, Как Вы записываете версию программы во Flash?
Волощенко
сообщение Oct 5 2006, 14:44
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Добрый день!
Работаю с uVision2 от Keil. Хотелось бы, чтоб в памяти программ cdata, автоматически (не в ручную) формировались константы <день>.<месяц>.<год>, которые затем можно считывать по командам в UART, для последующей передачи в компьютер как текущую версию программы.
Кто-то уже сделал так? Подскажите, спасибо за ответ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Волощенко
сообщение Oct 6 2006, 09:14
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



К Shandy, спасибо все получилось! smile.gif
Я перед main() записал:
code char* code Prog_ID = {__DATE__};
это вставляет в hex-файл текущую дату в ASCII.

Затем считывал из Flash 10 байт в массив Ro для последующей выдачи через UART (здесь Prog_ID[3] и Prog_ID[6] - всегда содержат коды пробелов):
Ro[0]=Prog_ID[4]; Ro[1]=Prog_ID[5]; //Data
Ro[2]=Prog_ID[3];
Ro[3]=Prog_ID[0]; Ro[4]=Prog_ID[1];Ro[5]=Prog_ID[2]; //Month
Ro[6]=Prog_ID[6];
Ro[7]=Prog_ID[7]; Ro[8]=Prog_ID[8]; Ro[9]=Prog_ID[9]; Ro[10]=Prog_ID[10]; //Year

Затем принял по RS-232 и вывел на экран текущую дату как строку AnsiString:
06 Oct 2006

------------------------------------------------------
Только вот запись перед main() такой строки как:
code char* code Prog_ID = {__FILE__, __DATE__, __TIME__};
вызывает при компиляции сообщение:
MAIN.C(18): error C242: 'scalar': too many initializers
что остается немного непонятно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 10:16
Рейтинг@Mail.ru


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