строка 300
Код
tn_cpu_save_sr
mrs r0,CPSR;-- Disable both IRQ & FIQ interrupts
orr r1,r0,#NOINT
msr CPSR_c,r1
;-- Atmel add-on
mrs r1,CPSR;-- Check CPSR for correct contents
and r1,r1,#NOINT
cmp r1,#NOINT
bne tn_cpu_save_sr;-- Not disabled - loop to try again
;--------
mrs r0,CPSR;-- Disable both IRQ & FIQ interrupts
orr r1,r0,#NOINT
msr CPSR_c,r1
;-- Atmel add-on
mrs r1,CPSR;-- Check CPSR for correct contents
and r1,r1,#NOINT
cmp r1,#NOINT
bne tn_cpu_save_sr;-- Not disabled - loop to try again
;--------
Не очень понял причем тут Atmel , вроде как это вообще особенность ядра такая...
Я так понял вот эта http://www.arm.com/support/faqip/3677.html
Так вот.. подобный код мне кажется вставить надо тогда и в других местах... например в tn_switch_context.. Или я не то что-то говорю ?
Просто вторые сутки сижу, если завалить операционку прерываниями ( в моем случае USB) - ось через определенное место рушится. Довольно хитро так рушится, и концов не найти, почему в abort вылетели.
А если сей код привести в соответсвие с вышесказанным - то все нормально (кажется).
Вопрос - я брежу или нет ?
PS ... все равно где-то что-то еще не так.. может и у меня.. щас с катушек съеду :-(
В догонку - я правильно понял, что Тумб кода быть не должно ?
PPS2 с глюками разобрался, виноват конечно я, одной задаче дал мало стека.. но ничего, зато в кишках оси порылся всласть =))
Но все же вопрос остается - откуда ноги растут у этого Atmel addon ?
PPS3
А вот наличие THUMB кода точно вешает все.. То есть в Keil надо галку enable arm/thumb interworking снимать, иначе некоторые библиотеки иду тумбовые (sprintf напрмер)