版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、12 34l4.2.1 BootLoader概述概述l4.2.2 BootLoader的典型结构的典型结构l4.2.3 实例分析实例分析56 BootLoader还依赖于具体的嵌入式还依赖于具体的嵌入式板级板级硬件硬件设备配置。设备配置。7 8 91011 12初始化初始化CPU在各种模式下的堆栈空间在各种模式下的堆栈空间 设定设定CPU的内存映射的内存映射 初始化各种控制寄存器初始化各种控制寄存器 初始化初始化 CPU的外部存储器的外部存储器 设定各外围设备的基地址设定各外围设备的基地址 13创建正确的中断向量表创建正确的中断向量表 为为C代码执行创建代码执行创建ZI(零创建零创建)区区 进
2、入到进入到C代码。在代码。在C代码中继续对时钟、代码中继续对时钟、RS232端口进行初始化,然后打开系统中断端口进行初始化,然后打开系统中断允许位允许位 。进入到应用代码中执行,执行期间响应各种进入到应用代码中执行,执行期间响应各种不同的中断信号并调用预先设置好的中断服务不同的中断信号并调用预先设置好的中断服务程序处理这些中断。程序处理这些中断。141516ORR R1,R0,#LOCKOUT|FIQ_MODE ;把处理器模式放在把处理器模式放在R1中中 ;LOCKOUT用来屏蔽中断位用来屏蔽中断位MSR CPSR,R1 ;改变改变CPU的的CPSR寄存器寄存器 ;进入到指定的进入到指定的FI
3、Q模式模式MSR SPSR,R2 ;保存前一模式保存前一模式LDR SP,=FIQ_STACK ;把把FIQ模式下的堆栈起始模式下的堆栈起始 ;值赋给当前的值赋给当前的SP ;FIQ_STACK是分配给是分配给FIQ ;模式堆栈空间模式堆栈空间(比如说比如说1K ;字节字节)的起始地址的起始地址17 18 19 20 21清零清零22。清零清零23 24跳转指令地址依次跳转指令地址依次+425 系统重新映射与前面镜像文件的系统重新映射与前面镜像文件的拷贝拷贝有有关。当为了提高运行速度把关。当为了提高运行速度把ROM的镜像文件拷的镜像文件拷贝到贝到RAM后,中断向量表就不在零地址处了,后,中断向
4、量表就不在零地址处了,因此要重新映射存储单元,因此要重新映射存储单元,把把RAM的地址重新的地址重新设定为零地址设定为零地址。 为什么要系统重新映射为什么要系统重新映射?26 整个过程整个过程是把是把启动代码启动代码从从ROM(EEPROM或者或者Flash)拷贝到拷贝到SDRAM运行,同时在拷贝运行,同时在拷贝完毕后进行内存的重新映射,把完毕后进行内存的重新映射,把SDRAM映射映射到原来的到原来的ROM地址地址(0 x00000000)中,这样中,这样就可以用就可以用SDRAM中的代码写中的代码写Flash,使得程,使得程序代码得以更新序代码得以更新 。2728 293031 323334
5、35 36 3738 使用任何外部设备都需要有相应驱动程序的使用任何外部设备都需要有相应驱动程序的支持。支持。驱动程序驱动程序为为上层软件上层软件提供设备的操作提供设备的操作接口接口。 39 404142LPC2000LPC2000的的I/OI/O电压为电压为3.3V3.3V(可承受(可承受5V5V),连),连接时须注意电平的匹配。接时须注意电平的匹配。LPC2000LPC2000其它其它通信设备通信设备TxD0TxD0RxD0RxD0TxD0TxD0RxD0RxD0与与PCPC机相连时,由于机相连时,由于PCPC机串口是机串口是RS232RS232电平,电平,所以连接时需要使用所以连接时需要
6、使用RS232RS232转换器。转换器。LPC2000LPC2000PCPC机串口机串口232232电平转换电平转换TxD0TxD0RxD0RxD0TxD0TxD0RxD0RxD043移位寄存器移位寄存器UnRSRUnRSR接收缓冲寄存器接收缓冲寄存器UnRBRUnRBRUARTnUARTn接收单元接收单元RxDnRxDn除数锁存寄存器除数锁存寄存器UnDLLUnDLL、UnDLMUnDLMUARTnUARTn波特率发生器波特率发生器UARTnUARTn控制寄存器(控制寄存器(UnLCRUnLCR)FIFOFIFO控制寄存器控制寄存器(UnFCR)(UnFCR)UARTnUARTn状态寄存器(
7、状态寄存器(UnLSRUnLSR)中断中断中断使能寄存器中断使能寄存器UnIERUnIER中断标志寄存器中断标志寄存器UnIIRUnIIRUARTnUARTn高速缓存寄存器高速缓存寄存器UnSCRUnSCR发送缓冲寄存器发送缓冲寄存器UnTHRUnTHRUARTnUARTn发送单元发送单元TxDnTxDn移位寄存器移位寄存器UnTSRUnTSRMODEMMODEMModemModem控制寄存器控制寄存器U1MCRU1MCRModemModem状态寄存器状态寄存器U1MSRU1MSRCTSCTSDSRDSRDCDDCDDTRDTRRIRIRTSRTSV VP PB B总总线线44VPB总总线线A
8、HB-VPB桥桥ARM7UARTn发送单元发送单元TxDn移位寄存器移位寄存器UnTSR发送缓冲寄存器发送缓冲寄存器UnTHRAHB总总线线ARM7AHB总总线线UARTn发送单元发送单元TxDn移位寄存器移位寄存器UnTSR发送缓冲寄存器发送缓冲寄存器UnTHRVPB总总线线AHB-VPB桥桥CPUUnTSRTXDUnTHRUnTHRUnTHR描述描述复位值复位值7 : 07 : 0发送器保持寄存器。写入该寄存器的值保存到发送发送器保持寄存器。写入该寄存器的值保存到发送FIFOFIFO中,当该字节到达中,当该字节到达FIFOFIFO底部时,它将被送入发送移位寄底部时,它将被送入发送移位寄存器
9、(存器(UnTSRUnTSR)进行发送。)进行发送。未定义未定义45UART0UART0、UART1UART1各含有各含有1 1个个1616字节的发送字节的发送FIFOFIFO缓冲区。缓冲区。 UnTHRUnTHR是是UARTnUARTn发送发送FIFOFIFO的的最高字节。最高字节。 UARTUART的发送的发送FIFOFIFO是一直使是一直使能的。能的。发送发送FIFOUnTHRUnTSRUnTSR46VPB总总线线AHB-VPB桥桥ARM7AHB总总线线移位寄存器移位寄存器UnRSR接收缓冲寄存器接收缓冲寄存器UnRBRUARTn接收单元接收单元RxDnVPB总总线线AHB-VPB桥桥移
10、位寄存器移位寄存器UnRSR接收缓冲寄存器接收缓冲寄存器UnRBRUARTn接收单元接收单元RxDnARM7AHB总总线线RXDUnRBRCPUUnRSRUnRBRUnRBR描述描述复位值复位值7 : 07 : 0接收缓存寄存器,它包含了接收接收缓存寄存器,它包含了接收FIFOFIFO中最早接收到的字节中最早接收到的字节未定义未定义47EnFIFOEnFIFO:FIFOFIFO使能。该位的任何变化都将清空使能。该位的任何变化都将清空UARTUART的的FIFOFIFO。 1 : 1 : 使能接收使能接收FIFOFIFO,并且允许访问,并且允许访问UnFCR7:1UnFCR7:1。 0 : 0
11、: 禁止接收禁止接收FIFOFIFO,此时接收缓存只有,此时接收缓存只有1 1个字节。个字节。接收接收FIFOFIFOUnRSRUnRBRUnRBRRXDUnFCR48位位7 76 65 : 35 : 32 21 10 0功能功能RxRx触发点设置触发点设置复位复位TxFIFOTxFIFO复位复位RxFIFORxFIFO使能使能FIFOFIFO接收接收FIFOUnRSRUnRBRRXDUnFCR复位复位RxFIFORxFIFO:接收:接收FIFOFIFO复位。当该位置位时,复位。当该位置位时,UART0UART0接收接收FIFOFIFO中的所有字节中的所有字节被清零并复位指针逻辑被清零并复位指
12、针逻辑注意:该位会自动清零。注意:该位会自动清零。49位位7 76 65 : 35 : 32 21 10 0功能功能RxRx触发点设置触发点设置复位复位TxFIFOTxFIFO 复位复位RxFIFORxFIFO使能使能FIFOFIFO接收接收FIFOUnRSRUnRBRRXDUnFCR复位复位TxFIFOTxFIFO:发送:发送FIFOFIFO复位。当该位置位时,复位。当该位置位时,UARTUART发送发送FIFOFIFO中的所有字节被清中的所有字节被清零并复位指针逻辑。零并复位指针逻辑。注意:该位会自动清零。注意:该位会自动清零。50接收接收FIFOUnRSRUnRBRRXDUnFCR:这些
13、位保留,用户程序不要向这些位写入:这些位保留,用户程序不要向这些位写入1 1。51接收接收FIFOUnRSRUnRBRRXDUnFCRRxRx触发点设置:通过设置这两位可以调整接收触发点设置:通过设置这两位可以调整接收FIFOFIFO中触发中断的有效字节数中触发中断的有效字节数量。量。00:00:触发点触发点0 0(1 1字节);字节);01:01:触发点触发点1 1(4 4字节);字节);10:10:触发点触发点2 2(8 8字节);字节);11:11:触发点触发点3 3(1414字节);字节);52使用使用UARTUART前需要设置的寄存器前需要设置的寄存器53使用使用UARTUART前需
14、要设置的寄存器前需要设置的寄存器UnLCRUnLCR字长度选择:字长度选择:0000:5 5位字符长度位字符长度0101:6 6位字符长度位字符长度1010:7 7位字符长度位字符长度1111:8 8位字符长度位字符长度54使用使用UARTUART前需要设置的寄存器前需要设置的寄存器UnLCRUnLCR停止位选择:停止位选择:0 0:1 1个停止位个停止位1 1:2 2个停止位个停止位55使用UART前需要设置的寄存器UnLCR奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一位校验位。位校验位。0:0:禁止奇偶产生和校验;禁止奇偶
15、产生和校验;1:1:使能奇偶产生和校验;使能奇偶产生和校验;奇偶选择:设置奇偶校验类型。奇偶选择:设置奇偶校验类型。00:00:奇数奇数( (数据位数据位+ +校验位奇数校验位奇数) );01:01:偶数偶数( (数据位数据位+ +校验位偶数校验位偶数) );10:10:校验位强制为校验位强制为1 1;11:11:校验位强制为校验位强制为0 0;56使用UART前需要设置的寄存器UnLCR间隔:当该位为间隔:当该位为1 1时,输出引脚(时,输出引脚(TxDnTxDn)强制为逻辑)强制为逻辑0 0,可以引起,可以引起通信对方通信对方(LPC2000)(LPC2000)产生间隔中断。在某些通信方式
16、中,使用间产生间隔中断。在某些通信方式中,使用间隔中断作为通信的起始信号(如:隔中断作为通信的起始信号(如:LIN BusLIN Bus)。)。0:0:禁止间隔发送;禁止间隔发送;1:1:使能间隔发送;使能间隔发送;57使用UART前需要设置的寄存器UnLCR除数锁存:因为除数锁存:因为UnDLLUnDLL和和UnRBR/UnTHRUnRBR/UnTHR的地址重叠,通过设置该位可的地址重叠,通过设置该位可以指定其中某个寄存器操作。以指定其中某个寄存器操作。 0 : 0 : 禁止访问除数锁存寄存器;禁止访问除数锁存寄存器; 1 : 1 : 使能访问除数锁存寄存器;使能访问除数锁存寄存器;58位置
17、相同的寄存器5960设置引脚连接模块将设置引脚连接模块将对应对应IOIO连接到连接到UARTnUARTn设置串口波特率设置串口波特率设置串口工作模式设置串口工作模式发送或接收数据发送或接收数据检查串口状态字或检查串口状态字或等待串口中断等待串口中断61UART0UART0初始化代码:初始化代码:#define UART_BPS 115200#define UART_BPS 115200Void UART0_Ini(void)Void UART0_Ini(void) uint16 Fdiv; uint16 Fdiv; PINSEL0 = 0 x00000005; PINSEL0 = 0 x000
18、00005; U0LCR = 0 x83; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLM = Fdiv / 256; U0LLM = Fdiv % 256; U0LLM = Fdiv % 256; U0LCR = 0 x03; U0LCR = 0 x03; 定义表示波特率的宏,方便修改定义表示波特率的宏,方便修改设置引脚连接模块设置引脚连接模块置位除数锁存位置位除数锁存位根据波特率计算分频值根据波特率计算分频值设置除数寄存器设置除数寄存器(除数锁存访问位必须置位)(除数锁存访问位必须置位)清除除数锁存位,并设置工作模式清除除数锁存位,并设置工作模式62UART0UART0初始化代码:初始化代码:#define UART_BPS 115200#define UART_BPS 115200Void UART0_Ini(void)Void UART0_Ini(void) uint16 Fdiv; uint16 Fdiv; PINSEL0 = 0 x00000005; PINSEL0 = 0 x00000005; U0LCR = 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧农业技术研发绩效表
- 催办2026年4月20日生产设备采购确认函(3篇)范文
- 传统酿酒工艺优化改进成效考核表
- 复古游戏测试团队考核评估表
- 酒店入住服务改进方案集
- 影视娱乐业导演作品创作能力KPI考核表
- 高层住宅电梯维保不到位安全隐患预防方案
- 农作物新品种推广与种植技术研究报告
- 航空公司飞行员飞行操作与安全绩效考评表
- 农业科技研发人员农作物产量及科技应用成果绩效评定表
- 2024年10月 财务管理学(00067)自考真题
- 2026全国广播电视播音员主持人资格考试(综合知识)历年参考题库含答案详解
- 2026 年冬季取暖防一氧化碳中毒课件
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 变电站舞动灾害应急演练脚本
- 2026年辅警考试时事政治练习题附答案
- 2025四川成都兴城投资集团有限公司招聘11人笔试历年典型考点题库附带答案详解
- 2026年中级注册安全工程师《建筑施工安全》押题宝典题库附答案详解AB卷
- 2025年股份制银行审计人员招聘考试真题(含答案)
- 汽车救援人员培训及考核规范
- 低钾血症诊治管理专家共识摘要2026
评论
0/150
提交评论