精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網 > 電子技術應用 > 嵌入式技術 > 嵌入式操作系統 >

從Flash和SRAM中觸發中斷的過程示例(3)

2011年09月28日 11:29 本站整理 作者:葉子 用戶評論(0
在SRAM中運行上述代碼所需要進行的改變和增加

  鏈接需要按照如下方法配置:中斷向量表(ivt.s)需要鏈接到SRAM的底部(0x40000000)。確定相關的中斷向量位于0x40000000-0x4000003F。其他的文件鏈接到代碼內部,可以存放在SRAM中。

  而且,中斷向量需要被remapped to SRAM。使用MEMAP寄存器,配置它為用戶RAM模式可以實現。

  Int main()

  {

  ………………….

  初始化 MEMAP

  MEMAP = 0x2;

  ………………………..

  }

  TIMER1配置為觸發一個FIQ中斷,代碼從FLASH中運行

  例子包含下面的文件:

  1. 中斷向量表(ivt.s)

  2. 啟動匯編代碼(init.s)

  3. 主C文件

  本應用筆記只提到了相關的文件。如果使用其他的交叉編譯環境,C文件可以保存大部分不動,匯編文件需要更改。

  中斷向量表

  這些代碼應當被鏈接到0x0。這樣中斷向量和FIQ ISR就被提供給了ARM核。

  ;*******************************************************************

  匯編指令

  ********************************************************************

  AREA IVT,CODE ;新的代碼段

  CODE32

  IMPORT start

  T1_IR EQU 0Xe0008000

  ENTRY

  ;*******************************************************************

  LDR PC,=start

  LDR PC,Undefined_Addr

  LDR PC,SWI_Addr

  LDR PC,Prefetch_Addr

  LDR PC,Abort_Addr

  DCD ;標識

  LDR PC,IRQ_Addr

  ;*******************************************************************

  FIQ ISR已經自己存放在了 0x1C,取代了放置在這里的LDR 指令

  ******************************************************************

  ;清 TIMER1 中斷

  MOV R8,#0x1

  LDR R9,=T1_IR

  STR R8,[R9]

  后面的用戶應當增加更多的代碼在這里。

  ;返回到C main

  SUBS PC,R14,#0x04

  ;*************************************************************************

  Undefined_Addr DCD Undefined_Handler

  SWI_Addr DCD SWI_Handler

  Pregetch_Addr DCD Pregetch_Handler

  Abort_Addr DCD Abort_Handler

  IRQ_Addr DCD IRQ_Handler

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發表人:葉子 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?