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委托这家 ...
随机推荐
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- pmd静态代码分析
在正式进入测试之前,进行一定的静态代码分析及code review对代码质量及系统提高是有帮助的,以上为数据证明 Pmd 它是一个基于静态规则集的Java源码分析器,它可以识别出潜在的如下问题:– 可 ...
- c# float显示时保存一位小数
UI显示时候,需求保留一位小数 //保留一位小数 参考: http://blog.sina.com.cn/s/blog_620531730100kfz6.html float ff = 1.01f; ...
- Beta版本冲刺计划及安排
经过紧张的Alpha阶段,很多组已经从完全不熟悉语言和环境,到现在能够实现初步的功能.下一阶段即将加快编码进度,完成系统功能.强化软件工程的体会.Beta阶段的冲刺时间为期七天,安排在2016.12. ...
- JavaEE学习文章汇总-并发,集群,分布式
以下文章来自博客 http://blog.csdn.net/FX_SKY/article/category/6203839 其中包括 集群Zookeeper 环境搭建 http://blog.csdn ...
- Linux下 JDK安装
在linux下安装JDK步骤如下: 第一步:查看Linux自带的JDK是否已安装 (1)查看jdk: [root@web-server ~]# rpm -qa|grep jdk ← 查看jdk的信息或 ...
- OBS MAC 系统开发(基于mac OS X 10.12)
按照github 上的说明,安装配套软件,和跟踪需要的库 推荐使用homebrew 来安装各种依赖库. 安装Qt后,要配置系统变量 ,这个困扰本人很久:) 成功编译 cmake .. &&am ...
- CodeForces 261B Maxim and Restaurant 解法汇总
题意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a3-+ai,问满足Si<=p的i的最大值的期望.(p<=50) 这道题在网上有一些不同 ...
- java 的public private protected作用域
- chorme浏览器调试Android设备
Android设备开启开发者模式,并打开USB调试: 接着在Android设备上运行项目 在chrome浏览器打开F12: 在Remote devices里即可调试页面. ! 一般需要FQ