引导代码存放位置:芯片有64KB,最后5KB作为引导代码存放位置以及保存用户数组用。
引导工程地址设置:Project->Options for Target "project"->Tartget->Off-chip Code memory,start地址输入0XEA00,Size可不填,KEIL自动填入。
程序一上电开始检测串口是否有升级流,若没有,超时退出引导,跳转到用户程序入口地址。若检测到有升级流,则进入升级步骤,升级完自动断电。
typedef void (*pFunction)(void);
pFunction Jump_To_Application;
Jump_To_Application = (pFunction)(address_api);
Jump_To_Application();
注意:
1、程序里不能使能串口中断以及使能定时器,反正是不能使用中断,只能使用查询方式,要不然跳转到用户程序之后会出错。
2、使用STC-ISP上位机烧写该引导HEX时,注意要选择64Kb-EEPROM,否则会出错。烧写完引导HEX之后,就可以使用升级盒子把用户程序烧到机器咯。
另外如果想把KEIL51生成的*.hex文件转化为*.bin文件,可以用STC-ISP转化,选择打开需要转化的程序文件后,在右下角选择保存数据,在弹出的窗口中输入名字及路径,即可保存*.bin文件了,