(toppers-users 2279) Re: ARM対応の割り込みとスタックの復帰について
Masafumi YASHIKI
yashiki.masafumi @ sharp.co.jp
2006年 2月 1日 (水) 13:02:20 JST
名古屋大学 本田様
屋鋪@シャープです.
早速の対応,ありがとうございます.
>ret_int_2:
> ldmfd sp!, {r0} /* spsr を復帰 */
> mrs r2, cpsr /* FIQを継承 */
> and r2, r2, #CPSR_FIQ_BIT
> and r0, r0, #~CPSR_FIQ_BIT
> orr r0, r0, r2
> msr spsr, r0 /* 戻り先のcpsrをspsrに設定 */
> ldmfd sp!, {r0 - r3,ip,lr,pc}^ /* タスクへ戻る ^付きなので、psr <- spsr*/
>
>return_to_task_irq:
> ldmfd sp!,{r1} /* CPSRの復帰処理 */
> mrs r2, cpsr /* FIQを継承 */
> and r2, r2, #CPSR_FIQ_BIT
> and r1, r1, #~CPSR_FIQ_BIT
> orr r1, r1, r2
> msr spsr, r1 /* 戻り先のcpsrをspsrに設定 */
> ldmfd sp!,{r0-r3,ip,lr,pc}^ /* タスクに復帰 ^付きなので、cpsr <- spsr */
修正方法は,こちらでのローカルハックと同じ内容なので問題ないと思われま
す.発生していた不具合が解消されることを確認いたしました.
次回のリリースへの反映をよろしくお願いいたします.