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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> как воткнуть дату билда в бинарник ?
Огурцов
сообщение Jul 21 2015, 12:01
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



кокос, gcc
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jul 21 2015, 12:08
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



дык классические __DATE__ __TIME__
https://gcc.gnu.org/onlinedocs/cpp/Standard...ned-Macros.html

только не забыть ребилдить всё, так как obj содержищий эти строки может не обновлятся, если правите другой файл


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
Fedor
сообщение Jul 21 2015, 12:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125



Цитата(Огурцов @ Jul 21 2015, 17:01) *
кокос, gcc


gcc
Код
struct version_s{
    uint16_t major;
    uint16_t minor;
    char      *bdate;
};

const version_t  version __section(._version) = {
        .major = V_MAJOR,
        .minor = V_MINOR,
        .bdate = __DATE__ " "  __TIME__ ,
};


Секцию прописать в скрипте загрузчика в нужном месте.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 21 2015, 13:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Дата билда - это моветон. Код ревизии из системы контроля версий - это комильфо.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 21 2015, 14:07
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



так и как сделать это комильфо ?
Go to the top of the page
 
+Quote Post
_pv
сообщение Jul 21 2015, 14:28
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Огурцов @ Jul 21 2015, 21:07) *
так и как сделать это комильфо ?

при сборке позвать систему контроля версий и спросить у неё, какая сейчас ревизия.
Полученную ревизию, например, можно скормить компилятору через командную строку ключик -D.
Go to the top of the page
 
+Quote Post
Fedor
сообщение Jul 21 2015, 14:39
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125



Для svn можно сделать:
http://stackoverflow.com/questions/16248/g...umber-into-code
а вот, например, гит не дает номер ревизии, но можно попробывать через метки (tags).
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 21 2015, 15:52
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



сделал через date
ибо номер билда ни о чём не говорит
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 21 2015, 19:26
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(_pv @ Jul 21 2015, 17:28) *
при сборке позвать систему контроля версий и спросить у неё, какая сейчас ревизия.
Полученную ревизию, например, можно скормить компилятору через командную строку ключик -D.


А что, просто ревизию в основном файле прописать через дефайн?? Всегда так делал - просто и понятно, а всякие системы контроля версий и еще фиг знает чего, зачем? Вы ведь не свою собственную винду с нуля пишете biggrin.gif

Сообщение отредактировал mantech - Jul 21 2015, 19:26
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 21 2015, 19:32
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(mantech @ Jul 21 2015, 22:26) *
а всякие системы контроля версий и еще фиг знает чего, зачем?

Как зачем? Для контроля версий, конечно. Оч. рекомендую, кстати. А ещё советую сверлить дырки в бетоне перфоратором, а не буравчиком :-)
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 21 2015, 19:45
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(scifi @ Jul 21 2015, 22:32) *
Как зачем? Для контроля версий, конечно. Оч. рекомендую, кстати.


И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд biggrin.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 21 2015, 19:51
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(mantech @ Jul 21 2015, 22:45) *
И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд biggrin.gif

Хозяин - барин. Я без системы контроля версий уже сошёл бы с ума, причём не единожды. От числа и масштаба задач зависит, конечно.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 22 2015, 01:33
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



да это не беда, вот как вы поступаете, когда какой-то код нужно вынести в библиотеку ?
на большом компе проблем нет - вынес и если что поправил вызовы в сотне проектов
в самом худшем случае максимум комп перезагрузишь из-за изменений в библиотеке
а для мк ?
очень хочется иметь отдельный полный каталог на каждый проект, чтобы в случае косяков в библиотеке чего-нибудь в куда-нибудь физически не въехало
а как библиотеку править, что, её потом по всем проектам копировать ?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 22 2015, 04:11
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ Jul 22 2015, 01:45) *
И что это мне даст? Я и так прекрасно версии своих прог контролирую, без доп. приблуд biggrin.gif

При очередной сборке забудете этот дефайн с ревизией поменять.
Мы написали скрипт, запускаемый в Prebuild, который получает с SVN-а ревизию и пишет её в хидер (в виде дефайна) подключаемый к проекту (с пересборкой всего проекта при его обновлении).
Также в этот хидер пишется дата/время, сетевое имя компа на котором делается сборка и виндовый логин юзера.
Это всё включается в выходной образ прошивки по фиксированному адресу вместе с CRC образа.
Go to the top of the page
 
+Quote Post
den_po
сообщение Jul 22 2015, 06:01
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



Цитата(Fedor @ Jul 21 2015, 19:39) *
Для svn можно сделать:
http://stackoverflow.com/questions/16248/g...umber-into-code
а вот, например, гит не дает номер ревизии, но можно попробывать через метки (tags).

Можно и номер ревизии получить, только толку от него нет. С гитом стоит использовать хеш, можно сокращённый. Например так:
Код
git log -1 --pretty=format:"#define FWVERHASH 0x%%h" > gitver.h
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 13th June 2024 - 07:42
Рейтинг@Mail.ru


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