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

 
 
 
Reply to this topicStart new topic
> AVRStudio+GCC информация о версии ПО, номер билда
EugeNNe
сообщение Apr 5 2010, 05:27
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Связка AVRStudio+WinAVR
Можно ли как то контролировать в GCC версию ПО, и контролировать номер сборки проекта? Если какой то инструментарий для этого в GCC? Если да, то имеется ли возможность помешать данную информацию непосредственно в готовый для прошивки файл?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 5 2010, 12:04
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BigBolt @ Apr 5 2010, 07:27) *
контролировать в GCC версию ПО
Что есть "версия ПО" и что подразумевается под ее контролем? Если речь идет о версии GCC, то есть макросы __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, __VERSION__.
Цитата(BigBolt @ Apr 5 2010, 07:27) *
, и контролировать номер сборки проекта? Если какой то инструментарий для этого в GCC? Если да, то имеется ли возможность помешать данную информацию непосредственно в готовый для прошивки файл?
Что подразумевается под "номером сборки проекта"? Можно средствами make и sh. В каком виде вы хотите ее поместить в файл прошивки?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
dimka76
сообщение Apr 5 2010, 12:07
Сообщение #3


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(BigBolt @ Apr 5 2010, 09:27) *
Связка AVRStudio+WinAVR
Можно ли как то контролировать в GCC версию ПО, и контролировать номер сборки проекта? Если какой то инструментарий для этого в GCC? Если да, то имеется ли возможность помешать данную информацию непосредственно в готовый для прошивки файл?


Можно дату билда вставить.
Так например.

Код
prog_char fwVersionStr[] = __DATE__;


Можно еще добавить, чтобы эта строка размещалась во FLASH по определенному адресу.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 6 2010, 03:12
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(Сергей Борщ @ Apr 5 2010, 16:04) *
Что есть "версия ПО" и что подразумевается под ее контролем? Если речь идет о версии GCC, то есть макросы __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, __VERSION__.
Что подразумевается под "номером сборки проекта"? Можно средствами make и sh. В каком виде вы хотите ее поместить в файл прошивки?


Под контролем в данном случае подразумеваю следующие: допустим в нескольких последних ячейках флэша содержиться текстовая строка "V1.01 b777", т.е. по мере надобности можно считать данные ячейки и посмотреть какая версия ПО в данном девайсе. Ну и есть желание что бы эта информация размещалась автоматически.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Apr 6 2010, 03:54
Сообщение #5


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(BigBolt @ Apr 6 2010, 07:12) *
......Ну и есть желание что бы эта информация размещалась автоматически.


Я вам и написал как сделать чтобы было автоматически.
В моем случае в массиве fwVersionStr у вас будет дата последней компиляции в текстовом виде.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Apr 6 2010, 04:06
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(dimka76 @ Apr 6 2010, 07:54) *
Я вам и написал как сделать чтобы было автоматически.
В моем случае в массиве fwVersionStr у вас будет дата последней компиляции в текстовом виде.


Я понял... Спасибо за подсказку
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 6 2010, 08:23
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BigBolt @ Apr 6 2010, 05:12) *
допустим в нескольких последних ячейках флэша содержиться текстовая строка "V1.01 b777",
Примерно так:
Код
#define __STR(x)   #x
#define STR(x)   __STR(x)
#define VERSION_HI          2
#define VERSION_LO          0
#define    CR    "\r\n"
char const PROGMEM terminal_t::Header_string[] =
CR STR(VERSION_HI) "." STR(VERSION_LO) " (I2000), RRT Lab. " __DATE__
CR
CR;
А насчет номера билда - средствами make формировать заголовочный файл со строчкой #define BUILDNUMBER 1234. Если проект хранится в репозитории svn, то в его FAQ как вставить в исходник номер ревизии.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


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


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