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

 
 
> Функции 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
Ответов
Spider
сообщение Mar 26 2010, 12:16
Сообщение #2


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

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



а подскажите как в асме заменить
Код
breq    func

на известный адрес функции.


точнее как её заставить перейти в адрес которого нет в коде, компилятор ругается чт не сможет туда перейти... sad.gif

А как сказать что прерывание там-то?

Простите конечно, я наверное ваще запарил smile.gif
А можно как-то сказать компилятору или линкеру, что такая-то переменная всегда в таком-то адресе?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 26 2010, 12:49
Сообщение #3


Гуру
******

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



Цитата(Alexey Belyaev @ Mar 26 2010, 14:16) *
а подскажите как в асме заменить
Код
breq    func

на известный адрес функции.


точнее как её заставить перейти в адрес которого нет в коде, компилятор ругается чт не сможет туда перейти... sad.gif

Сомневаюсь, что ругается именно компилятор. Да точно так же - указать линкеру ее адрес в командной строке. Но! "Длина" перехода по команде breq весьма ограничена и линкер может ругаться на невозможность "дотянуться" до нужного адреса командной breq. Тогда нужно заменить breq func на
Код
    brne 1f
    rjmp func
1:

Цитата(Alexey Belyaev @ Mar 26 2010, 14:16) *
А как сказать что прерывание там-то?

А можно как-то сказать компилятору или линкеру, что такая-то переменная всегда в таком-то адресе?
Честно говоря не понял, что вы хотели спросить. Переформулируйте эти два вопроса более развернуто.


--------------------
На любой вопрос даю любой ответ
"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, 10:0...   Mar 26 2010, 08:44
- - 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   Я хочу чтобы и в бутлодере и в приложении некоторы...   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 Текстовая версия Сейчас: 23rd July 2025 - 17:55
Рейтинг@Mail.ru


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