#include "OTA_H.h" #include #include "type.h" #include "eflash_drv.h" #include "type.h" #include extern UINT32 g_sys_clk; unsigned char ota_lt_buf[OTA_LT_LENGTH]; //接收模组传输数据 储存模组传输的数据 int OTA_APP_MCU(uint8_t *data, unsigned int len, unsigned int offset) { int data_offset = 0; // char buf[3 + OTA_MCU_DATA_LENGTH] = {0}; // for(int i = 0; i < pkg_quitient; i++){ /****************************************接收数据**********************************/ /* if(firmware_buff_index > 0){ memcpy((void *)&buf[3], (void *)&firmware_buff[0], firmware_buff_index); memcpy((void *)&buf[3 + firmware_buff_index], (void *)data, (HLT_OTA_FIRMWARE_PACKAGE_LEN - firmware_buff_index)); data_offset += (HLT_OTA_FIRMWARE_PACKAGE_LEN - firmware_buff_index); firmware_buff_index = 0; }else{ memcpy((void *)&buf[3], (void *)(data + data_offset), OTA_MCU_DATA_LENGTH); data_offset += HLT_OTA_FIRMWARE_PACKAGE_LEN; } buf[0] = (firmware_pkg_seq >> 8) & 0xFF; buf[1] = firmware_pkg_seq++ & 0xFF; buf[2] = OTA_MCU_DATA_LENGTH;*/ /************************接收完数据;以及封装好包**************************************************/ /* while(hlt_message_num_items() > 0){ hlt_os_sleep_ms(10); } send_commond_firmware_content_to_mcu((3 + HLT_OTA_FIRMWARE_PACKAGE_LEN), buf); } */ return 0; } //将数据写入Flash //开机后 将flash的数据拷贝至app区域 app(0x800A000) //写flash unsigned int DATA[5] = {0x12345678 }; unsigned int DATA1[5] = {0 }; void SaveData(void) { unsigned char buff[20] = {0x12,0x34,0x56,0x78}; /* memcpy(&buff[0], (void *)DATA[0], 4); memcpy(&buff[4], (void *)DATA[1], 4); memcpy(&buff[8], (void *)DATA[2], 4); memcpy(&buff[12], (void *)DATA[3], 4); memcpy(&buff[16], (void *)DATA[4], 4); */ EFLASH_Init(g_sys_clk / 1000); EFLASH_SetWritePermission(); unsigned char reVal = EFLASH_Write(flh_sAddr1, buff, 4); EFLASH_ClrWritePermission(); printf("reVal = %d \r\n",reVal); printf("TRUE = %d \r\n",TRUE); } //读flash unsigned char GetAdjdata(void) { unsigned char i, buff[20] = {0}; for (i = 0; i < 17; i++) { // printf("hhh%dhhhh\r\n",(UINT8)(0x0800A000)); buff[i] = EFLASH_ByteRead(flh_sAddr1+i);//EFLASH_ByteRead(0x00001000); (unsigned char)(*(volatile unsigned int *)(0x0800A000)); } memcpy((void *)DATA[0], &buff[0], 4); memcpy((void *)DATA[1], &buff[4], 4); memcpy((void *)DATA[2], &buff[8], 4); memcpy((void *)DATA[3], &buff[12], 4); memcpy((void *)DATA[4], &buff[16], 4); for (i = 0; i < 4; i++) printf(" buff[%d] = %x\r\n",i,DATA[i]); return 1; } unsigned int ota_lt(unsigned int addr , unsigned char * ota_mcu_buf , unsigned int length) { //拆包数据!!! // analysis_ota_package(); EFLASH_Init(g_sys_clk / 1000); EFLASH_SetWritePermission(); unsigned char reVal = EFLASH_Write(addr, ota_mcu_buf, length); EFLASH_ClrWritePermission(); return 0; }