文档文库
手机版
投诉建议
热门搜索:
心得体会
演讲稿
思想汇报
首页
心得体会
学习心得体会
培训心得体会
军训心得体会
社会实践
作风建设
工作心得体会
教育心得体会
演讲稿
演讲稿格式
演讲稿范文
竞聘演讲稿
师德演讲稿
三分钟演讲稿
思想汇报
思想汇报范文
转正思想汇报
大学生思想汇报
季度思想汇报
教师思想汇报
工作计划
工作计划格式
工作计划开头
工作计划结尾
总结与计划
工作计划模板
工作总结
年终工作总结
年度工作总结
个人工作总结
实习报告
实习报告范文
实习计划范文
实习鉴定范文
实习报告内容
个人简历
求职简历
简历范文
简历模板
简历表格
简历格式
祝福语
春节
除夕
元宵
端午节
合同范文
合同范本
合同样本
合同范本格式
首页
>
正在进行安全检测...
正在进行安全检测...
发布时间:1714378666 来源:
文档文库
小
中
大
字号:
手机查看
LPC1114 IAP
在线升级
IAP(In Application Program
,即在应用中可编程。顾名思义,就是在系统运行的过程中动态
编程,
这种编程是对程序执行代码的动态修改,
而且毋须借助于任何外部力量,
也毋须进行
任何机械操作。
这一点有别于
ISP(In System Programming
,
即在系统可编程。
一般来说,
ISP
在进行加载程序以前,需要设置某些功能引脚,而
IAP
则不需要作硬件上的任何动作,只
要有合法的数据来源。
LPC11XX
支持
ISP
和
IAP
升级程序,当采用
RS485
通信时候的,由
于
ISP
升级程序受条件限制,只能采用
IAP
升级程序。
IAP
原理以及如何调用
IAP
函数是固化在微处理器内部
flash
上的一些函数代码,最终的用户程序可以直接通过调
用这些函数来对内部
flash
进行擦除和编程操作。
对于在应用编程来说,应当通过寄存器
r0
中的字指针指向存储器
(RAM
包含的命令代码和
参数来调用
IAP
程序。
IAP
命令的结果返回到寄存器
r1
所指向的返回表。用户可通过传
递寄存器
r0
和
r1
中的相同指针重用命令表来得到结果。参数表应当大到足够保存所有的
结果以防结果的数目大于参数的数目。
参数传递见图
2-1
。
参数和结果的数目根据
IAP
命令
而有所不同。参数的最大数目为
5
,由
“
将
RAM
内容复制到
Flash”
命令传递。结果的最大
数目为
2
,由
“
扇区查空
”
命令返回。命令处理程序在接收到一个未定义的命令时发送状态代
码
INVALID_COMMAND
。
IAP
程序是
thumb
代码,位于地址
0x7FFFFFF0
。
图
2-1 IAP
的参数传递
表
2-1
描述了
IAP
的命令。
表
2-1 IAP
命令汇总
IAP
命令
命令代码
描述
准备编程扇区
50
该命令必须在执行
“
将
RAM
内容复制到
Flash”
或
“
擦除扇区
”
命令之前执行。
这两个命令的成功执行会导致相关的扇区再次被保护。
该命令不能用于
boot
扇区。要准备单个扇区,可将起始和结束扇区号设置为相同值。
将
RAM
内容复
制到
Flash
51
该命令用于编程
Flash
存储器。受影响的扇区应当先通过调用
“
准备写操作
的扇区
”
命令准备。当成功执行复制命令后,扇区将自动受到保护。该命令不
能写
boot
扇区。
擦除扇区
52
该命令用于擦除片内
Flash
存储器的一个或多个扇区。
boot
扇区不能由该
命令擦除。要擦除单个扇区可将起始和结束扇区号设定为相同值。
扇区查空
53
该命令用于对片内
Flash
存储器的一个或多个扇区进行查空。
要查空单个扇
区可将起始和结束扇区号设定为相同值。
读器件
ID
读
Boot
版本
IAP
比较
54
55
56
该命令用于读取器件的
ID
号。
该命令用于读取
boot
代码版本号。
该命令用来比较两个地址单元的存储器内容。当源或目标地址包含从地址
0
开始的前
64
字节中的任意一个时,
比较的结果不一定正确。
前
64
字节重新
映射到
Flash boot
扇区。
2.3 IAP
编程函数接口
IAP
功能可用下面的
C
代码来调用。
定义
IAP
程序的入口地址。由于
IAP
地址的第
0
位是
1
,因此,当程序计数器转移到该
地址时会引起
Thumb
指令集的变化。
#define IAP_LOCATION 0x7ffffff1
定义数据结构或指针,将
IAP
命令表和结果表传递给
IAP
函数
unsigned long command[5];
unsigned long result[2];
定义函数类型指针,函数包含
2
个参数,无返回值。注意:
IAP
将函数结果和
R1
中的表
格基址一同返回。
typedef void (*IAP (unsigned int [ ] , unsigned int [ ];
IAP iap_entry;
设置函数指针
iap_entry=(IAP IAP_LOCATION;
本文来源:
https://www.2haoxitong.net/k/doc/0917d216cc7931b765ce1570.html
《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
文档为doc格式
分享到:
相
关
案
例
正在进行安全检测...
2024-04-29
安全验证
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
正在进行安全检测...
2024-04-29
安全验证
2024-04-29
相关推荐
推荐内容