alex_avr (alex_avr2) wrote,
alex_avr
alex_avr2

Categories:

Вопрос к программистам

Может кто из программистов подскажет, как лучше сделать сделать такую штуку:

Язык Си, среда IAR, мк STM32.
Есть большой проект прошивки под микроконтроллер. Проект состоит из кучи взаимосвязанных файлов и грубо говоря является некой базовой системой, которая реализует много всяких полезных вещей, начиная от настройки uart для связи с внешним миром и обработкой приходящих пакетов, кончая мониторингом каналов АЦП. Этот проект заливается в устройства и счастливо там живет и во многих случаях является самодостаточным.

Но иногда устройствам нужен дополнительный функционал, который можно реализовать только с помощью дополнительного кода в прошивке(причем каждый раз специфичного под конкретную задачу). В простейшем случае к проекту просто добавляется еще файл, где этот функционал и реализуется. При этом дополнительный код использует функции и структуры объявленные в основном проекте, грубо говоря использует основной проект как фреймворк.
Проблема в том, что основной проект развивается и в нем постоянно что-то меняется. А дополнительных прошивок со временем будет только больше. Соответственно хочется это дело как-то разделить так, чтобы основной проект был отдельно, где-то в одном месте, а дополнительные программы(по сути аналог программ на компьютере) компилировались как его составная часть. Или второй вариант, может даже более крутой - чтобы дополнительная прошивка вообще полностью отдельно компилировалась (естественно с учетом текущей версии главной прошивки) и также независимо заливалась в свою область памяти, где и работала бы, взаимодействуя с основной прошивкой.

Итого:
1)Основная прошивка является самостоятельным проектом, который работает на мк и постоянно что-то делает.
2)Дополнительная прошивка должна иметь доступ к функциям основной прошивки и к структурам данных в основной прошивке(т.е. знать где что находится).
3)В идеале в дополнительной прошивке должно быть две стандартных функции - инициализация и циклично вызываемая, причем вызываться они должны главной прошивкой, т.е. она должна знать где они лежат.

Собственно вопрос - как все это организовать с точки зрения проектов, как все это потом собирать.

Спасибо.
Tags: Программирование, Электроника
Subscribe

  • Блок питания

    Нужно странное: блок питания постоянного тока с выходным напряжением попадающим в диапазон 60-100В и током 1А или более. Ни у кого подобного не…

  • Светофоры, гроза и батут

    Вчера и сегодня немало катал и видел кучу неработающих светофоров. Интересно, это последствия ливней и недостаточно хорошей герметичности…

  • Секреты дверей рассекреченного Бункер 703

    Записал очередное видео про технику в бункере 703 :)

promo alex_avr2 july 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 55 comments

  • Блок питания

    Нужно странное: блок питания постоянного тока с выходным напряжением попадающим в диапазон 60-100В и током 1А или более. Ни у кого подобного не…

  • Светофоры, гроза и батут

    Вчера и сегодня немало катал и видел кучу неработающих светофоров. Интересно, это последствия ливней и недостаточно хорошей герметичности…

  • Секреты дверей рассекреченного Бункер 703

    Записал очередное видео про технику в бункере 703 :)