LPC1768IAP(详解,有上位机)

本文详细介绍了如何在LPC1768微控制器上实现In-Application Programming (IAP),包括其内置的IAP命令、扇区准备指令、以及如何调整下载算法以适应LPC1768的特性。通过示例代码展示了如何使用IAP进行扇区擦写,并提供了与STM32 IAP的区别和注意事项,最后提到了上位机配合Keil进行BIN文件转换的方法。
摘要由CSDN通过智能技术生成

首先是flash的算法,lpc1768并没有寄存器来让我们操作flash,他内置了iap的flash算法,在技术手册的525页有如下说明

 

  

  其支持的iap命令有这些

 

这样我们就能够做出相关的flash读写借口呢(具体请查看lpc1768的技术手册)

unsigned param_table[5];//传递参数列表

unsigned result_table[5];//返回结果列表

//调用iap命令

void iap_entry(unsigned param_tab[],unsigned result_tab[])

{

    void (*iap)(unsigned [],unsigned []);

 

    iap = (void (*)(unsigned [],unsigned []))IAP_ADDRESS;

    iap(param_tab,result_tab);

}

  通过这种手段就能够调用iap命令,我们演示性的看一个命令

//扇区准备好指令

//起始扇区号 结束扇区号 系统时钟

void prepare_sector(unsigned start_sector,unsigned end_sector,unsigned cclk)

{

    param_table[0] = PREPARE_SECTOR_FOR_WRITE;

    param_table[1] = start_sector;

    param_table[2] = end_sector;

    param_table[3] = cclk;

    iap_entry(param_table,result_table);

}

  该指令在写flash和擦除flash之前必须调用

具体的完整flash代码请查看工程文件,会在文章末尾上传

然后依旧是五个指令

"iap_down"

"iap_jump_app"

"iap_over"

"iap_set_flag"

"iap_clear_flag"

  功能和之前的stm32差不多,但是下载算法变化了,因为stm32支持的写入是每次写入一个十六位数据,而lpc1768每次写入8位数据,而且每次写入数据的量为128/256/512/1024/4096,正好没有我们之前所用的2048,所以算法修改成如下的样子

u8 iapbuf[1024] = {0}; //用于缓存数据的数组

u16 receiveDataCur = 0;  //当前iapbuffer中已经填充的数据长度,一次填充满了之后写入flash并清零

u32 addrCur = FLASH_APP1_ADDR;         //当前系统写入地址,每次写入之后地址增加2048

 

#define vu32 volatile unsigned int

 

LPC1768是一款由恩智浦公司生产的嵌入式微控制器,它具有高性能和低功耗特点。iap(In-Application Programming)代表了通过在应用程序中进行在线编程的能力。MFC是Microsoft Foundation Class(微软基础类库)的缩写,是一组用于开发Windows应用程序的C++类库。 在LPC1768上位机的应用中,Bootloader是一个特殊的程序,它位于设备的固件中,并负责加载和升级其他应用程序。Bootloader的作用是确保设备在发生故障时仍然能够被更新和修复,同时提供了一种方便的途径来更新和升级设备的固件。 通过使用LPC1768的IAP功能,Bootloader可以通过串口、以太网或其他通信接口与上位机应用程序进行通信。通过与上位机应用程序的交互,Bootloader可以接收来自上位机的新固件文件,并将其加载到设备中。此后,Bootloader负责向设备中写入新的固件,完成固件的更新和升级。 将MFC与LPC1768的应用进行结合,可以实现一个功能强大的上位机应用程序。MFC提供了丰富的图形用户界面(GUI)库和各种控件,可以方便地实现与用户的交互和操作。利用MFC的各种功能,可以设计一个用户友好、功能丰富的界面,使用户可以轻松地进行Bootloader的操作和固件的更新。 总结起来,LPC1768与MFC上位机的Bootloader应用程序结合,可以实现一种便捷、可靠的固件更新和升级方案。这种方案不仅可以确保设备在发生故障时能够得到修复,还可以实现功能扩展和性能提升。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值