新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > TQ2440國嵌學院gboot-設定CPU為svc模式

TQ2440國嵌學院gboot-設定CPU為svc模式

作者: 時間:2016-11-26 來源:網絡 收藏
通過之前學習設定ARM的中斷向量表,完成基本框架的設計,下面開始設定CPU到SVC模式(這里是指32位模式)。

同樣是在ARM Architecture Reference Manual手冊中,Exceptions的子目錄下,找到對應的Reset模式:

本文引用地址:http://m.butianyuan.cn/article/201611/321974.htm



關鍵部分我已標注紅色,可以看到CPSR[4:0]=0b10011 ,通過備注我們可以知道通過設定CPSR寄存器的0-4位可以設定CPU進如SVC模式。CPSR寄存器的第6、7位是關閉快速中斷和中斷,在bootloader啟動時同樣關閉。也就是CPSR[0:7]=0b11010011=0xd3。代碼如下:

reset:
bl set_svc//在reset下添加跳轉指令bl,使用bl能夠保留當前的地址到R14寄存器中,以便執(zhí)行完子程序后返回

set_svc://這里是32位處理器,因此命令如下
mrs r0, cpsr//將cpsr寄存器裝載到r0寄存器
bic r0, r0, #0x1f//bic完成位清除,將r0的后5位置0
orr r0, r0, #0xd3//將r0與0xd3(0b1101 0011)
msr cpsr, r0//重新將r0裝載到cpsr中
mov pc, lr//返回到程序中

學習總結:

通過查詢資料可以得到上面的一些信息,可以說明查詢手冊是十分重要,通過閱讀手冊中的一些注釋得到想要的信息,其次掌握好指令的用法,對每一條指令都能掌握含義。



評論


技術專區(qū)

關閉