系统硬件的一些初始化Word格式.docx

上传人:b****5 文档编号:21663312 上传时间:2023-01-31 格式:DOCX 页数:23 大小:23.71KB
下载 相关 举报
系统硬件的一些初始化Word格式.docx_第1页
第1页 / 共23页
系统硬件的一些初始化Word格式.docx_第2页
第2页 / 共23页
系统硬件的一些初始化Word格式.docx_第3页
第3页 / 共23页
系统硬件的一些初始化Word格式.docx_第4页
第4页 / 共23页
系统硬件的一些初始化Word格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

系统硬件的一些初始化Word格式.docx

《系统硬件的一些初始化Word格式.docx》由会员分享,可在线阅读,更多相关《系统硬件的一些初始化Word格式.docx(23页珍藏版)》请在冰豆网上搜索。

系统硬件的一些初始化Word格式.docx

Mode_SVC--管理模式,供操作系统使用的一种保护模式。

Mode_ABT--数据访问中止模式,用于虚拟存储用存储保护

Mode_UND--未定义指令中止模式,当未定义指令执行时进入此模式。

Mode_SYS--系统模式,用于特权级的操作系统任务。

I_Bit--如果I位被置1,则外部中断被禁止(IRQisdisabled)

F_Bit--如果F位被置1,则快速中断被禁止(FIQisdisabled)

----------------------------------------------------------------------

Mode_USREQU0x10

Mode_FIQEQU0x11

Mode_IRQEQU0x12

Mode_SVCEQU0x13

Mode_ABTEQU0x17

Mode_UNDEQU0x1B

Mode_SYSEQU0x1F

I_BitEQU0x80;

whenIbitisset,IRQisdisabled

F_BitEQU0x40;

whenFbitisset,FIQisdisabled

-----------------------------StackConfiguration-----------------------------------

下面这些主要是栈配置,系统的栈空间设定

UND_Stack_Size--未定义模式的栈大小

SVC_Stack_Size--管理模式的栈大小

ABT_Stack_Size--数据访问终止模式的栈大小

FIQ_Stack_Size--快速中断模式的栈大小

IRQ_Stack_Size--中断模式的栈大小

USR_Stack_Size--用户模式的栈大小

ISR_Stack_Size--总堆栈的大小,也就是所有模式下堆栈相加

-----------------------------------------------------------------------

UND_Stack_SizeEQU0x00000000

SVC_Stack_SizeEQU0x00000008

ABT_Stack_SizeEQU0x00000000

FIQ_Stack_SizeEQU0x00000000

IRQ_Stack_SizeEQU0x00000080

USR_Stack_SizeEQU0x00000400

