Цитата(aaarrr @ Mar 20 2012, 23:16)

Если процессор находится в привилегированном режиме, то корректно. Только лучше intrinsic'и использовать, а не вставки.
Ну эти вставки и взяты из дизассемблера яровских intrinsic (__enable interrupt, __disable interrupt).
Могу добавив в cstartup следующего кода перевести процессор в режим SYSTEM? Чем чревато постоянное нахождение в SYSTEM-режиме?
Код
mrs r0,cpsr ; Original PSR value
bic r0,r0,#MODE_BITS ; Clear the mode bits
orr r0,r0,#SYS_MODE ; Set System mode
msr cpsr_c,r0 ; Change the mode
Хотелось бы найти способ отключения обработки всех прерываний, не привязанный к IAR, при этом не задержав обработку прерываний на время более чем время нахождени в malloc/free. Или лучше отключать/включать прерывания от всей периферии по отдельности?
Не приведёт ли манипуляция с I-битом к негативным последствиям при попытке снять I-бит в обработчике прерывания?
Сообщение отредактировал athlon64 - Mar 21 2012, 02:14