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

 
 
> Функции BootLoader из Main кода, Или как сэкономить Flash
Spider
сообщение Mar 26 2010, 08:05
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Всем привет!

Имею ATMega8 и WinAVR. Имеется BOOTLOADER в котором есть некий код, точно такой же код используется и в самом приложении Main. Могу ли чтобы не сэкономить место во Flash ссылаться на код BootLoader из Main?
Как описать в таком случае эти функции?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Mar 26 2010, 08:44
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Alexey Belyaev @ Mar 26 2010, 10:05) *
Могу ли чтобы не сэкономить место во Flash ссылаться на код BootLoader из Main?
Как описать в таком случае эти функции?
Можете. Причем не только для экономии места, но и для получения приложением серийного номера или каких-то данных о конфигурации конкретного железа.
Самый простой метод описания: в приложении extern void func(); в ключах линкера -Dfunc=адрес
Недостаток такого метода: после изменения загрузчика или просто перекомпиляции его другой версией компилятора или с другими ключами адреса функций у вас уедут. Поэтому имеет смысл в фиксированном месте загрузчика (скажем, в самом конце) разместить таблицу переходов - команды rjmp на нужные функции и из приложения переходить на эти команды. Их адрес остается неизменным. Если функций немного - можно использовать в качестве такой таблицы неиспользуемые вектора прерываний загрузчика.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alexey Belyaev   Функции BootLoader из Main кода   Mar 26 2010, 08:05
- - Alexey Belyaev   Вторая часть сообщения мне понятна конечно. Вот пы...   Mar 26 2010, 09:09
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Mar 26 2010, 11:0...   Mar 26 2010, 09:22
- - Alexey Belyaev   Никогда не понимал отрицательных переходов. Код1ba...   Mar 26 2010, 10:16
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Mar 26 2010, 12:1...   Mar 26 2010, 10:27
- - Alexey Belyaev   а подскажите как в асме заменить Кодbreq func на и...   Mar 26 2010, 12:16
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Mar 26 2010, 14:1...   Mar 26 2010, 12:49
- - Alexey Belyaev   Я хочу чтобы и в бутлодере и в приложении некоторы...   Mar 26 2010, 12:59
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Mar 26 2010, 14:5...   Mar 26 2010, 13:43
- - Alexey Belyaev   а можно краткий примерчик? --section-start=.data....   Mar 26 2010, 13:49
- - Alexey Belyaev   Урааа!! Заработало!!! © Шарик ...   Mar 27 2010, 02:46
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Mar 27 2010, 04:4...   Mar 27 2010, 08:57
- - Alexey Belyaev   Про структуру я читал, но вот у меня пока проблема...   Mar 28 2010, 09:35


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:43
Рейтинг@Mail.ru


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