您的位置 首页 制造

LPC1100处理器经过SD卡完成IAP功用

随着处理器的发展,IAP升级方式越来越受到欢迎。而IAP升级的方式也由很多,如:通过串口升级、GPRS远程升级、SD卡升级等等。这里详细介绍怎

跟着处理器的开展,IAP晋级办法越来越遭到欢迎。而IAP晋级的办法也由许多,如:经过串口晋级、GPRS长途晋级、SD卡晋级等等。这儿详细介绍怎样运用SD卡晋级运用程序的办法.

下面先介绍LPC1100处理器IAP的基础知识:

1. LPC1100处理器(LPC1114)Flash分配:LPC1114一共有32K Flash,共分为8个扇区,每个扇区的巨细为4K,详细如下:

2.NXP的IAP指令都相同,一共有9条:

3.IAP指令是经过寄存器R0和R1进行参数传递的,R0传递参数,R1传递返回值:

IAP功用运用:

1.界说IAP程序的进口地址

代码:

#defineIAP_ENTER_ADR 0x1FFF1FF1

2.界说参数

代码:

uint32ParamIn[8];
uint32ParamOut[8];

3.界说函数类型指针

代码:

void (*IAP_Entry)(uint32 *param_tab, uint32 *result_tab) =

(void(*)())IAP_ENTER_ADR; // 界说函数指针

4.注意事项:

①依照上面函数类型调用IAP函数即可,不过要注意函数的参数。

②因为在擦写操作期间,片上Flash存储器不行拜访。IAP代码不能运用或制止中止。

③Flash编程指令运用片上RAM顶端32字节,用户程序不能运用此空间。

IAP指令运用(代码来自周工):

IAP有多个指令,这儿咱们只把编程常用的几个指令函数贴出来,假如网友需求其他代码能够在网络上自行查找。

1.预备写操作扇区

代码:

uint32 SectorPrepare(uint8 sec1, uint8 sec2)
{
ParamIn[0] = IAP_Prepare;
ParamIn[1] = sec1;
ParamIn[2] = sec2;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

2.将RAM 内容复制到Flash

代码:

uint32 RamToFlash(uint32 dst, uint32 src, uint32 no)
{
ParamIn[0] = IAP_RAMTOFLASH;
ParamIn[1] = dst;
ParamIn[2] = src;
ParamIn[3] = no;
ParamIn[4] = IAP_FCCLK;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

3.擦除扇区

代码:

uint32 SectorErase(uint8 sec1, uint8 sec2)
{
ParamIn[0] = IAP_ERASESECTOR;
ParamIn[1] = sec1;
ParamIn[2] = sec2;
ParamIn[3] = IAP_FCCLK;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

4.扇区查空

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/257320.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部