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

 
 
> ARM926E-S, TCM, remap
toweroff
сообщение Jun 3 2013, 14:25
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день!
Что-то я совсем запутался.
Объясните, пожалуйста, "на пальцах" - как это все происходит.
Смаппировать область не проблема, есть специально выделенный регистр. Но как тогда быть с TCM и векторами прерываний?
Я пытаюсь включить TCM, переношу вектора в RAM, маппирую RAM в регион 0... и улетаю черт-те знает куда
Можно, конечно, мапировать RAM за пределами области TCM, но как быть с векторами?
Получается, что из-за конфликта ремапа и TCM памяти у меня все крашится (?)

UPD
Читать, читать и читать...
Магическое слово - бит V в Control Register of System Control Coprocessor

Продолжаем упражнения sad.gif

Из описания CP15 c1 Control Register
Цитата
Exception vector location bit:
1 = vector address range is 0xFFFF0000 to 0xFFFF001C
0 = vector address range is 0x00000000 to 0x0000001C.


Все бы хорошо, но при попытке записать вектора в область 0xFFFF0000, проц вообще впадает в ступор, отладчик просто отваливается с матюками
Вот что из UM:
Цитата
The ARM968E-S processor has its exception vectors located at address logic 0. Since
flash is the only non-volatile memory available in the LPC29xx, the exception vectors in
the flash must be located at address logic 0 at reset (AHB_RST).


After booting a choice must be made for region 0. When enabled, the Tightly Coupled
Memories (TCMs) occupy fixed address locations in region 0


то есть приходим к тому же самому. Как включить TCM и при этом сохранить вектора также с адреса 0?
Не понимаю, хоть тресни sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 3 2013, 14:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(toweroff @ Jun 3 2013, 18:25) *
то есть приходим к тому же самому. Как включить TCM и при этом сохранить вектора также с адреса 0?
Не понимаю, хоть тресни sad.gif

А что мешает прописать вектора в TCM?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 3 2013, 15:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Jun 3 2013, 18:30) *
А что мешает прописать вектора в TCM?

потому что как только отрабатывает этот код, копирующий из Flash вектора в регион 0, я сваливаюсь в Abort
Код
    PRESERVE8

    AREA    CODE,READONLY

VECTOR_RAM_SRC        EQU        0x80000000
VECTOR_FLASH_SRC    EQU        0x20000000
VECTOR_DST            EQU        0x00000000

    EXPORT VectorRemap
    AREA BlockCopy, CODE, READONLY    ; name this block of code

VectorRemap
    STMFD   sp!, {r0, r1, r4-r11}; save registers

    LDR     r0, =VECTOR_FLASH_SRC; r0 = pointer to source block

    LDR     r1, =VECTOR_DST    ; r1 = pointer to destination block      
    LDMIA   r0!, {r4-r11}    ; remap first 16 words from 0x20000000
    STMIA   r1!, {r4-r11}    ; to address 0x00000000 for interrupt
    LDMIA   r0!, {r4-r11}    ; exception handler
    STMIA   r1!, {r4-r11}  
    
    LDMFD   sp!, {r0, r1, r4-r11}; restore registers

    END

точнее - сразу после LDMFD
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 3 2013, 15:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(toweroff @ Jun 3 2013, 19:02) *
сразу после LDMFD

Если это подпрограмма, то сразу после LDMFD у Вас отсутствует инструкция возврата.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 3 2013, 15:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Jun 3 2013, 19:07) *
Если это подпрограмма, то сразу после LDMFD у Вас отсутствует инструкция возврата.

понятно, спасибо
Код
LDMIA     R13!,{R4,PC}


и вопрос решен

PS. Нефиг копипастить sm.gif
Go to the top of the page
 
+Quote Post



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

 


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


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