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委托这家 ...
随机推荐
- 利用Oracle创建数据库
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217151.html 数据库的创建 打开"所有程序"-" ...
- SQL用法操作合集
SQL用法操作合集 一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...
- 如何查看当前Ubuntu系统的版本
如何查看当前Ubuntu系统的版本 说来也惭愧,用Ubuntu差不多快1个月了,双系统是让朋友安的,只知道自己使用的是什么12版本的,具体怎么看还不知道,下面写一下查看当前Linux系统的版本的方法 ...
- ActiveMQ笔记(1):编译、安装、示例代码
一.编译 虽然ActiveMQ提供了发布版本,但是建议同学们自己下载源代码编译,以后万一有坑,还可以尝试自己改改源码. 1.1 https://github.com/apache/activemq/r ...
- CCF 201512-4 送货(错误)
直接用DFS深搜,检查了好久没能发现错误,贴上来以后慢慢看... /* DFS深度优先搜索 Edge保存边 u{v,been} cnt记录走过的街道 如果没有就return ;继续递归 */ #inc ...
- Django ORM、一对一、一对多、多对多、详解
上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解ORM中的几个知识点 1.1首先我们先看一个小案例: #_*_coding:utf-8_*_ from django.db imp ...
- grails项目获取前后台的值
grails项目中前台传值给后台: 加入我有a.gsp这个页面,a.gsp中有如下代码: 姓名:<input type="text" name="xing" ...
- 把url参数转化成一个对象返回
var readUrlToParams = function () { var url = location.href; var nameValue; var paraString = url.sub ...
- c#委托----我的一点笔记
public partial class ucBloodLabs { public delegate void ShowBloodEvent(); public ShowBloodEvent Show ...
- 【BZOJ-3779】重组病毒 LinkCutTree + 线段树 + DFS序
3779: 重组病毒 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 224 Solved: 95[Submit][Status][Discuss] ...