# icoe_firmware_dynamic_loading **Repository Path**: liphen/icoe_firmware_dynamic_loading ## Basic Information - **Project Name**: icoe_firmware_dynamic_loading - **Description**: icoe_firmware_dynamic_loading - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2024-06-27 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # icoe_firmware_dynamic_loading #### 介绍 应用适用于PC模拟主控与 CCxx EVK交互,实现动态加载或OTA,NMEA解释,离线星历提取等功能 #### 软件架构 软件架构说明
|--demo 动态加载程序
|--Resource 存放升级固件,星历文件
|--Source FreeRTOS 源码
|--tool mingw编译工具链
#### 安装教程 1. 把 tool下MinGW 放到C盘根目录 (如果已有,建议替换) 2. 设置环境变量:C:\MinGW\bin ;C:\MinGW\msys\1.0\bin 3. 验证环境,在CMD中输入gcc -v ,有版本输出即可 #### 使用说明 1. 在CMD中进入到代码目录 2. make 3. 编译完成后,生成build的文件夹 4. 在Resource 下放入相应的升级固件和星历文件,并修改配置文件 5. 运行.\build\RTOSDemo.exe #### 适配说明 1. 配置文件:demo\adaptation\icoe_adap.h 2. 配置定义 ``` //电脑端口号,在PC环境下可使用 #define ICOE_COM_PORT (118) //正常运行的串口波特率 #define APP_RUNING_BAUDRATE (115200) //下载的波特率 #define FW_DOWNLOAD_BAUDRATE (2000000) //芯片Debug 的波特率 #define APP_DEBUG_BAUDRATE (460800) //打印函数 #define ICOE_DEBUG_LOG printf /*是否是ROM版本芯片 */ #define ICOE_ROM_ONLY /*是否支持APFlash 功能,只支持ROM芯片*/ #ifdef ICOE_ROM_ONLY #define _ICOE_APFLASH_ #endif /*是否打开Debug调试Log*/ // #define ICOE_SUPPORT_DEBUG /*保存Log到PC ,只有PC可用*/ // #define ICOE_SAVE_LOG /*是否支持文件系统*/ // #define ICOE_SUPPORT_FILE_FS /*是否支持离线星历功能 */ #define SUPPORT_RNX_PGLITE #define ICOE_PGLITE_NDAY #define ICOE_PGLITE_KEY /*支持多系统单文件*/ #define RNX_EPH_FILE_ALLONE //定义Bootloader的flash 地址或者路径 #define ICOE_UPGRADE_FILE_BOOTLOADER_ADDR (0) #define ICOE_UPGRADE_FILE_BOOTLOADER_SIZE (0) //定义firmware的flash 地址或者路径
#define ICOE_UPGRADE_FILE_FIREWARE_ADDR (0) #define ICOE_UPGRADE_FILE_FIREWARE_SIZE (0) //定义apFlash 的flash 地址或者路径 #define ICOE_PGL_FILE_APFLASH_PATH //定义 单系统离线星历文件的路径 #define ICOE_PGL_FILE_GPS_PATH (0) #define ICOE_PGL_FILE_GPS_SIZE (0) /*bds eph*/ #define ICOE_PGL_FILE_BDS_PATH (0) #define ICOE_PGL_FILE_BDS_SIZE (0) /*gal eph*/ #define ICOE_PGL_FILE_GAL_PATH (0) #define ICOE_PGL_FILE_GAL_SIZE (0) /*glo eph*/ #define ICOE_PGL_FILE_GLO_PATH (0) #define ICOE_PGL_FILE_GLO_SIZE (0) /*qzs eph*/ #define ICOE_PGL_FILE_QZS_PATH (0) #define ICOE_PGL_FILE_QZS_SIZE (0) //定义多系统单文件的离线星历文件 #define ICOE_PGL_FILE_ALLONE_PATH (0) #define ICOE_PGL_FILE_ALLONE_SIZE (0) 3.适配文件:demo\adaptation\icoe_adap.c 适配函数: void icoe_adap_delay_ms(unsigned int ms); void icoe_adap_set_reset_or_power_low(void); void icoe_adap_set_reset_or_power_high(void); int icoe_adap_uart_set_baudrate(unsigned int rate); int icoe_adap_uart_send_muti(unsigned char *str,unsigned int len); int icoe_adap_uart_get_string(unsigned char *str,unsigned int len); char icoe_adap_uart_get_char(unsigned int ms); int icoe_adap_uart_send_char(unsigned char chr); char *icoe_adap_mem_malloc(unsigned int size); void icoe_adap_mem_free(char *addr); int icoe_adap_read_flash(unsigned char *addr ,unsigned int offset,unsigned char *buf, unsigned int size); int ioce_adap_get_file_size(icoe_upgrede_flile_enum type); unsigned char *ioce_adap_get_file_addr(icoe_upgrede_flile_enum type); void ioce_adap_set_file_addr_size(icoe_upgrede_flile_enum type,unsigned char *addr, unsigned int size); int ioce_adap_save_data_to_file(char *filename,char *data, unsigned int len); unsigned int icoe_adap_get_utc_time(void); ```