LPC43xx系列使用IAP的注意事项
LPC43xx系列使用IAP的注意事项
Tags: LPC43xx IAP 单片机
LPC43xx IAP函数的调用
一般MCU的IAP是,厂商固化一段代码在芯片的某个区域,然后告诉你这个代码的入口地址。
我们一般可以这么做:
typedef void (*IAP_ENTRY_T)(参数列表)
#define IAP_ADDR (0xdeadbeef) // 假设的地址
IAP_ENTRY_T const iap_entry = (IAP_ENTRY_T)IAP_ADDR;
这样我们便可以通过iap_entry来调用芯片里的固化代码了。
然而,LPC43xx系列内部的布局却不是这样。
LPC43xx ROM API结构

上面是LPC43xx内部固化代码的结构,可以看出:NXP把固化的函数的入口地址放到了一个数组里,然后告诉我们数组的起始地址,IAP函数排在第0位。
那么我们可以这样调用IAP函数:
/* 定义IAP入口函数的类型别名 */
typedef void (*IAP_ENTRY_T)(unsigned int[5], unsigned int[4]);
// ROM Driver Table的起始地址
#define LPC_ROM_API_BASE_LOC (0x10400100)
// 因为Cortex-M4是32位的,所以用uint32_t类型把IAP入口函数的地址提取出来
#define IAP_ENTRY_LOCATION (*((uint32_t *)LPC_ROM_API_BASE_LOC))
static inline void iap_entry(unsigned int cmd_param[5], unsigned int status_result[4])
{ // 强制转换为函数指针,然后调用
((IAP_ENTRY_T)IAP_ENTRY_LOCATION)(cmd_param, status_result);
}
内部FLASH操作是的注意事项
- 关全局中断
- 一定要先调用 Init 命令,再调用其他命令
- 擦除或写FLASH区块前,要先调用Prepare sectors for write operation命令
LPC43xx命令总览

LPC43xx系列使用IAP的注意事项的更多相关文章
- 重学c#系列——异常续[异常注意事项](七)
前言 对上节异常的补充,也可以说是异常使用的注意事项. 正文 减少try catch的使用 前面提及到,如果一个方法没有实现该方法的效果,那么就应该抛出异常. 如果有约定那么可以按照约定,如果约定有歧 ...
- [译]Dynamics AX 2012 R2 BI系列-规划分析的注意事项
https://msdn.microsoft.com/en-us/library/gg731898.aspx 在开始实施AX的分析特性前,有很多事情要考虑.本文描述了你必须考虑的事情,和在 ...
- iOS 带IAP提交注意事项及无法submit for review的解决方案
原地址:http://blog.sina.com.cn/s/blog_71ce775e0101dl4a.html 最近项目接触到了苹果的程序内购(IAP),碰到不少问题,参考了很多帖子才得以解决.在此 ...
- 【转贴】Cortex系列M0-4简单对比
转载网址:http://blog.sina.com.cn/s/blog_7dbd9c0e01018e4l.html 最近搞了块ST的Cortex-M4处理器,然后下了本文档.分享一下. 针对目前进入大 ...
- WeinView 与 MITSUBISHI FX 系列 PLC 通讯范例
1. 范例操作概述 此范例将介绍如何快捷简易地建立WEINVIEW HMI与MITSUBISHI FX系列 PLC通讯. 注意事项:通讯参数设置,通讯线接法. 2. 规划说明 (1) 新建简单 PLC ...
- STC12C5A60S2 双串口通信
STC12C5A60S2单片机是一款功能比较强大的单片机,它拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行口相同:特殊的是STC12C5A60S2单片机内部有一个独立波特率发生器, ...
- TL-WAR1200L V1.0升级软件20170609
TL-WAR1200L_V1.0升级软件20170609.part1.rar TL-WAR1200L_V1.0升级软件20170609.part2.rar TP-LINK WVR& ...
- Microsoft Office Visio 2013 (安装 + 激活)
Visio是一款能处理复杂信息.系统和流程进行可视化.分析和交流的软件,从“office 2003”以后,Visio作为一个单独软件发行,不再集成于office办公软件. 工具/原料 Visio 电脑 ...
- Cortex-M7,A8,A9,A15与ADI的BlackFin以及SHARC的DSP性能PK
说明:1.通过此贴让我们对M4和M7的DSP性能有个全面的认识.2.测试数据来源于DSP Concepts,对于这家公司的名字,大家可能比较陌生.我们现在用的CMSIS-DSP软件就是由ARM委托这家 ...
随机推荐
- C#递归遍历子目录与子目录中的文件
[转载]作者:weixingstudio 采用C#,通过指定一个路径,来递归的遍历所有的子目录以及子目录中的文件,建一个类似资源管理器的目录树 先递归的遍历所有的子目录,如果没有子目录以后,则遍历所有 ...
- [LeetCode] Product of Array Except Self 除本身之外的数组之积
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
- [LeetCode] Maximum Gap 求最大间距
Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...
- git 分支管理
本地主分支提交到远程分支 git push origin master:branch-test 本地分支提交到远程主分支 git push origin branch-test:master 切换分支 ...
- Java读取xml配置文件
package test.com; import java.io.FileInputStream; import javax.xml.parsers.DocumentBuilder;import ja ...
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问
delphi ado 跨数据库访问 语句如下 ' and db = '帐套1' 报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATE ...
- coocs2d-x 分辨率
config.lua: CC_DESIGN_RESOLUTION = { width = , height = , autoscale = "FIXED_HEIGHT", call ...
- linux下查看最消耗CPU、内存的进程
2012-11-19 15:38:04 分类: LINUX 1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗 ...
- 【poj2409】 Let it Bead
http://poj.org/problem?id=2409 (题目链接) 题意 一个n个珠子的项链,每个珠子可以被染成t种颜色.项链可以翻转和旋转,问不同的染色方案数. Solution Pólya ...
- Linux下常用压缩 解压命令和压缩比率对比
常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...