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

 
 
> sam256 remap, need example :(
SpiritDance
сообщение Apr 20 2007, 09:52
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Люди я чето непонимаю.
Итак цель - бутром записывающийся в конец флеш, для бутрома нужны прерывания, для того чтобы его собственная таблица векторов не затиралась приложением нужно также хранить ее в конце флеша, при старте переписывать в RAM и делать remap, при выходе из загрузчика делать remap обратно на флеш.

Так вот как это грамотно сделать в IARе?, кроссворксовский код
Код
    mov     r8, #0x00200000
    ldr     r9, =_vectors
    ldmia   r9!, {r0-r7}
    stmia   r8!, {r0-r7}
    ldmia   r9!, {r0-r6}
    stmia   r8!, {r0-r6}
    ldr     r0, =MC_RCR_RCB
    strb    r0, [r10, #MC_RCR_OFFSET]

просто так не проходит. RAMSTART в линкер-скрипте сделал 00200100- пофиг, без команды remap работает с ней беда, до main проц не доходит. Думаю причина в том, что remap как -то не вяжется с инитом компилера? причем посмотреть отладчиком что происходит тоже не очень удается.

Что такое
RSEG INTRAMSTART_REMAP
RSEG INTRAMEND_REMAP
в статртапе? недопонял.

может есть где проект под IAR с ремапом а?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Waso
сообщение Nov 23 2007, 08:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



У меня основная программа закачивает обновление через изернет, рестартует и затем бут его переписывает на место проги. В будущем бут должен будет уметь закачать прошивку через UART, но... незнаю, может и придется реализовать это сейчас, но времени в обрез. А пока хочу попробовать воспользоваться опцией линкера "Raw binary image"... Как все получится - отпишу.

==============================================================
Шить еще не пробовал (заменил FlashAT91SAM7Sx.d79 на ваш), но отладчик упорно начинает работать с нулевого адреса даже если ROMSTART=00100000. Какнибудь можно его научить учитывать ремап/неремап при запуске? А вообще линкует хорошо. Дописывает указанный в rawbinary image файл куда надо.

Кстати, как отладчика заставить вставлять больше брейкпоинтов? В некоторых программах при отладке у меня получалось ставить одновременно не больше 2-3х брейков. А взялся за бут - так он мне вообще фигу показывает и даже пошагам смотреть может только на ассемблеровский код. Чтото гдето забыл я настроить. Раньше пользовался шаблонами...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 23 2007, 09:50
Сообщение #3


Гуру
******

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



Цитата(Waso @ Nov 23 2007, 10:38) *
но отладчик упорно начинает работать с нулевого адреса даже если ROMSTART=00100000
То же самое будет происходить и в железе. По нулевой адрес в зависимости от ремап/не ремап должна зеркалится команда перехода на загрузчик (с адреса 0x00100000) или на приложение (зеркалится с адреса 0x00200000, куда ее копирует загрузчик).
Цитата(Waso @ Nov 23 2007, 10:38) *
. Какнибудь можно его научить учитывать ремап/неремап при запуске?
можно. в .mac - файле написать соответствующий скрипт. Напишите, что конкретно он должен сделать, я накидаю скрипт. Пока непонятно зачем, но накидаю.


--------------------
На любой вопрос даю любой ответ
"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
Waso
сообщение Nov 23 2007, 10:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Цитата(Сергей Борщ @ Nov 23 2007, 16:50) *
нулевой адрес в зависимости от ремап/не ремап должна зеркалится команда перехода на загрузчик (с адреса 0x00100000) или на приложение (зеркалится с адреса 0x00200000, куда ее копирует загрузчик).можно. в .mac - файле написать соответствующий скрипт.
Отладчик не зеркалит флеш в нулевые адреса при старте. Это и надо исправить.
Отлаживаю пока в симуляторе. Оттого и удивляюсь насчет брейкпоинтов.
Проц - AT91SAM7X256, ИДЕ IAR 440A
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SpiritDance   sam256 remap   Apr 20 2007, 09:52
- - amw   Не совсем то, что спрашивается, поскольку делает r...   Apr 20 2007, 10:45
- - Сергей Борщ   Цитата(SpiritDance @ Apr 20 2007, 08:52) ...   Apr 20 2007, 10:55
- - SpiritDance   Да штука то в том что сам remap как раз и работает...   Apr 20 2007, 11:12
|- - Сергей Борщ   Цитата(SpiritDance @ Apr 20 2007, 10:12) ...   Apr 20 2007, 12:13
|- - SpiritDance   Цитата(Сергей Борщ @ Apr 20 2007, 13:13) ...   Apr 20 2007, 13:21
|- - Сергей Борщ   Цитата(SpiritDance @ Apr 20 2007, 12:21) ...   Apr 20 2007, 15:09
|- - SpiritDance   Цитата(Сергей Борщ @ Apr 20 2007, 16:09) ...   Apr 20 2007, 16:35
|- - Сергей Борщ   Цитата(SpiritDance @ Apr 20 2007, 15:35) ...   Apr 20 2007, 19:21
- - d__   А вот если так: Если программа должна работать из...   Apr 20 2007, 18:40
- - Waso   Есть несколько непоняток по скрещиванию программы ...   Nov 21 2007, 07:13
|- - Сергей Борщ   Цитата(Waso @ Nov 21 2007, 09:13) 1. Если...   Nov 21 2007, 11:54
|- - Сергей Борщ   Цитата(Waso @ Nov 23 2007, 12:01) Отлажив...   Nov 23 2007, 10:55
- - Waso   Однако подвисает симулятор при запуске. Но всеравн...   Nov 26 2007, 06:04


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

 


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


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