MDK自带S3C2440启动代码分析Word文档下载推荐.docx
- 文档编号:6236801
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:31
- 大小:24.58KB
MDK自带S3C2440启动代码分析Word文档下载推荐.docx
《MDK自带S3C2440启动代码分析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MDK自带S3C2440启动代码分析Word文档下载推荐.docx(31页珍藏版)》请在冰点文库上搜索。
Mode_FIQ--快速中断模式,用于高速数据传输和通道处理。
Mode_IRQ--外部中断模式,用于通用的中断处理。
Mode_SVC--管理模式,使用的一种保护模式。
Mode_ABT--数据访问中止模式,用于虚拟存储用存储保护
Mode_UND--未定义指令中止模式,当未定义指令执行时进入此模式。
Mode_SYS--系统模式,用于特权级的操作系统任务。
I_Bit
--如果I位被置1,则外部中断被禁止(IRQisdisabled)
F_Bit
--如果F位被置1,则快速中断被禁止(FIQisdisabled)
----------------------------------------------------------------------
Mode_USR
EQU
0x10
Mode_FIQ
0x11
Mode_IRQ
0x12
Mode_SVC
0x13
Mode_ABT
0x17
Mode_UND
0x1B
Mode_SYS
0x1F
0x80
;
whenIbitisset,IRQisdisabled
EQU
0x40
whenFbitisset,FIQisdisabled
-----------------------------栈初始化定义-----------------------------------
下面这些主要是栈配置,系统的栈空间设定
UND_Stack_Size--未定义模式的栈大小
SVC_Stack_Size--超级用户模式的栈大小
ABT_Stack_Size--数据访问终止模式的栈大小
FIQ_Stack_Size--快速中断模式的栈大小
IRQ_Stack_Size--外部中断模式的栈大小
USR_Stack_Size--用户模式的栈大小
ISR_Stack_Size--总堆栈的大小,也就是所有模式下堆栈相加
-----------------------------------------------------------------------
UND_Stack_Size
0x00000000
SVC_Stack_Size
0x00000008
ABT_Stack_Size
FIQ_Stack_Size
IRQ_Stack_Size
0x00000080
USR_Stack_Size
0x00000400
ISR_Stack_Size
(UND_Stack_Size+SVC_Stack_Size+ABT_Stack_Size+\
FIQ_Stack_Size+IRQ_Stack_Size)
AREA--是一个伪指令,用于段定义。
ARM的汇编程序由段组成,段是相对独立
的指令或数据单位,每个段由AREA伪指令定义,并定义段的属性。
STACK
--AREA指令的一个参数,定义段名称
NOINIT--AREA指令的一个参数,指定本数据段仅仅保留了内在单元,而
将句初始值写入内存单元,也即将内存单元值初始化为0
READWRITE--指定本段为可读可写,数据段默认为READWRITE。
READWRITE(读写)、READONLY(只读)
ALIGN--也是一个伪指令,指定对齐方式。
ALIGNn指令的对齐值有两种方案
即n或2^n,这里采用第二种方案即指定后面的指令8字节对齐。
下面这句话的意思是:
开辟一个堆栈段,段名字为STACK,定义为可读可写,将内存单元初始化为0,
AREA
STACK,NOINIT,READWRITE,ALIGN=3
SPACE--伪指令,用于分配一块内存单元,并用0初始化,与%同义
其指令格式为:
{lable}
SPACE
expr
lable--内存起始地址标号
expr--所要分配的内存字节数
Stack_Mem
USR_Stack_Size
堆栈内存起始地址标号
__initial_sp
ISR_Stack_Size
汇编代码的地址标号
Stack_Top
堆栈段内容结束,在这里放个标号,用来获得堆栈顶部地址
Heap_Size
0x00000000
定义堆大小设置
开辟一个名字为HEAP可读可写,不初始化内存单的内存单元。
AREA
HEAP,NOINIT,READWRITE,ALIGN=3
__heap_base
堆的基址
Heap_Mem
Heap_Size
堆内存起始地址标号
__heap_limit
堆结束
----------------------------内存初始化定义-----------------------------
在一些应用系统中除了扩展Flash,RAM挂接在外部存储器接口上外,可能还有其它
的外设挂接在外部存储器接口上,不同外设的操作时序什么的都是不一样的,所以
在使用这些外设之前必须初始化连接这些外设存储器接口。
这里因为没扩展,所以
只定义一个片上内存基地址。
IRAM_BASE
0x40000000
片上SRAM的基地址,即内存基地址
-------------------------看门狗初始化定义------------------------------
看门狗在防止程序跑飞,进入无限死循环时起着重要作用。
有些应用可能用不上
看门狗功能,也可能有些应用会用到外部看门狗。
在这个时候内部看门狗必须禁
止,所以有时候会在初始化时将内部看门狗禁止,当以后应用用到时再开启它。
看门狗定时器包括三个寄存器:
WTCON--看门狗控制寄存器,设定看门狗定时器模式
WTDAT--看门狗数据寄存器,用于设定超时宽度
WTCNT--看门狗计数寄存器,里面存放的是看门狗定时器当前值
WT_BASE
--看门狗定时器基地址
WTCON_OFS--看门狗控制寄存器偏移地址,相对于基址
WTDAT_OFS--看门狗数据寄存器偏移地址,相对于基址
WTCNT_OFS--看门狗计数寄存器偏移地址,相对于基址
WT_SETUP
--看门狗设置
WTCON_Val--看门狗控制寄存器设置,关闭看门狗
WTDAT_Val--看门狗数据寄存器设置,初始值即为0x8000
0x53000000
WatchdogTimerBaseAddress
WTCON_OFS
0x00
WatchdogTimerControlRegisterOffset
WTDAT_OFS
0x04
WatchdogTimerDataRegister
Offset
WTCNT_OFS
0x08
WatchdogTimerCountRegister
0
WTCON_Val
WTDAT_Val
0x00008000
----------------------------时钟与电源管理定义-------------------------
S3C2440A中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线的
HCLK以及APB总线外设的PCLK3C2440A内部有两个锁相环(PLL):
一个提供FCLK,
HCLK及PCLK,另一个专用于USB模块(48MHz).
CLOCK_BASE
--时钟基地址
LOCKTIME_OFS--锁相环锁定时间计数寄存器偏移地址,相对于基址
MPLLCON_OFS
--MPLL配置寄存器偏移地址,相对于基址,主时钟源PLL
UPLLCON_OFS
--UPLL配置寄存器偏移地址,相对于基址,USB时钟源PLL
CLKCON_OFS
--时钟控制寄存器偏移地址,相对于基址
CLKSLOW_OFS
--时钟减慢控制寄存器偏移地址,相对于基址
CLKDIVN_OFS
--时钟分频器控制寄存器偏移地址,相对于基址
CAMDIVN_OFS
--摄像头时钟分频器控制寄存器偏移地址,相对于基址,UPLL提供
CLOCK_SETUP
--时钟设置
LOCKTIME_Val--PLL锁定时间计数器值
MPLLCON_Val
--MPLL配置寄存器值
UPLLCON_Val
--UPLL配置寄存器值
CLKCON_Val
--时钟配置寄存器值
CLKSLOW_Val
--时钟减慢控制寄存器值
CLKDIVN_Val
--时钟分频控制寄存器值
CAMDIVN_Val
--摄像头分频控制寄存器值
0x4C000000
ClockBaseAddress
LOCKTIME_OFS
PLLLockTimeCountRegister
MPLLConfigurationRegister
UPLLConfigurationRegister
Offset
0x0C
ClockGeneratorControlReg
0x10
ClockSlowControlRegister
0x14
ClockDividerControlRegisterOffset
0x18
CameraClockDividerRegister
LOCKTIME_Val
0x0FFF0FFF
0x00043011
0x00038021
0x001FFFF0
0x00000004
0x0000000F
--------------------存储控制器设置定义---------------------------------
下面这些都是一些关于存储控制器的地址宏定义
MC_BASE
--存储控制器基地址
BWSCON_OFS
--总线宽度和等待控制寄存器偏移地址
BANKCON0_OFS--BANK1控制寄存器偏移地址
.
BANKCON7_OFS--BANK7控制寄存器偏移地址
REFRESH_OFS
--DRAM/SDRAM刷新控制寄存器偏移地址
BANKSIZE_OFS--可调的bank大小寄存器偏移地址
MRSRB6_OFS
--bank6模式控制寄存器偏移地址
MRSRB7_OFS
--bank7模式控制寄存器偏移地址
MC_SETUP
--存储器控制寄存器设置
BWSCON_Val
--写入总线宽度和等待控制寄存值
BANKCON0_Val--写入Blank0的值
BANKCON7_Val--写入BANK7的值
REFRESH_Val
--写入DRAM/SDRAM刷新控制寄存的值
BANKSIZE_Val--写入可调的bank大小寄存的值
MRSRB6_Val
--写入bank6模式控制寄存器的值
MRSRB7_Val
--写入bank7模式控制寄存器的值
0x48000000
MemoryControllerBaseAddress
BusWidthandWaitStatusCtrlOffset
BANKCON0_OFS
Bank0ControlRegister
BANKCON1_OFS
Bank1ControlRegister
BANKCON2_OFS
Bank2ControlRegister
BANKCON3_OFS
Bank3ControlRegister
BANKCON4_OFS
Bank4ControlRegister
BANKCON5_OFS
Bank5ControlRegister
BANKCON6_OFS
0x1C
Bank6ControlRegister
BANKCON7_OFS
0x20
Bank7ControlRegister
0x24
SDRAMRefreshControlRegisterOffset
BANKSIZE_OFS
0x28
FlexibleBankSizeRegister
0x2C
Bank6ModeRegister
0x30
Bank7ModeRegister
1
0x22000000
BANKCON0_Val
0x00000700
BANKCON1_Val
BANKCON2_Val
BANKCON3_Val
BANKCON4_Val
BANKCON5_Val
BANKCON6_Val
0x00018005
BANKCON7_Val
0x008404F3
BANKSIZE_Val
0x00000032
0x00000020
---------------------I/O端口宏定义-------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MDK S3C2440 启动 代码 分析
![提示](https://static.bingdoc.com/images/bang_tan.gif)