12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #include "gd32f10x.h"
- #include "main.h"
- #include "delay.h"
- #include "fmc.h"
- #include "ota_message.h"
- #include "gd_ota_flash.h"
- #include "ec800.h"
- #include "boot.h"
- #include "w25q32.h"
- #include <stdlib.h>
- void task_fwdgt_reload(void);
- OTA_STRUCT UpDataA; //A区更新用到的结构体
- int main(void)
- {
- Delay_Init();
- soft_init();
- OTA_MESSAGE *ota_data;
- BOOT_MESSAGE current_message;
- GD32_READ_OTA(¤t_message);
- Delay_Ms(100);
- if(current_message.UP_FLAG==1)
- {
- //启动EC800,读取内部文件信息进行升级
- gd_com_init();
- dma_config();
-
- gd_EC800M_pin_init();
- EC800MPwoerOn();
- EC800MWaitReady();
- EC800MSetPDP();
- // //EC800启动完成读出文件信息开始更新程序
- // if(read_bin_txt()==1)//成功
- // {
- // //更新完毕程序将升级标志清楚
- // current_message.UP_FLAG=0;
- // write_soft_version(¤t_message);
- // LOAD_A(GD32_A_SADDR);
- // }
- // else
- // {
- // NVIC_SystemReset();
- // }
- switch(read_bin_txt())
- {
- case 1://成功
- current_message.UP_FLAG=0;
- write_soft_version(¤t_message);
- LOAD_A(GD32_A_SADDR);
- break;
- case 2:
- LOAD_A(GD32_A_SADDR);
- break;//bin文件不存在
- default:
- NVIC_SystemReset();
- break;//其他情况
- }
-
-
- }
- else
- {
- LOAD_A(GD32_A_SADDR);
- }
-
- // if(load_ota_message_config_params()==0)
- // {
- // //ota事件产生了,进入Bootloader分支
- // ota_data=get_config_params();
- // BootLoader_Brance(ota_data->XmodemByte);
- // }
- // //没有OTA事件产生跳转A区
- // else
- // {
- // LOAD_A(GD32_A_SADDR);
- // }
- current_message.UP_FLAG=1;
- write_soft_version(¤t_message);
- NVIC_SystemReset();
- while(1)
- {
-
-
- }
-
- }
- void task_fwdgt_reload(void)
- {
- /* uncock fwdgt write protect*/
- fwdgt_write_enable();
- /* feed fwdgt */
- fwdgt_counter_reload();
- }
|