- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式开发ARM嵌入式系统的ISP设计.doc
嵌入式开发ARM嵌入式系统的ISP设计
嵌入式开发
ARM
嵌入式系统的
ISP
设计
前言
91
硬件连接
2 Flash
烧录原理
2
1.
1
存储器分配
2
.
2 ISP
执行的步骤
结 语
????
应用程序的固化是嵌入式产品开发和生产过程中一个重要环节。基于
arm
的嵌入式系统常用的程序固化方法是,用仿真器通过
JTAG
口将程序烧录到
Flash
里,在产品的开发阶段,使用仿真器几乎是必然的;然而到了产品的生产阶段,进行应用程序烧录或升级操作的往往是生产线上的工人,他们不易掌握仿真器的使用方法,而且在生产阶段也需要把
JTAG
调试口封住以防软件被窥视。笔者在使用意法半导体的
STR730
开发产品的过程中,设计了一种通过串口进行
ISP(In System Programming
,在系统编程
)
的方案。该方案成本低,生产线使用起来也很方便,而且即使升级过程中发生掉电之类的意外也不会影响下一次升级,安全而可靠。
前言
??? ISP
方案的硬件连接如图
1
所示。
RS232
转接板用来将
RS232
电平转换为
TTL
电平,并通过
ISP_EN
引脚给
ARM
开发板提供信号,让其进入
ISP
状态。
PC
机上运行用
VC
语言编写的
ISP
.
exe
,该程序把需要烧录到
F8#0046991ash
里的.
bin
文件加密后发送到
arm
开发板,同时把烧录的进度提示显示给用户。图
1
中的阴影部分具有固定的程序。
1
硬件连接
嵌入式开发
ARM
嵌入式系统
2
.
1
存储器分配
???
STR730
是意法半导体生产的基于
arm7TDMI
的微控制器芯片,内置
16 KB RAM(0xa0000000
~
Oxa0003fff)
和
256 KB Flash(O~
Ox8003ffff)
。内置
256 KB Flash
的分配情况如图
2
所示。按照图
2
中存储器的分配编写
Scatter
文件,在生成可执行文件时链接器会根据
Scatter
文件的内容把相关代码段定位到特定的地址上。该例中,程序从
Flash
启动,且没有使用存储器重映射,因此中断向量必须定位到
Flash
的起始位置。
2 Flash
烧录原理
嵌入式开发
ARM
嵌入式系统
???
扇区
O
的内容需要事先通过
JTAG
口烧入,此后就可以利用扇区
O
中的烧录程序
Programrher
.
o
通过串口进行
ISP
。在整个
ISP
过程中扇区
0
的内容是保持不变的,这样就可以防止
ISP
过程中出现掉电之类的意外,导致初始化代码
Startup
或烧录程序
Programmer
受到损坏而无法再一次进行
ISP
。
???
无论对嵌入式产品添加新功能还是修改原有的软件
BUG
,涉及的都只是用户应用程序的改动,初始化代码
Startup
.
s
是无需改动的,所以扇区
O
的内容在
ISP
过程中可否保持不变,关键是能否使首次编译生成的
Vector
.
0
始终与以后多次编译的
App
.
o
相匹配。
???
需要特别指出的是,当用户应用程序发生改变时,实际的中断服务函数
(
一般是
C
语言函数
)
很可能发生了改变,或者是实际的中断服务函数的入口地址发生了改变,怎么通过固定不变的中断向量
Vector
.
o
找到变化的中断服务函数的入口呢
?
只要这个问题解决了,就可以使首次编译生成的
Vector
.
o
始终和以后多次编译的
App
.
o
相匹配,这是该方案可行性的关键所在。为解决这个问题,笔者在
Flash
的固定位置
(0~
0x800020ff)
做了一个中断映射表,实际上里面存放的是一条条跳转指令。由于中断映射表
INTMap
.
s
和用户应用程序
App
.
c
是一同编译、链接的,里面的跳转指令当然可以准确找到实际的中断服务程序入口;
而位于扇区
O
的中断向量
Vector
.
s
虽然不和用户应用程序一起编译,但中断向量里的跳转指令是绝对跳转到固定的中断映射表区域。这样通过
2
次跳转就可以准确找到中断服务程序的入口。
嵌入式开发
ARM
嵌入式系统
可以通过图
3
看出快中断的处理流程
(
其他的中断处理流程类似
???
笔者把起到烧录
Flash
作用的程序单独作为一个工程编译、链接,生成.
bin
文件;然后把.
bin
文件转化成一个
unsigned char
型的数组,并把该数组放在一个单独的文件
Programmet
.
c
中;最后利用
Scatter
文件把
Programmer
.
o
定位在固定的地址空间
(0~
Ox80001fff
,如图
2
所示
)
。这样一来
您可能关注的文档
- 精益运营评估准备精益知识培训.doc
- 世纪佳缘CEO:App如何运营收获亿万优质用户.doc
- 当前民营经济发展中存在的问题与对策.doc
- 置业集团机构调整(doc).doc
- 大连装备制造业竞争力评价的实证分析.doc
- 融资租赁登记培训材料(第一版).doc
- 大力开发绵阳特色工业旅游促进城市区域经济发展.doc
- 建设沿海经济社会发展强省的辩证思考.doc
- 当前转变经济发展方式的形势与对策.doc
- 对于个股投资安全盈利模型建立及实证分析.doc
- JTT995-2015 漆膜磨耗试验仪.pdf
- JTT940-2014 公路断面探伤及结构层厚度探地雷达.pdf
- JTT974-2015 公路工程土工合成材料 机械损伤试验方法.pdf
- JTT1094-2016 营运客车安全技术条件.pdf
- JTT1155-2017 水运工程 浅地层剖面仪.pdf
- JTT1168-2017 公路桥梁用氟碳面漆.pdf
- JTT942-2014 沥青黏韧性试验仪.pdf
- JTT944-2014 沥青布洛克菲尔德黏度仪.pdf
- JTT1274-2019 道路货物运输车辆类型划分.pdf
- JTT1046-2016 道路运输车辆油箱及液体燃料运输罐体阻隔防爆安全技术要求.pdf
原创力文档


文档评论(0)