ChumA (30.11.2004 00:26, просмотров: 3302)
LPC2214, есть горячее желание перенести обработчик FIQ и соотв. провести remap прерываний в SRAM... Задачка простая, однако на пределе быстродействия. На 14,745 МГц*4 при MAMCR = 2 предельное MAMTIM получилось 5, на 4 глючит
конкретно. Решил переместится в SRAM. Ну так вот:
1. Из flash обработчик FIQ обрабатывал как надо.
2. Обявил его как __arm __fiq __ramfunc void fiq_handler() - линкер честно запихнул его в SRAM.
3. Написал MEMMAP = 0x02, в xcl было записано -Z(CODE)INTVEC=0-3F
4. Не работает, видно, что вываливается в никуда после возникновения прерывания
5. С горя написал в xcl -Z(CODE)INTVEC=40000000-4000003F. По соотв. адресам появились соотв. переходы.
6. Однако все равно не работает, поскольку на адресе 0 пропал переход на startup секцию.
Вопрос, что надо поправить в консерватории?
P.S. Ежели извратится и не выполнять п.3 работает по схеме вектор в flash обработчик в sram.
P.P.S. Спать пора, заранее всем спасибо. Алексей.