欢迎来到天天文库
浏览记录
ID:37706835
大小:218.00 KB
页数:18页
时间:2019-05-29
《2410init.s的分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、;=========================================;NAME:2410INIT.S;DESC:Cstartupcodes;Configurememory,ISR,stacks;InitializeC-variables;HISTORY:;2002.02.25:kwtark:ver0.0;2002.03.20:purnnamu:AddsomefunctionsfortestingSTOP,POWER_OFFmode;2002.04.10:SJS:subinterruptdisable0x3f
2、f->0x7ff;2002.11.29:Kong:DCDBANKSIZEResiger0x32->0xb2(ARMcoreburstenable);=========================================;/************************************此头文件的功能***********************************/;1.屏蔽所有中断,关看门狗。;2.根据工作频率设置PLL寄存器;3.初始化存储控制相关寄存器;4.初始化各模式下的栈指针;5.设置缺省
3、中断处理函数;6.将数据段拷贝到RAM中,将零初始化数据段清零;7.跳转到C语言Main入口函数中;由于注者水平有限,注解中难免有不正确或不恰当的地方,欢迎指正。mail:walw_very@126.com;*****************************************************************************/本汇编语言程序包含option.inc,memcfg.inc,2410addr.inc,通常启动代码是在2410init.s汇编文件;特殊功能寄存器定义在2410a
4、ddr.s;MemoryBank配置在mencfg.s;还有系统的选项等在option.s文件GEToption.inc;GETmemcfg.inc;此处GET相当于C语言中的includeGET2410addr.inc;BIT_SELFREFRESHEQU(1<<22);ram的自刷新设置位,相当于c里面#defineBIT_SELFREFRESH (1<<22),就是第22位置1/*********************************************************************
5、*******CPSR中决定当前CPU工作模式的末5位代码ARM有7种模式,用户模式,快速中断模式,中断模式,管理模式,中止模式,未定义模式和系统模式。系统堆栈的初始化主要是给各个处理器模式分配堆栈空间。堆栈是为中断或程序跳转服务的,当发生中断或程序跳转时,需要将当前处理器的状态及一些参数保持在堆栈中,当中断处理完毕以后或程序执行完后返回时,再将堆栈保存的现场数据进行恢复,以保证原来的程序正确运行****************************************************************
6、**************/USERMODEEQU0x10;//用户模式FIQMODEEQU0x11;//快速中断模式IRQMODEEQU0x12;//外部中断模式SVCMODEEQU0x13;//管理模式ABORTMODEEQU0x17;//中止模式UNDEFMODEEQU0x1b;//未定义的模式MODEMASKEQU0x1f;//中断屏蔽?NOINTEQU0xc0;//没有中断?;ThelocationofstacksCPU在不同工作模式下对应的堆栈区。;_STACK_BASEADDRESS是栈区基地址;_STAC
7、K_BASEADDRESS已经在Option.s/Option.inc中定义,在这里的值为0x33ff8000UserStackEQU(_STACK_BASEADDRESS-0x3800);0x33ff4800~SVCStackEQU(_STACK_BASEADDRESS-0x2800);0x33ff5800~UndefStackEQU(_STACK_BASEADDRESS-0x2400);0x33ff5c00~AbortStackEQU(_STACK_BASEADDRESS-0x2000);0x33ff6000~IRQS
8、tackEQU(_STACK_BASEADDRESS-0x1000);0x33ff7000~FIQStackEQU(_STACK_BASEADDRESS-0x0);0x33ff8000~;/*********************************************************
此文档下载收益归作者所有