UPD
Так, становится понятнее
Используются 2 инструкции, исполняемые в Privileged mode - MCR & MRC
Код
MRC p15, 0, <Rd>, c1, c0, 0
MCR p15, 0, <Rd>, c1, c0, 0
Там отключаем ремап или переходим в верхнюю адресацию (но вектора все равно нужно будет скопировать), так что вопрос по скаттеру пока открыт
Цитата(aaarrr @ Feb 25 2013, 22:45)

Только вектора - они все же CODE, а не DATA.
ээ.. ну да

Вы немного опередили, там еще сверху ответ
Еще добавлю скаттер
Вариант 1
Код
LR_IROM1 0x20000000 0x00080000 {; load region size_region
ER_IROM1 0x20000000 0x00080000 {; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x80000000 0x0000E000 {; RW data
*.o (RAMFUNC)
.ANY (+RW +ZI)
}
RW_IRAM2 0x00000000 0x00008000 {; 16 KB TCM memory
*.o (MyVectors)
}
}
и меняем использование смаппированной области с AHB на DTCM и ITCM:
Код
MRC p15, 0, r4, c1, c0, 0; Read CP15
ORR r4, r4, #DTCM_enabled; Enable Data TCM
; At power up, the interrupt vector is mapped to addr. 0 already,
; enabling instruction TCM will wipe out the mirror of the
; vector table. A remap will be performed there after. */
ORR r4, r4, #ITCM_enabled; Enable Instruction TCM
ORR r4, r4, #WB_enabled; Enable Write Buffer
MCR p15, 0, r4, c1, c0, 0; Write CP15
ИЛИ
Вариант 2
Код
LR_IROM1 0x20000000 0x00080000 {; load region size_region
ER_IROM1 0x20000000 0x00080000 {; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x80000000 0x0000E000 {; RW data
*.o (RAMFUNC)
.ANY (+RW +ZI)
}
RW_IRAM2 0xFFFF0000 0xFFFF001C {; Vectors in HI
*.o (MyVectors)
}
}
и меняем адреса векторов
Код
VBIT_enabled EQU 1<<13
MRC p15, 0, r4, c1, c0, 0; Read CP15
ORR r4, r4, #VBIT_enabled; Enable Vector location bit to 0xFFFF0000
MCR p15, 0, r4, c1, c0, 0; Write CP15
вот только посмотреть нужно, этот диапазон адресов для меня RW или RO. Должна быть RW, иначе смысла бы не было

Кстати, еще добавлю к посту №6 -
http://electronix.ru/forum/index.php?showt...t&p=1140378Ничего там проц не вычитывает при старте, это он по смещению при исключении переходит