ISR_Stack_SizeEQU(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字节对齐。

ATPCS规定数据栈必须为FD类型,并且对数据栈的操作时8字节对齐的

下面这句话意思是:

开辟一个堆栈段,段名字为STACK,定义为可读可写,将内存单元初始化为0,

AREASTACK,NOINIT,READWRITE,ALIGN=3

SPACE--伪指令,用于分配一块内存单元,并用0初始化,与%同义

其指令格式为:

{lable}SPACEexpr

lable--内存起始地址标号expr--所要分配的内存字节数

Stack_MemSPACEUSR_Stack_Size;

堆栈内存起始地址标号

__initial_spSPACEISR_Stack_Size;

汇编代码的地址标号

Stack_Top;

堆栈段内容结束,在这里放个标号,用来获得堆栈顶部地址

Heap_SizeEQU0x00000000;

定义堆大小设置

开辟一个名字为HEAP可读可写,不初始化内存单的内存单元。

AREAHEAP,NOINIT,READWRITE,ALIGN=3

__heap_base;

堆的基址

Heap_MemSPACEHeap_Size;

堆内存起始地址标号

__heap_limit;

堆结束

----------------------------内存初始化定义-----------------------------

在一些应用系统中除了扩展Flash,RAM挂接在外部存储器接口上外,可能还有其它

的外设挂接在外部存储器接口上,不同外设的操作时序什么的都是不一样的,所以

在使用这些外设之前必须初始化连接这些外设存储器接口。

这里因为没扩展,所以

只定义一个片上内存基地址。

IRAM_BASEEQU0x40000000;

片上SRAM的基地址,即内存基地址

-------------------------看门狗初始化定义------------------------------

看门狗在防止程序跑飞,进入无限死循环时起着重要作用。

有些应用可能用不上

看门狗功能,也可能有些应用会用到外部看门狗。

在这个时候内部看门狗必须禁

止,所以有时候会在初始化时将内部看门狗禁止,当以后应用用到时再开启它。

看门狗定时器包括三个寄存器:

WTCON--看门狗控制寄存器,设定看门狗定时器模式

WTDAT--看门狗数据寄存器,用于设定超时宽度

WTCNT--看门狗计数寄存器,里面存放的是看门狗定时器当前值

WT_BASE--看门狗定时器基地址

WTCON_OFS--看门狗控制寄存器偏移地址,相对于基址

WTDAT_OFS--看门狗数据寄存器偏移地址,相对于基址

WTCNT_OFS--看门狗计数寄存器偏移地址,相对于基址

WT_SETUP--看门狗设置

WTCON_Val--看门狗控制寄存器设置,关闭看门狗

WTDAT_Val--看门狗数据寄存器设置,初始值即为0x8000

WT_BASEEQU0x53000000;

WatchdogTimerBaseAddress

WTCON_OFSEQU0x00;

WatchdogTimerControlRegisterOffset

WTDAT_OFSEQU0x04;

WatchdogTimerDataRegisterOffset

WTCNT_OFSEQU0x08;

WatchdogTimerCountRegisterOffset

WT_SETUPEQU0

WTCON_ValEQU0x00000000

WTDAT_ValEQU0x00008000

----------------------------时钟与电源管理定义-------------------------

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--摄像头分频控制寄存器值

CLOCK_BASEEQU0x4C000000;

ClockBaseAddress

LOCKTIME_OFSEQU0x00;

PLLLockTimeCountRegisterOffset

MPLLCON_OFSEQU0x04;

MPLLConfigurationRegisterOffset

UPLLCON_OFSEQU0x08;

UPLLConfigurationRegisterOffset

CLKCON_OFSEQU0x0C;

ClockGeneratorControlRegOffset

CLKSLOW_OFSEQU0x10;

ClockSlowControlRegisterOffset

CLKDIVN_OFSEQU0x14;

ClockDividerControlRegisterOffset

CAMDIVN_OFSEQU0x18;

CameraClockDividerRegisterOffset

CLOCK_SETUPEQU0

LOCKTIME_ValEQU0x0FFF0FFF

MPLLCON_ValEQU0x00043011

UPLLCON_ValEQU0x00038021

CLKCON_ValEQU0x001FFFF0

CLKSLOW_ValEQU0x00000004

CLKDIVN_ValEQU0x0000000F

CAMDIVN_ValEQU0x00000000

--------------------存储控制器设置定义---------------------------------

下面这些都是一些关于存储控制器的地址宏定义

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模式控制寄存器的值

MC_BASEEQU0x48000000;

MemoryControllerBaseAddress

BWSCON_OFSEQU0x00;

BusWidthandWaitStatusCtrlOffset

BANKCON0_OFSEQU0x04;

Bank0ControlRegisterOffset

BANKCON1_OFSEQU0x08;

Bank1ControlRegisterOffset

BANKCON2_OFSEQU0x0C;

Bank2ControlRegisterOffset

BANKCON3_OFSEQU0x10;

Bank3ControlRegisterOffset

BANKCON4_OFSEQU0x14;

Bank4ControlRegisterOffset

BANKCON5_OFSEQU0x18;

Bank5ControlRegisterOffset

BANKCON6_OFSEQU0x1C;

Bank6ControlRegisterOffset

BANKCON7_OFSEQU0x20;

Bank7ControlRegisterOffset

REFRESH_OFSEQU0x24;

SDRAMRefreshControlRegisterOffset

BANKSIZE_OFSEQU0x28;

FlexibleBankSizeRegisterOffset

MRSRB6_OFSEQU0x2C;

Bank6ModeRegisterOffset

MRSRB7_OFSEQU0x30;

Bank7ModeRegisterOffset

MC_SETUPEQU1

BWSCON_ValEQU0x22000000

BANKCON0_ValEQU0x00000700

BANKCON1_ValEQU0x00000700

BANKCON2_ValEQU0x00000700

BANKCON3_ValEQU0x00000700

BANKCON4_ValEQU0x00000700

BANKCON5_ValEQU0x00000700

BANKCON6_ValEQU0x00018005

BANKCON7_ValEQU0x00018005

REFRESH_ValEQU0x008404F3

BANKSIZE_ValEQU0x00000032

MRSRB6_ValEQU0x00000020

MRSRB7_ValEQU0x00000020

---------------------I/O端口宏定义--------------------------------------

GPA_BASE--端口A基地址

GPJ_BASE--端口J基地址

GPCON_OFS--端口配置寄存器偏移地址

GPDAT_OFS--端口数据寄存器偏移地址

GPUP_OFS--端口上拉寄存器偏移地址

GP_SETUP--端口设置

GPA_SETUP--端口A配置

GPACON_Val--写入端口A配置寄存器的值

GPJ_SETUP--端口J配置

GPJCON_Val--写入端口J配置寄存器的值

GPJUP_Val--写入端口J上拉寄存器的值

GPA_BASEEQU0x56000000;

GPABaseAddress

GPB_BASEEQU0x56000010;

GPBBaseAddress

GPC_BASEEQU0x56000020;

GPCBaseAddress

GPD_BASEEQU0x56000030;

GPDBaseAddress

GPE_BASEEQU0x56000040;

GPEBaseAddress

GPF_BASEEQU0x56000050;

GPFBaseAddress

GPG_BASEEQU0x56000060;

GPGBaseAddress

GPH_BASEEQU0x56000070;

GPHBaseAddress

GPJ_BASEEQU0x560000D0;

GPJBaseAddress

GPCON_OFSEQU0x00;

ControlRegisterOffset

GPDAT_OFSEQU0x04;

DataRegisterOffset

GPUP_OFSEQU0x08;

Pull-upDisableRegisterOffset

GP_SETUPEQU1

端口A配置

GPA_SETUPEQU0

GPACON_ValEQU0x000003FF

端口B配置

GPB_SETUPEQU0

GPBCON_ValEQU0x00000000

GPBUP_ValEQU0x00000000

端口C配置

GPC_SETUPEQU0

GPCCON_ValEQU0x00000000

GPCUP_ValEQU0x00000000

端口D配置

GPD_SETUPEQU0

GPDCON_ValEQU0x00000000

GPDUP_ValEQU0x00000000

---------------------------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1