-
- Планируется сохранять в встроенный flash настроечные параметры. Параметров несколько десятков, могут корректироваться независимо друг от друга. Поэтому хочется организовать параметры в виде <ключ:значение>, сохраненные в произвольном порядке. LightElf(356 знак., 02.10.2015 17:40)
- Первый пункт понимаю, второй - частично, почему идентификатором не может быть последовательный номер(индекс строки), который можно легко получить X-макросами? Кто во флэш пишет? - VL(02.10.2015 18:27,
)
- Из одних исходников собирается несколько проектов, надо чтобы одинаковые параметры в разных проектах (и разных билдах проектов) идентифицировались одинаково (чтобы при обновлении прошивки в работающем устройстве не слетали настройки). Можно LightElf(137 знак., 02.10.2015 18:41)
- Не, автоматизация - понятно, буду знать, тоже есть разные проекты в одном железе. Неужели так длина критична, что нельзя оригинальный текст оставить? - VL(02.10.2015 18:50,
)
- Проекты разные, железо тоже разное. В некотором старом железе критична и длина и время на сравнение строк. Но самое критичное - возможность в одном проекте ввести новый параметр без оглядки на новые параметры в другом проекте, собираемом из тех же LightElf(140 знак., 02.10.2015 18:59)
- Аминь :) - VL(02.10.2015 19:09,
)
- Аминь :) - VL(02.10.2015 19:09,
- Проекты разные, железо тоже разное. В некотором старом железе критична и длина и время на сравнение строк. Но самое критичное - возможность в одном проекте ввести новый параметр без оглядки на новые параметры в другом проекте, собираемом из тех же LightElf(140 знак., 02.10.2015 18:59)
- Пробелы, большие/маленькие символы, опечатки в именах параметров поддерживаются? :) - Скрипач(02.10.2015 18:47)
- При копипасте будут скопированы вместе с опечатками :) - LightElf(02.10.2015 18:54)
- Не, автоматизация - понятно, буду знать, тоже есть разные проекты в одном железе. Неужели так длина критична, что нельзя оригинальный текст оставить? - VL(02.10.2015 18:50,
- Из одних исходников собирается несколько проектов, надо чтобы одинаковые параметры в разных проектах (и разных билдах проектов) идентифицировались одинаково (чтобы при обновлении прошивки в работающем устройстве не слетали настройки). Можно LightElf(137 знак., 02.10.2015 18:41)
- длина записи фиксированная? А во флэш то кто параметр запишет? Или компилятор положит в константную секцию по фиксированному адресу?. А искать нужную строку как(как выбрать нужный параметр)? - abivan(02.10.2015 18:04)
- Кажись по второму кругу пошли... Ниже в топике уже вроде все обсудили. Во флеш параметр запишет сама программа, длину записи можно указать внутри самой записи. LightElf(605 знак., 02.10.2015 18:33)
- Да пофиг нам решение, разбираемся, зачем оно! ;) Если хочется строки, то понятно, есть открытые исходники для обработки init-файлов. Хочется енумы, еще более понятнее, сам так делаю. Промежуточное - не понимаю. Но ладно, проехали. - VL(02.10.2015 18:45,
)
- Если совсем коротко - заколебало вести глобальный хидер с енумом. - LightElf(02.10.2015 18:49)
Утки!Х-макросы - VL(02.10.2015 18:54,)
- Ну вот собственно и нашел в конце-концов решение в виде: LightElf(571 знак., 02.10.2015 19:01 - 19:06)
- Вам виднее, но по моему, с точки зрения документирования проекта, это тихий ужас. Тем более что Хэш не гарантирует уникальности. - Скрипач(02.10.2015 20:29)
- С точки зрения документирования, да и вообще сопровождения, проекты в одном workspace (термины IAR) - вообще ( . ). Не далее, как вчера, сам огрёб. - VL(03.10.2015 06:32,
)
- А зачем их делать в одном workspace? А че делать, если используются разные компиляторы под разные процессоры? - LightElf(05.10.2015 08:37)
- Потому что код совпадает на 2/3. А если разные компиляторы под разные процессоры, тоже есть варианты, но это уже притянуто за уши. А workspace - не притянут. - VL(05.10.2015 16:50,
)
- Ничего не притянуто. Из одних сорцов компилится тремя компиляторами: под HCS12, Coldfire и Cortex M. Есть шансы, что еще RX будет. Какой уж тут workspace. - LightElf(06.10.2015 08:22)
- А как это все организовано с учетом контроля версий? - VL(06.10.2015 21:45,
)
- Да особо никак. Общие сорцы лежат в отдельном каталоге, откуда подтягиваются в проекты. Таким образом всегда компилится самая свежая версия общей части (HAL, протоколы, стек). В каждом конкретном проекте есть заголовочный файл, в котором дефайнами LightElf(148 знак., 07.10.2015 11:22)
- Вот и у меня практически так же, кстати есть аналогичный опыт MSP430 + Cortex, но "всегда компилится самая свежая версия" - это засада. Месяц назад заказчик захотел в одном проекте рюшечки одной версии, а в другом - рюшечки другой версии, тут я и VL(244 знак., 07.10.2015 13:17,
)
- Третий месяц пытаюсь свести в один проект программные модули которые когда-то росли из одного места, но затем много лет развивались в разных проектах. Это оказалось неожиданно большой проблемой - вроде бы вот оно, все что нужно, но оно упорно не AlexG(23 знак., 07.10.2015 18:15)
- У меня задачи достаточно узкие. Все рюшечки общего кода старых версий доступны для новых версий. Старый функционал полностью сохраняется. Это временами огорчает (приходится поддерживать некоторые старые косячные опции параллельно новым прямым), но LightElf(293 знак., 07.10.2015 13:57)
- "Свежая версия общей части" - это мощно. Скажем, подпилили сорцы на Cortex, добавили баг, который проявляется только на Coldfire, и спокойно пошли пить чай. Красота! - SciFi(07.10.2015 11:28)
- Дык не надо общие сорцы "подпиливать на Cortex". На Cortex надо подпиливать только архитектурно-специфичные части, которые живут в своем собственном подкаталоге. Если возникла необходимость изменить общие сорцы в связи с новой архитектурой - это LightElf(38 знак., 07.10.2015 11:47)
- Можно, конечно, сделать вид, что существуют "архитектурно независимые" части, но это, скорее, иллюзия. Простейший пример - размеры целых типов. SciFi(36 знак., 07.10.2015 11:49 - 11:51)
- Размер целых типов прекрасно описывается в stdint.h Индейцы тоже легко обходятся макросами вида U32_TO_LE(), U16_FROM_BE() и т.д. - LightElf(07.10.2015 11:59)
- Можно, конечно, сделать вид, что существуют "архитектурно независимые" части, но это, скорее, иллюзия. Простейший пример - размеры целых типов. SciFi(36 знак., 07.10.2015 11:49 - 11:51)
- Дык не надо общие сорцы "подпиливать на Cortex". На Cortex надо подпиливать только архитектурно-специфичные части, которые живут в своем собственном подкаталоге. Если возникла необходимость изменить общие сорцы в связи с новой архитектурой - это LightElf(38 знак., 07.10.2015 11:47)
- Вот и у меня практически так же, кстати есть аналогичный опыт MSP430 + Cortex, но "всегда компилится самая свежая версия" - это засада. Месяц назад заказчик захотел в одном проекте рюшечки одной версии, а в другом - рюшечки другой версии, тут я и VL(244 знак., 07.10.2015 13:17,
- Да особо никак. Общие сорцы лежат в отдельном каталоге, откуда подтягиваются в проекты. Таким образом всегда компилится самая свежая версия общей части (HAL, протоколы, стек). В каждом конкретном проекте есть заголовочный файл, в котором дефайнами LightElf(148 знак., 07.10.2015 11:22)
- А как это все организовано с учетом контроля версий? - VL(06.10.2015 21:45,
- Ничего не притянуто. Из одних сорцов компилится тремя компиляторами: под HCS12, Coldfire и Cortex M. Есть шансы, что еще RX будет. Какой уж тут workspace. - LightElf(06.10.2015 08:22)
- Потому что код совпадает на 2/3. А если разные компиляторы под разные процессоры, тоже есть варианты, но это уже притянуто за уши. А workspace - не притянут. - VL(05.10.2015 16:50,
- А зачем их делать в одном workspace? А че делать, если используются разные компиляторы под разные процессоры? - LightElf(05.10.2015 08:37)
- С точки зрения документирования, да и вообще сопровождения, проекты в одном workspace (термины IAR) - вообще ( . ). Не далее, как вчера, сам огрёб. - VL(03.10.2015 06:32,
- Вам виднее, но по моему, с точки зрения документирования проекта, это тихий ужас. Тем более что Хэш не гарантирует уникальности. - Скрипач(02.10.2015 20:29)
- Ну вот собственно и нашел в конце-концов решение в виде: LightElf(571 знак., 02.10.2015 19:01 - 19:06)
- Если совсем коротко - заколебало вести глобальный хидер с енумом. - LightElf(02.10.2015 18:49)
- Да пофиг нам решение, разбираемся, зачем оно! ;) Если хочется строки, то понятно, есть открытые исходники для обработки init-файлов. Хочется енумы, еще более понятнее, сам так делаю. Промежуточное - не понимаю. Но ладно, проехали. - VL(02.10.2015 18:45,
- Кажись по второму кругу пошли... Ниже в топике уже вроде все обсудили. Во флеш параметр запишет сама программа, длину записи можно указать внутри самой записи. LightElf(605 знак., 02.10.2015 18:33)
- Первый пункт понимаю, второй - частично, почему идентификатором не может быть последовательный номер(индекс строки), который можно легко получить X-макросами? Кто во флэш пишет? - VL(02.10.2015 18:27,
- Планируется сохранять в встроенный flash настроечные параметры. Параметров несколько десятков, могут корректироваться независимо друг от друга. Поэтому хочется организовать параметры в виде <ключ:значение>, сохраненные в произвольном порядке. LightElf(356 знак., 02.10.2015 17:40)