芯片解密PC1768 IAP升级方法 实例
芯片解密测试说明:
本实验通过串口0对开发板进行IAP升级,本工程为引导程序,将开发板上的USB转串口连接到电脑
插上3.2寸彩屏模块,下载程序到开发板,彩屏显示按键功能:
INTO键:擦除应用程序
方向键 ok:进行IAP升级,等待串口接收应用程序
方向键 down:运行应用程序
方向键 up:显示菜单
当按下ok键等待串口接收应用程序时,电脑通过超级终端发送预先编译好的应用程序(BIN)格式
以1K Xmodem模式进行发送给开发板,开发板接收完成后显示 Updata Complete,按方向键down
开始执行应用程序
芯片解密单片机源程序如下:
- /*******************************************************************************
- * Company: Wang Electronic Technology Co., Ltd.
- ******************************************************************************
- * 文件名称:main.c
- * 功能说明:IAP引导程序
- * 版 本:V1.1
- * 作 者:jeansonm
- ********************************************************************************
- * 文件名称:
- * 功能说明:
- * 版 本:
- * 更新作者:
- * 日 期:
- * 更新原因:
- ********************************************************************************/
- #include "LPC17xx.h"
- #include "lcd_bsp.h"
- #include "xmodem1k.h"
- #include "iap.h"
- #include <stdio.h>
- #define IMG_START_SECTOR 0x00010000 /* Sector 16 应用程序地址 */
- #define IMG_END_SECTOR 0x00037FFF /* Sector 20 */
- /* Function Prototype */
- static uint32_t load_image(uint8_t *data, uint16_t length);
- /* Character array workspace for GLCD print functions */
- #define MAX_STRING_SIZE 50
- static uint8_t string[3][MAX_STRING_SIZE];
- static uint32_t received_data = 0;
- /* State-machine variable to control application functionality */
- enum state_machine {
- READY = 0,
- MENU,
- ERASE_FLASH,
- FLASH_IMG,
- SHOW
- };