- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lm3sBootLoader说明
现今,嵌入式系统越来越受到人们的重视。随着系统复杂程度的提高,小型化和网络化也成为嵌入式系统发展的必然趋势。如何利用现成的通信网络,安全、快捷的对各个节点单片机进行在线软件升级(ISP),成为了嵌入式系统发展的一项重要课题,对工业控制、航空航天、通信等领域意义重大。而实现这一功能,需要一段核心代码的支持,这段代码就是BootLoader。
Luminary? Micro 公司设计并生产的 Stellaris 系列单片机,基于先进的 ARM? Cortex-M3内核,芯片提供的高效的性能、广泛的集成功能,适用于各种关注成本并明确要求具有过程控制以及连接能力的应用方案。不可多得的是,Luminary 官方提供了 BootLoader 的全部源代码,大大减小了开发难度。本章将分析 Stellaris BootLoader 的组成、结构及设计思路,试图掌握其关键技术,以更好地应用 BootLoader。
3.1 简介
BootLoader? 是位于 Flash? 起始地址处的一小段代码,占据空间默认为 2K。如果没有BootLoader,硬件启动成功后,将直接运行用户应用程序(Application)。反之,BootLoader的启动代码(Start-up Code)将先被执行,进行一系列的初始化操作后,根据预先设定的条件,选择执行用户应用程序(Application)或升级控制程序(Updater)。Updater在升级Flash的过程中,需要与上位机通信,通信的端口可选用UART,SSI,I2C或以太网端口。为了保证数据的无差错传输,BootLoader采用了控制传输的通信协议:UART,SSI,I2C端口均采用了自定义的串行加载协议;而以太网采用了UDP协议。对接收到的格式正确且校验成功的数据包,Updater能够将其解包,并将得到的加载命令转化为对Flash底层寄存器的操作。
由于官方提供了 BootLoader 的全部源代码,用户也可自行修改通信端口、通信协议等相关组件,使其更好地符合用户需求。
BootLoader的源代码由多个文件组成(图3.1):
在图3.1中可以看出主要有6个文件组成部分,同时还有几个头文件。bl_packet.c ?串行数据包收发控制 bl_uart.c ??UART 端口数据传输 bl_autobaud.h?自动获取波特率bl_ssi.c ??SSI 端口数据传输
3.2 原理分析 总体来说,Cortex‐M3支持4GB存储空间,如图3.2所示地被划分成若干区域。
3.2.1 存储器映射
图3.2 存储器映射
从图3.2中可见,不像其它的ARM架构,它们的存储器映射由半导体厂家说了算,Cortex‐M3预先定义好了“粗线条的”存储器映射。通过把片上外设的寄存器映射到外设区,就可以简单地以访问内存的方式来访问这些外设的寄存器,从而控制外设的工作。结果,片上外设可以使用C语言来操作。这种预定义的映射关系,也使得对访问速度可以做高度的优化,而且对于片上系统的设计而言更易集成(还有一个重要的,不用每学一种不同的单片机就要熟悉一种新的存储器映射)。Cortex‐M3的内部拥有一个总线基础设施,专用于优化对这种存储器结构的使用。在此之上,CM3甚至还允许这些区域之间“越权使用”。比如说,数据存储器也可以被放到代码区,而且代码也能够在外部RAM区中执行(但是会变慢不少)。处于最高地址的系统级存储区,是CM3用于藏“私房钱”的——包括中断控制器、MPU以及各种调试组件。所有这些设备均使用固定的地址。通过把基础设施的地址定死,就至少在内核水平上,为应用程序的移植扫清了障碍。
由于Cortex-M3内核具有固定的存储器映射,这使得相同内核的芯片具有了更好的兼容性Cortex-M3的地址空间中,0~0.5G被映射为Flash空间,0.5G~1G被映射为SRAM空间。由于SRAM是易失性存储器,故系统上电时,SRAM中并没有内容,系统必须从Flash开始启动。Flash空间起始地址处必须存放向量表。向量表是异常产生时获取异常处理函数入口的一块连续内存,每一个异常都在向量表固定的偏移地址处(偏移地址以字对齐),通过该偏移地址可以获取异常处理函数的入口指针。向量表中前4个字分别为:栈顶地址、复位处理函数地址、NMIISR地址、硬故障ISR地址。一张向量表至少由这四项组成。在程序代码开始运行后,向量表的基地址也可以改变。通过软件设置NVIC中的向量表偏移寄存器(NVIC_VTABLE,0xE000ED08),可以在任意32字对齐处建立向量表。
3.2.2 硬件启动原理Stellaris系列单片机硬件启动原理如下:硬件复位时,NVIC_VTABLE复位为0,向量表默认位于Flash空间起始地址处(0x000000
您可能关注的文档
- QQ个人宣传(压缩版).ppt
- 隔热材料行业分析报告.doc
- 3D小人成功胜出系列.ppt
- 三年级英语上册第一次月考.doc
- 演讲比赛主持人稿.doc
- Sunlord质量评估报告AC.doc
- 十七:不合格品的控制.doc
- 心电前置放大器设计说明书.doc
- U盘制作和U盘装系统。.ppt
- 第二章供给和需求1.ppt
- 天津市涂料及胶粘剂产品质量监督抽查实施细则.pdf
- 产品质量监督抽查实施细则-燃气用具连接用软管.doc
- 2020年开关插座产品质量广西监督抽查实施细则.doc
- 人造石产品质量省监督抽查实施细则.pdf
- XZ30-2021海南省易爆品及石化产品产品质量监督抽查实施细则.doc
- 重庆市聚氯乙烯绝缘电缆电线(非阻燃类)产品质量监督抽查实施细则(2020年二季度).pdf
- TGXAS-人类辅助生殖技术实验室 卵子胚胎冷冻解冻技术操作规程.docx
- 2025年北京市建筑用钢材产品质量监督抽查实施细则.doc
- 北京市照明产品质量监督抽查实施细则.doc
- 2024年北京市工业防护涂料产品质量监督抽查实施细则.pdf
最近下载
- 水泥厂电气培训课件.pptx
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务1学习任务工作页.docx VIP
- 金税四期税务风险预警指标汇总.pdf
- 豆腐柴人工栽培技术.pdf VIP
- 天津市小升初小卷真题小外(天津市外国语大学附属外国语学校)(5套含答 .pdf VIP
- 控制计划(机加).docx VIP
- 土地资源管理学(第二版)张正峰,第一至第十二章知识点.docx VIP
- 专题三 透镜及其应用 2025年中考物理基础知识考点专题练习(含答案).docx VIP
- DL/T 502-2006 火力发电厂水汽分析方法(第1-32部分).pdf VIP
- 施工现场总平面布置培训.pptx VIP
文档评论(0)