LPC1768的U盘更新程序的BOOTLOADER
自己在工作中经常用到的,分享给大家U盘使用FAT32格式
#define CODE_FLASH_START_ADDR 0x5000 /*用户程序启动地址*/
#define CODE_FLASH_START_SECTION 5 /*用户程序起始扇区*/
#define CODE_FLASH_END_SECTION 19 /*用户程序结束扇区*/
#define CODE_FLASH_END_ADDR 0x0002ffff
#define FILENAME_R "/flash.bin" /*用户程序文件名*/
#define BLOCK_SIZE 0x1000
#define ADDR_SIGN_CODE (CODE_FLASH_START_ADDR+0x400)/*用户程序有效码地址*/
#define ADDR_VER_CODE (ADDR_SIGN_CODE+4) /*用户程序版本号地址*/
#define USER_CODE_FLG 0x12345678 /*用户程序有效码值*/
通过修改上面的,定制自己的BOOTLOADER
程序使用了znFat文件系统代码。
收藏,学习 谢谢楼主分享{:tongue:} 顶!!1 楼主好人,太有用了 呵呵,
有点要注意的,如果你的用户程序的启动地址是在0x00000000的话,必须满足以下条件:
向量表的前八个向量之和必须等于0,否则LPC的片子会认为你的程序不是有效的用户程序,而直接进入到LPC自带的BOOT程序去了。
这个条件,编译器并没有帮你制造,产生的HEX文件或者BIN文件一般斗殴不满足这个条件,而是在下载时,由下载程序自动计算生成。
参见了楼主的代码,程序烧录正常,通过仿真观察烧到flash里的代码和生成的bin文件一样,也就是说烧录正确,不知道为什么跳转总是不能正确执行,请高手指点。 刚好在学LPC1788,参考一下 谢谢分享!!! 这个很有研究价值了,谢谢楼主。
页:
[1]