inventor 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба задача такая, при компиляции нужно прописывать время компиляции в какую то константу или переменную для программы, которую предполается заливать в контроллер. есть __TIME__ и __DATA_ но если их вставить в файл *.c этот файл будет компилироваться,только если удален готовый объектник или если там сделаны изменнения по сравнению с временем объектника как это можно сделать "красивше"? чтобы каждый раз это не делать руками может криво выразился.. но хотелось бы иметь какую то константу, которая будет различная при каждой компиляции программы. как это можно сделать в IAR ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба но если их вставить в файл *.c этот файл будет компилироваться,только если удален готовый объектник или если там сделаны изменнения по сравнению с временем объектника как это можно сделать "красивше"? Вынести в отдельный файл, объектник удалять автоматически до или после сборки. Но лучше внешнюю утилиту написать/приспособить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
inventor 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Вынести в отдельный файл, объектник удалять автоматически до или после сборки. Но лучше внешнюю утилиту написать/приспособить. ну я как бы так и сделал но не хочу руками это удалять есть может какая нибудь #pragma для этого? чтобы всегда компилировалось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 16 ноября, 2017 Опубликовано 16 ноября, 2017 (изменено) · Жалоба чтобы всегда компилировалось? Самая волшебная таблетка "Ребилдол"? Не? (Rebuild All) Изменено 16 ноября, 2017 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба . . . но не хочу руками это удалять в опциях проекта есть поля pre-build пропишите там командынй файл или сразу старт своей утилиты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasil_Riabko 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Посмотрите здесь http://microsin.ru/content/view/1141/44/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Вынести в отдельный файл, объектник удалять автоматически до или после сборки. Но лучше внешнюю утилиту написать/приспособить. Это на мой взгляд самое эффективное решение (по крайней мере для IAR моей версии), тк когда я делел исслледования на эту тему, решения в рамках IDE IAR не нашел. Выкрутился тем, что такой финт можно сдеать с помощью SVN, но суть не меняется - сторонняя к IAR программа прописывает "в нужное время, в нужном месте" свои данные (а именно номер ревизии). ------- Написать свою утилиту, которая генерит исходник в виде модуля, куда пишется дата, время, и "всечтонадо" в виде констант (например, контрольные суммы модулей). Может есть более оптимальные решения ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Ну и, конечно, самый православный способ - сделать Makefile, там всё это можно оформить на птичьем языке программы make. Все эти богомерзкие IDE - от лукавого :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Ну и, конечно, самый православный способ - сделать Makefile, там всё это можно оформить на птичьем языке программы make. Православно, но своей утилитой может быть на деле удобнее. Я так прописываю время и номер сборки, длину бинарника и CRC сразу. Все эти богомерзкие IDE - от лукавого :laughing: Истинно так! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Ну и, конечно, самый православный способ - сделать Makefile, там всё это можно оформить на птичьем языке программы make. Все эти богомерзкие IDE - от лукавого :laughing: А как это осваивается (с нуля), в смысле, "для интеллектуалов" :) Есть ли в этом смысл для тех, кого на 99.9 устраивает фунциональность IDE ? (вроде меня) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
inventor 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Посмотрите здесь http://microsin.ru/content/view/1141/44/ спасибо за ответы сделал немного проще (вместо написания утилиты на бейсике) в окне Build Action Prebuild command line добавил строчку touch $PROJ_DIR$\..\utils\userfunc.h то есть при компиляции меняется время последнего доступа к файлу, где определана версия Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба . . .в окне Build Action Prebuild command line добавил строчку touch $PROJ_DIR$\..\utils\userfunc.h . . . Смотря какого размера проект (кол-во модулей) и куда включен этот h-файл. Если он (вдруг) глобальный и модулей много - будет пустопорожняя перекомпиляция "всего". Лучше уж модуль .c "тачить". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться