NXP LPC系列ARM支持在应用编程(IAP),允许通过终端用户的应用代码对片内Flash存储器进行擦除/写操作,可以通过IAP完成程序升级或者数据存储,本文主要介绍IAP使用过程中的几点疑问。
小粥疑问一:
LPC系列单片机Flash内容如何通过IAP进行读操作?
读Flash操作不需要通过IAP,直接定义指针读取相关地址的数据(字节、半字或者字)即可,如下图所示
小粥疑问二:
听说IAP操作过程中需要关中断,这是为啥?
IAP操作有很多命令:写Flash、擦除Flash、读ID等,关中断操作主要针对写/擦除操作。之所以要求在IAP操作之前关中断,是因为大部分LPC单片机的内部Flash是独立的一块,根据Flash的特性要求不允许在执行的过程中再对Flash进行写、擦除操作,如果代码是运行在Flash里面的,那么写/擦除操作过程中如果产生中断,代码将在Flash中运行中断函数,这样就会产生异常。大家想一想?如果将所有的中断入口代码及中断相关代码都映射到RAM中是否可以不考虑关中断
小粥疑问三:
IAP有的命令里面有时钟参数,这个要如何操作?会有什么风险?
“IAP将RAM内容复制到Flash命令”的入口参数3及“IAP擦除扇区命令”的入口参数2要求给出系统的时钟频率,要特别注意,该时钟一定要和系统时钟频率一致,否则可能出现以下故障:
常温下IAP操作正常,高低温时IAP操作失败;
常温下IAP操作不稳定。
因此在实际应用过程中,一定要确保该参数的准确,以保障IAP的正确操作。
往期好文推荐
微信号
zlg-xiaozhou
长按添加小粥为好友
即刻加入微信交流群
广州周立功单片机科技有限公司
zlg.sales@zlgmcu.com
400 888 2705
www.zlgmcu.com
写留言
与小编沟通