a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 詳解ARM9的CPSR寄存器

詳解ARM9的CPSR寄存器

作者: 時間:2016-11-22 來源:網絡 收藏
最近在學習嵌入式底層系統開發,在寫啟動代碼時要設置各個模式的SP,需要調整CPU的工作模式,部分代碼如下:
[plain]view plaincopy
print?
  1. .equDISABLE_IRQ,0x80
  2. .equDISABLE_FIQ,0x40
  3. .equSYS_MOD,0x1f
  4. .equIRQ_MOD,0x12
  5. .equFIQ_MOD,0x11
  6. .equSVC_MOD,0x13
  7. .equABT_MOD,0x17
  8. .equUND_MOD,0x1b
  9. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|SVC_MOD)
  10. ldrsp,=_SVC_STACK
  11. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|IRQ_MOD)
  12. ldrsp,=_IRQ_STACK
  13. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|FIQ_MOD)
  14. ldrsp,=_FIQ_STACK
  15. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|ABT_MOD)
  16. ldrsp,=_ABT_STACK
  17. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|UND_MOD)
  18. ldrsp,=_UND_STACK
  19. msrcpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|SYS_MOD)
  20. ldrsp,=_SYS_STACK
代碼中用到了cpsr_c,那么究竟cpsr_c與cpsr是什么關系?

本文引用地址:http://www.j9360.com/article/201611/319969.htm

ARM9的每種工作模式除R0~R15共16個寄存器外,還有第17個寄存器CPSR(Current Program Status Register),叫做當前程序狀態寄存器,CPSR中一些位被用于標識各種狀態,一些位被用于標識當前出于什么工作模式。CPSR有4個8位區域:標志域(F)、狀態域(S)、擴展域(X)、控制域(C)。

在ARM 處理器中,只有MSR 指令可以直接設置狀態寄存器CPSR或SPSR。指令格式如下:
MSR{cond} psr_fields,#immed_8r(8位立即數)
MSR{cond} psr_fields,Rm
其中: psr 指CPSR 或SPSR
fields 指定傳送的區域。Fields 可以是以下的一種或多種(字母必須為小寫):

  • c 控制域屏蔽字節(psr[7…0])
  • x 擴展域屏蔽字節(psr[27…8])
  • s 狀態域屏蔽字節(psr[31.…28])


關鍵詞: ARM9CPSR寄存

評論


技術專區

關閉