娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

21.核心初始化之svc模式

發布者:PeacefulOasis最新更新時間:2024-10-30 來源: cnblogs關鍵字:核心初始化  svc模式  特權模式 手機看文章 掃描二維碼
隨時隨地手機看文章

要設置系統工作svc特權模式,從前面的學習知道這需要設置CPSR程序狀態寄存器

ARM Architecture Reference Manual.pdf文檔中,2.Programmers' Model的2.5.Program status register。

可以看到CPSR的最后五位:M[4:0],就是來設置系統工作的系統模式。

接下來就是把CPSR的最后五位設置為0b10011,就是完成了設置系統的SVC模式。

實現的思路是:

  1. 取得這五位

  2. 清零,使用bic位清零指令。

  3. 置第0,1,4位為1,即可,使用orr位或指令。

要取得CPSR的后五位,由于是操作CPSR/SPSR,不能像操作一般的寄存器一樣,直接操作,需要將CPSR/SPSR寄存器的值取出再進行相應的操作。取出的指令:mrs。最后是存入:msr。這樣就完成了修改操作。

 

修改的代碼

上面的操作就能夠實現把cpsr的末尾5位設置為0b10011。完成了設置系統工作在SVC模式。

我們做這些操作的時候,一般都是參考uboot里的設置來操作的。看看uboot里是怎么設置的:

可以看到OK6410的uboot里是設置為0xd3的,0xd3的二進制:

看到uboot里,還把[6][7]位設置為了1,看看這兩位的功能,是設置中斷的,uboot把中斷和快中斷都關閉了。

由于uboot是老大,所以,這里也改為了0xd3,2440,6410,210都是一樣的操作。最后start.S的代碼是:

 

.text

.global    _start

_start:

        b    reset                        

        ldr    pc, _undefined_instruction    

        ldr    pc, _software_interrupt        

        ldr    pc, _prefetch_abort            

        ldr    pc, _data_abort                

        ldr    pc, _not_used                

        ldr    pc, _irq                    

        ldr    pc, _fiq

 

_undefined_instruction: .word undefined_instruction

_software_interrupt:    .word software_interrupt

_prefetch_abort:    .word prefetch_abort

_data_abort:        .word data_abort

_not_used:        .word not_used

_irq:            .word irq

_fiq:            .word fiq                    

 

undefined_instruction:

        nop

software_interrupt:

        nop

prefetch_abort:

        nop

data_abort:

        nop

not_used:

        nop

irq:

        nop

fiq:

        nop

reset:

        bl set_svc

set_svc:

        mrs r1,cpsr

        bic r1,#0x1f @clear r1的后五位,

                         @即是清除cpsr的后五位

        orr r1,r1,#0xd3 @0b10011=0x13

        msr cpsr,r1


關鍵字:核心初始化  svc模式  特權模式 引用地址:21.核心初始化之svc模式

上一篇:22.核心初始化之看門狗
下一篇:20.核心初始化之異常向量表

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 平南县| 阳泉市| 凤阳县| 锡林浩特市| 垦利县| 化德县| 东台市| 车险| 宜兴市| 衡东县| 平果县| 汕头市| 五指山市| 申扎县| 石家庄市| 启东市| 溧阳市| 如皋市| 长治市| 柞水县| 南宫市| 博客| 龙胜| 满洲里市| 同心县| 修文县| 安岳县| 潜江市| 益阳市| 长岛县| 崇礼县| 绥德县| 六枝特区| 朔州市| 德阳市| 桑植县| 吉林市| 永清县| 宁陕县| 陆丰市| 浦东新区|