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

 
 
 
Reply to this topicStart new topic
> Mega48 и самопрограммирование
Alex_mel
сообщение May 16 2006, 13:03
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 16-05-06
Пользователь №: 17 144



Раньше писал на асемблере, с самопрограммированием вроде все было понятно - деректива .org потом физический адрес с которого будет распологаться дальнейший код загрузчика. Располагаешь это все в хвосте и при необходимости перезаписываешь через SPM весь основной код. Теперь перешел на С от IAR, и сразу куча вопросов - как в C указать точное физическое место расположения в памяти AVR-а, для подпрограммы (функции) загрузчика. Еще как-то в нестираемую область надо поместить функции для работы с I2C, для этого надо как-то подсчитать их размер, чтоб акуратно сложить в память. Если кто сталкивался с подобным, посоветуйте что-нибудь.
Заранее благодарен!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 16 2006, 15:46
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Распределением памяти занимается линкер.
Конкретные адреса сегментов указываются в командном файле линкера с расширением *.xcl (см. примеры и шаблоны в папке config установленного продукта).
Примеры подобных файлов и целых проектов загрузчиков можно посмотреть на сайте Атмела.
Ну и, конечно, надо почитать документацию по линкеру.
Go to the top of the page
 
+Quote Post
Alex_mel
сообщение May 17 2006, 08:57
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 16-05-06
Пользователь №: 17 144



Если использовать Mega88 с полноценным загрузчиком, то вроде как есть возможность переключать две таблицы векторов прерываний, одну для основной программы, другую для загрузчика. C переключением все понятно, а вот как в IAR C создать эти две таблицы?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 17 2006, 12:43
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Alex_mel @ May 17 2006, 11:57) *
Если использовать Mega88 с полноценным загрузчиком, то вроде как есть возможность переключать две таблицы векторов прерываний, одну для основной программы, другую для загрузчика. C переключением все понятно, а вот как в IAR C создать эти две таблицы?

Я это делал как два разных проекта в одном Workspace.
Go to the top of the page
 
+Quote Post
Alex_mel
сообщение May 18 2006, 09:14
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 16-05-06
Пользователь №: 17 144



А где бы взять пример на IAR C с таким загрузчиком?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 18 2006, 11:35
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Alex_mel @ May 18 2006, 12:14) *
А где бы взять пример на IAR C с таким загрузчиком?

Например здесь.
AVR230: DES Bootloader
AVR231: AES Bootloader
Go to the top of the page
 
+Quote Post

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

 


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


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