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

 
 
> STM32 GCC и размещение кода в двух областях
asasl
сообщение Jan 10 2016, 08:12
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 2-07-15
Из: Москва/Дубна
Пользователь №: 87 376



Есть проект контроллеров УД на шине CAN.
Используется Chibios c разными драйверами, их код меняется редко, практически никогда.
И есть код логики и параметров инициализации, меняющийся часто.

Шина достаточно медленная: 1,5 кБайт/с. Поэтому прогружать каждый раз весь код в 64 кБайта долго и утомительно, особенно когда нужно поменять параметры нескольких устройств.

Вопрос. Можно ли как-то заставить компилятор и линковщик GCC разбивать код на две части жестко зафиксированные в EPROM?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KnightIgor
сообщение Jan 11 2016, 08:43
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(asasl @ Jan 10 2016, 09:12) *
Есть проект контроллеров УД на шине CAN.
Используется Chibios c разными драйверами, их код меняется редко, практически никогда.
И есть код логики и параметров инициализации, меняющийся часто.
...
Вопрос. Можно ли как-то заставить компилятор и линковщик GCC разбивать код на две части жестко зафиксированные в EPROM?

Можно собирать константы (настройки) и, если необходимо, функции логики, в одну (или несколько) именованных секций [см. __attribute__((section("SECNAME"), used))] и размещать эти секции по определенному адресу FLASH с помощью скрипта компоновщика. При этом надо серьезно продумать, как основное (неизменяемое) тело программы получит доступ к данным и функциям в изменяемой зоне, особенно с учетом развития версий и добавления все новых и новых функциональностей.

Сообщение отредактировал KnightIgor - Jan 11 2016, 08:44
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:51
Рейтинг@Mail.ru


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