ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:23.71KB ,
资源ID:8527084      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8527084.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(系统硬件的一些初始化.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、系统硬件的一些初始化ARM启动代码相当于我们电脑的BIOS,也就是ARM启动时对处理器的一些初始化及嵌入式系统硬件的一些初始化。由于它直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。 一般包括:中断向量表,初始化存储器系统,初始化堆栈,初始化有特殊要求的断口,设备初始化,变量初始化等。;/*/;/*S3C2440A.S: Startup file for Samsung S3C440A */;/*/;/* */ ;/*/;/*This file is part of the uVision/ARM development tools. */;/*Copyright (c) 2005

2、-2006 Keil Software. All rights reserved. */;/*This software may only be used under the terms of a valid, current, */;/*end user licence from KEIL for a compatible version of KEIL software */;/*development tools. Nothing else gives you the right to use this software. */;/*/;下面这些参数是与CPSR状态寄存器有关;这里各个模

3、式的参数是由寄存器CPSR的模式位设置M4:0得来的,;比如这里的用户模式,CPSR的M4:0设置为10000就是0x10。;Mode_USR - 用户模式,正常程序执行模式,用于应用程序;Mode_FIQ -快速中断模式,一般用于高速数据传输和通道处理。;Mode_IRQ -外部中断模式,一般用于通用的中断处理。;Mode_SVC - 管理模式,供操作系统使用的一种保护模式。;Mode_ABT - 数据访问中止模式,用于虚拟存储用存储保护;Mode_UND - 未定义指令中止模式,当未定义指令执行时进入此模式。;Mode_SYS - 系统模式,用于特权级的操作系统任务。;I_Bit -如果I

4、位被置1,则外部中断被禁止(IRQ isdisabled);F_Bit - 如果F位被置1,则快速中断被禁止(FIQ isdisabled);-Mode_USR EQU 0x10Mode_FIQ EQU 0x11Mode_IRQ EQU 0x12Mode_SVC EQU 0x13Mode_ABT EQU 0x17Mode_UND EQU 0x1BMode_SYS EQU 0x1FI_Bit EQU 0x80 ; when Ibit is set, IRQ is disabledF_Bit EQU 0x40 ; when Fbit is set, FIQ is disabled;- Stack

5、Configuration-;下面这些主要是栈配置,系统的栈空间设定;UND_Stack_Size - 未定义模式的栈大小;SVC_Stack_Size - 管理模式的栈大小;ABT_Stack_Size - 数据访问终止模式的栈大小;FIQ_Stack_Size - 快速中断模式的栈大小;IRQ_Stack_Size - 中断模式的栈大小;USR_Stack_Size - 用户模式的栈大小;ISR_Stack_Size - 总堆栈的大小,也就是所有模式下堆栈相加-UND_Stack_Size EQU 0x00000000SVC_Stack_Size EQU 0x00000008ABT_Sta

6、ck_Size EQU 0x00000000FIQ_Stack_Size EQU 0x00000000IRQ_Stack_Size EQU 0x00000080USR_Stack_Size EQU 0x00000400ISR_Stack_Size EQU (UND_Stack_Size + SVC_Stack_Size +ABT_Stack_Size + FIQ_Stack_Size +IRQ_Stack_Size);-;AREA - 是一个伪指令,用于段定义。ARM的汇编程序由段组成,段是相对独立的指令或数据单位,每个段由AREA伪指令定义,并定义段的属性。;STACK - AREA指令的一

7、个参数,定义段名称;NOINIT - AREA指令的一个参数,指定本数据段仅仅保留了内在单元,而将句初始值写入内存单元,也即将内存单元值初始化为0;READWRITE- 指定本段为可读可写,数据段默认为READWRITE。; READWRITE(读写)、READONLY(只读);ALIGN - 是一个伪指令,指定对齐方式。ALIGN n 指令的对齐值有两种方案,即n 或 2n,这里采用第二种方案即指定后面的指令8字节对齐。;ATPCS规定数据栈必须为FD类型,并且对数据栈的操作时8字节对齐的;下面这句话意思是:开辟一个堆栈段,段名字为STACK,定义为可读可写,将内存单元初始化为0,;-ARE

8、A STACK, NOINIT, READWRITE, ALIGN=3;-;SPACE- 伪指令,用于分配一块内存单元,并用0初始化,与%同义;其指令格式为:; lable SPACE expr;lable- 内存起始地址标号 expr - 所要分配的内存字节数 ;-Stack_Mem SPACE USR_Stack_Size ;堆栈内存起始地址标号_initial_sp SPACE ISR_Stack_Size ;汇编代码的地址标号Stack_Top ;堆栈段内容结束,在这里放个标号,用来获得堆栈顶部地址Heap_Size EQU 0x00000000 ;定义堆大小设置;开辟一个名字为HEA

9、P可读可写,不初始化内存单的内存单元。AREA HEAP, NOINIT, READWRITE, ALIGN=3_heap_base ;堆的基址Heap_Mem SPACE Heap_Size ;堆内存起始地址标号_heap_limit ;堆结束;-内存初始化定义-;在一些应用系统中除了扩展Flash,RAM挂接在外部存储器接口上外,可能还有其它;的外设挂接在外部存储器接口上,不同外设的操作时序什么的都是不一样的,所以;在使用这些外设之前必须初始化连接这些外设存储器接口。这里因为没扩展,所以;只定义一个片上内存基地址。;-IRAM_BASE EQU 0x40000000 ;片上SRAM的基地址

10、,即内存基地址;-看门狗初始化定义-;看门狗在防止程序跑飞,进入无限死循环时起着重要作用。有些应用可能用不上;看门狗功能,也可能有些应用会用到外部看门狗。在这个时候内部看门狗必须禁;止,所以有时候会在初始化时将内部看门狗禁止,当以后应用用到时再开启它。;看门狗定时器包括三个寄存器:;WTCON- 看门狗控制寄存器,设定看门狗定时器模式;WTDAT- 看门狗数据寄存器,用于设定超时宽度;WTCNT- 看门狗计数寄存器,里面存放的是看门狗定时器当前值;WT_BASE - 看门狗定时器基地址;WTCON_OFS- 看门狗控制寄存器偏移地址,相对于基址;WTDAT_OFS- 看门狗数据寄存器偏移地址,

11、相对于基址;WTCNT_OFS- 看门狗计数寄存器偏移地址,相对于基址;WT_SETUP - 看门狗设置;WTCON_Val- 看门狗控制寄存器设置,关闭看门狗;WTDAT_Val- 看门狗数据寄存器设置,初始值即为0x8000;-WT_BASE EQU 0x53000000 ; WatchdogTimer Base AddressWTCON_OFS EQU 0x00 ; Watchdog Timer Control RegisterOffsetWTDAT_OFS EQU 0x04 ; Watchdog Timer DataRegister OffsetWTCNT_OFS EQU 0x08 ;

12、 Watchdog Timer CountRegister OffsetWT_SETUP EQU 0WTCON_Val EQU 0x00000000WTDAT_Val EQU 0x00008000;-时钟与电源管理定义-;S3C2440A中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线的;HCLK以及APB总线外设的PCLK 3C2440A内部有两个锁相环(PLL):一个提供FCLK,;HCLK及PCLK,另一个专用于USB模块(48MHz).;CLOCK_BASE - 时钟基地址;LOCKTIME_OFS- 锁相环锁定时间计数寄存器偏移地址,相对于基址;MPLLCON

13、_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配置寄存器值;UPLLCO

14、N_Val - UPLL配置寄存器值;CLKCON_Val - 时钟配置寄存器值;CLKSLOW_Val - 时钟减慢控制寄存器值;CLKDIVN_Val - 时钟分频控制寄存器值;CAMDIVN_Val - 摄像头分频控制寄存器值;-CLOCK_BASE EQU 0x4C000000 ; ClockBase AddressLOCKTIME_OFS EQU 0x00 ; PLL Lock Time CountRegister OffsetMPLLCON_OFS EQU 0x04 ; MPLL ConfigurationRegister OffsetUPLLCON_OFS EQU 0x08 ;

15、UPLL ConfigurationRegister OffsetCLKCON_OFS EQU 0x0C ; ClockGenerator Control Reg OffsetCLKSLOW_OFS EQU 0x10 ; Clock SlowControl Register OffsetCLKDIVN_OFS EQU 0x14 ; Clock Divider ControlRegister OffsetCAMDIVN_OFS EQU 0x18 ;Camera Clock Divider Register OffsetCLOCK_SETUP EQU 0LOCKTIME_Val EQU 0x0FF

16、F0FFFMPLLCON_Val EQU 0x00043011UPLLCON_Val EQU 0x00038021CLKCON_Val EQU 0x001FFFF0CLKSLOW_Val EQU 0x00000004CLKDIVN_Val EQU 0x0000000FCAMDIVN_Val EQU 0x00000000;-存储控制器设置定义-;下面这些都是一些关于存储控制器的地址宏定义;MC_BASE - 存储控制器基地址;BWSCON_OFS - 总线宽度和等待控制寄存器偏移地址;BANKCON0_OFS- BANK1控制寄存器偏移地址; .; .;BANKCON7_OFS- BANK7控制

17、寄存器偏移地址;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大

18、小寄存的值;MRSRB6_Val - 写入bank6模式控制寄存器的值;MRSRB7_Val - 写入bank7模式控制寄存器的值;-MC_BASE EQU 0x48000000 ; MemoryController Base AddressBWSCON_OFS EQU 0x00 ; Bus Width and WaitStatus Ctrl OffsetBANKCON0_OFS EQU 0x04 ; Bank 0 ControlRegister OffsetBANKCON1_OFS EQU 0x08 ; Bank 1 ControlRegister OffsetBANKCON2_OFS EQ

19、U 0x0C ; Bank 2 ControlRegister OffsetBANKCON3_OFS EQU 0x10 ; Bank 3Control Register OffsetBANKCON4_OFS EQU 0x14 ; Bank 4Control Register OffsetBANKCON5_OFS EQU 0x18 ;Bank 5 Control Register OffsetBANKCON6_OFS EQU 0x1C ; Bank 6Control Register OffsetBANKCON7_OFS EQU 0x20 ;Bank 7 Control Register Off

20、setREFRESH_OFS EQU 0x24 ; SDRAM RefreshControl Register OffsetBANKSIZE_OFS EQU 0x28 ; Flexible Bank Size Register OffsetMRSRB6_OFS EQU 0x2C ; Bank 6 ModeRegister OffsetMRSRB7_OFS EQU 0x30 ; Bank 7Mode Register OffsetMC_SETUP EQU 1BWSCON_Val EQU 0x22000000BANKCON0_Val EQU 0x00000700BANKCON1_Val EQU 0

21、x00000700BANKCON2_Val EQU 0x00000700BANKCON3_Val EQU 0x00000700BANKCON4_Val EQU 0x00000700BANKCON5_Val EQU 0x00000700BANKCON6_Val EQU 0x00018005BANKCON7_Val EQU 0x00018005REFRESH_Val EQU 0x008404F3BANKSIZE_Val EQU 0x00000032MRSRB6_Val EQU 0x00000020MRSRB7_Val EQU 0x00000020;-I/O端口宏定义-;GPA_BASE - 端口A

22、基地址; .;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_BASE EQU 0x56000000 ; GPA BaseAddressGPB_BASE EQU 0x56000010 ; GPB

23、 BaseAddressGPC_BASE EQU 0x56000020 ; GPC BaseAddressGPD_BASE EQU 0x56000030 ; GPD BaseAddressGPE_BASE EQU 0x56000040 ; GPE BaseAddressGPF_BASE EQU 0x56000050 ; GPF BaseAddressGPG_BASE EQU 0x56000060 ; GPG BaseAddressGPH_BASE EQU 0x56000070 ; GPH BaseAddressGPJ_BASE EQU 0x560000D0 ; GPJ BaseAddressG

24、PCON_OFS EQU 0x00 ;Control Register OffsetGPDAT_OFS EQU 0x04 ; DataRegister OffsetGPUP_OFS EQU 0x08 ;Pull-up Disable Register OffsetGP_SETUP EQU 1;-;端口A配置;-GPA_SETUP EQU 0GPACON_Val EQU 0x000003FF;-;端口B配置;-GPB_SETUP EQU 0GPBCON_Val EQU 0x00000000GPBUP_Val EQU 0x00000000 ;-;端口C配置;-GPC_SETUP EQU 0GPCCON_Val EQU 0x00000000GPCUP_Val EQU 0x00000000;-;端口D配置;-GPD_SETUP EQU 0GPDCON_Val EQU 0x00000000GPDUP_Val EQU 0x00000000;-

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

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