1. 程式人生 > >設定tiny6410的svc模式

設定tiny6410的svc模式

要設定使用者工作在svc模式,是通過程式狀態暫存器來設定的,

程式狀態暫存器有cpsr跟spsr,設定工作模式主要是設定cpsr,由手冊可知,要設定svc模式,只要設定cpsr的M位為10011即可。

設定思路可以分為兩步,第一步把這五位全部清零,第二步,根據位置置一。

然後在reset處加上 bl set_svc

set_svc:
mrs r0, cpsr
bic r0, r0,#0x1f
orr r0, r0,0#d3
msr cpsr, r0

完成設定。

之所以是d3而不是13,是因為要把spsr的I位跟F位設定為1,遮蔽FIQ跟IRQ。