下载此文档

S3C2410启动代码分析.ppt


文档分类:IT计算机 | 页数:约50页 举报非法文档有奖
1/50
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/50 下载此文档
文档列表 文档介绍
S3C2410启动代码分析S3C2410启动代码通常,;;;,还包括CPU进入掉电模式,产生中断等和处理器直接相关的用汇编实现的代码S3C2410启动代码;====================================;NAME:;DESC:Cstartupcodes;Configurememory,ISR,stacks;InitializeC-variables;HISTORY:;:kwtark:;:purnnamu:AddsomefunctionsfortestingSTOP,POWER_OFFmode;:jcs:;====================================S3C2410启动代码//首先,启动代码定义了一些常量,//自刷新常量BIT_SELFREFRESHEQU(1<<22)S3C2410启动代码//处理器模式常量USERMODEEQU0x10FIQMODEEQU0x11IRQMODEEQU0x12SVCMODEEQU0x13ABORTMODEEQU0x17UNDEFMODEEQU0x1bMODEMASKEQU0x1f//系统模式NOINTEQU0xc0//屏蔽所有的中断,即置位I,F位S3C2410启动代码//Thelocationofstacks定义处理器各模式下堆栈地址常量UserStackEQU(_STACK_BASEADDRESS-0x3800);0x33ff4800~SVCStackEQU(_STACK_BASEADDRESS-0x2800);0x33ff5800~UndefStackEQU(_STACK_BASEADDRESS-0x2400);0x33ff5c00~AbortStackEQU(_STACK_BASEADDRESS-0x2000);0x33ff6000~IRQStackEQU(_STACK_BASEADDRESS-0x1000);0x33ff7000~FIQStackEQU(_STACK_BASEADDRESS-0x0);0x33ff8000~::32位这种工作状态下执行字对准的arm指令;:16位这种工作状态执行半字对准的Thumb指令因为处理器分为16位、32位两种工作状态,程序的编译器也是分16位和32两种编译方式,所以下面的程序用于根据处理器工作状态确定编译器编译方式code16伪指令指示汇编编译器后面的指令为16位的thumb指令code32伪指令指示汇编编译器后面的指令为32位的arm指令这段是为了统一目前的处理器工作状态和软件编译方式()S3C2410启动代码GBLLTHUMBCODE;设置一个全局逻辑变量[{CONFIG}=16;ifconfig==16这里表示目前处于16位编译方式,{CONFIG}为汇编器内置变量THUMBCODESETL{TRUE};设置THUMBCODE为trueCODE32;转入32位编译模式|;elseTHUMBCODESETL{FALSE};设置THUMBCODE为false][THUMBCODE;ifTHUMBCODE==TRUECODE32;forstart-upcodeforThumbmode转入32位编译方式]S3C2410启动代码注意下面这段程序是个宏定义,这段程序用于把中断服务程序的首地址装载到pc中,有人称之为“加载程序”。其大致作用是把宏的第一个参数$HandlerLabel转变为一个标号,然后让程序跳转到第二个参数$HandleLabel(第二个参数应该为一个地址)对应的地址去。本初始化程序定义了一个数据区(在文件最后),34个字空间,存放相应中断服务程序的首地址。每个字空间都有一个标号,以Handle***命名。在向量中断模式下使用“加载程序”来执行中断服务程序。S3C2410启动代码MACRO$HandlerLabelHANDLER$HandleLabel$HandlerLabelsubsp,sp,

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数50
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1017848967
  • 文件大小243 KB
  • 时间2020-07-10
最近更新