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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> отладка из RAM в кейл
romashko
сообщение Oct 5 2007, 02:35
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 25-12-06
Пользователь №: 23 865



Цитата(zorromen @ Oct 5 2007, 05:29) *
Тока всеравно придется писать заголовки в ром. А ром ведь не бесконечный цикл перезаписи имет. Так я невижу особой пользы отладки программы в рам, если всеравно портиться ром.


ничего там не надо писать! и скатер править тоже не надо!
далее для примера с AT91SAM7****:

в Project/Options for Target/Target заполняем поля:
Read/Only memory areas фишка на IROM1 указываем start: 0x202000 size:0x2000
Read/Write memory areas фишка на IRAM1 указываем start: 0x204000 size:0x2000

в Project/Options for Target/Linker ставим галку use memory layout from Target Dialog
(чтоб со всякими катерами не трахаца)

в стартапе коментим директивы условной компиляции (remap/copy vectors):
Код
; Copy Exception Vectors to Internal RAM
ADR     R8, Vectors        ; Source
LDR     R9, =RAM_BASE      ; Destination
LDMIA   R8!, {R0-R7}       ; Load Vectors
STMIA   R9!, {R0-R7}       ; Store Vectors
; Remap on-chip RAM to address 0
MC_BASE EQU     0xFFFFFF00     ; MC Base Address
MC_RCR  EQU     0x00           ; MC_RCR Offset
LDR     R0, =MC_BASE
MOV     R1, #1
STR     R1, [R0, #MC_RCR]  ; Remap


далее получаем бинарник и пишем его самбой в SRAM по адресу 0x202000
и делаем Go 0x202000

для приличия снести в сатртапе асм-инструкции, переводящие арм в режим юзера
а супервизору разрешить irq,fiq (убрать биты в CPSR I_bit, F_bit)

и плеш для дебуга в срам не нужна! wink.gif
Go to the top of the page
 
+Quote Post
Leen
сообщение Oct 5 2007, 03:01
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Это мой стандартный скаттер для отладки.
Код
RAM_LOAD 0x200000// начало озу в SAM7S
  {
  EXE +0 0x6000// длина для исполняемого кода и констант
    {
    *.o (RESET, +FIRST)// первым в эту область линкуем модуль RESET
    * (+RO)// затем все остальные readonly объекты
    }
  DATA 0x206000 0x2000// регион для данных (см. выше)
    {
    * (+RW +ZI)// кладем все изменяемые данные сюда
    }
  ISR_EXE 0x208000 0x2000// и отдельный регион для функций из объектного файла interrupt.o
// в этот регион попадут все функции, определенные в файле interrupt.c.
    {
    interrupt.o (+RO)
    }
  }

Для отладки из озу в кейле надо прогрузить полученный файл в память контроллера и не забыть сделать ему РЕМАП:
Код
// грузим файл в контроллер
Load obj\vm_ram.axf INCREMENTAL
//делаем ремап
_WDWORD(0xFFFFFF00,0x00000001);//*   Toggle RESET The remap - содрано в ините
// кейловского примера

Этот файл надо скормить кейлу под соусом "ини-файл для отладчика" на вкладке настройки последнего в свойствах проекта.
Go to the top of the page
 
+Quote Post
zorromen
сообщение Oct 5 2007, 03:12
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Спасибо. Вах. wink.gif
Go to the top of the page
 
+Quote Post

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

 


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


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