下载此文档

S3C44B0X启动代码分析.doc


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
S3C44B0X 启动代码分析 引导程序注解 GET ; 相当于 c 语言中的# include "" GET ;Interrupt Control ; 声明一些符号常量,这些符号常量和地址相应寄存器的地址对应 INTPND EQU 0x01e00004 ; 指示中断请求状态寄存器,每一位代表一种中断请求,具体表示哪一种中断请参考 44b0 spec INTMOD EQU 0x01e00008 ; 中断模式寄存器,有两种中断模式对应位为1 代表 FIQ mode ,0 代表 IRQ mode INTMSK EQU 0x01e0000c ; 确定哪个中断源被屏蔽,屏蔽的中断源将不被服务 I_ISPR EQU 0x01e00020 ; 中断服务挂起寄存器 I_CMST EQU 0x01e0001c ; 当前主寄存器 IRQ 优先级;Watchdog timer WTCON EQU 0x01d30000 ; 看门狗定时器控制寄存器;Clock Controller PLLCON EQU 0x01d80000 ; pll 控制寄存器 CLKCON EQU 0x01d80004 ; 时钟控制寄存器 LOCKTIME EQU 0x01d8000c ; 锁定时间计数值寄存器;Memory Controller REFRESH EQU 0x01c80024 ; Dram/sdram 刷新控制寄存器; 下面是对 arm 处理器模式寄存器对应值的常数定义, arm 处理器中有一个 CPSR 程序状态寄存器,它的后五位决定目前的处理器模式;Pre-defined constants USERMODE EQU 0x10 ; 0b10000 用户模式 FIQMODE EQU 0x11 ; 0b10001 FIQ 模式 IRQMODE EQU 0x12 ; 0b10010 IRQ 模式 SVCMODE EQU 0x13 ; 0b10011 管理模式 ABORTMODE EQU 0x17 ; 0b10111 中止模式 UNDEFMODE EQU 0x1b ; 0b11011 未定义 MODEMASK EQU 0x1f ; 0b11111 系统模式 NOINT EQU 0xc0 ; ;check if is used. ;arm 处理器有两种工作状态 : 32 位, 这种工作状态下执行字对准的 arm 指令 :16 位,这种工作状态执行半字对准的 Thumb 指令; 因为处理器分为 16位 32 位两种工作状态, 程序的编译器也是分 16 位和 32 两种编译方式, 所以下面的程序用于根据处理器工作状态确定编译器编译方式;code16 伪指令指示汇编编译器后面的指令为 16 位的 thumb 指令;code32 伪指令指示汇编编译器后面的指令为 32 位的 arm 指令; 这段是为了统一目前的处理器工作状态和软件编译方式( 16 位编译环境使用 编译) GBLL THUMBCODE ; 设置一个全局逻辑变量[ {CONFIG} = 16; if config==16 这里表示你的目前处于领先地 16 位编译方式 THUMBCODE SETL {TRUE} ; 设置 THUMBCODE 为 true CODE32 ; 转入 32 位编译模式| ;else THUMBCODE SETL {FALSE} ; 设置 THUMBCODE 为 false ][ THUMBCODE ; if THUMBCODE==TRUE CODE32 ; for start-up code for Thumb mode; 转入 32 位编译方式]; 注意下面这段程序是个宏定义,很多人对这段程序不理解,我再次强调这是一个宏定义, ;所以大家要注意了下面包含的 HandlerXXX HANDLER HandleXXX 将都被下面这段程序; 展开。这段程序用于把中断服务程序的首地址装载到 pc中, 有人称之为“加载程序”。; 本初始化程序定义了一个数据区(在文件最后), 34 个字空间,存放相应中断服务程序的首地址。每个字空间都有一个标号, 以 Handle*** 命名。; 在向量中断模式下使用“加载程序”来执行中断服务程序。; 这里就必须讲一下向量中断模式和非向量中断模式的概念; 向量中断模式是当 cpu 读取位于 0x18 处的 IRQ 中断指令的时候,系统自动读取对应于该中断源确定地址上的指令取代 0x18 处的指令, 通过跳转指令系统就直接跳转到对应地址; 函数中节省了中断处理时间提高了中断处理速度标例如 ADC 中断的向量地址为 0xC0, 则在 0

S3C44B0X启动代码分析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-06-09
最近更新