From c9cc0c0562eeb977bc70cd60ce81553a77c24a82 Mon Sep 17 00:00:00 2001 From: armink Date: Mon, 6 Jul 2015 11:45:38 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E3=80=90=E9=87=8D=E6=9E=84=E3=80=91E?= =?UTF-8?q?asyFlash=E6=96=B9=E6=B3=95=E5=8F=8A=E6=96=87=E4=BB=B6=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: armink --- README.md | 54 +- demo/stm32f10x/non_os/EWARM/EasyFlash.dep | 909 ++++++---- demo/stm32f10x/non_os/EWARM/EasyFlash.ewp | 12 +- .../non_os/EWARM/settings/EasyFlash.dbgdt | 2 +- .../non_os/EWARM/settings/EasyFlash.wsdt | 4 +- demo/stm32f10x/non_os/README.md | 2 +- demo/stm32f10x/non_os/RVMDK/EasyFlash.uvopt | 44 +- demo/stm32f10x/non_os/RVMDK/EasyFlash.uvproj | 24 +- .../non_os/RVMDK/EasyFlash_stm32f103xE.dep | 136 +- .../non_os/RVMDK/EasyFlash_uvopt.bak | 52 +- .../non_os/RVMDK/EasyFlash_uvproj.bak | 26 +- demo/stm32f10x/non_os/app/src/app.c | 10 +- .../port/{flash_port.c => ef_port.c} | 80 +- demo/stm32f10x/rtt/EWARM/EasyFlash.dep | 1508 +++++++++------- demo/stm32f10x/rtt/EWARM/EasyFlash.ewp | 12 +- .../rtt/EWARM/settings/EasyFlash.dbgdt | 2 +- .../rtt/EWARM/settings/EasyFlash.wsdt | 4 +- demo/stm32f10x/rtt/README.md | 2 +- demo/stm32f10x/rtt/RVMDK/EasyFlash.uvopt | 54 +- demo/stm32f10x/rtt/RVMDK/EasyFlash.uvproj | 24 +- .../rtt/RVMDK/EasyFlash_stm32f103xE.dep | 1170 +++++++++++++ demo/stm32f10x/rtt/RVMDK/EasyFlash_uvopt.bak | 50 +- demo/stm32f10x/rtt/RVMDK/EasyFlash_uvproj.bak | 26 +- demo/stm32f10x/rtt/app/src/app_task.c | 10 +- demo/stm32f10x/rtt/app/src/user_finsh_cmd.c | 14 +- .../port/{flash_port.c => ef_port.c} | 86 +- demo/stm32f4xx/EWARM/EasyFlash.dep | 1551 +++++++++-------- demo/stm32f4xx/EWARM/EasyFlash.ewp | 12 +- demo/stm32f4xx/EWARM/settings/EasyFlash.dbgdt | 2 +- demo/stm32f4xx/EWARM/settings/EasyFlash.wsdt | 8 +- demo/stm32f4xx/app/src/app_task.c | 10 +- demo/stm32f4xx/app/src/user_finsh_cmd.c | 14 +- .../port/{flash_port.c => ef_port.c} | 88 +- docs/zh/api.md | 90 +- docs/zh/images/EnvDemo.gif | Bin 274956 -> 241371 bytes easyflash/inc/easyflash.h | 142 ++ easyflash/inc/flash.h | 142 -- easyflash/port/{flash_port.c => ef_port.c} | 72 +- easyflash/src/{flash.c => easyflash.c} | 64 +- easyflash/src/{flash_env.c => ef_env.c} | 186 +- easyflash/src/{flash_env_wl.c => ef_env_wl.c} | 239 ++- easyflash/src/{flash_iap.c => ef_iap.c} | 106 +- easyflash/src/{flash_log.c => ef_log.c} | 120 +- easyflash/src/{flash_utils.c => ef_utils.c} | 8 +- 44 files changed, 4548 insertions(+), 2623 deletions(-) rename demo/stm32f10x/non_os/components/easyflash/port/{flash_port.c => ef_port.c} (74%) create mode 100644 demo/stm32f10x/rtt/RVMDK/EasyFlash_stm32f103xE.dep rename demo/stm32f10x/rtt/components/easyflash/port/{flash_port.c => ef_port.c} (74%) rename demo/stm32f4xx/components/easyflash/port/{flash_port.c => ef_port.c} (85%) create mode 100644 easyflash/inc/easyflash.h delete mode 100644 easyflash/inc/flash.h rename easyflash/port/{flash_port.c => ef_port.c} (69%) rename easyflash/src/{flash.c => easyflash.c} (56%) rename easyflash/src/{flash_env.c => ef_env.c} (72%) rename easyflash/src/{flash_env_wl.c => ef_env_wl.c} (73%) rename easyflash/src/{flash_iap.c => ef_iap.c} (63%) rename easyflash/src/{flash_log.c => ef_log.c} (81%) rename easyflash/src/{flash_utils.c => ef_utils.c} (96%) diff --git a/README.md b/README.md index 177e935..4e3440b 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ EasyFlash是一款开源的轻量级嵌入式Flash存储器库,主要为MCU(Mi |源文件 |描述 | |:------------------------------ |:----- | -|\easyflash\src\flash_env.c |Env(常规模式)相关操作接口及实现源码| -|\easyflash\src\flash_env_wl.c |Env(磨损平衡模式)相关操作接口及实现源码| -|\easyflash\src\flash_iap.c |IAP 相关操作接口及实现源码| -|\easyflash\src\flash_log.c |Log 相关操作接口及实现源码| -|\easyflash\src\flash_utils.c |EasyFlash常用小工具,例如:CRC32| -|\easyflash\src\flash.c |目前只包含EasyFlash初始化方法| -|\easyflash\port\flash_port.c |不同平台下的EasyFlash移植接口及配置参数| +|\easyflash\src\ef_env.c |Env(常规模式)相关操作接口及实现源码| +|\easyflash\src\ef_env_wl.c |Env(磨损平衡模式)相关操作接口及实现源码| +|\easyflash\src\ef_iap.c |IAP 相关操作接口及实现源码| +|\easyflash\src\ef_log.c |Log 相关操作接口及实现源码| +|\easyflash\src\ef_utils.c |EasyFlash常用小工具,例如:CRC32| +|\easyflash\src\easyflash.c |目前只包含EasyFlash初始化方法| +|\easyflash\port\ef_port.c |不同平台下的EasyFlash移植接口及配置参数| |\demo\stm32f10x\non_os |stm32f10x裸机的demo| |\demo\stm32f10x\rtt |stm32f10x基于[RT-Thread](http://www.rt-thread.org/)的demo| |\demo\stm32f4xx |stm32f4xx基于[RT-Thread](http://www.rt-thread.org/)的demo| @@ -50,19 +50,26 @@ Demo平台:STM32F103RET6 + RT-Thread 1.2.2 + Env(2K bytes) ## 2、流程 -### 2.1、环境变量 +### 2.1、Env:环境变量(KV数据库) -下图为通过控制台(终端)来调用环境变量的常用接口,演示了环境变量 `"temp"` 从创建到保存,再修改,最后删除的过程。这些接口都支持被应用层直接调用。 +下图为通过控制台(终端)来调用环境变量的常用接口,演示了以下过程,这些接口都支持被应用层直接调用。 + +- 1、创建“温度”的环境变量,名为 `temp`,并且赋值为 `123`; +- 2、保存“温度”到Flash中并重启; +- 3、检查“温度”是否被成功保存; +- 4、修改“温度”值为 `456` 并保存、重启; +- 5、检查“温度”是否被成功修改; +- 6、删除“温度”的环境变量。 ![easy_flash_env](http://git.oschina.net/Armink/EasyFlash/raw/master/docs/zh/images/EnvDemo.gif) -### 2.2、在线升级 +### 2.2、IAP:在线升级 下图演示了通过控制台来进行IAP升级软件的过程,使用的是库中自带的IAP功能接口,演示采用的是串口+Ymodem协议的方式。你还也可以实现通过CAN、485、以太网等总线,来实现远程网络更新。 ![easy_flash_iap](http://git.oschina.net/Armink/EasyFlash/raw/master/docs/zh/images/IapDemo.gif) -### 2.3、日志存储 +### 2.3、Log:日志存储 下图过程为通过控制台输出日志,并将输出的日志存储到Flash中。重启再读取上次保存的日志,最后清空Flash日志。 @@ -96,13 +103,13 @@ It's very suitable for small without a file system products. The developer can e |Source file |Description | |:------------------------------ |:----- | -|\easyflash\src\flash_env.c |Env (normal mode) interface and implementation source code.| -|\easyflash\src\flash_env_wl.c |Env (wear leveling mode) interface and implementation source code.| -|\easyflash\src\flash_iap.c |IAP interface and implementation source code.| -|\easyflash\src\flash_log.c |Log interface and implementation source code.| -|\easyflash\src\flash_utils.c |EasyFlash utils. For example CRC32.| -|\easyflash\src\flash.c |Currently contains EasyFlash initialization function only. | -|\easyflash\port\flash_port.c |EasyFlash portable interface and configuration for different platforms.| +|\easyflash\src\ef_env.c |Env (normal mode) interface and implementation source code.| +|\easyflash\src\ef_env_wl.c |Env (wear leveling mode) interface and implementation source code.| +|\easyflash\src\ef_iap.c |IAP interface and implementation source code.| +|\easyflash\src\ef_log.c |Log interface and implementation source code.| +|\easyflash\src\ef_utils.c |EasyFlash utils. For example CRC32.| +|\easyflash\src\easyflash.c |Currently contains EasyFlash initialization function only. | +|\easyflash\port\ef_port.c |EasyFlash portable interface and configuration for different platforms.| |\demo\stm32f10x\non_os |stm32f10x non-os demo.| |\demo\stm32f10x\rtt |stm32f10x demo base on [RT-Thread](http://www.rt-thread.org/).| |\demo\stm32f4xx |stm32f4xx demo base on [RT-Thread](http://www.rt-thread.org/).| @@ -124,9 +131,16 @@ Welcome everyone to **star and pull request**([Github](https://github.com/armink ## 2 Flow -### 2.1 Env +### 2.1 Env(KV database) + +The figure below shows an ENV's common interface be called by the console(terminal). These interfaces are supported by the application layer called. -The figure below shows an ENV's common interface be called by the console(terminal). The ENV `"temp"` from creation to save, and then modify the final delete process. These interfaces are supported by the application layer called. +- 1.Create temperature environment variable. It's name is `temp` and value is `123`; +- 2.Save temperature to flash and reboot; +- 3.Check the temperature has saved successfully; +- 4.Change the temperature value to `456` and save, reboot; +- 5.Check the temperature has changed successfully; +- 6.Delete temperature environment variable. ![easy_flash_env](https://raw.githubusercontent.com/armink/EasyFlash/master/docs/en/images/EnvDemo.gif) diff --git a/demo/stm32f10x/non_os/EWARM/EasyFlash.dep b/demo/stm32f10x/non_os/EWARM/EasyFlash.dep index b9c5867..6eec175 100644 --- a/demo/stm32f10x/non_os/EWARM/EasyFlash.dep +++ b/demo/stm32f10x/non_os/EWARM/EasyFlash.dep @@ -2,518 +2,723 @@ 2 - 584004130 + 11712833 stm32f103xE - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.pbi - $PROJ_DIR$\..\components\others\bsp.c - $PROJ_DIR$\..\app\src\stm32f10x_it.c - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $TOOLKIT_DIR$\inc\c\ystdio.h + $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.pbi + $TOOLKIT_DIR$\inc\c\stddef.h + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out + $TOOLKIT_DIR$\inc\c\ysizet.h + $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_utils.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.pbi $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - $PROJ_DIR$\..\app\src\app.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c - $PROJ_DIR$\stm32f103xE\Obj\flash_iap.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash_utils.pbi - $PROJ_DIR$\stm32f103xE\Obj\bsp.pbi - $PROJ_DIR$\stm32f103xE\Obj\app.pbi + $PROJ_DIR$\stm32f103xE\Obj\misc.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.o - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.o - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.o - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - $PROJ_DIR$\stm32f103xE\Obj\startup_stm32f10x_hd.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.o - $PROJ_DIR$\stm32f103xE\Obj\flash_port.pbi - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\stm32f103xE\Obj\ef_utils.o $PROJ_DIR$\stm32f103xE\Obj\flash.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.o + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.bin $PROJ_DIR$\stm32f103xE\Obj\flash_env.pbi - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.o + $PROJ_DIR$\stm32f103xE\Obj\utils.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.pbi - $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.pbi - $PROJ_DIR$\stm32f103xE\Obj\misc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash.o - $PROJ_DIR$\stm32f103xE\Obj\flash_env.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.o - $PROJ_DIR$\stm32f103xE\Obj\flash_port.o - $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.o - $PROJ_DIR$\stm32f103xE\Obj\app.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\app\src\app.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env_wl.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c + $PROJ_DIR$\..\..\..\..\easyflash\src\iap.c + $PROJ_DIR$\..\app\src\stm32f10x_it.c + $PROJ_DIR$\..\components\others\bsp.c + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.o $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.o - $PROJ_DIR$\stm32f103xE\Obj\misc.o - $PROJ_DIR$\stm32f103xE\Obj\flash_utils.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h + $PROJ_DIR$\stm32f103xE\Obj\env.o $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.o + $PROJ_DIR$\stm32f103xE\Obj\easyflash.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\stm32f103xE\Obj\iap.o + $PROJ_DIR$\stm32f103xE\Obj\iap.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.o + $PROJ_DIR$\stm32f103xE\Obj\env.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_port.o + $PROJ_DIR$\stm32f103xE\Obj\flash_env.o + $PROJ_DIR$\stm32f103xE\Obj\app.pbi + $PROJ_DIR$\stm32f103xE\Obj\env_wl.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmInstr.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.o - $PROJ_DIR$\stm32f103xE\Obj\flash_iap.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_port.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.pbi + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.pbi + $PROJ_DIR$\stm32f103xE\Obj\startup_stm32f10x_hd.o + $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\stm32f103xE\Obj\port.o + $PROJ_DIR$\stm32f103xE\Obj\ef_port.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_iap.pbi + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $PROJ_DIR$\stm32f103xE\Obj\env_wl.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_utils.pbi + $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.o + $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.pbi + $TOOLKIT_DIR$\lib\m7M_tl.a + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h + $PROJ_DIR$\stm32f103xE\Obj\easyflash.pbi + $PROJ_DIR$\stm32f103xE\Obj\misc.o $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.o - $PROJ_DIR$\stm32f103xE\Obj\bsp.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.o - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\stdlib.h $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h - $TOOLKIT_DIR$\inc\c\ystdio.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.o + $PROJ_DIR$\stm32f103xE\Obj\flash_iap.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h + $PROJ_DIR$\..\components\easyflash\port\port.c $PROJ_DIR$\..\..\..\..\easyflash\inc\flash.h - $TOOLKIT_DIR$\inc\c\stdbool.h - $TOOLKIT_DIR$\inc\c\stdio.h - $TOOLKIT_DIR$\inc\c\stddef.h - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.pbi + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\..\..\..\..\easyflash\src\utils.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h + $PROJ_DIR$\stm32f103xE\Obj\app.o + $PROJ_DIR$\stm32f103xE\Obj\flash_utils.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.o + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.pbi - $PROJ_DIR$\stm32f103xE\Obj\EasyFlash.pbd + $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.pbi $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.pbi - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.bin - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.pbi - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.pbi + $PROJ_DIR$\stm32f103xE\Obj\bsp.o + $PROJ_DIR$\stm32f103xE\Obj\EasyFlash.pbd + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.pbi $TOOLKIT_DIR$\inc\c\cmsis_iar.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\components\others\bsp.h - $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $PROJ_DIR$\..\app\inc\stm32f10x_conf.h $TOOLKIT_DIR$\inc\c\stdint.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmInstr.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h - $TOOLKIT_DIR$\inc\c\ycheck.h - $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.pbi + $PROJ_DIR$\..\app\inc\stm32f10x_it.h $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cm3.h - $TOOLKIT_DIR$\inc\c\intrinsics.h - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmFunc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h - $TOOLKIT_DIR$\inc\c\yvals.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h + $PROJ_DIR$\..\components\others\stm32f103xE.icf + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.o + $PROJ_DIR$\..\..\..\..\easyflash\inc\easyflash.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h + $PROJ_DIR$\..\app\inc\stm32f10x_conf.h + $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h + $TOOLKIT_DIR$\inc\c\stdbool.h + $PROJ_DIR$\stm32f103xE\Obj\bsp.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.pbi + $PROJ_DIR$\..\components\others\bsp.h + $PROJ_DIR$\stm32f103xE\List\EasyFlash.map + $PROJ_DIR$\stm32f103xE\Obj\ef_port.o + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h - $PROJ_DIR$\..\app\inc\stm32f10x_it.h - $TOOLKIT_DIR$\inc\c\stdarg.h - $TOOLKIT_DIR$\inc\c\string.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.pbi + $PROJ_DIR$\stm32f103xE\Obj\port.pbi $TOOLKIT_DIR$\lib\shb_l.a + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmFunc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.pbi + $TOOLKIT_DIR$\inc\c\intrinsics.h $TOOLKIT_DIR$\lib\dl7M_tlf.a - $PROJ_DIR$\stm32f103xE\List\EasyFlash.map - $PROJ_DIR$\..\components\others\stm32f103xE.icf - $TOOLKIT_DIR$\lib\m7M_tl.a - $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\stm32f103xE\Obj\utils.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h + $PROJ_DIR$\stm32f103xE\Obj\ef_env.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_iap.o + $PROJ_DIR$\stm32f103xE\Obj\ef_env_wl.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_env.o + $PROJ_DIR$\stm32f103xE\Obj\ef_env_wl.o + $PROJ_DIR$\stm32f103xE\Obj\ef_iap.pbi + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c - [ROOT_NODE] + [ROOT_NODE] + + + ILINK + 5 164 + + + + + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out + + + OBJCOPY + 22 + + + ILINK + 164 + + + + + ILINK + 149 126 136 64 189 190 187 165 18 114 91 2 150 56 129 176 69 115 58 63 83 138 144 21 85 117 80 84 57 24 111 106 169 96 61 172 166 110 182 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + BICOMP + 162 + + + ICCARM + 138 + + + + + BICOMP + 100 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 152 62 128 185 112 66 116 + + + ICCARM + 100 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 152 62 128 185 112 66 116 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + BICOMP + 134 + + + ICCARM + 24 + + + + + BICOMP + 81 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + + ICCARM + 81 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + + + BICOMP + 139 + + + ICCARM + 115 + + + + + BICOMP + 184 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + + ICCARM + 184 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - ILINK - 109 157 + BICOMP + 88 + + + ICCARM + 144 + + + BICOMP + 152 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 62 128 185 112 66 116 + + + ICCARM + 152 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 62 128 185 112 66 116 + + - $PROJ_DIR$\..\components\others\bsp.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c BICOMP - 29 + 145 ICCARM - 90 + 57 BICOMP - 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 99 93 96 + 175 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 99 93 96 + 175 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\app\src\stm32f10x_it.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c BICOMP - 43 + 135 ICCARM - 66 + 63 BICOMP - 151 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 + 75 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 177 100 152 62 128 185 112 66 116 ICCARM - 151 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 + 75 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - AARM - 42 + BICOMP + 65 + + + ICCARM + 58 + + + BICOMP + 157 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + + ICCARM + 157 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 + + - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c BICOMP - 50 + 180 ICCARM - 68 + 117 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 153 154 94 + 62 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 128 185 112 66 116 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 153 154 94 + 62 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c BICOMP - 59 + 170 ICCARM - 75 + 80 BICOMP - 95 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 + 101 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 95 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 + 101 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c BICOMP - 48 + 10 ICCARM - 65 + 84 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 153 154 94 + 128 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 185 112 66 116 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 153 154 94 + 128 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c BICOMP - 62 + 3 ICCARM - 92 + 96 BICOMP - 145 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 66 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 116 ICCARM - 145 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 66 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c BICOMP - 54 + 97 ICCARM - 78 + 83 BICOMP - 144 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 177 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 100 152 62 128 185 112 66 116 ICCARM - 144 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 177 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c BICOMP - 56 + 90 ICCARM - 73 + 21 BICOMP - 147 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 168 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 147 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 168 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c BICOMP - 57 + 161 ICCARM - 79 + 111 BICOMP - 132 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 122 138 117 136 118 110 38 119 95 + 119 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 132 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 122 138 117 136 118 110 38 119 95 + 119 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c BICOMP - 28 + 132 ICCARM - 76 + 106 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 + 185 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 112 66 116 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 + 185 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c BICOMP - 53 + 160 ICCARM - 83 + 169 BICOMP - 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 130 132 122 138 117 136 118 110 38 119 95 + 112 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 66 116 ICCARM - 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 130 132 122 138 117 136 118 110 38 119 95 + 112 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + $PROJ_DIR$\..\app\src\app.c BICOMP - 61 + 73 ICCARM - 71 + 126 BICOMP - 130 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 132 122 138 117 136 118 110 38 119 95 + 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 151 4 6 158 174 0 130 ICCARM - 130 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 132 122 138 117 136 118 110 38 119 95 + 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 151 4 6 158 174 0 130 - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c BICOMP - 58 + 113 ICCARM - 77 + 64 BICOMP - 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 ICCARM - 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env_wl.c BICOMP - 47 + 103 ICCARM - 64 + 74 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c BICOMP - 63 + 95 + + + ICCARM + 165 + + + + + BICOMP + 151 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 + + + ICCARM + 151 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 + + + + + $PROJ_DIR$\..\..\..\..\easyflash\src\iap.c + + + BICOMP + 68 + + + ICCARM + 67 + + + + + BICOMP + 151 141 78 76 173 155 178 92 102 4 6 158 + + + ICCARM + 151 141 78 76 173 155 178 92 102 4 6 158 + + + + + $PROJ_DIR$\..\app\src\stm32f10x_it.c + + + BICOMP + 109 ICCARM @@ -523,103 +728,112 @@ BICOMP - 143 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 146 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 143 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 146 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + $PROJ_DIR$\..\components\others\bsp.c BICOMP - 55 + 159 ICCARM - 86 + 136 BICOMP - 146 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 174 6 0 ICCARM - 146 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 163 153 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 174 6 0 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + + + AARM + 91 + + + + + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c BICOMP - 0 + 133 ICCARM - 81 + 61 BICOMP - 122 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 138 117 136 118 110 38 119 95 + 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 122 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 138 117 136 118 110 38 119 95 + 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env.c BICOMP - 45 + 70 ICCARM - 67 + 60 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 99 96 94 152 124 127 114 133 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 99 96 94 152 124 127 114 133 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c BICOMP - 1 + 12 ICCARM - 88 + 114 BICOMP - 138 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 117 136 118 110 38 119 95 + 116 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 ICCARM - 138 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 117 136 118 110 38 119 95 + 116 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 @@ -628,145 +842,214 @@ BICOMP - 60 + 86 ICCARM - 87 + 150 BICOMP - 142 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 59 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 142 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 59 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\app\src\app.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c BICOMP - 30 + 124 ICCARM - 69 + 56 BICOMP - 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 97 100 93 98 99 96 94 + 148 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 75 177 100 152 62 128 185 112 66 116 ICCARM - 120 124 127 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 130 132 122 138 117 136 118 110 38 119 95 97 100 93 98 99 96 94 + 148 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c BICOMP - 27 + 142 ICCARM - 84 + 129 BICOMP - 97 125 128 139 135 115 123 129 121 100 93 98 + 131 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 97 125 128 139 135 115 123 129 121 100 93 98 + 131 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c BICOMP + 20 + + + ICCARM 2 + + + + BICOMP + 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 148 75 177 100 152 62 128 185 112 66 116 + ICCARM - 91 + 77 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 148 75 177 100 152 62 128 185 112 66 116 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + + + BICOMP + 8 + + + ICCARM + 176 BICOMP - 117 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 136 118 110 38 119 95 + 79 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 117 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 136 118 110 38 119 95 + 79 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c BICOMP - 103 + 14 ICCARM - 80 + 69 BICOMP - 149 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 125 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 149 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 125 156 147 141 78 76 173 155 178 92 102 82 140 181 179 167 153 77 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c BICOMP - 102 + 9 ICCARM - 39 + 18 BICOMP - 141 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 ICCARM - 141 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + + + BICOMP + 1 + + + ICCARM + 7 + + + + + BICOMP + 121 141 78 76 173 155 178 92 102 4 6 158 154 122 130 + + + ICCARM + 121 141 78 76 173 155 178 92 102 4 6 158 154 122 130 + + + + + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + + + BICOMP + 104 + + + ICCARM + 127 + + + + + BICOMP + 121 141 78 76 173 155 178 92 102 4 6 158 + + + ICCARM + 121 141 78 76 173 155 178 92 102 4 6 158 + + + + + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c BICOMP - 105 + 23 ICCARM @@ -776,191 +1059,195 @@ BICOMP - 118 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 154 122 130 ICCARM - 118 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 154 122 130 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c BICOMP - 108 + 98 ICCARM - 32 + 118 BICOMP - 38 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 ICCARM - 38 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\components\easyflash\port\flash_port.c BICOMP - 3 + 87 ICCARM - 89 + 71 BICOMP - 148 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 148 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c BICOMP - 112 + 19 ICCARM - 74 + 143 BICOMP - 150 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 ICCARM - 150 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 121 141 78 76 173 155 178 92 102 4 6 158 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\components\easyflash\port\port.c BICOMP - 104 + 171 ICCARM - 35 + 94 BICOMP - 110 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 ICCARM - 110 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 174 0 130 108 153 77 156 147 82 140 181 179 167 148 75 177 100 152 62 128 185 112 66 116 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\..\..\..\easyflash\src\utils.c BICOMP - 107 + 183 ICCARM - 82 + 25 BICOMP - 140 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 ICCARM - 140 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c BICOMP - 101 + 186 ICCARM - 70 + 189 BICOMP - 136 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 ICCARM - 136 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 118 110 38 119 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c BICOMP - 113 + 188 ICCARM - 44 + 190 BICOMP - 119 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 ICCARM - 119 114 133 125 128 139 135 115 123 129 121 126 116 134 137 131 124 127 130 132 122 138 117 136 118 110 38 95 + 151 141 78 76 173 155 178 92 102 4 6 158 154 122 130 - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c - ILINK - 157 + BICOMP + 191 - OBJCOPY - 111 + ICCARM + 187 - ILINK - 158 69 90 64 65 68 84 67 76 75 42 83 87 71 92 85 78 86 73 79 81 88 91 89 66 70 80 72 74 82 39 35 32 44 77 155 160 159 156 + BICOMP + 151 141 78 76 173 155 178 92 102 4 6 158 + + + ICCARM + 151 141 78 76 173 155 178 92 102 4 6 158 diff --git a/demo/stm32f10x/non_os/EWARM/EasyFlash.ewp b/demo/stm32f10x/non_os/EWARM/EasyFlash.ewp index 17c1362..c6b7681 100644 --- a/demo/stm32f10x/non_os/EWARM/EasyFlash.ewp +++ b/demo/stm32f10x/non_os/EWARM/EasyFlash.ewp @@ -942,25 +942,25 @@ port - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c src - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c diff --git a/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.dbgdt b/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.dbgdt index e83ced8..89bfb14 100644 --- a/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.dbgdt +++ b/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.dbgdt @@ -34,7 +34,7 @@ 20011 - 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 + 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 diff --git a/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.wsdt b/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.wsdt index f6a2ead..00dc05e 100644 --- a/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.wsdt +++ b/demo/stm32f10x/non_os/EWARM/settings/EasyFlash.wsdt @@ -35,14 +35,14 @@ - TextEditor$WS_DIR$\..\app\src\app.c00000023023000100000010000001 + TextEditor$WS_DIR$\..\app\src\app.c000000404000100000010000001 - iaridepm.enu1-2-2744314-2-25105130357152740188095771458-2-21781682-2-21684180100238118614330357152740 + iaridepm.enu1-2-2675314-2-25105130357152740188095700103-2-22471682-2-21684249100238125749730357152740 diff --git a/demo/stm32f10x/non_os/README.md b/demo/stm32f10x/non_os/README.md index 0bde9b1..4c5ba59 100644 --- a/demo/stm32f10x/non_os/README.md +++ b/demo/stm32f10x/non_os/README.md @@ -18,7 +18,7 @@ ## 2ļУ˵ -`components\easyflash\port\flash_port.c` ֲοļ +`components\easyflash\port\ef_port.c` ֲοļ `RVMDK` ΪKeilļ diff --git a/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvopt b/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvopt index 3d9d818..8d5d461 100644 --- a/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvopt +++ b/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvopt @@ -199,10 +199,10 @@ 1 0 0 - 52 + 34 0 1 - 12 + 1 0 ..\APP\src\app.c app.c @@ -279,7 +279,7 @@ 0 3 - 6 + 0 1 0 0 @@ -288,12 +288,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash.c - flash.c + ..\..\..\..\easyflash\src\easyflash.c + easyflash.c 3 - 7 + 0 1 0 0 @@ -302,12 +302,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env.c - flash_env.c + ..\..\..\..\easyflash\src\ef_env.c + ef_env.c 3 - 8 + 0 1 0 0 @@ -316,12 +316,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env_wl.c - flash_env_wl.c + ..\..\..\..\easyflash\src\ef_env_wl.c + ef_env_wl.c 3 - 9 + 0 1 0 0 @@ -330,12 +330,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_iap.c - flash_iap.c + ..\..\..\..\easyflash\src\ef_iap.c + ef_iap.c 3 - 10 + 0 1 0 0 @@ -344,8 +344,8 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_utils.c - flash_utils.c + ..\..\..\..\easyflash\src\ef_utils.c + ef_utils.c 3 @@ -358,8 +358,8 @@ 0 0 0 - ..\components\easyflash\port\flash_port.c - flash_port.c + ..\components\easyflash\port\ef_port.c + ef_port.c @@ -2633,7 +2633,7 @@ File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -4254,9 +4254,9 @@ ..\APP\src\app.c - 52 + 34 1 - 12 + 1 diff --git a/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvproj b/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvproj index 37900fc..07a823e 100644 --- a/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvproj +++ b/demo/stm32f10x/non_os/RVMDK/EasyFlash.uvproj @@ -421,34 +421,34 @@ easyflash - flash.c + easyflash.c 1 - ..\..\..\..\easyflash\src\flash.c + ..\..\..\..\easyflash\src\easyflash.c - flash_env.c + ef_env.c 1 - ..\..\..\..\easyflash\src\flash_env.c + ..\..\..\..\easyflash\src\ef_env.c - flash_env_wl.c + ef_env_wl.c 1 - ..\..\..\..\easyflash\src\flash_env_wl.c + ..\..\..\..\easyflash\src\ef_env_wl.c - flash_iap.c + ef_iap.c 1 - ..\..\..\..\easyflash\src\flash_iap.c + ..\..\..\..\easyflash\src\ef_iap.c - flash_utils.c + ef_utils.c 1 - ..\..\..\..\easyflash\src\flash_utils.c + ..\..\..\..\easyflash\src\ef_utils.c - flash_port.c + ef_port.c 1 - ..\components\easyflash\port\flash_port.c + ..\components\easyflash\port\ef_port.c diff --git a/demo/stm32f10x/non_os/RVMDK/EasyFlash_stm32f103xE.dep b/demo/stm32f10x/non_os/RVMDK/EasyFlash_stm32f103xE.dep index ad96882..32a3450 100644 --- a/demo/stm32f10x/non_os/RVMDK/EasyFlash_stm32f103xE.dep +++ b/demo/stm32f10x/non_os/RVMDK/EasyFlash_stm32f103xE.dep @@ -1,10 +1,10 @@ Dependencies for Project 'EasyFlash', Target 'stm32f103xE': (DO NOT MODIFY !) -F (..\APP\src\app.c)(0x553211B1)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\app.o" --omf_browse ".\Output\app.crf" --depend ".\Output\app.d") +F (..\APP\src\app.c)(0x5599E982)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\app.o" --omf_browse ".\Output\app.crf" --depend ".\Output\app.d") I (..\components\others\bsp.h)(0x55321114) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) @@ -18,18 +18,18 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) I (C:\Program Files\Keil\ARM\RV31\INC\stdio.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) -F (..\APP\src\stm32f10x_it.c)(0x553207D2)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_it.o" --omf_browse ".\Output\stm32f10x_it.crf" --depend ".\Output\stm32f10x_it.d") +F (..\APP\src\stm32f10x_it.c)(0x553207D2)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_it.o" --omf_browse ".\Output\stm32f10x_it.crf" --depend ".\Output\stm32f10x_it.d") I (..\app\inc\stm32f10x_it.h)(0x545CB528) I (..\components\others\bsp.h)(0x55321114) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) @@ -44,12 +44,12 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) F (..\app\inc\stm32f10x_conf.h)(0x545CB528)() -F (..\components\others\bsp.c)(0x55321AB2)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\bsp.o" --omf_browse ".\Output\bsp.crf" --depend ".\Output\bsp.d") +F (..\components\others\bsp.c)(0x55321AB2)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\bsp.o" --omf_browse ".\Output\bsp.crf" --depend ".\Output\bsp.d") I (..\components\others\bsp.h)(0x55321114) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) @@ -65,37 +65,37 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdio.h)(0x4BA13B96) F (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s)(0x553596CB)(--cpu Cortex-M3 -g --apcs=interwork --pd "__MICROLIB SETA 1" -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" --list ".\Output\list\startup_stm32f10x_hd.lst" --xref -o ".\Output\startup_stm32f10x_hd.o" --depend ".\Output\startup_stm32f10x_hd.d") -F (..\..\..\..\easyflash\src\flash.c)(0x553885FA)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash.o" --omf_browse ".\Output\flash.crf" --depend ".\Output\flash.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\..\..\..\easyflash\src\easyflash.c)(0x559796C4)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\easyflash.o" --omf_browse ".\Output\easyflash.crf" --depend ".\Output\easyflash.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) -F (..\..\..\..\easyflash\src\flash_env.c)(0x55697260)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash_env.o" --omf_browse ".\Output\flash_env.crf" --depend ".\Output\flash_env.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\..\..\..\easyflash\src\ef_env.c)(0x559788F2)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_env.o" --omf_browse ".\Output\ef_env.crf" --depend ".\Output\ef_env.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) -F (..\..\..\..\easyflash\src\flash_env_wl.c)(0x55697253)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash_env_wl.o" --omf_browse ".\Output\flash_env_wl.crf" --depend ".\Output\flash_env_wl.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\..\..\..\easyflash\src\ef_env_wl.c)(0x559797C3)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_env_wl.o" --omf_browse ".\Output\ef_env_wl.crf" --depend ".\Output\ef_env_wl.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) -F (..\..\..\..\easyflash\src\flash_iap.c)(0x5538AEE1)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash_iap.o" --omf_browse ".\Output\flash_iap.crf" --depend ".\Output\flash_iap.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\..\..\..\easyflash\src\ef_iap.c)(0x5597877C)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_iap.o" --omf_browse ".\Output\ef_iap.crf" --depend ".\Output\ef_iap.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) -F (..\..\..\..\easyflash\src\flash_utils.c)(0x553880CA)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash_utils.o" --omf_browse ".\Output\flash_utils.crf" --depend ".\Output\flash_utils.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\..\..\..\easyflash\src\ef_utils.c)(0x55978410)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_utils.o" --omf_browse ".\Output\ef_utils.crf" --depend ".\Output\ef_utils.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) -F (..\components\easyflash\port\flash_port.c)(0x55697666)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\flash_port.o" --omf_browse ".\Output\flash_port.crf" --depend ".\Output\flash_port.d") -I (..\..\..\..\easyflash\inc\flash.h)(0x5569729C) +F (..\components\easyflash\port\ef_port.c)(0x5599F44D)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_port.o" --omf_browse ".\Output\ef_port.crf" --depend ".\Output\ef_port.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) @@ -105,7 +105,7 @@ I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) @@ -118,10 +118,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\misc.o" --omf_browse ".\Output\misc.crf" --depend ".\Output\misc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\misc.o" --omf_browse ".\Output\misc.crf" --depend ".\Output\misc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -136,10 +136,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_adc.o" --omf_browse ".\Output\stm32f10x_adc.crf" --depend ".\Output\stm32f10x_adc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_adc.o" --omf_browse ".\Output\stm32f10x_adc.crf" --depend ".\Output\stm32f10x_adc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -154,10 +154,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_bkp.o" --omf_browse ".\Output\stm32f10x_bkp.crf" --depend ".\Output\stm32f10x_bkp.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_bkp.o" --omf_browse ".\Output\stm32f10x_bkp.crf" --depend ".\Output\stm32f10x_bkp.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -173,10 +173,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_can.o" --omf_browse ".\Output\stm32f10x_can.crf" --depend ".\Output\stm32f10x_can.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_can.o" --omf_browse ".\Output\stm32f10x_can.crf" --depend ".\Output\stm32f10x_can.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -191,10 +191,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_cec.o" --omf_browse ".\Output\stm32f10x_cec.crf" --depend ".\Output\stm32f10x_cec.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_cec.o" --omf_browse ".\Output\stm32f10x_cec.crf" --depend ".\Output\stm32f10x_cec.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -210,10 +210,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_crc.o" --omf_browse ".\Output\stm32f10x_crc.crf" --depend ".\Output\stm32f10x_crc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_crc.o" --omf_browse ".\Output\stm32f10x_crc.crf" --depend ".\Output\stm32f10x_crc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h)(0x545CB527) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -229,10 +229,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dac.o" --omf_browse ".\Output\stm32f10x_dac.crf" --depend ".\Output\stm32f10x_dac.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dac.o" --omf_browse ".\Output\stm32f10x_dac.crf" --depend ".\Output\stm32f10x_dac.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -248,10 +248,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dbgmcu.o" --omf_browse ".\Output\stm32f10x_dbgmcu.crf" --depend ".\Output\stm32f10x_dbgmcu.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dbgmcu.o" --omf_browse ".\Output\stm32f10x_dbgmcu.crf" --depend ".\Output\stm32f10x_dbgmcu.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -267,10 +267,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dma.o" --omf_browse ".\Output\stm32f10x_dma.crf" --depend ".\Output\stm32f10x_dma.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dma.o" --omf_browse ".\Output\stm32f10x_dma.crf" --depend ".\Output\stm32f10x_dma.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -286,10 +286,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_exti.o" --omf_browse ".\Output\stm32f10x_exti.crf" --depend ".\Output\stm32f10x_exti.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_exti.o" --omf_browse ".\Output\stm32f10x_exti.crf" --depend ".\Output\stm32f10x_exti.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -304,10 +304,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_flash.o" --omf_browse ".\Output\stm32f10x_flash.crf" --depend ".\Output\stm32f10x_flash.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_flash.o" --omf_browse ".\Output\stm32f10x_flash.crf" --depend ".\Output\stm32f10x_flash.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -322,10 +322,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_fsmc.o" --omf_browse ".\Output\stm32f10x_fsmc.crf" --depend ".\Output\stm32f10x_fsmc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_fsmc.o" --omf_browse ".\Output\stm32f10x_fsmc.crf" --depend ".\Output\stm32f10x_fsmc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -340,10 +340,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_gpio.o" --omf_browse ".\Output\stm32f10x_gpio.crf" --depend ".\Output\stm32f10x_gpio.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_gpio.o" --omf_browse ".\Output\stm32f10x_gpio.crf" --depend ".\Output\stm32f10x_gpio.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -358,10 +358,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_i2c.o" --omf_browse ".\Output\stm32f10x_i2c.crf" --depend ".\Output\stm32f10x_i2c.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_i2c.o" --omf_browse ".\Output\stm32f10x_i2c.crf" --depend ".\Output\stm32f10x_i2c.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -377,10 +377,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_iwdg.o" --omf_browse ".\Output\stm32f10x_iwdg.crf" --depend ".\Output\stm32f10x_iwdg.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_iwdg.o" --omf_browse ".\Output\stm32f10x_iwdg.crf" --depend ".\Output\stm32f10x_iwdg.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -395,10 +395,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_pwr.o" --omf_browse ".\Output\stm32f10x_pwr.crf" --depend ".\Output\stm32f10x_pwr.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_pwr.o" --omf_browse ".\Output\stm32f10x_pwr.crf" --depend ".\Output\stm32f10x_pwr.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -414,10 +414,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rcc.o" --omf_browse ".\Output\stm32f10x_rcc.crf" --depend ".\Output\stm32f10x_rcc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rcc.o" --omf_browse ".\Output\stm32f10x_rcc.crf" --depend ".\Output\stm32f10x_rcc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -432,10 +432,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rtc.o" --omf_browse ".\Output\stm32f10x_rtc.crf" --depend ".\Output\stm32f10x_rtc.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rtc.o" --omf_browse ".\Output\stm32f10x_rtc.crf" --depend ".\Output\stm32f10x_rtc.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -451,10 +451,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_sdio.o" --omf_browse ".\Output\stm32f10x_sdio.crf" --depend ".\Output\stm32f10x_sdio.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_sdio.o" --omf_browse ".\Output\stm32f10x_sdio.crf" --depend ".\Output\stm32f10x_sdio.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -470,10 +470,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_spi.o" --omf_browse ".\Output\stm32f10x_spi.crf" --depend ".\Output\stm32f10x_spi.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_spi.o" --omf_browse ".\Output\stm32f10x_spi.crf" --depend ".\Output\stm32f10x_spi.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h)(0x545CB527) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -489,10 +489,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_tim.o" --omf_browse ".\Output\stm32f10x_tim.crf" --depend ".\Output\stm32f10x_tim.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c)(0x545CB529)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_tim.o" --omf_browse ".\Output\stm32f10x_tim.crf" --depend ".\Output\stm32f10x_tim.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -507,10 +507,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_usart.o" --omf_browse ".\Output\stm32f10x_usart.crf" --depend ".\Output\stm32f10x_usart.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_usart.o" --omf_browse ".\Output\stm32f10x_usart.crf" --depend ".\Output\stm32f10x_usart.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -525,10 +525,10 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_wwdg.o" --omf_browse ".\Output\stm32f10x_wwdg.crf" --depend ".\Output\stm32f10x_wwdg.d") +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c)(0x545CB528)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_wwdg.o" --omf_browse ".\Output\stm32f10x_wwdg.crf" --depend ".\Output\stm32f10x_wwdg.d") I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) @@ -543,9 +543,9 @@ I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) -F (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\system_stm32f10x.o" --omf_browse ".\Output\system_stm32f10x.crf" --depend ".\Output\system_stm32f10x.d") +F (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c)(0x545CB527)(-c --cpu Cortex-M3 -D__MICROLIB -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\system_stm32f10x.o" --omf_browse ".\Output\system_stm32f10x.crf" --depend ".\Output\system_stm32f10x.d") I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) -I (C:\Program Files\Keil\ARM\RV31\INC\core_cm3.h)(0x4BDE8684) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) I (..\app\inc\stm32f10x_conf.h)(0x545CB528) diff --git a/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvopt.bak b/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvopt.bak index e0ed5bf..9abae42 100644 --- a/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvopt.bak +++ b/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvopt.bak @@ -199,10 +199,10 @@ 1 0 0 - 55 + 34 0 1 - 5 + 1 0 ..\APP\src\app.c app.c @@ -279,7 +279,7 @@ 0 3 - 0 + 6 1 0 0 @@ -288,12 +288,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash.c - flash.c + ..\..\..\..\easyflash\src\easyflash.c + easyflash.c 3 - 0 + 7 1 0 0 @@ -302,12 +302,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env.c - flash_env.c + ..\..\..\..\easyflash\src\env.c + env.c 3 - 0 + 8 1 0 0 @@ -316,12 +316,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env_wl.c - flash_env_wl.c + ..\..\..\..\easyflash\src\env_wl.c + env_wl.c 3 - 0 + 9 1 0 0 @@ -330,8 +330,8 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_iap.c - flash_iap.c + ..\..\..\..\easyflash\src\iap.c + iap.c 3 @@ -344,8 +344,8 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_utils.c - flash_utils.c + ..\..\..\..\easyflash\src\ef_utils.c + ef_utils.c 3 @@ -358,8 +358,8 @@ 0 0 0 - ..\components\easyflash\port\flash_port.c - flash_port.c + ..\components\easyflash\port\ef_port.c + ef_port.c @@ -761,7 +761,7 @@ 16 - B50000006600000027040000F1000000 + 6F01000020010000E1040000AB010000 @@ -2626,14 +2626,14 @@ 2569 - 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFF260400004F0000002A040000000300000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000B50000006600000027040000F1000000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000002B04000066000000DC040000BF0200002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE20000004F000000E6000000FF02000001000000020000100400000001000000E1FEFFFF0E020000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000E200000016030000000000004F000000E2000000FF0200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC050000018000800000000000000000000020020000DC040000BF0200000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FF0200009006000003030000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000000000001A03000090060000DF030000000000000303000090060000C80300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFF260400004F0000002A040000000300000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000006F01000020010000E1040000AB010000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E50400002001000096050000790300002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE20000004F000000E6000000FF02000001000000020000100400000001000000E1FEFFFF0E020000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000BA000000200100009C010000D0030000000000004F000000E2000000FF0200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC05000001800080000000000000BA000000DA02000096050000790300000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FF0200009006000003030000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000BA000000D40300004A07000099040000000000000303000090060000C80300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020004001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -2665,7 +2665,7 @@ Debug 2582 - 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473010000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 + 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 968 @@ -4194,7 +4194,7 @@ File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020005001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020001001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -4226,7 +4226,7 @@ Debug 2582 - 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000004004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473010000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 + 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000004004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 968 @@ -4254,9 +4254,9 @@ ..\APP\src\app.c - 55 + 34 1 - 5 + 1 diff --git a/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvproj.bak b/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvproj.bak index 0cc05c8..985984c 100644 --- a/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvproj.bak +++ b/demo/stm32f10x/non_os/RVMDK/EasyFlash_uvproj.bak @@ -345,7 +345,7 @@ USE_STDPERIPH_DRIVER,STM32F10X_HD,USE_FULL_ASSERT - ..\app\inc;..\components\rtt_uart;..\components\others;..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x;..\..\..\..\flash\inc + ..\app\inc;..\components\rtt_uart;..\components\others;..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\Libraries\CMSIS_RVMDK\CM3\CoreSupport;..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x;..\..\..\..\easyflash\inc @@ -421,34 +421,34 @@ easyflash - flash_port.c + easyflash.c 1 - ..\components\flash\port\flash_port.c + ..\..\..\..\easyflash\src\easyflash.c - flash.c + env.c 1 - ..\..\..\..\flash\src\flash.c + ..\..\..\..\easyflash\src\env.c - flash_env.c + env_wl.c 1 - ..\..\..\..\flash\src\flash_env.c + ..\..\..\..\easyflash\src\env_wl.c - flash_env_wl.c + iap.c 1 - ..\..\..\..\flash\src\flash_env_wl.c + ..\..\..\..\easyflash\src\iap.c - flash_iap.c + ef_utils.c 1 - ..\..\..\..\flash\src\flash_iap.c + ..\..\..\..\easyflash\src\ef_utils.c - flash_utils.c + ef_port.c 1 - ..\..\..\..\flash\src\flash_utils.c + ..\components\easyflash\port\ef_port.c diff --git a/demo/stm32f10x/non_os/app/src/app.c b/demo/stm32f10x/non_os/app/src/app.c index b30d483..43b506b 100644 --- a/demo/stm32f10x/non_os/app/src/app.c +++ b/demo/stm32f10x/non_os/app/src/app.c @@ -1,5 +1,5 @@ #include "bsp.h" -#include "flash.h" +#include "easyflash.h" #include #include @@ -9,7 +9,7 @@ int main(void){ BSP_Init(); - if (flash_init() == FLASH_NO_ERR) { + if (easyflash_init() == EF_NO_ERR) { /* test Env demo */ test_env(); } @@ -32,7 +32,7 @@ static void test_env(void) { char *c_old_boot_times, c_new_boot_times[11] = {0}; /* get the boot count number from Env */ - c_old_boot_times = flash_get_env("boot_times"); + c_old_boot_times = ef_get_env("boot_times"); assert_param(c_old_boot_times); i_boot_times = atol(c_old_boot_times); /* boot count +1 */ @@ -41,6 +41,6 @@ static void test_env(void) { /* interger to string */ sprintf(c_new_boot_times,"%ld", i_boot_times); /* set and store the boot count number to Env */ - flash_set_env("boot_times", c_new_boot_times); - flash_save_env(); + ef_set_env("boot_times", c_new_boot_times); + ef_save_env(); } diff --git a/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c b/demo/stm32f10x/non_os/components/easyflash/port/ef_port.c similarity index 74% rename from demo/stm32f10x/non_os/components/easyflash/port/flash_port.c rename to demo/stm32f10x/non_os/components/easyflash/port/ef_port.c index 364ac14..160db1c 100644 --- a/demo/stm32f10x/non_os/components/easyflash/port/flash_port.c +++ b/demo/stm32f10x/non_os/components/easyflash/port/ef_port.c @@ -26,7 +26,7 @@ * Created on: 2015-01-16 */ -#include "flash.h" +#include "easyflash.h" #include #include #include @@ -40,21 +40,21 @@ #endif /* Environment variables start address */ -#define FLASH_ENV_START_ADDR (FLASH_BASE + 100 * 1024) /* from the chip position: 100KB */ +#define ENV_START_ADDR (FLASH_BASE + 100 * 1024) /* from the chip position: 100KB */ /* the minimum size of flash erasure */ -#define FLASH_ERASE_MIN_SIZE PAGE_SIZE /* it is one page for STM32 */ -#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE +#define ERASE_MIN_SIZE PAGE_SIZE /* it is one page for STM32 */ +#ifdef EF_ENV_USING_WL_MODE /* ENV section total bytes size in wear leveling mode. */ -#define FLASH_ENV_SECTION_SIZE (4 * FLASH_ERASE_MIN_SIZE)/* 8K */ +#define ENV_SECTION_SIZE (4 * ERASE_MIN_SIZE) /* 8K */ #else /* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */ -#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE) +#define ENV_SECTION_SIZE (EF_USER_SETTING_ENV_SIZE) #endif /* print debug information of flash */ -#define FLASH_PRINT_DEBUG +#define PRINT_DEBUG /* default environment variables set for user */ -static const flash_env default_env_set[] = { +static const ef_env default_env_set[] = { {"iap_need_copy_app","0"}, {"iap_copy_app_size","0"}, {"stop_in_bootloader","0"}, @@ -76,18 +76,18 @@ static char log_buf[128]; * * @return result */ -FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size, size_t *log_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, + ef_env const **default_env, size_t *default_env_size, size_t *log_size) { + EfErrCode result = EF_NO_ERR; + + EF_ASSERT(EF_USER_SETTING_ENV_SIZE % 4 == 0); + EF_ASSERT(ENV_SECTION_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_ENV_SECTION_SIZE % 4 == 0); - - *env_addr = FLASH_ENV_START_ADDR; - *env_total_size = FLASH_ENV_SECTION_SIZE; - *erase_min_size = FLASH_ERASE_MIN_SIZE; + *env_addr = ENV_START_ADDR; + *env_total_size = ENV_SECTION_SIZE; + *erase_min_size = ERASE_MIN_SIZE; *default_env = default_env_set; - *default_env_size = sizeof(default_env_set)/sizeof(default_env_set[0]); + *default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]); return result; } @@ -102,10 +102,10 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t * * @return result */ -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(size % 4 == 0); + EF_ASSERT(size % 4 == 0); /*copy from flash to ram */ for (; size > 0; size -= 4, addr += 4, buf++) { @@ -125,13 +125,13 @@ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { * * @return result */ -FlashErrCode flash_erase(uint32_t addr, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_erase(uint32_t addr, size_t size) { + EfErrCode result = EF_NO_ERR; FLASH_Status flash_status; size_t erase_pages, i; /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ - FLASH_ASSERT(addr % FLASH_ERASE_MIN_SIZE == 0); + EF_ASSERT(addr % ERASE_MIN_SIZE == 0); /* calculate pages */ erase_pages = size / PAGE_SIZE; @@ -145,7 +145,7 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { for (i = 0; i < erase_pages; i++) { flash_status = FLASH_ErasePage(addr + (PAGE_SIZE * i)); if (flash_status != FLASH_COMPLETE) { - result = FLASH_ERASE_ERR; + result = EF_ERASE_ERR; break; } } @@ -164,12 +164,12 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { * * @return result */ -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; size_t i; uint32_t read_data; - - FLASH_ASSERT(size % 4 == 0); + + EF_ASSERT(size % 4 == 0); FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); @@ -179,7 +179,7 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { read_data = *(uint32_t *)addr; /* check data */ if (read_data != *buf) { - result = FLASH_WRITE_ERR; + result = EF_WRITE_ERR; break; } } @@ -191,14 +191,14 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { /** * lock the ENV ram cache */ -void flash_env_lock(void) { +void ef_port_env_lock(void) { __disable_irq(); } /** * unlock the ENV ram cache */ -void flash_env_unlock(void) { +void ef_port_env_unlock(void) { __enable_irq(); } @@ -212,18 +212,18 @@ void flash_env_unlock(void) { * @param ... args * */ -void flash_log_debug(const char *file, const long line, const char *format, ...) { +void ef_log_debug(const char *file, const long line, const char *format, ...) { -#ifdef FLASH_PRINT_DEBUG +#ifdef PRINT_DEBUG va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash](%s:%ld) ", file, line); + ef_print("[Flash](%s:%ld) ", file, line); /* must use vprintf to print */ vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); printf("\r"); va_end(args); @@ -237,15 +237,15 @@ void flash_log_debug(const char *file, const long line, const char *format, ...) * @param format output format * @param ... args */ -void flash_log_info(const char *format, ...) { +void ef_log_info(const char *format, ...) { va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash]"); + ef_print("[Flash]"); /* must use vprintf to print */ vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); printf("\r"); va_end(args); } @@ -255,7 +255,7 @@ void flash_log_info(const char *format, ...) { * @param format output format * @param ... args */ -void flash_print(const char *format, ...) { +void ef_print(const char *format, ...) { va_list args; /* args point to the first variable parameter */ diff --git a/demo/stm32f10x/rtt/EWARM/EasyFlash.dep b/demo/stm32f10x/rtt/EWARM/EasyFlash.dep index 970d66d..0276345 100644 --- a/demo/stm32f10x/rtt/EWARM/EasyFlash.dep +++ b/demo/stm32f10x/rtt/EWARM/EasyFlash.dep @@ -2,984 +2,1235 @@ 2 - 3533578524 + 3678892060 stm32f103xE $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - $PROJ_DIR$\..\app\src\stm32f10x_it.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - $PROJ_DIR$\..\components\others\bsp.c - $PROJ_DIR$\..\app\src\user_finsh_cmd.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c - $PROJ_DIR$\..\components\easyflash\port\flash_port.c - $PROJ_DIR$\..\components\rtt_uart\usart.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c - $PROJ_DIR$\..\app\src\app.c - $PROJ_DIR$\..\components\others\utils.c - $PROJ_DIR$\..\app\src\app_task.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - $PROJ_DIR$\..\app\inc\rtconfig.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.o - $PROJ_DIR$\stm32f103xE\Obj\pipe.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.o - $PROJ_DIR$\stm32f103xE\Obj\flash_utils.o - $PROJ_DIR$\stm32f103xE\Obj\serial.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_heap.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_compiler.o - $PROJ_DIR$\stm32f103xE\Obj\flash_iap.o - $PROJ_DIR$\stm32f103xE\Obj\cmd.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_init.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.o - $PROJ_DIR$\stm32f103xE\Obj\dataqueue.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.o - $PROJ_DIR$\stm32f103xE\Obj\wrokqueue.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.o - $PROJ_DIR$\stm32f103xE\Obj\ringbuffer.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.o - $PROJ_DIR$\stm32f103xE\Obj\completion.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.o - $PROJ_DIR$\stm32f103xE\Obj\portal.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.o - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\cpuport.c - $PROJ_DIR$\stm32f103xE\Obj\finsh_error.o + $PROJ_DIR$\..\app\src\user_finsh_cmd.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env.c + $PROJ_DIR$\..\app\src\app_task.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env_wl.c + $PROJ_DIR$\..\..\..\..\easyflash\src\iap.c + $PROJ_DIR$\..\app\src\stm32f10x_it.c + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + $PROJ_DIR$\..\components\others\utils.c + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c + $PROJ_DIR$\..\components\others\bsp.c + $PROJ_DIR$\..\app\src\app.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c + $PROJ_DIR$\..\components\rtt_uart\usart.c + $PROJ_DIR$\..\app\inc\rtconfig.h + $PROJ_DIR$\..\components\easyflash\port\ef_port.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\context_iar.S + $PROJ_DIR$\stm32f103xE\Obj\device.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_node.pbi + $PROJ_DIR$\..\components\easyflash\port\port.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c + $PROJ_DIR$\..\..\..\..\easyflash\src\utils.c + $PROJ_DIR$\stm32f103xE\Obj\finsh_heap.pbi + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\context_iar.S - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.o - $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c + $PROJ_DIR$\stm32f103xE\Obj\ipc.pbi + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out + $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c - $PROJ_DIR$\stm32f103xE\Obj\ipc.o - $PROJ_DIR$\stm32f103xE\Obj\kservice.o - $PROJ_DIR$\stm32f103xE\Obj\device.o - $PROJ_DIR$\stm32f103xE\Obj\mem.o - $PROJ_DIR$\stm32f103xE\Obj\memheap.o - $PROJ_DIR$\stm32f103xE\Obj\object.o - $PROJ_DIR$\stm32f103xE\Obj\app_task.o - $PROJ_DIR$\stm32f103xE\Obj\bsp.o - $PROJ_DIR$\stm32f103xE\Obj\user_finsh_cmd.o - $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_node.o - $PROJ_DIR$\stm32f103xE\Obj\utils.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.o - $PROJ_DIR$\stm32f103xE\Obj\shell.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.o - $PROJ_DIR$\stm32f103xE\Obj\usart.o - $PROJ_DIR$\stm32f103xE\Obj\misc.o - $PROJ_DIR$\stm32f103xE\Obj\flash_env.o - $PROJ_DIR$\stm32f103xE\Obj\msh.o - $PROJ_DIR$\stm32f103xE\Obj\thread.o - $PROJ_DIR$\stm32f103xE\Obj\app.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_var.o - $PROJ_DIR$\stm32f103xE\Obj\symbol.o - $PROJ_DIR$\stm32f103xE\Obj\msh_cmd.o - $PROJ_DIR$\stm32f103xE\Obj\clock.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.o - $PROJ_DIR$\stm32f103xE\Obj\idle.o - $PROJ_DIR$\stm32f103xE\Obj\flash.o - $PROJ_DIR$\stm32f103xE\Obj\slab.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_vm.o - $PROJ_DIR$\stm32f103xE\Obj\flash_port.o - $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.o - $PROJ_DIR$\stm32f103xE\Obj\flash_utils.pbi - $PROJ_DIR$\stm32f103xE\Obj\scheduler.o - $PROJ_DIR$\stm32f103xE\Obj\finsh_token.o - $PROJ_DIR$\stm32f103xE\Obj\cpuusage.o + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\cpuport.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.pbi + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.bin + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.pbi $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.pbi - $PROJ_DIR$\stm32f103xE\Obj\app_task.pbi - $PROJ_DIR$\stm32f103xE\Obj\timer.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.pbi - $PROJ_DIR$\stm32f103xE\Obj\bsp.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash.pbi - $PROJ_DIR$\stm32f103xE\Obj\startup_stm32f10x_hd.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.pbi - $PROJ_DIR$\stm32f103xE\Obj\cpuport.o - $PROJ_DIR$\stm32f103xE\Obj\module.o - $PROJ_DIR$\stm32f103xE\Obj\mempool.o - $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_port.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_parser.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_token.o + $PROJ_DIR$\stm32f103xE\Obj\EasyFlash.pbd + $PROJ_DIR$\stm32f103xE\Obj\cpuport.pbi + $PROJ_DIR$\stm32f103xE\Obj\misc.pbi + $PROJ_DIR$\stm32f103xE\Obj\irq.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.pbi + $PROJ_DIR$\stm32f103xE\Obj\mempool.pbi + $PROJ_DIR$\stm32f103xE\Obj\idle.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.pbi + $PROJ_DIR$\stm32f103xE\Obj\slab.pbi $PROJ_DIR$\stm32f103xE\Obj\finsh_ops.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_parser.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.pbi - $PROJ_DIR$\stm32f103xE\Obj\context_iar.o - $PROJ_DIR$\stm32f103xE\Obj\flash_env.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash_iap.pbi - $PROJ_DIR$\stm32f103xE\Obj\irq.o - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.pbi - $PROJ_DIR$\stm32f103xE\Obj\user_finsh_cmd.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.pbi - $PROJ_DIR$\stm32f103xE\Obj\memheap.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.pbi - $PROJ_DIR$\stm32f103xE\Obj\module.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_compiler.pbi - $PROJ_DIR$\stm32f103xE\Obj\ipc.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_error.pbi - $PROJ_DIR$\stm32f103xE\Obj\clock.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_var.pbi + $PROJ_DIR$\stm32f103xE\Obj\cpuusage.pbi + $PROJ_DIR$\stm32f103xE\Obj\shell.pbi + $PROJ_DIR$\stm32f103xE\Obj\utils.pbi $PROJ_DIR$\stm32f103xE\Obj\serial.pbi - $PROJ_DIR$\stm32f103xE\Obj\wrokqueue.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.pbi - $PROJ_DIR$\stm32f103xE\Obj\thread.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.pbi - $PROJ_DIR$\stm32f103xE\Obj\pipe.pbi - $PROJ_DIR$\stm32f103xE\Obj\timer.pbi - $PROJ_DIR$\stm32f103xE\Obj\mem.pbi - $PROJ_DIR$\stm32f103xE\Obj\cmd.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_vm.pbi - $PROJ_DIR$\stm32f103xE\Obj\msh.pbi - $PROJ_DIR$\stm32f103xE\Obj\ringbuffer.pbi - $PROJ_DIR$\stm32f103xE\Obj\portal.pbi - $PROJ_DIR$\stm32f103xE\Obj\device.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.pbi - $PROJ_DIR$\stm32f103xE\Obj\completion.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.pbi - $PROJ_DIR$\stm32f103xE\Obj\symbol.pbi - $PROJ_DIR$\stm32f103xE\Obj\object.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_heap.pbi - $PROJ_DIR$\stm32f103xE\Obj\scheduler.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_init.pbi - $PROJ_DIR$\stm32f103xE\Obj\idle.pbi - $PROJ_DIR$\stm32f103xE\Obj\kservice.pbi - $PROJ_DIR$\stm32f103xE\Obj\utils.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.pbi - $PROJ_DIR$\stm32f103xE\Obj\irq.pbi - $PROJ_DIR$\stm32f103xE\Obj\EasyFlash.pbd $PROJ_DIR$\stm32f103xE\Obj\app.pbi - $PROJ_DIR$\stm32f103xE\Obj\shell.pbi - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.bin - $PROJ_DIR$\stm32f103xE\Obj\finsh_var.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_ops.pbi $PROJ_DIR$\stm32f103xE\Obj\finsh_token.pbi - $PROJ_DIR$\stm32f103xE\Obj\mempool.pbi - $PROJ_DIR$\stm32f103xE\Obj\slab.pbi - $PROJ_DIR$\stm32f103xE\Obj\flash_port.pbi - $PROJ_DIR$\stm32f103xE\Obj\finsh_node.pbi - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.pbi - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out - $PROJ_DIR$\stm32f103xE\Obj\finsh_parser.pbi - $PROJ_DIR$\stm32f103xE\Obj\cpuusage.pbi - $PROJ_DIR$\stm32f103xE\Obj\cpuport.pbi - $PROJ_DIR$\stm32f103xE\Obj\misc.pbi - $PROJ_DIR$\stm32f103xE\Obj\usart.pbi - $PROJ_DIR$\stm32f103xE\Obj\msh_cmd.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_init.pbi + $PROJ_DIR$\stm32f103xE\Obj\object.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.o + $PROJ_DIR$\stm32f103xE\Obj\finsh_error.o + $PROJ_DIR$\stm32f103xE\Obj\finsh_compiler.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.o + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.o + $PROJ_DIR$\stm32f103xE\Obj\ringbuffer.o + $PROJ_DIR$\stm32f103xE\Obj\flash_iap.o + $PROJ_DIR$\..\app\inc\app_task.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.o + $PROJ_DIR$\stm32f103xE\Obj\utils.o + $PROJ_DIR$\stm32f103xE\Obj\completion.o + $PROJ_DIR$\stm32f103xE\Obj\wrokqueue.o + $PROJ_DIR$\stm32f103xE\Obj\dataqueue.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_bkp.o + $PROJ_DIR$\stm32f103xE\Obj\cmd.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dma.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.o + $PROJ_DIR$\stm32f103xE\Obj\finsh_init.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_fsmc.pbi + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h + $PROJ_DIR$\stm32f103xE\Obj\portal.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.o + $PROJ_DIR$\..\components\others\utils.h + $PROJ_DIR$\stm32f103xE\Obj\cmd.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h + $PROJ_DIR$\stm32f103xE\Obj\kservice.pbi $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h $TOOLKIT_DIR$\inc\c\cmsis_iar.h + $PROJ_DIR$\stm32f103xE\Obj\finsh_ops.pbi $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cm3.h - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $PROJ_DIR$\..\app\inc\stm32f10x_conf.h + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmInstr.h + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmFunc.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h + $PROJ_DIR$\stm32f103xE\Obj\dataqueue.pbi $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtservice.h - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.pbi - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h - $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtm.h - $TOOLKIT_DIR$\inc\c\intrinsics.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmFunc.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h + $TOOLKIT_DIR$\inc\c\stdint.h + $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.pbi $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h + $PROJ_DIR$\stm32f103xE\Obj\context_iar.o + $PROJ_DIR$\stm32f103xE\Obj\scheduler.pbi + $TOOLKIT_DIR$\inc\c\intrinsics.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rcc.pbi - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\Include\core_cmInstr.h - $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.pbi - $PROJ_DIR$\stm32f103xE\Obj\dataqueue.pbi + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtm.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_i2c.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_vm.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_iwdg.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_error.pbi + $PROJ_DIR$\stm32f103xE\Obj\memheap.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h + $PROJ_DIR$\stm32f103xE\Obj\usart.pbi + $PROJ_DIR$\stm32f103xE\Obj\port.pbi + $PROJ_DIR$\stm32f103xE\Obj\module.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_rtc.pbi + $PROJ_DIR$\..\app\inc\stm32f10x_conf.h + $PROJ_DIR$\stm32f103xE\Obj\completion.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.pbi + $PROJ_DIR$\stm32f103xE\Obj\portal.pbi + $PROJ_DIR$\stm32f103xE\Obj\symbol.pbi + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.pbi + $PROJ_DIR$\stm32f103xE\Obj\wrokqueue.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dbgmcu.pbi + $PROJ_DIR$\stm32f103xE\Obj\clock.pbi + $PROJ_DIR$\stm32f103xE\Obj\mem.pbi + $PROJ_DIR$\stm32f103xE\Obj\pipe.pbi + $PROJ_DIR$\stm32f103xE\Obj\finsh_compiler.pbi + $PROJ_DIR$\..\RT-Thread-1.2.2\include\cpuusage.h + $PROJ_DIR$\stm32f103xE\Obj\ringbuffer.pbi + $PROJ_DIR$\stm32f103xE\Obj\msh_cmd.pbi + $PROJ_DIR$\stm32f103xE\Obj\timer.pbi + $PROJ_DIR$\stm32f103xE\Obj\msh.pbi + $PROJ_DIR$\..\app\inc\delay_conf.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_usart.pbi + $PROJ_DIR$\stm32f103xE\Obj\thread.pbi + $TOOLKIT_DIR$\lib\shb_l.a + $TOOLKIT_DIR$\inc\c\xmtx.h $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_spi.pbi - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h - $TOOLKIT_DIR$\inc\c\stdint.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdebug.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdef.h - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $TOOLKIT_DIR$\inc\c\stdarg.h - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\app\inc\app_task.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rthw.h - $TOOLKIT_DIR$\inc\c\yvals.h - $TOOLKIT_DIR$\inc\c\ycheck.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtthread.h - $TOOLKIT_DIR$\inc\c\stdbool.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\string.h - $TOOLKIT_DIR$\inc\c\stddef.h - $PROJ_DIR$\..\..\..\..\easyflash\inc\flash.h - $TOOLKIT_DIR$\inc\c\ysizet.h - $PROJ_DIR$\..\components\others\bsp.h - $PROJ_DIR$\..\components\rtt_uart\usart.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\drivers\serial.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h - $PROJ_DIR$\..\components\others\utils.h $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h + $TOOLKIT_DIR$\inc\c\xtls.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.h + $TOOLKIT_DIR$\inc\c\xlocale.h $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_sdio.pbi $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.h + $PROJ_DIR$\stm32f103xE\List\EasyFlash.map + $TOOLKIT_DIR$\inc\c\wchar.h + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_tim.pbi $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.h $TOOLKIT_DIR$\lib\m7M_tl.a - $PROJ_DIR$\stm32f103xE\List\EasyFlash.map + $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.pbi + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.h + $TOOLKIT_DIR$\inc\c\xlocaleuse.h $TOOLKIT_DIR$\lib\dl7M_tln.a - $PROJ_DIR$\..\components\others\stm32f103xE.icf - $TOOLKIT_DIR$\lib\rt7M_tl.a - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh.h - $TOOLKIT_DIR$\inc\c\xlocale.h - $TOOLKIT_DIR$\inc\c\xlocale_c.h - $TOOLKIT_DIR$\inc\c\xlocaleuse.h - $TOOLKIT_DIR$\inc\c\xtls.h - $TOOLKIT_DIR$\inc\c\xmtx.h - $TOOLKIT_DIR$\inc\c\ctype.h - $TOOLKIT_DIR$\inc\c\wchar.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.h + $TOOLKIT_DIR$\inc\c\stddef.h + $PROJ_DIR$\stm32f103xE\Obj\cpuport.o + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdebug.h + $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rthw.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtthread.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $PROJ_DIR$\stm32f103xE\Obj\usart.o + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h + $PROJ_DIR$\stm32f103xE\Obj\kservice.o + $PROJ_DIR$\stm32f103xE\Obj\memheap.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_adc.pbi + $PROJ_DIR$\stm32f103xE\Obj\shell.o + $PROJ_DIR$\stm32f103xE\Obj\app_task.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_utils.pbi + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\stm32f103xE\Obj\msh.o + $PROJ_DIR$\..\components\others\bsp.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h + $PROJ_DIR$\..\..\..\..\easyflash\inc\flash.h + $PROJ_DIR$\stm32f103xE\Obj\serial.o + $PROJ_DIR$\stm32f103xE\Obj\flash.o + $PROJ_DIR$\..\components\rtt_uart\usart.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\drivers\serial.h + $PROJ_DIR$\stm32f103xE\Obj\finsh_node.o + $PROJ_DIR$\stm32f103xE\Obj\idle.o $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.h + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.pbi + $TOOLKIT_DIR$\inc\c\ctype.h $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.h + $PROJ_DIR$\stm32f103xE\Obj\finsh_parser.o + $PROJ_DIR$\stm32f103xE\Obj\irq.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_flash.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash.pbi + $PROJ_DIR$\stm32f103xE\Obj\flash_iap.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.pbi + $PROJ_DIR$\stm32f103xE\Obj\mempool.o + $PROJ_DIR$\stm32f103xE\Obj\system_stm32f10x.o + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.h + $PROJ_DIR$\stm32f103xE\Obj\user_finsh_cmd.pbi + $PROJ_DIR$\..\components\others\stm32f103xE.icf + $PROJ_DIR$\stm32f103xE\Obj\module.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h + $PROJ_DIR$\stm32f103xE\Obj\bsp.pbi + $TOOLKIT_DIR$\inc\c\stdbool.h + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.pbi + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $PROJ_DIR$\stm32f103xE\Obj\finsh_vm.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h + $PROJ_DIR$\stm32f103xE\Obj\timer.o + $TOOLKIT_DIR$\inc\c\xlocale_c.h + $PROJ_DIR$\stm32f103xE\Obj\scheduler.o + $PROJ_DIR$\stm32f103xE\Obj\pipe.o + $PROJ_DIR$\stm32f103xE\Obj\finsh_var.o + $PROJ_DIR$\stm32f103xE\Obj\finsh_heap.o + $PROJ_DIR$\stm32f103xE\Obj\flash_env.pbi + $PROJ_DIR$\stm32f103xE\Obj\bsp.o + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h + $PROJ_DIR$\stm32f103xE\Obj\thread.o + $PROJ_DIR$\stm32f103xE\Obj\user_finsh_cmd.o + $PROJ_DIR$\stm32f103xE\Obj\clock.o + $PROJ_DIR$\stm32f103xE\Obj\msh_cmd.o + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdef.h + $PROJ_DIR$\stm32f103xE\Obj\flash_env.o + $PROJ_DIR$\stm32f103xE\Obj\device.o + $PROJ_DIR$\stm32f103xE\Obj\object.o + $PROJ_DIR$\stm32f103xE\Obj\flash_env_wl.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_crc.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_gpio.o + $PROJ_DIR$\stm32f103xE\Obj\app_task.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_cec.o + $PROJ_DIR$\stm32f103xE\Obj\startup_stm32f10x_hd.o + $PROJ_DIR$\stm32f103xE\Obj\app.o + $PROJ_DIR$\stm32f103xE\Obj\symbol.o + $PROJ_DIR$\stm32f103xE\Obj\cpuusage.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_it.o + $PROJ_DIR$\stm32f103xE\Obj\flash_utils.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_can.o + $PROJ_DIR$\stm32f103xE\Obj\ipc.o + $PROJ_DIR$\stm32f103xE\Obj\slab.o + $PROJ_DIR$\stm32f103xE\Obj\misc.o + $PROJ_DIR$\stm32f103xE\Obj\mem.o + $PROJ_DIR$\stm32f103xE\Obj\flash_port.o + $PROJ_DIR$\stm32f103xE\Obj\env.o + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\stm32f103xE\Obj\iap.o + $PROJ_DIR$\stm32f103xE\Obj\env_wl.o + $PROJ_DIR$\stm32f103xE\Obj\easyflash.o + $PROJ_DIR$\stm32f103xE\Obj\ef_utils.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_utils.o + $PROJ_DIR$\stm32f103xE\Obj\ef_port.pbi + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_wwdg.o + $PROJ_DIR$\..\..\..\..\easyflash\inc\easyflash.h + $PROJ_DIR$\stm32f103xE\Obj\easyflash.pbi + $TOOLKIT_DIR$\inc\c\ystdio.h + $PROJ_DIR$\stm32f103xE\Obj\iap.pbi + $PROJ_DIR$\stm32f103xE\Obj\env_wl.pbi + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_pwr.o + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_exti.o + $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\stm32f103xE\Obj\stm32f10x_dac.o + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\stm32f103xE\Obj\ef_port.o + $PROJ_DIR$\stm32f103xE\Obj\env.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_env.o + $PROJ_DIR$\stm32f103xE\Obj\ef_env.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_iap.pbi + $PROJ_DIR$\stm32f103xE\Obj\ef_iap.o + $PROJ_DIR$\stm32f103xE\Obj\ef_env_wl.o + $PROJ_DIR$\stm32f103xE\Obj\ef_env_wl.pbi + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c + + + BICOMP + 61 + + + ICCARM + 260 + + + + + BICOMP + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 208 275 262 266 + + + + + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c + + + BICOMP + 149 + + + ICCARM + 103 + + + + + BICOMP + 223 216 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 262 + + + + + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c BICOMP - 222 + 110 ICCARM - 123 + 92 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 310 311 312 315 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 226 275 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c BICOMP - 218 + 72 ICCARM - 147 + 291 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 316 311 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 262 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c BICOMP - 217 + 111 ICCARM - 161 + 136 BICOMP - 309 313 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 312 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 208 216 262 214 275 266 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c + [ROOT_NODE] + + + ILINK + 79 217 + + + + + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c BICOMP - 201 + 185 ICCARM - 60 + 141 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 312 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c BICOMP - 203 + 86 ICCARM - 70 + 338 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 310 313 312 314 311 315 + 254 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - [ROOT_NODE] + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c - ILINK - 224 293 + BICOMP + 154 + + + ICCARM + 127 + + + BICOMP + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 237 + + - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c BICOMP - 209 + 220 ICCARM - 83 + 135 BICOMP - 285 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 156 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 170 138 145 - $PROJ_DIR$\..\app\src\stm32f10x_it.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c BICOMP - 152 + 183 ICCARM 125 + + + BICOMP + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 + + - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c BICOMP - 207 + 139 ICCARM - 57 + 128 BICOMP - 245 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 258 248 240 260 231 244 232 246 261 255 + 187 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 294 147 171 156 170 138 145 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c BICOMP - 223 + 172 ICCARM - 127 + 123 BICOMP - 287 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 221 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c BICOMP - 164 + 196 ICCARM - 138 + 120 BICOMP - 286 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 235 232 213 - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c BICOMP - 160 + 194 ICCARM - 144 + 115 BICOMP - 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 208 275 262 223 216 - $PROJ_DIR$\..\components\others\bsp.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c BICOMP - 153 + 181 ICCARM - 120 + 119 BICOMP - 279 236 257 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 245 258 248 240 260 231 244 232 246 261 255 269 272 27 262 263 265 238 242 280 + 263 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\app\src\user_finsh_cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c BICOMP - 170 + 91 ICCARM - 121 + 267 + + + + + BICOMP + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 226 208 275 214 262 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + + + BICOMP + 184 + + + ICCARM + 332 + + + BICOMP + 138 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 145 + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c BICOMP - 210 + 88 ICCARM - 71 + 341 BICOMP - 288 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 222 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c BICOMP - 167 + 272 ICCARM - 68 + 339 BICOMP - 277 256 271 270 264 268 235 237 241 276 278 273 + 243 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c BICOMP - 221 + 97 ICCARM - 143 + 314 BICOMP - 277 256 271 270 264 268 235 237 241 276 278 273 269 272 27 262 263 265 238 242 236 257 259 234 251 233 243 247 250 245 258 248 240 260 231 244 232 246 261 255 + 153 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 243 164 187 294 147 171 156 170 138 145 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + BICOMP + 168 ICCARM - 277 256 271 270 264 268 235 237 241 276 278 273 269 272 27 262 263 265 238 242 236 257 259 234 251 233 243 247 250 245 258 248 240 260 231 244 232 246 261 255 + 131 + + + + + BICOMP + 171 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 156 170 138 145 - $PROJ_DIR$\..\components\rtt_uart\usart.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c BICOMP - 229 + 98 ICCARM - 128 + 304 BICOMP - 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 280 269 272 27 262 263 265 238 242 279 282 281 + 279 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c BICOMP - 208 + 89 ICCARM - 122 + 134 BICOMP - 277 256 271 270 264 268 235 237 241 276 278 273 275 274 266 + 212 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 + + + + + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c + + + BICOMP + 193 ICCARM - 277 256 271 270 264 268 235 237 241 276 278 273 275 274 266 + 289 + + + + + BICOMP + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c BICOMP - 166 + 269 ICCARM - 130 + 137 BICOMP - 277 256 271 270 264 268 235 237 241 276 278 273 275 274 266 + 164 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 187 294 147 171 156 170 138 145 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + BICOMP + 174 ICCARM - 277 256 271 270 264 268 235 237 241 276 278 273 275 274 266 + 116 + + + + + BICOMP + 147 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 171 156 170 138 145 - $PROJ_DIR$\..\app\src\app.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c BICOMP - 213 + 108 ICCARM - 133 + 256 BICOMP - 267 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 236 257 259 234 256 251 233 243 247 250 245 258 248 240 260 231 244 232 246 261 255 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 - $PROJ_DIR$\..\components\others\utils.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c BICOMP - 206 + 130 ICCARM - 124 + 144 BICOMP - 284 236 257 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 245 258 248 240 260 231 244 232 246 261 255 272 27 262 263 265 238 242 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 229 265 209 207 204 118 232 227 287 218 235 213 - $PROJ_DIR$\..\app\src\app_task.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c BICOMP - 150 + 175 ICCARM - 119 + 114 + + + BICOMP + 275 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 + + - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c BICOMP - 145 + 189 ICCARM - 58 + 126 BICOMP - 277 256 271 270 264 268 235 237 241 276 278 273 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 241 259 - $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - AARM - 155 + BICOMP + 282 + + + ICCARM + 307 + + + BICOMP + 210 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 + + - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c BICOMP - 228 + 190 ICCARM - 129 + 142 BICOMP - 255 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 + 285 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c BICOMP - 154 + 188 ICCARM - 140 + 305 + + + BICOMP + 294 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 147 171 156 170 138 145 + + - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c BICOMP - 169 + 211 ICCARM - 81 + 133 BICOMP - 257 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 245 258 248 240 260 231 244 232 246 261 255 + 215 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c BICOMP - 181 + 205 + + + ICCARM + 132 + + + + + BICOMP + 177 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + + + BICOMP + 101 + + + ICCARM + 129 + + + + + BICOMP + 206 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 + + + + + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + BICOMP + 201 ICCARM - 75 + 117 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 + 170 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 138 145 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + $PROJ_DIR$\..\app\src\user_finsh_cmd.c BICOMP - 197 + 276 ICCARM - 62 + 296 BICOMP - 240 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 260 231 244 232 246 261 255 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 182 161 250 150 162 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 333 230 232 281 229 265 209 207 204 118 227 287 218 235 213 + + + ICCARM + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 182 161 250 150 162 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 333 230 232 281 229 265 209 207 204 118 227 287 218 235 213 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env.c BICOMP - 171 + 344 ICCARM - 84 + 320 BICOMP - 289 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\app\src\app_task.c BICOMP - 149 + 248 ICCARM - 76 + 306 BICOMP - 290 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 122 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 182 161 250 150 162 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 118 232 324 335 253 258 333 230 281 229 265 209 207 204 227 287 218 235 213 158 200 195 143 + + + ICCARM + 122 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 182 161 250 150 162 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 118 232 324 335 253 258 333 230 281 229 265 209 207 204 227 287 218 235 213 158 200 195 143 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\..\..\..\easyflash\src\env_wl.c BICOMP - 198 + 337 ICCARM - 73 + 326 BICOMP - 283 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\..\..\..\easyflash\src\iap.c BICOMP - 194 + 336 ICCARM - 64 + 325 BICOMP - 291 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\app\src\stm32f10x_it.c BICOMP - 156 + 264 ICCARM - 61 + 312 - + + + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_hd.s + - BICOMP - 258 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 248 240 260 231 244 232 246 261 255 + AARM + 308 - + - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c + $PROJ_DIR$\..\components\others\utils.c BICOMP - 178 + 107 ICCARM - 88 + 124 BICOMP - 311 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 + 143 182 161 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 238 52 234 299 233 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c + $PROJ_DIR$\..\Libraries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c BICOMP @@ -987,564 +1238,581 @@ ICCARM - 163 + 274 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 316 310 311 314 312 + 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c BICOMP - 196 + 95 ICCARM - 63 + 317 BICOMP - 298 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 145 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c BICOMP - 174 + 334 ICCARM - 55 + 327 BICOMP - 260 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 231 244 232 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\components\others\bsp.c BICOMP - 162 + 280 ICCARM - 102 + 293 BICOMP - 248 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 240 260 231 244 232 246 261 255 + 253 182 161 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 237 238 52 234 299 233 157 169 258 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + $PROJ_DIR$\..\app\src\app.c BICOMP - 249 + 109 ICCARM - 79 + 309 BICOMP - 244 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 232 246 261 255 + 122 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 182 161 250 150 162 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c BICOMP - 252 + 328 ICCARM - 78 + 329 BICOMP - 299 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c + $PROJ_DIR$\..\components\rtt_uart\usart.c BICOMP - 195 + 178 ICCARM - 82 + 240 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 + 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 161 153 243 164 187 294 147 171 156 170 138 145 258 237 238 52 234 299 233 157 169 253 241 259 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c BICOMP - 253 + 330 ICCARM - 72 + 343 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 269 + 333 162 242 236 251 239 159 155 283 230 232 281 237 238 52 234 299 233 157 169 182 161 250 150 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 237 238 52 234 299 233 157 169 182 161 250 150 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c + $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c BICOMP - 180 + 246 ICCARM - 59 + 113 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 + 161 250 150 162 242 236 251 239 159 155 283 151 148 167 152 140 182 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c BICOMP - 188 + 106 ICCARM - 69 + 247 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 301 307 302 305 306 266 278 304 303 308 275 274 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 229 265 209 207 204 118 232 227 287 218 235 213 158 160 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c BICOMP - 192 + 199 ICCARM - 85 + 252 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 + 160 238 52 234 299 233 242 236 251 239 159 155 283 157 169 229 265 209 207 204 118 232 227 287 218 235 213 158 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c BICOMP - 184 + 176 ICCARM - 66 + 245 BICOMP - 261 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 255 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c BICOMP - 185 + 166 ICCARM - 56 + 288 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\context_iar.S - BICOMP - 239 + AARM + 165 + + + + $PROJ_DIR$\..\components\easyflash\port\port.c + - ICCARM - 80 + BICOMP + 179 BICOMP - 232 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 246 261 255 + 333 162 242 236 251 239 159 155 283 230 232 281 324 335 118 233 182 161 250 150 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c BICOMP - 191 + 78 ICCARM - 77 + 315 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 282 281 275 278 274 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c BICOMP - 254 + 180 ICCARM - 74 + 278 BICOMP - 300 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 246 261 255 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c BICOMP - 182 + 197 ICCARM - 65 + 298 BICOMP - 231 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 244 232 246 261 255 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 229 265 209 207 204 118 232 227 287 218 235 213 160 - $PROJ_DIR$\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c BICOMP - 173 + 96 ICCARM - 86 + 268 BICOMP - 246 259 234 256 271 270 264 268 235 237 241 251 233 243 247 250 236 257 245 258 248 240 260 231 244 232 261 255 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c BICOMP - 176 + 146 ICCARM - 67 + 244 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 310 311 312 309 313 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\cpuport.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c BICOMP - 227 + 192 ICCARM - 157 + 318 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 229 265 209 207 204 118 232 227 287 218 235 213 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c BICOMP - 230 + 105 ICCARM - 136 + 311 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 301 307 302 305 306 266 278 304 303 308 275 274 317 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c BICOMP - 204 + 99 ICCARM - 139 + 273 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c + $PROJ_DIR$\..\..\..\..\easyflash\src\utils.c BICOMP - 226 + 107 ICCARM - 148 + 124 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 333 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c BICOMP - 179 + 104 ICCARM - 137 + 290 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 262 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c BICOMP - 187 + 100 ICCARM - 116 + 261 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 301 307 302 305 306 266 278 304 303 308 275 274 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c BICOMP - 193 + 112 ICCARM - 115 + 302 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c BICOMP - 219 + 60 ICCARM - 159 + 301 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c BICOMP - 175 + 198 ICCARM - 158 + 286 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c + $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out - BICOMP - 214 + OBJCOPY + 87 - ICCARM - 126 + ILINK + 217 - BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 301 307 302 305 306 266 278 304 303 308 275 274 318 317 + ILINK + 277 309 306 293 297 144 125 165 231 311 127 301 327 345 349 348 343 329 115 114 291 136 260 103 267 92 290 284 261 315 268 244 318 245 273 317 278 252 298 302 289 141 120 288 256 247 316 308 113 129 314 307 304 341 142 134 339 137 128 305 123 312 116 338 131 119 133 132 135 117 332 310 274 295 286 240 296 124 126 203 219 224 228 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c BICOMP - 177 + 191 ICCARM - 113 + 297 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 @@ -1553,22 +1821,22 @@ BICOMP - 183 + 202 ICCARM - 132 + 295 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 237 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c BICOMP @@ -1576,231 +1844,255 @@ ICCARM - 151 + 310 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\context_iar.S + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c - AARM - 165 + BICOMP + 173 + + + ICCARM + 284 + + + BICOMP + 229 238 52 234 299 233 242 236 251 239 159 155 283 157 169 265 209 207 204 118 232 227 287 218 235 213 216 262 223 + + - $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\cpuport.c BICOMP - 220 + 94 ICCARM - 141 + 231 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c BICOMP - 190 + 102 ICCARM - 131 + 316 BICOMP - 317 272 27 262 263 265 271 270 264 268 235 237 241 238 242 301 307 302 305 306 266 278 304 303 308 275 274 318 + 237 238 52 234 299 233 242 236 251 239 159 155 283 157 169 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c BICOMP - 199 + 292 ICCARM - 135 + 300 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 + 255 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 255 162 242 236 251 239 159 155 283 230 232 281 235 213 118 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c + $PROJ_DIR$\..\components\easyflash\port\flash_port.c BICOMP - 211 + 90 ICCARM - 168 + 319 - BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + ICCARM + 255 162 242 236 251 239 159 155 283 230 232 281 237 238 52 234 299 233 157 169 182 161 250 150 151 148 167 152 140 153 243 164 187 294 147 171 156 170 138 145 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c BICOMP - 216 + 249 ICCARM - 134 + 313 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 312 + 255 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c BICOMP - 189 + 163 ICCARM - 142 + 303 BICOMP - 301 272 27 262 263 265 271 270 264 268 235 237 241 238 242 307 302 305 306 266 278 304 303 308 275 274 313 312 309 + 255 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 255 162 242 236 251 239 159 155 283 230 232 281 235 213 118 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c BICOMP - 205 + 270 ICCARM - 114 + 257 - - - BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 - - - $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c + $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c BICOMP - 172 + 271 ICCARM - 117 + 121 BICOMP - 269 272 27 262 263 265 271 270 264 268 235 237 241 238 242 + 255 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c BICOMP - 200 + 346 ICCARM - 118 + 345 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c BICOMP - 202 + 347 ICCARM - 146 + 348 BICOMP - 272 27 262 263 265 271 270 264 268 235 237 241 238 242 269 + 333 162 242 236 251 239 159 155 283 230 232 281 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 - $PROJ_DIR$\stm32f103xE\Exe\EasyFlash.out + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c - ILINK - 293 + BICOMP + 350 - OBJCOPY - 215 + ICCARM + 349 - ILINK - 295 133 119 120 137 69 82 165 157 148 72 115 67 88 60 70 123 161 163 147 134 142 140 130 122 68 143 58 139 113 168 114 116 117 159 129 158 131 136 118 56 85 77 146 59 126 141 155 81 83 57 138 127 71 84 76 61 102 62 55 64 125 65 73 79 63 78 74 80 86 66 135 144 132 151 128 121 124 75 297 296 292 294 + BICOMP + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 + + + ICCARM + 333 162 242 236 251 239 159 155 283 230 232 281 235 213 118 diff --git a/demo/stm32f10x/rtt/EWARM/EasyFlash.ewp b/demo/stm32f10x/rtt/EWARM/EasyFlash.ewp index bbcfa77..74536a8 100644 --- a/demo/stm32f10x/rtt/EWARM/EasyFlash.ewp +++ b/demo/stm32f10x/rtt/EWARM/EasyFlash.ewp @@ -955,25 +955,25 @@ port - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c src - $PROJ_DIR$\..\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\..\..\..\easyflash\src\easyflash.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_env_wl.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_iap.c - $PROJ_DIR$\..\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\..\..\..\easyflash\src\ef_utils.c diff --git a/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.dbgdt b/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.dbgdt index 33d398d..24fb0cc 100644 --- a/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.dbgdt +++ b/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.dbgdt @@ -34,7 +34,7 @@ 20011 - 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 + 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 diff --git a/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.wsdt b/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.wsdt index a8a3d80..4dee332 100644 --- a/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.wsdt +++ b/demo/stm32f10x/rtt/EWARM/settings/EasyFlash.wsdt @@ -35,14 +35,14 @@ - TextEditor$WS_DIR$\..\app\src\app_task.c00000020820800100000010000001 + TextEditor$WS_DIR$\..\app\src\app_task.c000000212100100000010000001 - iaridepm.enu1-2-2744314-2-25105130357152740188095771458-2-21781682-2-21684180100238118614330357152740 + iaridepm.enu1-2-2744314-2-25105130357152740188095771458-2-21781682-2-21684180100238118614330357152740 diff --git a/demo/stm32f10x/rtt/README.md b/demo/stm32f10x/rtt/README.md index d7ed567..8be061f 100644 --- a/demo/stm32f10x/rtt/README.md +++ b/demo/stm32f10x/rtt/README.md @@ -19,7 +19,7 @@ ## 2ļУ˵ -`components\easyflash\port\flash_port.c` ֲοļ +`components\easyflash\port\ef_port.c` ֲοļ `RVMDK` ΪKeilļ diff --git a/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvopt b/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvopt index ffabd6c..e6aa9f1 100644 --- a/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvopt +++ b/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvopt @@ -213,10 +213,10 @@ 1 0 0 - 60 + 101 0 1 - 20 + 1 0 ..\APP\src\app_task.c app_task.c @@ -391,7 +391,7 @@ 0 3 - 0 + 14 1 0 0 @@ -400,12 +400,12 @@ 0 0 0 - ..\components\easyflash\port\flash_port.c - flash_port.c + ..\..\..\..\easyflash\src\easyflash.c + easyflash.c 3 - 0 + 15 1 0 0 @@ -414,12 +414,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash.c - flash.c + ..\..\..\..\easyflash\src\ef_env.c + ef_env.c 3 - 0 + 16 1 0 0 @@ -428,12 +428,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env.c - flash_env.c + ..\..\..\..\easyflash\src\ef_env_wl.c + ef_env_wl.c 3 - 0 + 17 1 0 0 @@ -442,12 +442,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_env_wl.c - flash_env_wl.c + ..\..\..\..\easyflash\src\ef_iap.c + ef_iap.c 3 - 0 + 18 1 0 0 @@ -456,12 +456,12 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_iap.c - flash_iap.c + ..\..\..\..\easyflash\src\ef_utils.c + ef_utils.c 3 - 0 + 19 1 0 0 @@ -470,8 +470,8 @@ 0 0 0 - ..\..\..\..\easyflash\src\flash_utils.c - flash_utils.c + ..\components\easyflash\port\ef_port.c + ef_port.c @@ -1417,7 +1417,7 @@ 0 264 - 01000000040000000100000001000000010000000100000001000000FFFFFFFF0000000001000000010000000000000028000000280000000100000001000000000000000100000040443A5C50726F6772616D5C53544D33325C45617379466C6173685C64656D6F5C73746D3332663130785C7274745C4150505C7372635C6170705F7461736B2E63000000000A6170705F7461736B2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000E6000000660000009006000016030000 + 01000000040000000100000001000000010000000100000001000000FFFFFFFF0000000001000000010000000000000028000000280000000100000001000000000000000100000040443A5C50726F6772616D5C53544D33325C45617379466C6173685C64656D6F5C73746D3332663130785C7274745C4150505C7372635C6170705F7461736B2E63000000000A6170705F7461736B2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000E6000000660000009006000016030000 @@ -1440,7 +1440,7 @@ 16 - 5501000006010000C704000091010000 + B50000006600000027040000F1000000 @@ -3305,14 +3305,14 @@ 2569 - 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFF260400004F0000002A040000000300000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000005501000006010000C704000091010000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000CB040000060100007C0500005F0300002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE20000004F000000E6000000FF02000001000000020000100400000001000000E1FEFFFF0E020000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000A00000000601000082010000B6030000000000004F000000E2000000FF0200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC05000001800080000000000000A0000000C00200007C0500005F0300000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FF0200009006000003030000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000A0000000BA030000300700007F040000000000000303000090060000C80300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFF260400004F0000002A040000000300000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000B50000006600000027040000F1000000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000002B04000066000000DC040000BF0200002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE20000004F000000E6000000FF02000001000000020000100400000001000000E1FEFFFF0E020000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000E200000016030000000000004F000000E2000000FF0200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC050000018000800000000000000000000020020000DC040000BF0200000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FF0200009006000003030000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000000000001A03000090060000DF030000000000000303000090060000C80300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000004001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -3344,7 +3344,7 @@ Debug 2582 - 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473010000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 + 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 968 @@ -4933,9 +4933,9 @@ ..\APP\src\app_task.c - 60 + 101 1 - 20 + 1 diff --git a/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvproj b/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvproj index d7c639d..803420c 100644 --- a/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvproj +++ b/demo/stm32f10x/rtt/RVMDK/EasyFlash.uvproj @@ -461,34 +461,34 @@ easyflash - flash_port.c + easyflash.c 1 - ..\components\easyflash\port\flash_port.c + ..\..\..\..\easyflash\src\easyflash.c - flash.c + ef_env.c 1 - ..\..\..\..\easyflash\src\flash.c + ..\..\..\..\easyflash\src\ef_env.c - flash_env.c + ef_env_wl.c 1 - ..\..\..\..\easyflash\src\flash_env.c + ..\..\..\..\easyflash\src\ef_env_wl.c - flash_env_wl.c + ef_iap.c 1 - ..\..\..\..\easyflash\src\flash_env_wl.c + ..\..\..\..\easyflash\src\ef_iap.c - flash_iap.c + ef_utils.c 1 - ..\..\..\..\easyflash\src\flash_iap.c + ..\..\..\..\easyflash\src\ef_utils.c - flash_utils.c + ef_port.c 1 - ..\..\..\..\easyflash\src\flash_utils.c + ..\components\easyflash\port\ef_port.c diff --git a/demo/stm32f10x/rtt/RVMDK/EasyFlash_stm32f103xE.dep b/demo/stm32f10x/rtt/RVMDK/EasyFlash_stm32f103xE.dep new file mode 100644 index 0000000..4e88e32 --- /dev/null +++ b/demo/stm32f10x/rtt/RVMDK/EasyFlash_stm32f103xE.dep @@ -0,0 +1,1170 @@ +Dependencies for Project 'EasyFlash', Target 'stm32f103xE': (DO NOT MODIFY !) +F (..\APP\src\app.c)(0x54BE0FA9)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\app.o" --omf_browse ".\Output\app.crf" --depend ".\Output\app.d") +I (..\app\inc\app_task.h)(0x54C0D77F) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\APP\src\app_task.c)(0x5599ED2E)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\app_task.o" --omf_browse ".\Output\app_task.crf" --depend ".\Output\app_task.d") +I (..\app\inc\app_task.h)(0x54C0D77F) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\stdio.h)(0x4BA13B96) +I (..\components\others\bsp.h)(0x5530C8C2) +I (..\components\rtt_uart\usart.h)(0x54C0D275) +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\shell.h)(0x545CB528) +I (..\app\inc\delay_conf.h)(0x54C30EE8) +I (..\RT-Thread-1.2.2\include\cpuusage.h)(0x545CB529) +I (..\components\others\utils.h)(0x5530C8E2) +F (..\app\src\user_finsh_cmd.c)(0x5599F51F)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\user_finsh_cmd.o" --omf_browse ".\Output\user_finsh_cmd.crf" --depend ".\Output\user_finsh_cmd.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +F (..\APP\src\stm32f10x_it.c)(0x5530C492)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_it.o" --omf_browse ".\Output\stm32f10x_it.crf" --depend ".\Output\stm32f10x_it.d") +I (..\app\inc\stm32f10x_it.h)(0x545CB528) +I (..\components\others\bsp.h)(0x5530C8C2) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\components\rtt_uart\usart.h)(0x54C0D275) +F (..\APP\inc\delay_conf.h)(0x54C30EE8)() +F (..\APP\inc\stm32f10x_conf.h)(0x545CB528)() +F (..\APP\inc\rtconfig.h)(0x5531F5F8)() +F (..\components\others\bsp.c)(0x5530C797)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\bsp.o" --omf_browse ".\Output\bsp.crf" --depend ".\Output\bsp.d") +I (..\components\others\bsp.h)(0x5530C8C2) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\components\rtt_uart\usart.h)(0x54C0D275) +F (..\components\others\utils.c)(0x54C30EAD)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\utils.o" --omf_browse ".\Output\utils.crf" --depend ".\Output\utils.d") +I (..\components\others\utils.h)(0x5530C8E2) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\components\rtt_uart\usart.c)(0x54C0D275)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\usart.o" --omf_browse ".\Output\usart.crf" --depend ".\Output\usart.d") +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\components\rtt_uart\usart.h)(0x54C0D275) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\components\others\bsp.h)(0x5530C8C2) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\cpuport.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\cpuport.o" --omf_browse ".\Output\cpuport.crf" --depend ".\Output\cpuport.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\libcpu\arm\cortex-m3\context_rvds.S)(0x545CB528)(--cpu Cortex-M3 -g --apcs=interwork -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" --list ".\Output\list\context_rvds.lst" --xref -o ".\Output\context_rvds.o" --depend ".\Output\context_rvds.d") +F (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s)(0x545CB527)(--cpu Cortex-M3 -g --apcs=interwork -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" --list ".\Output\list\startup_stm32f10x_hd.lst" --xref -o ".\Output\startup_stm32f10x_hd.o" --depend ".\Output\startup_stm32f10x_hd.d") +F (..\..\..\..\easyflash\src\easyflash.c)(0x559796C4)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\easyflash.o" --omf_browse ".\Output\easyflash.crf" --depend ".\Output\easyflash.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +F (..\..\..\..\easyflash\src\ef_env.c)(0x559788F2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_env.o" --omf_browse ".\Output\ef_env.crf" --depend ".\Output\ef_env.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +F (..\..\..\..\easyflash\src\ef_env_wl.c)(0x559797C3)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_env_wl.o" --omf_browse ".\Output\ef_env_wl.crf" --depend ".\Output\ef_env_wl.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +F (..\..\..\..\easyflash\src\ef_iap.c)(0x5597877C)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_iap.o" --omf_browse ".\Output\ef_iap.crf" --depend ".\Output\ef_iap.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +F (..\..\..\..\easyflash\src\ef_utils.c)(0x55978410)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_utils.o" --omf_browse ".\Output\ef_utils.crf" --depend ".\Output\ef_utils.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +F (..\components\easyflash\port\ef_port.c)(0x5599F40B)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ef_port.o" --omf_browse ".\Output\ef_port.crf" --depend ".\Output\ef_port.d") +I (..\..\..\..\easyflash\inc\easyflash.h)(0x5599EABD) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (C:\Program Files\Keil\ARM\RV31\INC\stddef.h)(0x4C10B340) +I (C:\Program Files\Keil\ARM\RV31\INC\stdbool.h)(0x4BD5D7FC) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\misc.o" --omf_browse ".\Output\misc.crf" --depend ".\Output\misc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_adc.o" --omf_browse ".\Output\stm32f10x_adc.crf" --depend ".\Output\stm32f10x_adc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_bkp.o" --omf_browse ".\Output\stm32f10x_bkp.crf" --depend ".\Output\stm32f10x_bkp.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_can.o" --omf_browse ".\Output\stm32f10x_can.crf" --depend ".\Output\stm32f10x_can.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_cec.o" --omf_browse ".\Output\stm32f10x_cec.crf" --depend ".\Output\stm32f10x_cec.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_crc.o" --omf_browse ".\Output\stm32f10x_crc.crf" --depend ".\Output\stm32f10x_crc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h)(0x545CB527) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dac.o" --omf_browse ".\Output\stm32f10x_dac.crf" --depend ".\Output\stm32f10x_dac.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dbgmcu.o" --omf_browse ".\Output\stm32f10x_dbgmcu.crf" --depend ".\Output\stm32f10x_dbgmcu.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_dma.o" --omf_browse ".\Output\stm32f10x_dma.crf" --depend ".\Output\stm32f10x_dma.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_exti.o" --omf_browse ".\Output\stm32f10x_exti.crf" --depend ".\Output\stm32f10x_exti.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_flash.o" --omf_browse ".\Output\stm32f10x_flash.crf" --depend ".\Output\stm32f10x_flash.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_fsmc.o" --omf_browse ".\Output\stm32f10x_fsmc.crf" --depend ".\Output\stm32f10x_fsmc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_gpio.o" --omf_browse ".\Output\stm32f10x_gpio.crf" --depend ".\Output\stm32f10x_gpio.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_i2c.o" --omf_browse ".\Output\stm32f10x_i2c.crf" --depend ".\Output\stm32f10x_i2c.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_iwdg.o" --omf_browse ".\Output\stm32f10x_iwdg.crf" --depend ".\Output\stm32f10x_iwdg.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_pwr.o" --omf_browse ".\Output\stm32f10x_pwr.crf" --depend ".\Output\stm32f10x_pwr.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rcc.o" --omf_browse ".\Output\stm32f10x_rcc.crf" --depend ".\Output\stm32f10x_rcc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_rtc.o" --omf_browse ".\Output\stm32f10x_rtc.crf" --depend ".\Output\stm32f10x_rtc.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_sdio.o" --omf_browse ".\Output\stm32f10x_sdio.crf" --depend ".\Output\stm32f10x_sdio.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_spi.o" --omf_browse ".\Output\stm32f10x_spi.crf" --depend ".\Output\stm32f10x_spi.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h)(0x545CB527) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_tim.o" --omf_browse ".\Output\stm32f10x_tim.crf" --depend ".\Output\stm32f10x_tim.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_usart.o" --omf_browse ".\Output\stm32f10x_usart.crf" --depend ".\Output\stm32f10x_usart.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\stm32f10x_wwdg.o" --omf_browse ".\Output\stm32f10x_wwdg.crf" --depend ".\Output\stm32f10x_wwdg.d") +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\core_cm3.o" --omf_browse ".\Output\core_cm3.crf" --depend ".\Output\core_cm3.d") +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +F (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\system_stm32f10x.o" --omf_browse ".\Output\system_stm32f10x.crf" --depend ".\Output\system_stm32f10x.d") +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x545CB528) +I (..\Libraries\CMSIS_RVMDK\CM3\CoreSupport\core_cm3.h)(0x545CB528) +I (C:\Program Files\Keil\ARM\RV31\INC\stdint.h)(0x4BA13B96) +I (..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x545CB527) +I (..\app\inc\stm32f10x_conf.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x545CB527) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x545CB528) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x545CB529) +I (..\Libraries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\clock.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\clock.o" --omf_browse ".\Output\clock.crf" --depend ".\Output\clock.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\cpuusage.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\cpuusage.o" --omf_browse ".\Output\cpuusage.crf" --depend ".\Output\cpuusage.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\device.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\device.o" --omf_browse ".\Output\device.crf" --depend ".\Output\device.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\idle.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\idle.o" --omf_browse ".\Output\idle.crf" --depend ".\Output\idle.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\ipc.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ipc.o" --omf_browse ".\Output\ipc.crf" --depend ".\Output\ipc.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\irq.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\irq.o" --omf_browse ".\Output\irq.crf" --depend ".\Output\irq.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\kservice.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\kservice.o" --omf_browse ".\Output\kservice.crf" --depend ".\Output\kservice.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\mem.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\mem.o" --omf_browse ".\Output\mem.crf" --depend ".\Output\mem.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +F (..\RT-Thread-1.2.2\src\memheap.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\memheap.o" --omf_browse ".\Output\memheap.crf" --depend ".\Output\memheap.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\mempool.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\mempool.o" --omf_browse ".\Output\mempool.crf" --depend ".\Output\mempool.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\module.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\module.o" --omf_browse ".\Output\module.crf" --depend ".\Output\module.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\object.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\object.o" --omf_browse ".\Output\object.crf" --depend ".\Output\object.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\scheduler.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\scheduler.o" --omf_browse ".\Output\scheduler.crf" --depend ".\Output\scheduler.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\slab.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\slab.o" --omf_browse ".\Output\slab.crf" --depend ".\Output\slab.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\src\thread.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\thread.o" --omf_browse ".\Output\thread.crf" --depend ".\Output\thread.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\src\timer.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\timer.o" --omf_browse ".\Output\timer.crf" --depend ".\Output\timer.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\drivers\src\completion.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\completion.o" --omf_browse ".\Output\completion.crf" --depend ".\Output\completion.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\dataqueue.o" --omf_browse ".\Output\dataqueue.crf" --depend ".\Output\dataqueue.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\drivers\src\pipe.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\pipe.o" --omf_browse ".\Output\pipe.crf" --depend ".\Output\pipe.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\components\drivers\src\portal.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\portal.o" --omf_browse ".\Output\portal.crf" --depend ".\Output\portal.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\ringbuffer.o" --omf_browse ".\Output\ringbuffer.crf" --depend ".\Output\ringbuffer.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +F (..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\wrokqueue.o" --omf_browse ".\Output\wrokqueue.crf" --depend ".\Output\wrokqueue.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\components\drivers\serial\serial.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\serial.o" --omf_browse ".\Output\serial.crf" --depend ".\Output\serial.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\drivers\include\drivers/serial.h)(0x54631D35) +F (..\RT-Thread-1.2.2\components\finsh\cmd.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\cmd.o" --omf_browse ".\Output\cmd.crf" --depend ".\Output\cmd.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +F (..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_compiler.o" --omf_browse ".\Output\finsh_compiler.crf" --depend ".\Output\finsh_compiler.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_node.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_ops.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_vm.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\finsh_error.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_error.o" --omf_browse ".\Output\finsh_error.crf" --depend ".\Output\finsh_error.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +F (..\RT-Thread-1.2.2\components\finsh\finsh_heap.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_heap.o" --omf_browse ".\Output\finsh_heap.crf" --depend ".\Output\finsh_heap.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\finsh_init.c)(0x545CB529)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_init.o" --omf_browse ".\Output\finsh_init.crf" --depend ".\Output\finsh_init.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_node.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_vm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_parser.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_heap.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\finsh_node.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_node.o" --omf_browse ".\Output\finsh_node.crf" --depend ".\Output\finsh_node.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_node.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_heap.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\finsh_ops.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_ops.o" --omf_browse ".\Output\finsh_ops.crf" --depend ".\Output\finsh_ops.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh_ops.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_vm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\finsh_parser.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_parser.o" --omf_browse ".\Output\finsh_parser.crf" --depend ".\Output\finsh_parser.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_token.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_node.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_parser.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\finsh_token.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_token.o" --omf_browse ".\Output\finsh_token.crf" --depend ".\Output\finsh_token.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_token.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_error.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\finsh_var.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_var.o" --omf_browse ".\Output\finsh_var.crf" --depend ".\Output\finsh_var.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\finsh_vm.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\finsh_vm.o" --omf_browse ".\Output\finsh_vm.crf" --depend ".\Output\finsh_vm.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\finsh_vm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh_var.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\finsh_ops.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\msh.c)(0x545CB527)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\msh.o" --omf_browse ".\Output\msh.crf" --depend ".\Output\msh.d") +I (..\RT-Thread-1.2.2\components\finsh\msh.h)(0x545CB527) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\shell.h)(0x545CB528) +F (..\RT-Thread-1.2.2\components\finsh\msh_cmd.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\msh_cmd.o" --omf_browse ".\Output\msh_cmd.crf" --depend ".\Output\msh_cmd.d") +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\msh.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\shell.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\shell.o" --omf_browse ".\Output\shell.crf" --depend ".\Output\shell.d") +I (..\RT-Thread-1.2.2\include\rthw.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) +I (..\RT-Thread-1.2.2\components\finsh\shell.h)(0x545CB528) +I (..\RT-Thread-1.2.2\components\finsh\msh.h)(0x545CB527) +F (..\RT-Thread-1.2.2\components\finsh\symbol.c)(0x545CB528)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\app\inc -I..\components\rtt_uart -I..\components\others -I..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\Libraries\CMSIS_RVMDK\CM3\CoreSupport -I..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x -I..\RT-Thread-1.2.2\include -I..\RT-Thread-1.2.2\components\drivers\include -I..\RT-Thread-1.2.2\components\drivers\include\drivers -I..\RT-Thread-1.2.2\components\finsh -I..\..\..\..\easyflash\inc -I "C:\Program Files\Keil\ARM\INC" -I "C:\Program Files\Keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -DUSE_FULL_ASSERT -o ".\Output\symbol.o" --omf_browse ".\Output\symbol.crf" --depend ".\Output\symbol.d") +I (..\RT-Thread-1.2.2\components\finsh\finsh.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtthread.h)(0x545CB528) +I (..\app\inc\rtconfig.h)(0x5531F5F8) +I (..\RT-Thread-1.2.2\include\rtdebug.h)(0x545CB529) +I (..\RT-Thread-1.2.2\include\rtdef.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE) +I (..\RT-Thread-1.2.2\include\rtservice.h)(0x545CB528) +I (..\RT-Thread-1.2.2\include\rtm.h)(0x545CB527) +I (C:\Program Files\Keil\ARM\RV31\INC\ctype.h)(0x4BA13B98) +I (C:\Program Files\Keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE) +I (C:\Program Files\Keil\ARM\RV31\INC\string.h)(0x4BA13B9A) diff --git a/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvopt.bak b/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvopt.bak index a3ed52d..aab5c62 100644 --- a/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvopt.bak +++ b/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvopt.bak @@ -213,10 +213,10 @@ 1 0 0 - 25 + 101 0 1 - 7 + 1 0 ..\APP\src\app_task.c app_task.c @@ -391,7 +391,7 @@ 0 3 - 14 + 0 1 0 0 @@ -400,12 +400,12 @@ 0 0 0 - ..\components\flash\port\flash_port.c - flash_port.c + ..\..\..\..\easyflash\src\easyflash.c + easyflash.c 3 - 15 + 0 1 0 0 @@ -414,12 +414,12 @@ 0 0 0 - ..\..\..\..\flash\src\flash.c - flash.c + ..\..\..\..\easyflash\src\ef_env.c + ef_env.c 3 - 16 + 0 1 0 0 @@ -428,12 +428,12 @@ 0 0 0 - ..\..\..\..\flash\src\flash_env.c - flash_env.c + ..\..\..\..\easyflash\src\ef_env_wl.c + ef_env_wl.c 3 - 17 + 0 1 0 0 @@ -442,12 +442,12 @@ 0 0 0 - ..\..\..\..\flash\src\flash_env_wl.c - flash_env_wl.c + ..\..\..\..\easyflash\src\ef_iap.c + ef_iap.c 3 - 18 + 0 1 0 0 @@ -456,8 +456,8 @@ 0 0 0 - ..\..\..\..\flash\src\flash_iap.c - flash_iap.c + ..\..\..\..\easyflash\src\ef_utils.c + ef_utils.c 3 @@ -470,8 +470,8 @@ 0 0 0 - ..\..\..\..\flash\src\flash_utils.c - flash_utils.c + ..\components\easyflash\port\ef_port.c + ef_port.c @@ -3236,7 +3236,7 @@ 0 16 - 00000000000000009006000017000000 + 00000000000000009106000017000000 16 @@ -3256,7 +3256,7 @@ 0 16 - 00000000000000009006000017000000 + 00000000000000009106000017000000 16 @@ -3312,7 +3312,7 @@ File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -3344,7 +3344,7 @@ Debug 2582 - 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 + 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000000004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473010000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000 968 @@ -4933,9 +4933,9 @@ ..\APP\src\app_task.c - 25 + 101 1 - 7 + 1 diff --git a/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvproj.bak b/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvproj.bak index fa56fd3..fe9c57d 100644 --- a/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvproj.bak +++ b/demo/stm32f10x/rtt/RVMDK/EasyFlash_uvproj.bak @@ -345,7 +345,7 @@ USE_STDPERIPH_DRIVER,STM32F10X_HD,USE_FULL_ASSERT - ..\app\inc;..\components\rtt_uart;..\components\others;..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x;..\RT-Thread-1.2.2\include;..\RT-Thread-1.2.2\components\drivers\include;..\RT-Thread-1.2.2\components\drivers\include\drivers;..\RT-Thread-1.2.2\components\finsh;..\..\..\..\flash\inc + ..\app\inc;..\components\rtt_uart;..\components\others;..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\Libraries\CMSIS_RVMDK\CM3\CoreSupport;..\Libraries\CMSIS_RVMDK\CM3\DeviceSupport\ST\STM32F10x;..\RT-Thread-1.2.2\include;..\RT-Thread-1.2.2\components\drivers\include;..\RT-Thread-1.2.2\components\drivers\include\drivers;..\RT-Thread-1.2.2\components\finsh;..\..\..\..\easyflash\inc @@ -461,34 +461,34 @@ easyflash - flash_port.c + easyflash.c 1 - ..\components\flash\port\flash_port.c + ..\..\..\..\easyflash\src\easyflash.c - flash.c + ef_utils.c 1 - ..\..\..\..\flash\src\flash.c + ..\..\..\..\easyflash\src\ef_utils.c - flash_env.c + env.c 1 - ..\..\..\..\flash\src\flash_env.c + ..\..\..\..\easyflash\src\env.c - flash_env_wl.c + env_wl.c 1 - ..\..\..\..\flash\src\flash_env_wl.c + ..\..\..\..\easyflash\src\env_wl.c - flash_iap.c + iap.c 1 - ..\..\..\..\flash\src\flash_iap.c + ..\..\..\..\easyflash\src\iap.c - flash_utils.c + ef_port.c 1 - ..\..\..\..\flash\src\flash_utils.c + ..\components\easyflash\port\ef_port.c diff --git a/demo/stm32f10x/rtt/app/src/app_task.c b/demo/stm32f10x/rtt/app/src/app_task.c index a2b302d..e8456df 100644 --- a/demo/stm32f10x/rtt/app/src/app_task.c +++ b/demo/stm32f10x/rtt/app/src/app_task.c @@ -2,7 +2,7 @@ #include #include #include "bsp.h" -#include "flash.h" +#include "easyflash.h" #include "finsh.h" #include "shell.h" #include "delay_conf.h" @@ -64,7 +64,7 @@ void test_env(void) { char *c_old_boot_times, c_new_boot_times[11] = {0}; /* get the boot count number from Env */ - c_old_boot_times = flash_get_env("boot_times"); + c_old_boot_times = ef_get_env("boot_times"); RT_ASSERT(c_old_boot_times); i_boot_times = atol(c_old_boot_times); /* boot count +1 */ @@ -73,8 +73,8 @@ void test_env(void) { /* interger to string */ sprintf(c_new_boot_times,"%ld", i_boot_times); /* set and store the boot count number to Env */ - flash_set_env("boot_times", c_new_boot_times); - flash_save_env(); + ef_set_env("boot_times", c_new_boot_times); + ef_save_env(); } /** @@ -86,7 +86,7 @@ void sys_init_thread(void* parameter){ set_system_status(SYSTEM_STATUS_INIT); /* EasyFlash initialization */ - if (flash_init() == FLASH_NO_ERR) { + if (easyflash_init() == EF_NO_ERR) { /* initialize OK and switch to running status */ set_system_status(SYSTEM_STATUS_RUN); /* test Env demo */ diff --git a/demo/stm32f10x/rtt/app/src/user_finsh_cmd.c b/demo/stm32f10x/rtt/app/src/user_finsh_cmd.c index 1fb3bcc..9d70a42 100644 --- a/demo/stm32f10x/rtt/app/src/user_finsh_cmd.c +++ b/demo/stm32f10x/rtt/app/src/user_finsh_cmd.c @@ -7,7 +7,7 @@ #include #include #include -#include "flash.h" +#include "easyflash.h" #include "finsh.h" void reboot(uint8_t argc, char **argv) { @@ -32,28 +32,28 @@ void setenv(uint8_t argc, char **argv) { } } if (argc == 1) { - flash_set_env(value, value); + ef_set_env(value, value); } else if (argc == 2) { - flash_set_env(argv[1], value); + ef_set_env(argv[1], value); } else { - flash_set_env(argv[1], argv[2]); + ef_set_env(argv[1], argv[2]); } } MSH_CMD_EXPORT(setenv, Set an envrionment variable.); void printenv(uint8_t argc, char **argv) { - flash_print_env(); + ef_print_env(); } MSH_CMD_EXPORT(printenv, Print all envrionment variables.); void saveenv(uint8_t argc, char **argv) { - flash_save_env(); + ef_save_env(); } MSH_CMD_EXPORT(saveenv, Save all envrionment variables to flash.); void getvalue(uint8_t argc, char **argv) { char *value = NULL; - value = flash_get_env(argv[1]); + value = ef_get_env(argv[1]); if (value) { rt_kprintf("The %s value is %s.\n", argv[1], value); } else { diff --git a/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c b/demo/stm32f10x/rtt/components/easyflash/port/ef_port.c similarity index 74% rename from demo/stm32f10x/rtt/components/easyflash/port/flash_port.c rename to demo/stm32f10x/rtt/components/easyflash/port/ef_port.c index a84ba26..58915b5 100644 --- a/demo/stm32f10x/rtt/components/easyflash/port/flash_port.c +++ b/demo/stm32f10x/rtt/components/easyflash/port/ef_port.c @@ -26,7 +26,7 @@ * Created on: 2015-01-16 */ -#include "flash.h" +#include "easyflash.h" #include #include #include @@ -39,21 +39,21 @@ #endif /* Environment variables start address */ -#define FLASH_ENV_START_ADDR (FLASH_BASE + 100 * 1024) /* from the chip position: 100KB */ +#define ENV_START_ADDR (FLASH_BASE + 100 * 1024) /* from the chip position: 100KB */ /* the minimum size of flash erasure */ -#define FLASH_ERASE_MIN_SIZE PAGE_SIZE /* it is one page for STM32 */ -#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE +#define ERASE_MIN_SIZE PAGE_SIZE /* it is one page for STM32 */ +#ifdef EF_ENV_USING_WL_MODE /* ENV section total bytes size in wear leveling mode. */ -#define FLASH_ENV_SECTION_SIZE (4 * FLASH_ERASE_MIN_SIZE)/* 8K */ +#define ENV_SECTION_SIZE (4 * ERASE_MIN_SIZE) /* 8K */ #else /* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */ -#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE) +#define ENV_SECTION_SIZE (EF_USER_SETTING_ENV_SIZE) #endif /* print debug information of flash */ -#define FLASH_PRINT_DEBUG +#define PRINT_DEBUG /* default environment variables set for user */ -static const flash_env default_env_set[] = { +static const ef_env default_env_set[] = { {"iap_need_copy_app","0"}, {"iap_copy_app_size","0"}, {"stop_in_bootloader","0"}, @@ -61,7 +61,7 @@ static const flash_env default_env_set[] = { {"boot_times","0"}, }; -static char log_buf[RT_CONSOLEBUF_SIZE]; +static char log_buf[128]; static struct rt_semaphore env_cache_lock; /** @@ -76,25 +76,24 @@ static struct rt_semaphore env_cache_lock; * * @return result */ -FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size, size_t *log_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, + ef_env const **default_env, size_t *default_env_size, size_t *log_size) { + EfErrCode result = EF_NO_ERR; + + EF_ASSERT(EF_USER_SETTING_ENV_SIZE % 4 == 0); + EF_ASSERT(ENV_SECTION_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_ENV_SECTION_SIZE % 4 == 0); - - *env_addr = FLASH_ENV_START_ADDR; - *env_total_size = FLASH_ENV_SECTION_SIZE; - *erase_min_size = FLASH_ERASE_MIN_SIZE; + *env_addr = ENV_START_ADDR; + *env_total_size = ENV_SECTION_SIZE; + *erase_min_size = ERASE_MIN_SIZE; *default_env = default_env_set; - *default_env_size = sizeof(default_env_set)/sizeof(default_env_set[0]); - + *default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]); + rt_sem_init(&env_cache_lock, "env lock", 1, RT_IPC_FLAG_PRIO); return result; } - /** * Read data from flash. * @note This operation's units is word. @@ -105,10 +104,10 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t * * @return result */ -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(size % 4 == 0); + EF_ASSERT(size % 4 == 0); /*copy from flash to ram */ for (; size > 0; size -= 4, addr += 4, buf++) { @@ -128,13 +127,13 @@ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { * * @return result */ -FlashErrCode flash_erase(uint32_t addr, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_erase(uint32_t addr, size_t size) { + EfErrCode result = EF_NO_ERR; FLASH_Status flash_status; size_t erase_pages, i; /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ - FLASH_ASSERT(addr % FLASH_ERASE_MIN_SIZE == 0); + EF_ASSERT(addr % ERASE_MIN_SIZE == 0); /* calculate pages */ erase_pages = size / PAGE_SIZE; @@ -148,7 +147,7 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { for (i = 0; i < erase_pages; i++) { flash_status = FLASH_ErasePage(addr + (PAGE_SIZE * i)); if (flash_status != FLASH_COMPLETE) { - result = FLASH_ERASE_ERR; + result = EF_ERASE_ERR; break; } } @@ -167,13 +166,13 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { * * @return result */ -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; size_t i; uint32_t read_data; - FLASH_ASSERT(size % 4 == 0); - + EF_ASSERT(size % 4 == 0); + FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); for (i = 0; i < size; i += 4, buf++, addr += 4) { @@ -182,7 +181,7 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { read_data = *(uint32_t *)addr; /* check data */ if (read_data != *buf) { - result = FLASH_WRITE_ERR; + result = EF_WRITE_ERR; break; } } @@ -194,17 +193,18 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { /** * lock the ENV ram cache */ -void flash_env_lock(void) { +void ef_port_env_lock(void) { rt_sem_take(&env_cache_lock, RT_WAITING_FOREVER); } /** * unlock the ENV ram cache */ -void flash_env_unlock(void) { +void ef_port_env_unlock(void) { rt_sem_release(&env_cache_lock); } + /** * This function is print flash debug info. * @@ -214,18 +214,18 @@ void flash_env_unlock(void) { * @param ... args * */ -void flash_log_debug(const char *file, const long line, const char *format, ...) { +void ef_log_debug(const char *file, const long line, const char *format, ...) { -#ifdef FLASH_PRINT_DEBUG +#ifdef PRINT_DEBUG va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash](%s:%ld) ", file, line); + ef_print("[Flash](%s:%ld) ", file, line); /* must use vprintf to print */ rt_vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); va_end(args); #endif @@ -238,15 +238,15 @@ void flash_log_debug(const char *file, const long line, const char *format, ...) * @param format output format * @param ... args */ -void flash_log_info(const char *format, ...) { +void ef_log_info(const char *format, ...) { va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash]"); + ef_print("[Flash]"); /* must use vprintf to print */ rt_vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); va_end(args); } /** @@ -255,7 +255,7 @@ void flash_log_info(const char *format, ...) { * @param format output format * @param ... args */ -void flash_print(const char *format, ...) { +void ef_print(const char *format, ...) { va_list args; /* args point to the first variable parameter */ diff --git a/demo/stm32f4xx/EWARM/EasyFlash.dep b/demo/stm32f4xx/EWARM/EasyFlash.dep index 2e14498..f758024 100644 --- a/demo/stm32f4xx/EWARM/EasyFlash.dep +++ b/demo/stm32f4xx/EWARM/EasyFlash.dep @@ -2,2106 +2,2267 @@ 2 - 963838495 + 798699133 STM32F405RG - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_aes.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dcmi.o - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\cpuport.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_tim.pbi - $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c - $PROJ_DIR$\STM32F405RG\Obj\misc.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_adc.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_can.o - $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_crc.o - $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c - $PROJ_DIR$\STM32F405RG\Obj\usart.o - $PROJ_DIR$\STM32F405RG\Obj\system_stm32f4xx.o - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c - $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\context_iar.S - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_syscfg.pbi - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c - $PROJ_DIR$\STM32F405RG\Obj\app_task.o - $PROJ_DIR$\STM32F405RG\Obj\flash_port.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_tdes.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_it.o - $PROJ_DIR$\STM32F405RG\Obj\app.o - $PROJ_DIR$\STM32F405RG\Obj\user_finsh_cmd.o - $PROJ_DIR$\STM32F405RG\Obj\flash_env.o - $PROJ_DIR$\STM32F405RG\Obj\flash.o - $PROJ_DIR$\STM32F405RG\Obj\flash_env_wl.o - $PROJ_DIR$\STM32F405RG\Obj\flash_iap.o - $PROJ_DIR$\STM32F405RG\Obj\flash_utils.o - $PROJ_DIR$\STM32F405RG\Obj\bsp.o - $PROJ_DIR$\STM32F405RG\Obj\utils.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma.o $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_des.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dbgmcu.o $PROJ_DIR$\..\components\rtt_uart\usart.c - $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_utils.c - $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f40_41xxx.s + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dac.o + $PROJ_DIR$\..\app\inc\rtconfig.h $PROJ_DIR$\..\..\..\easyflash\src\flash.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_iap.c - $PROJ_DIR$\..\components\easyflash\port\flash_port.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_env.c $PROJ_DIR$\..\..\..\easyflash\src\flash_env_wl.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c $PROJ_DIR$\..\components\others\bsp.c - $PROJ_DIR$\..\app\inc\rtconfig.h + $PROJ_DIR$\..\components\others\utils.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\app\src\stm32f4xx_it.c + $PROJ_DIR$\..\components\easyflash\port\flash_port.c $PROJ_DIR$\..\app\src\app.c $PROJ_DIR$\..\app\src\app_task.c - $PROJ_DIR$\..\app\src\stm32f4xx_it.c $PROJ_DIR$\..\app\src\user_finsh_cmd.c - $PROJ_DIR$\..\components\others\utils.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f40_41xxx.s + $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sai.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash_ramfunc.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma2d.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash_ramfunc.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma2d.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sai.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c + $PROJ_DIR$\STM32F405RG\Obj\usart.o + $PROJ_DIR$\STM32F405RG\Obj\system_stm32f4xx.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_des.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dac.o + $PROJ_DIR$\STM32F405RG\Obj\user_finsh_cmd.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_can.o + $PROJ_DIR$\STM32F405RG\Obj\flash_env_wl.o + $PROJ_DIR$\STM32F405RG\Obj\flash_utils.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_i2c.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rtc.o + $PROJ_DIR$\STM32F405RG\Obj\completion.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dbgmcu.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_wwdg.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_md5.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_crc.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_tdes.o + $PROJ_DIR$\STM32F405RG\Obj\flash_iap.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_syscfg.pbi + $PROJ_DIR$\STM32F405RG\Obj\app_task.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_it.o + $PROJ_DIR$\STM32F405RG\Obj\flash_env.o + $PROJ_DIR$\STM32F405RG\Obj\flash_port.o + $PROJ_DIR$\STM32F405RG\Obj\bsp.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_syscfg.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_tim.o + $PROJ_DIR$\STM32F405RG\Obj\flash.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_pwr.o - $PROJ_DIR$\STM32F405RG\Obj\completion.o + $PROJ_DIR$\STM32F405RG\Obj\utils.o $PROJ_DIR$\STM32F405RG\Obj\dataqueue.o + $PROJ_DIR$\STM32F405RG\Obj\app.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_gpio.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_wwdg.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rtc.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_aes.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dcmi.o + $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_tim.pbi + $PROJ_DIR$\STM32F405RG\Obj\misc.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_adc.o $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_fsmc.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_md5.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash_ramfunc.o - $PROJ_DIR$\STM32F405RG\Obj\pipe.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_iwdg.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rng.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_sha1.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sai.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_usart.o - $PROJ_DIR$\STM32F405RG\Obj\portal.o - $PROJ_DIR$\STM32F405RG\Obj\ringbuffer.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rcc.o - $PROJ_DIR$\STM32F405RG\Obj\memheap.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_ltdc.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_spi.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_exti.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma2d.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sdio.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash.o - $PROJ_DIR$\STM32F405RG\Obj\wrokqueue.o - $PROJ_DIR$\STM32F405RG\Obj\device.o - $PROJ_DIR$\STM32F405RG\Obj\irq.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_parser.o - $PROJ_DIR$\STM32F405RG\Obj\cmd.o - $PROJ_DIR$\STM32F405RG\Obj\msh.o - $PROJ_DIR$\STM32F405RG\Obj\serial.o - $PROJ_DIR$\STM32F405RG\Obj\shell.o - $PROJ_DIR$\STM32F405RG\Obj\clock.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_token.o - $PROJ_DIR$\STM32F405RG\Obj\ipc.o - $PROJ_DIR$\STM32F405RG\Obj\kservice.o - $PROJ_DIR$\STM32F405RG\Obj\msh_cmd.o - $PROJ_DIR$\STM32F405RG\Obj\mem.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_var.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_init.o - $PROJ_DIR$\STM32F405RG\Obj\idle.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_compiler.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_error.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_heap.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_node.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_ops.o - $PROJ_DIR$\STM32F405RG\Obj\finsh_vm.o - $PROJ_DIR$\STM32F405RG\Obj\symbol.o - $PROJ_DIR$\STM32F405RG\Obj\cpuusage.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_des.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash.pbi - $PROJ_DIR$\STM32F405RG\Obj\misc.pbi - $PROJ_DIR$\STM32F405RG\Obj\system_stm32f4xx.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_adc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_md5.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_fsmc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_iwdg.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash_ramfunc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dac.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_ltdc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_can.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp.pbi - $PROJ_DIR$\STM32F405RG\Obj\usart.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_gpio.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_pwr.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_tdes.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dcmi.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma2d.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_sha1.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dbgmcu.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sdio.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_aes.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_exti.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rcc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_crc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_i2c.pbi - $PROJ_DIR$\STM32F405RG\Obj\flash.pbi - $PROJ_DIR$\STM32F405RG\Obj\scheduler.o - $PROJ_DIR$\STM32F405RG\Obj\app.pbi - $PROJ_DIR$\STM32F405RG\Obj\thread.o - $PROJ_DIR$\STM32F405RG\Obj\flash_port.pbi - $PROJ_DIR$\STM32F405RG\Obj\timer.o - $PROJ_DIR$\STM32F405RG\Obj\flash_env.pbi - $PROJ_DIR$\STM32F405RG\Obj\user_finsh_cmd.pbi - $PROJ_DIR$\STM32F405RG\Obj\flash_env_wl.pbi - $PROJ_DIR$\STM32F405RG\Obj\flash_iap.pbi - $PROJ_DIR$\STM32F405RG\Obj\context_iar.o - $PROJ_DIR$\STM32F405RG\Obj\flash_utils.pbi - $PROJ_DIR$\STM32F405RG\Obj\startup_stm32f40_41xxx.o - $PROJ_DIR$\STM32F405RG\Obj\bsp.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rtc.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sai.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_it.pbi - $PROJ_DIR$\STM32F405RG\Obj\slab.o - $PROJ_DIR$\STM32F405RG\Obj\utils.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rng.pbi - $PROJ_DIR$\STM32F405RG\Obj\cpuport.o - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_spi.pbi - $PROJ_DIR$\STM32F405RG\Obj\mempool.o - $PROJ_DIR$\STM32F405RG\Obj\object.o + $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\context_iar.S + $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\cpuport.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp.o + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c + $PROJ_DIR$\STM32F405RG\Obj\EasyFlash.pbd + $PROJ_DIR$\STM32F405RG\Obj\ringbuffer.pbi $PROJ_DIR$\STM32F405RG\Obj\app_task.pbi - $PROJ_DIR$\STM32F405RG\Obj\module.o - $PROJ_DIR$\STM32F405RG\Obj\irq.pbi $PROJ_DIR$\STM32F405RG\Obj\kservice.pbi + $PROJ_DIR$\STM32F405RG\Obj\device.pbi + $PROJ_DIR$\STM32F405RG\Exe\EasyFlash.bin $PROJ_DIR$\STM32F405RG\Obj\object.pbi - $PROJ_DIR$\STM32F405RG\Obj\EasyFlash.pbd + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rtc.pbi + $PROJ_DIR$\STM32F405RG\Obj\module.o + $PROJ_DIR$\STM32F405RG\Obj\mem.pbi + $PROJ_DIR$\STM32F405RG\Obj\cpuport.o $PROJ_DIR$\STM32F405RG\Obj\module.pbi $PROJ_DIR$\STM32F405RG\Obj\thread.pbi - $PROJ_DIR$\STM32F405RG\Obj\cpuusage.pbi - $PROJ_DIR$\STM32F405RG\Exe\EasyFlash.bin - $PROJ_DIR$\STM32F405RG\Obj\memheap.pbi - $PROJ_DIR$\STM32F405RG\Obj\device.pbi - $PROJ_DIR$\STM32F405RG\Obj\scheduler.pbi - $PROJ_DIR$\STM32F405RG\Obj\mem.pbi - $PROJ_DIR$\STM32F405RG\Obj\mempool.pbi $PROJ_DIR$\STM32F405RG\Obj\ipc.pbi + $PROJ_DIR$\STM32F405RG\Obj\mempool.pbi $PROJ_DIR$\STM32F405RG\Obj\slab.pbi - $PROJ_DIR$\STM32F405RG\Obj\cpuport.pbi + $PROJ_DIR$\STM32F405RG\Obj\utils.pbi $PROJ_DIR$\STM32F405RG\Obj\timer.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_spi.pbi + $PROJ_DIR$\STM32F405RG\Obj\memheap.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sai.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rng.pbi + $PROJ_DIR$\STM32F405RG\Obj\bsp.pbi + $PROJ_DIR$\STM32F405RG\Obj\object.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_it.pbi + $PROJ_DIR$\STM32F405RG\Obj\mempool.o + $PROJ_DIR$\STM32F405RG\Obj\cpuusage.pbi + $PROJ_DIR$\STM32F405RG\Obj\scheduler.pbi $PROJ_DIR$\STM32F405RG\Exe\EasyFlash.out + $PROJ_DIR$\STM32F405RG\Obj\cpuport.pbi + $PROJ_DIR$\STM32F405RG\Obj\slab.o + $PROJ_DIR$\STM32F405RG\Obj\irq.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_sha1.pbi + $PROJ_DIR$\STM32F405RG\Obj\timer.o + $PROJ_DIR$\STM32F405RG\Obj\flash_env.pbi + $PROJ_DIR$\STM32F405RG\Obj\flash_utils.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dcmi.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_exti.pbi + $PROJ_DIR$\STM32F405RG\Obj\context_iar.o $PROJ_DIR$\STM32F405RG\Obj\idle.pbi - $PROJ_DIR$\STM32F405RG\Obj\ringbuffer.pbi - $PROJ_DIR$\STM32F405RG\Obj\clock.pbi - $PROJ_DIR$\STM32F405RG\Obj\cmd.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_var.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_wwdg.pbi - $PROJ_DIR$\STM32F405RG\Obj\pipe.pbi - $PROJ_DIR$\STM32F405RG\Obj\serial.pbi - $PROJ_DIR$\STM32F405RG\Obj\wrokqueue.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_compiler.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_heap.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_init.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_ops.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_error.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_parser.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_token.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_vm.pbi - $PROJ_DIR$\STM32F405RG\Obj\completion.pbi - $PROJ_DIR$\STM32F405RG\Obj\dataqueue.pbi - $PROJ_DIR$\STM32F405RG\Obj\portal.pbi - $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_usart.pbi - $PROJ_DIR$\STM32F405RG\Obj\finsh_node.pbi - $PROJ_DIR$\STM32F405RG\Obj\msh.pbi - $PROJ_DIR$\STM32F405RG\Obj\msh_cmd.pbi - $PROJ_DIR$\STM32F405RG\Obj\shell.pbi - $PROJ_DIR$\STM32F405RG\Obj\symbol.pbi - $TOOLKIT_DIR$\inc\c\stdint.h - $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\STM32F405RG\Obj\user_finsh_cmd.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rcc.pbi + $PROJ_DIR$\STM32F405RG\Obj\app.pbi + $PROJ_DIR$\STM32F405RG\Obj\flash_port.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_pwr.pbi + $PROJ_DIR$\STM32F405RG\Obj\flash_env_wl.pbi + $PROJ_DIR$\STM32F405RG\Obj\flash_iap.pbi + $PROJ_DIR$\STM32F405RG\Obj\startup_stm32f40_41xxx.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma2d.pbi + $PROJ_DIR$\STM32F405RG\Obj\flash.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sdio.pbi + $PROJ_DIR$\STM32F405RG\Obj\scheduler.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_aes.pbi + $PROJ_DIR$\STM32F405RG\Obj\thread.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_tdes.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_crc.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_gpio.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dbgmcu.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_i2c.pbi + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtthread.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtm.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rthw.h + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\..\..\easyflash\inc\flash.h + $TOOLKIT_DIR$\inc\c\stddef.h $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h $TOOLKIT_DIR$\inc\c\ycheck.h - $PROJ_DIR$\..\..\..\easyflash\inc\flash.h $TOOLKIT_DIR$\inc\c\DLib_Product.h $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $TOOLKIT_DIR$\inc\c\string.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\stddef.h $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $TOOLKIT_DIR$\inc\c\stdbool.h $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cm4.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\misc.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_can.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtservice.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtm.h + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h + $TOOLKIT_DIR$\inc\c\stdbool.h + $TOOLKIT_DIR$\inc\c\ysizet.h $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdebug.h + $PROJ_DIR$\..\app\inc\stm32f4xx_conf.h + $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cm4.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\misc.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cmFunc.h $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cmInstr.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rthw.h $TOOLKIT_DIR$\inc\c\cmsis_iar.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtthread.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdebug.h - $PROJ_DIR$\..\app\inc\stm32f4xx_conf.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h - $TOOLKIT_DIR$\inc\c\stdarg.h $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + $PROJ_DIR$\STM32F405RG\Obj\wrokqueue.pbi + $PROJ_DIR$\STM32F405RG\Obj\completion.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_node.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_wwdg.pbi + $PROJ_DIR$\STM32F405RG\Obj\pipe.pbi + $PROJ_DIR$\STM32F405RG\Obj\msh_cmd.pbi + $PROJ_DIR$\STM32F405RG\Obj\shell.pbi + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\STM32F405RG\Obj\finsh_vm.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_compiler.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_init.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_error.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_parser.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_var.pbi + $PROJ_DIR$\STM32F405RG\Obj\serial.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_heap.pbi + $PROJ_DIR$\STM32F405RG\Obj\portal.pbi + $PROJ_DIR$\STM32F405RG\Obj\cmd.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_ops.pbi + $PROJ_DIR$\STM32F405RG\Obj\clock.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_token.pbi + $PROJ_DIR$\STM32F405RG\Obj\dataqueue.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_usart.pbi + $PROJ_DIR$\STM32F405RG\Obj\msh.pbi + $PROJ_DIR$\STM32F405RG\Obj\symbol.pbi + $TOOLKIT_DIR$\inc\c\stdint.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash.h - $TOOLKIT_DIR$\inc\c\intrinsics.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdef.h - $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cmSimd.h - $TOOLKIT_DIR$\inc\c\xmtx.h - $PROJ_DIR$\..\RT-Thread-1.2.2\include\cpuusage.h - $TOOLKIT_DIR$\inc\c\stdio.h - $PROJ_DIR$\..\components\others\bsp.h - $TOOLKIT_DIR$\inc\c\xlocale_c.h - $PROJ_DIR$\..\components\others\utils.h - $TOOLKIT_DIR$\inc\c\wchar.h - $PROJ_DIR$\..\app\inc\app_task.h - $PROJ_DIR$\..\components\rtt_uart\usart.h - $TOOLKIT_DIR$\inc\c\ctype.h - $TOOLKIT_DIR$\inc\c\xlocale.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h - $TOOLKIT_DIR$\inc\c\ystdio.h - $TOOLKIT_DIR$\inc\c\xtls.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\drivers\serial.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.h - $PROJ_DIR$\..\app\inc\delay_conf.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh.h - $TOOLKIT_DIR$\inc\c\xlocaleuse.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h $PROJ_DIR$\..\app\inc\stm32f4xx_it.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dac.h $TOOLKIT_DIR$\lib\shb_l.a - $TOOLKIT_DIR$\lib\rt7M_tl.a $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash_ramfunc.h $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_ltdc.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_crc.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.h - $PROJ_DIR$\..\components\others\stm32f405xG.icf + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h $TOOLKIT_DIR$\lib\m7M_tl.a - $TOOLKIT_DIR$\lib\dl7M_tln.a $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dcmi.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h + $PROJ_DIR$\..\components\others\stm32f405xG.icf $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_cryp.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma2d.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h + $TOOLKIT_DIR$\lib\dl7M_tln.a $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.h $PROJ_DIR$\STM32F405RG\List\EasyFlash.map $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.h + $TOOLKIT_DIR$\inc\c\xlocaleuse.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_ltdc.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_hash.h $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.h + $TOOLKIT_DIR$\inc\c\intrinsics.h + $PROJ_DIR$\..\app\inc\app_task.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\rtdevice.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h + $PROJ_DIR$\..\components\others\bsp.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h + $TOOLKIT_DIR$\inc\c\xmtx.h + $TOOLKIT_DIR$\inc\c\wchar.h + $PROJ_DIR$\..\components\rtt_uart\usart.h + $TOOLKIT_DIR$\inc\c\ctype.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\cpuusage.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\include\drivers\serial.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.h + $PROJ_DIR$\..\app\inc\delay_conf.h + $PROJ_DIR$\..\Libraries\CMSIS\Include\core_cmSimd.h + $PROJ_DIR$\..\components\others\utils.h + $TOOLKIT_DIR$\inc\c\xlocale.h + $TOOLKIT_DIR$\inc\c\xlocale_c.h + $TOOLKIT_DIR$\inc\c\ystdio.h + $TOOLKIT_DIR$\inc\c\xtls.h + $TOOLKIT_DIR$\inc\c\stdio.h + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh.h + $PROJ_DIR$\..\RT-Thread-1.2.2\include\rtdef.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sai.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sai.h + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rng.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_ltdc.o + $PROJ_DIR$\STM32F405RG\Obj\wrokqueue.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma2d.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_token.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_sha1.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash.o + $PROJ_DIR$\STM32F405RG\Obj\msh_cmd.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_usart.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_exti.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sdio.o + $PROJ_DIR$\STM32F405RG\Obj\irq.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_spi.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_iwdg.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_sai.o + $PROJ_DIR$\STM32F405RG\Obj\device.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_parser.o + $PROJ_DIR$\STM32F405RG\Obj\memheap.o + $PROJ_DIR$\STM32F405RG\Obj\cmd.o + $PROJ_DIR$\STM32F405RG\Obj\ringbuffer.o + $PROJ_DIR$\STM32F405RG\Obj\serial.o + $PROJ_DIR$\STM32F405RG\Obj\shell.o + $PROJ_DIR$\STM32F405RG\Obj\pipe.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash_ramfunc.o + $PROJ_DIR$\STM32F405RG\Obj\portal.o + $PROJ_DIR$\STM32F405RG\Obj\msh.o + $PROJ_DIR$\STM32F405RG\Obj\clock.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_rcc.o + $PROJ_DIR$\STM32F405RG\Obj\ipc.o + $PROJ_DIR$\STM32F405RG\Obj\kservice.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp.pbi + $PROJ_DIR$\STM32F405RG\Obj\system_stm32f4xx.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_fsmc.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dma.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_ops.o + $PROJ_DIR$\STM32F405RG\Obj\idle.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_can.pbi + $PROJ_DIR$\STM32F405RG\Obj\usart.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_dac.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_var.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_init.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_cryp_des.pbi + $PROJ_DIR$\STM32F405RG\Obj\symbol.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_flash_ramfunc.pbi + $PROJ_DIR$\STM32F405RG\Obj\misc.pbi + $PROJ_DIR$\STM32F405RG\Obj\mem.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_node.o + $PROJ_DIR$\STM32F405RG\Obj\cpuusage.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash_md5.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_iwdg.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_heap.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_ltdc.pbi + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_adc.pbi + $PROJ_DIR$\STM32F405RG\Obj\finsh_compiler.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_error.o + $PROJ_DIR$\STM32F405RG\Obj\finsh_vm.o + $PROJ_DIR$\STM32F405RG\Obj\stm32f4xx_hash.pbi + $PROJ_DIR$\STM32F405RG\Obj\ef_env.o + $PROJ_DIR$\STM32F405RG\Obj\ef_iap.o + $PROJ_DIR$\STM32F405RG\Obj\ef_utils.o + $PROJ_DIR$\STM32F405RG\Obj\easyflash.pbi + $PROJ_DIR$\STM32F405RG\Obj\easyflash.o + $PROJ_DIR$\STM32F405RG\Obj\ef_env_wl.o + $PROJ_DIR$\STM32F405RG\Obj\ef_port.o + $PROJ_DIR$\STM32F405RG\Obj\ef_port.pbi + $PROJ_DIR$\..\..\..\easyflash\inc\easyflash.h + $PROJ_DIR$\..\..\..\easyflash\src\easyflash.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env_wl.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_iap.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_utils.c + $PROJ_DIR$\STM32F405RG\Obj\ef_utils.pbi + $PROJ_DIR$\STM32F405RG\Obj\ef_iap.pbi + $PROJ_DIR$\STM32F405RG\Obj\ef_env_wl.pbi + $PROJ_DIR$\STM32F405RG\Obj\ef_env.pbi - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\cpuport.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c + + + BICOMP + 180 + + + ICCARM + 320 + + + + + ICCARM + 250 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 + + + + + [ROOT_NODE] + + + ILINK + 158 267 + + + + + $PROJ_DIR$\..\components\rtt_uart\usart.c BICOMP - 243 + 348 ICCARM - 222 + 75 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 211 214 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 288 193 189 4 210 302 194 204 192 283 281 291 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c BICOMP - 248 + 355 ICCARM - 156 + 112 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 213 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c BICOMP - 238 + 363 ICCARM - 203 + 113 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 214 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c + $PROJ_DIR$\..\..\..\easyflash\src\flash.c BICOMP - 246 + 179 ICCARM - 164 + 100 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 195 246 198 228 197 215 199 201 200 196 208 207 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_env_wl.c BICOMP - 237 + 175 ICCARM - 149 + 82 + + BICOMP + 195 246 198 228 197 215 199 201 200 196 208 207 205 191 202 + ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 195 246 198 228 197 215 199 201 200 196 208 207 205 191 202 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c + $PROJ_DIR$\..\components\others\bsp.c BICOMP - 232 + 152 ICCARM - 227 + 97 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 283 211 214 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 193 189 4 210 302 194 204 192 288 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c + $PROJ_DIR$\..\components\others\utils.c BICOMP - 233 + 146 ICCARM - 205 + 102 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 295 211 214 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 189 4 210 302 194 204 192 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_env.c BICOMP - 228 + 164 ICCARM - 150 + 95 + + BICOMP + 195 246 198 228 197 215 199 201 200 196 208 207 205 191 202 + ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 195 246 198 228 197 215 199 201 200 196 208 207 205 191 202 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c + $PROJ_DIR$\..\app\src\stm32f4xx_it.c BICOMP - 244 + 154 ICCARM - 207 + 94 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 251 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 283 193 189 4 210 302 194 204 192 288 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c + $PROJ_DIR$\..\components\easyflash\port\flash_port.c BICOMP - 234 + 173 + + + ICCARM + 96 + + + + + BICOMP + 195 246 198 228 197 215 199 201 200 196 208 207 193 189 4 210 302 194 204 192 211 214 220 212 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 ICCARM + 195 246 198 228 197 215 199 201 200 196 208 207 193 189 4 210 302 194 204 192 211 214 220 212 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 + + + + + $PROJ_DIR$\..\app\src\app.c + + + BICOMP 172 + + ICCARM + 104 + ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 280 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 211 214 220 212 246 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c + $PROJ_DIR$\..\app\src\app_task.c BICOMP - 241 + 132 ICCARM - 158 + 93 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 280 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 211 214 220 212 246 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 202 208 300 298 283 288 376 196 207 301 289 296 299 286 269 297 287 205 191 292 293 290 295 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c + $PROJ_DIR$\..\app\src\user_finsh_cmd.c BICOMP - 239 + 170 ICCARM - 161 + 80 + + BICOMP + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 211 214 220 212 246 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 376 196 208 207 301 289 296 299 286 202 269 297 287 205 191 + ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 330 322 323 326 313 286 282 331 317 319 280 281 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 211 214 220 212 246 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 376 196 208 207 301 289 296 299 286 202 269 297 287 205 191 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_iap.c BICOMP - 236 + 176 ICCARM - 140 + 91 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 195 246 198 228 197 215 199 201 200 196 208 207 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c + $PROJ_DIR$\..\..\..\easyflash\src\flash_utils.c BICOMP - 240 + 165 ICCARM - 224 + 83 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 195 246 198 228 197 215 199 201 200 196 208 207 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c + $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f40_41xxx.s + + + AARM + 177 + + + + + $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c BICOMP - 230 + 341 ICCARM - 225 + 76 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c BICOMP - 242 + 166 ICCARM - 219 + 108 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 + 260 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c BICOMP - 229 + 186 ICCARM - 159 + 105 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 298 + 284 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\context_iar.S + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c - AARM - 212 + BICOMP + 362 + + + ICCARM + 310 + + + ICCARM + 275 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 + + - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c BICOMP - 260 + 167 ICCARM - 151 + 318 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 340 350 345 358 342 + 282 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c BICOMP - 261 + 340 ICCARM - 157 + 128 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 340 345 + 263 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c BICOMP - 257 + 171 ICCARM - 163 + 337 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 350 354 342 358 345 360 + 285 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c BICOMP - 258 + 137 ICCARM - 169 + 106 ICCARM - 356 354 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 342 + 306 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + + + BICOMP + 174 + + + ICCARM + 101 + + + + + ICCARM + 258 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 + + + + + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c + + + BICOMP + 185 + + + ICCARM + 89 + + + + + ICCARM + 257 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 + + + + + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c BICOMP - 250 + 349 + + + ICCARM + 79 + + ICCARM + 253 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 + + + + + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + + + BICOMP 162 + + ICCARM + 314 + ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 342 + 276 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c BICOMP - 268 + 347 ICCARM - 153 + 81 ICCARM - 335 300 86 301 311 304 276 273 274 275 278 284 279 293 294 330 322 323 326 313 286 282 331 317 319 280 281 328 + 203 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c BICOMP - 270 + 352 ICCARM - 155 + 78 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 330 322 323 326 313 286 282 331 317 319 280 281 328 335 + 263 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c BICOMP - 249 + 151 ICCARM - 152 + 309 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 330 322 323 326 313 286 282 331 317 319 280 281 + 304 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sai.c BICOMP - 223 + 150 ICCARM - 142 + 324 ICCARM - 366 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 308 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c BICOMP - 6 + 343 ICCARM - 122 + 77 ICCARM - 303 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 292 289 291 + 261 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c BICOMP - 266 + 184 ICCARM - 136 + 90 ICCARM - 292 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 289 291 + 263 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash_ramfunc.c BICOMP - 251 + 354 ICCARM - 127 + 333 ICCARM - 367 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 255 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c BICOMP - 262 + 346 ICCARM - 170 + 319 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 354 342 356 + 247 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c BICOMP - 259 + 360 ICCARM - 166 + 323 ICCARM - 345 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 + 206 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c BICOMP - 269 + 182 ICCARM - 160 + 107 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 330 322 323 326 313 286 282 331 317 319 280 281 335 + 263 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c BICOMP - 271 + 187 ICCARM - 171 + 86 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 + 270 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma2d.c BICOMP - 247 + 178 ICCARM - 138 + 312 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 280 282 281 + 264 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c BICOMP - 254 + 342 ICCARM - 148 + 114 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 + 274 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c BICOMP - 28 + 367 ICCARM - 121 + 315 ICCARM - 363 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 276 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c BICOMP - 263 + 359 ICCARM - 124 + 88 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 + 276 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c BICOMP - 264 + 188 ICCARM - 125 + 84 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 298 + 248 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\cpuusage.c BICOMP - 265 + 156 ICCARM - 137 + 358 ICCARM - 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c BICOMP - 253 + 236 ICCARM - 154 + 361 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 272 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\dataqueue.c BICOMP - 252 + 242 ICCARM - 131 + 103 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 324 327 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 193 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c BICOMP - 255 + 111 ICCARM - 165 + 99 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 350 345 342 356 354 + 219 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 190 213 203 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_heap.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_var.c BICOMP - 256 + 234 ICCARM - 167 + 350 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 342 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 272 - $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_error.c BICOMP - 267 + 232 ICCARM - 168 + 365 ICCARM - 330 300 86 301 311 304 276 273 274 275 278 284 279 293 294 322 323 326 313 286 282 331 317 319 280 281 350 345 342 360 + 278 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_init.c BICOMP - 196 + 231 ICCARM - 146 + 351 ICCARM - 361 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 273 266 272 277 278 249 - [ROOT_NODE] - - - ILINK - 245 355 - - - - - $PROJ_DIR$\..\components\rtt_uart\usart.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_vm.c BICOMP - 188 + 229 ICCARM - 19 + 366 ICCARM - 302 290 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 321 298 300 86 301 311 304 293 294 316 324 327 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 266 272 268 - $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_parser.c BICOMP - 176 + 233 ICCARM - 20 + 326 ICCARM - 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 256 273 278 277 272 - $PROJ_DIR$\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\pipe.c BICOMP - 213 + 225 ICCARM - 66 + 332 ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 - $PROJ_DIR$\..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f40_41xxx.s - - - AARM - 214 - - - - - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c BICOMP - 177 + 148 ICCARM - 11 + 322 ICCARM - 290 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 308 306 309 288 310 303 292 289 291 + 307 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c BICOMP - 202 + 92 ICCARM - 63 + 98 ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 + 303 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\completion.c BICOMP - 211 + 222 ICCARM - 65 + 85 ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_ops.c BICOMP - 206 + 239 ICCARM - 57 + 344 - - BICOMP - 277 272 276 273 274 275 278 284 279 283 282 285 298 300 86 301 311 304 293 294 302 290 305 287 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 - ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 298 300 86 301 311 304 293 294 302 290 305 287 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 + 268 266 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 272 - $PROJ_DIR$\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_token.c BICOMP - 208 + 241 ICCARM - 62 + 313 - - BICOMP - 277 272 276 273 274 275 278 284 279 283 282 285 280 281 286 - ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 280 281 286 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 256 278 - $PROJ_DIR$\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\portal.c BICOMP - 210 + 237 ICCARM - 64 + 334 - - BICOMP - 277 272 276 273 274 275 278 284 279 283 282 285 280 281 286 - ICCARM - 277 272 276 273 274 275 278 284 279 283 282 285 280 281 286 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh.c BICOMP - 175 + 244 ICCARM - 10 + 335 ICCARM - 289 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 291 + 252 189 4 210 302 194 198 228 197 215 199 201 200 204 192 301 289 296 299 286 202 208 269 297 287 205 191 292 - $PROJ_DIR$\..\components\others\bsp.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\msh_cmd.c BICOMP - 215 + 226 ICCARM - 67 + 316 ICCARM - 316 302 290 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 298 300 86 301 311 304 293 294 321 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 301 289 296 299 286 202 208 269 297 287 205 191 252 - $PROJ_DIR$\..\app\src\app.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\shell.c BICOMP - 204 + 227 ICCARM - 60 + 331 ICCARM - 320 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 302 290 305 287 272 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 301 289 296 299 286 202 208 269 297 287 205 191 292 252 - $PROJ_DIR$\..\app\src\app_task.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\clock.c BICOMP - 226 + 240 ICCARM - 56 + 336 ICCARM - 320 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 302 290 305 287 272 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 286 282 315 325 316 321 277 283 285 330 322 323 326 313 331 317 319 280 281 328 329 314 318 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\app\src\stm32f4xx_it.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\cmd.c BICOMP - 218 + 238 ICCARM - 59 + 328 ICCARM - 333 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 316 298 300 86 301 311 304 293 294 321 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 301 289 296 299 286 202 208 269 297 287 205 191 - $PROJ_DIR$\..\app\src\user_finsh_cmd.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_node.c BICOMP - 209 + 223 ICCARM - 61 + 357 ICCARM - 298 300 86 301 311 304 276 273 274 275 278 284 279 293 294 302 290 305 287 272 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 277 283 282 285 330 322 323 326 313 286 331 317 319 280 281 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 273 278 272 249 - $PROJ_DIR$\..\components\others\utils.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\serial\serial.c BICOMP - 220 + 235 ICCARM - 68 + 330 ICCARM - 318 302 290 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 308 306 309 288 310 303 292 289 291 300 86 301 311 304 293 294 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c BICOMP - 191 + 243 ICCARM - 58 + 317 ICCARM - 351 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 190 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c + $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c BICOMP - 185 + 224 ICCARM - 144 + 87 ICCARM - 306 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 309 288 310 303 292 289 291 + 305 220 212 246 198 228 197 215 199 201 200 217 218 279 216 294 209 211 214 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma2d.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\ringbuffer.c BICOMP - 193 + 131 ICCARM - 145 + 329 ICCARM - 352 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 205 208 191 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\drivers\src\wrokqueue.c BICOMP - 180 + 221 ICCARM - 132 + 311 ICCARM - 288 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 281 291 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash_ramfunc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\finsh_compiler.c BICOMP - 181 + 230 ICCARM - 130 + 364 ICCARM - 339 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 273 278 272 268 266 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c + $PROJ_DIR$\..\RT-Thread-1.2.2\components\finsh\symbol.c BICOMP - 197 + 245 ICCARM - 1 + 353 ICCARM - 351 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 301 189 4 210 302 194 198 228 197 215 199 201 200 204 192 289 296 299 286 202 208 269 297 287 205 191 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\kservice.c BICOMP - 200 + 133 ICCARM - 15 + 339 ICCARM - 344 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\device.c BICOMP - 173 + 134 ICCARM - 71 + 325 ICCARM - 351 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\timer.c BICOMP - 182 + 147 ICCARM - 78 + 163 ICCARM - 336 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\memheap.c BICOMP - 190 + 149 ICCARM - 123 + 327 ICCARM - 341 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\context_iar.S + + + AARM + 168 + + + + + $PROJ_DIR$\..\RT-Thread-1.2.2\src\ipc.c BICOMP - 174 + 143 ICCARM - 147 + 338 ICCARM - 357 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mem.c BICOMP - 198 + 139 ICCARM - 143 + 356 ICCARM - 308 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 301 289 296 299 286 202 208 269 297 287 205 191 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\object.c BICOMP - 189 + 136 ICCARM - 126 + 153 ICCARM - 309 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\idle.c BICOMP - 194 + 169 ICCARM - 134 + 345 ICCARM - 357 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\module.c BICOMP - 183 + 141 ICCARM - 141 + 138 ICCARM - 343 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\scheduler.c BICOMP - 178 + 157 ICCARM - 129 + 181 ICCARM - 357 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\slab.c BICOMP - 184 + 145 ICCARM - 69 + 160 ICCARM - 334 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\thread.c BICOMP - 199 + 142 ICCARM - 139 + 183 ICCARM - 310 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 193 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c + $PROJ_DIR$\..\RT-Thread-1.2.2\libcpu\arm\cortex-m4\cpuport.c BICOMP - 195 + 159 ICCARM - 72 + 140 ICCARM - 332 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\irq.c BICOMP - 221 + 161 ICCARM - 133 + 321 ICCARM - 365 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c + $PROJ_DIR$\..\RT-Thread-1.2.2\src\mempool.c BICOMP - 201 + 144 ICCARM - 119 + 155 ICCARM - 359 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 193 189 4 210 302 194 198 228 197 215 199 201 200 204 192 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c + $PROJ_DIR$\STM32F405RG\Exe\EasyFlash.out - BICOMP - 192 + ILINK + 267 - ICCARM - 2 + OBJCOPY + 135 - ICCARM - 349 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + ILINK + 262 104 93 97 336 328 85 168 140 358 103 325 372 368 373 369 374 370 364 365 361 351 357 344 326 313 350 366 345 338 321 339 356 327 155 112 138 335 316 153 332 334 329 181 330 331 160 177 113 81 89 128 107 78 90 79 86 108 77 312 318 319 333 114 105 315 88 314 84 94 323 310 101 337 309 106 324 320 322 98 99 317 87 353 76 183 163 75 80 102 311 254 271 259 265 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c + $PROJ_DIR$\..\..\..\easyflash\src\easyflash.c BICOMP - 179 + 371 ICCARM - 128 + 372 + + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 + ICCARM - 353 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 376 246 198 228 197 215 199 201 200 196 208 207 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env_wl.c BICOMP - 216 + 385 ICCARM - 120 + 373 + + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 205 191 202 + ICCARM - 362 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 376 246 198 228 197 215 199 201 200 196 208 207 205 191 202 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sai.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c BICOMP - 217 + 375 ICCARM - 135 + 374 + + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 193 189 4 210 302 194 204 192 211 214 220 212 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 + ICCARM - 364 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 376 246 198 228 197 215 199 201 200 196 208 207 193 189 4 210 302 194 204 192 211 214 220 212 217 218 279 216 294 209 282 247 284 206 285 219 190 213 203 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env.c BICOMP - 186 + 386 ICCARM - 12 + 368 + + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 205 191 202 + ICCARM - 291 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 + 376 246 198 228 197 215 199 201 200 196 208 207 205 191 202 - $PROJ_DIR$\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_iap.c BICOMP - 187 + 384 ICCARM - 0 + 369 + + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 + ICCARM - 351 305 287 272 276 273 274 275 278 284 279 297 299 307 296 312 295 302 290 308 306 309 288 310 303 292 289 291 + 376 246 198 228 197 215 199 201 200 196 208 207 - $PROJ_DIR$\STM32F405RG\Exe\EasyFlash.out + $PROJ_DIR$\..\..\..\easyflash\src\ef_utils.c - ILINK - 355 + BICOMP + 383 - OBJCOPY - 235 + ICCARM + 370 - ILINK - 346 60 56 67 156 152 124 212 222 172 125 149 165 166 167 163 168 169 151 157 162 170 63 62 64 65 57 66 164 158 150 159 161 140 224 10 227 153 160 225 131 137 138 203 154 155 219 214 11 12 15 0 1 71 58 78 72 2 69 145 143 144 130 128 126 147 129 134 119 59 132 141 123 139 133 120 135 146 142 121 122 136 127 171 20 205 207 19 61 68 148 337 338 347 348 + BICOMP + 376 246 198 228 197 215 199 201 200 196 208 207 + + + ICCARM + 376 246 198 228 197 215 199 201 200 196 208 207 diff --git a/demo/stm32f4xx/EWARM/EasyFlash.ewp b/demo/stm32f4xx/EWARM/EasyFlash.ewp index d423eee..d007fa5 100644 --- a/demo/stm32f4xx/EWARM/EasyFlash.ewp +++ b/demo/stm32f4xx/EWARM/EasyFlash.ewp @@ -955,25 +955,25 @@ port - $PROJ_DIR$\..\components\easyflash\port\flash_port.c + $PROJ_DIR$\..\components\easyflash\port\ef_port.c src - $PROJ_DIR$\..\..\..\easyflash\src\flash.c + $PROJ_DIR$\..\..\..\easyflash\src\easyflash.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_env.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_env_wl.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_env_wl.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_iap.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_iap.c - $PROJ_DIR$\..\..\..\easyflash\src\flash_utils.c + $PROJ_DIR$\..\..\..\easyflash\src\ef_utils.c diff --git a/demo/stm32f4xx/EWARM/settings/EasyFlash.dbgdt b/demo/stm32f4xx/EWARM/settings/EasyFlash.dbgdt index b0daba6..5d03a0d 100644 --- a/demo/stm32f4xx/EWARM/settings/EasyFlash.dbgdt +++ b/demo/stm32f4xx/EWARM/settings/EasyFlash.dbgdt @@ -34,7 +34,7 @@ 20011 - 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 + 58082994eMasterRcvStateeMasterSndStateCpuUsageMinorExpressionLocationTypeValue138150100221200StaticWatch200WATCH_1StaticWatchExpressionLocationTypeValue100150100100ExpressionLocationTypeValue140150100139 diff --git a/demo/stm32f4xx/EWARM/settings/EasyFlash.wsdt b/demo/stm32f4xx/EWARM/settings/EasyFlash.wsdt index 58d8b49..30d0dd4 100644 --- a/demo/stm32f4xx/EWARM/settings/EasyFlash.wsdt +++ b/demo/stm32f4xx/EWARM/settings/EasyFlash.wsdt @@ -17,7 +17,7 @@ 300Find-All-DeclarationsDebug-Log20121532481191622300Debug-Log58082994300AccessAddressNameSizeZone_I01201501505012020 - + TabID-30370-1297 @@ -29,20 +29,20 @@ - 0TabID-28122-19222Debug LogDebug-LogTabID-16453-20055BuildBuild1 + 0TabID-28122-19222Debug LogDebug-LogTabID-16453-20055BuildBuild1 - TextEditor$WS_DIR$\..\app\src\app_task.c0000002110211000100000010000001 + TextEditor$WS_DIR$\..\app\src\app_task.c00000033933900100000010000001 - iaridepm.enu1-2-2744314-2-25105130357152740188095771458-2-21781682-2-21684180100238118614330357152740 + iaridepm.enu1-2-2744314-2-25105130357152740188095771458-2-21781682-2-21684180100238118614330357152740 diff --git a/demo/stm32f4xx/app/src/app_task.c b/demo/stm32f4xx/app/src/app_task.c index 884eec3..8fe6528 100644 --- a/demo/stm32f4xx/app/src/app_task.c +++ b/demo/stm32f4xx/app/src/app_task.c @@ -2,7 +2,7 @@ #include #include #include "bsp.h" -#include "flash.h" +#include "easyflash.h" #include "finsh.h" #include "shell.h" #include "delay_conf.h" @@ -56,7 +56,7 @@ void test_env(void) { char *c_old_boot_times, c_new_boot_times[11] = {0}; /* get the boot count number from Env */ - c_old_boot_times = flash_get_env("boot_times"); + c_old_boot_times = ef_get_env("boot_times"); RT_ASSERT(c_old_boot_times); i_boot_times = atol(c_old_boot_times); /* boot count +1 */ @@ -65,8 +65,8 @@ void test_env(void) { /* interger to string */ sprintf(c_new_boot_times,"%ld", i_boot_times); /* set and store the boot count number to Env */ - flash_set_env("boot_times", c_new_boot_times); - flash_save_env(); + ef_set_env("boot_times", c_new_boot_times); + ef_save_env(); } /** @@ -78,7 +78,7 @@ void sys_init_thread(void* parameter){ set_system_status(SYSTEM_STATUS_INIT); /* EasyFlash initialization */ - if (flash_init() == FLASH_NO_ERR) { + if (easyflash_init() == EF_NO_ERR) { /* initialize OK and switch to running status */ set_system_status(SYSTEM_STATUS_RUN); /* test Env demo */ diff --git a/demo/stm32f4xx/app/src/user_finsh_cmd.c b/demo/stm32f4xx/app/src/user_finsh_cmd.c index 380fdde..020a9fe 100644 --- a/demo/stm32f4xx/app/src/user_finsh_cmd.c +++ b/demo/stm32f4xx/app/src/user_finsh_cmd.c @@ -7,7 +7,7 @@ #include #include #include -#include "flash.h" +#include "easyflash.h" #include "finsh.h" void reboot(uint8_t argc, char **argv) { @@ -32,28 +32,28 @@ void setenv(uint8_t argc, char **argv) { } } if (argc == 1) { - flash_set_env(value, value); + ef_set_env(value, value); } else if (argc == 2) { - flash_set_env(argv[1], value); + ef_set_env(argv[1], value); } else { - flash_set_env(argv[1], argv[2]); + ef_set_env(argv[1], argv[2]); } } MSH_CMD_EXPORT(setenv, Set an envrionment variable.); void printenv(uint8_t argc, char **argv) { - flash_print_env(); + ef_print_env(); } MSH_CMD_EXPORT(printenv, Print all envrionment variables.); void saveenv(uint8_t argc, char **argv) { - flash_save_env(); + ef_save_env(); } MSH_CMD_EXPORT(saveenv, Save all envrionment variables to flash.); void getvalue(uint8_t argc, char **argv) { char *value = NULL; - value = flash_get_env(argv[1]); + value = ef_get_env(argv[1]); if (value) { rt_kprintf("The %s value is %s.\n", argv[1], value); } else { diff --git a/demo/stm32f4xx/components/easyflash/port/flash_port.c b/demo/stm32f4xx/components/easyflash/port/ef_port.c similarity index 85% rename from demo/stm32f4xx/components/easyflash/port/flash_port.c rename to demo/stm32f4xx/components/easyflash/port/ef_port.c index 69abbfe..cb56a3a 100644 --- a/demo/stm32f4xx/components/easyflash/port/flash_port.c +++ b/demo/stm32f4xx/components/easyflash/port/ef_port.c @@ -26,24 +26,24 @@ * Created on: 2015-01-16 */ -#include "flash.h" +#include "easyflash.h" #include #include #include /* ENV start address */ -#define FLASH_ENV_START_ADDR (FLASH_BASE + 256 * 1024) /* on the chip position: 256KB */ +#define ENV_START_ADDR (FLASH_BASE + 256 * 1024) /* on the chip position: 256KB */ /* the minimum size of flash erasure */ -#define FLASH_ERASE_MIN_SIZE (128 * 1024) /* it is 128K for compatibility */ -#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE +#define ERASE_MIN_SIZE (128 * 1024) /* it is 128K for compatibility */ +#ifdef EF_ENV_USING_WL_MODE /* ENV section total bytes size in wear leveling mode. */ -#define FLASH_ENV_SECTION_SIZE (4 * FLASH_ERASE_MIN_SIZE)/* 512K */ +#define ENV_SECTION_SIZE (4 * ERASE_MIN_SIZE) /* 512K */ #else -/* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */ -#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE) +/* ENV section total bytes size in normal mode. It's equal with EF_USER_SETTING_ENV_SIZE */ +#define ENV_SECTION_SIZE (EF_USER_SETTING_ENV_SIZE) #endif /* print debug information of flash */ -#define FLASH_PRINT_DEBUG +#define PRINT_DEBUG /* base address of the flash sectors */ #define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base address of Sector 0, 16 K bytes */ @@ -72,7 +72,7 @@ #define ADDR_FLASH_SECTOR_23 ((uint32_t)0x081E0000) /* Base address of Sector 23, 128 K bytes */ /* default ENV set for user */ -static const flash_env default_env_set[] = { +static const ef_env default_env_set[] = { {"iap_need_copy_app","0"}, {"iap_copy_app_size","0"}, {"stop_in_bootloader","0"}, @@ -98,25 +98,24 @@ static uint32_t stm32_get_sector_size(uint32_t sector); * * @return result */ -FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size, size_t *log_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, + ef_env const **default_env, size_t *default_env_size, size_t *log_size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_ENV_SECTION_SIZE % 4 == 0); + EF_ASSERT(EF_USER_SETTING_ENV_SIZE % 4 == 0); + EF_ASSERT(ENV_SECTION_SIZE % 4 == 0); - *env_addr = FLASH_ENV_START_ADDR; - *env_total_size = FLASH_ENV_SECTION_SIZE; - *erase_min_size = FLASH_ERASE_MIN_SIZE; + *env_addr = ENV_START_ADDR; + *env_total_size = ENV_SECTION_SIZE; + *erase_min_size = ERASE_MIN_SIZE; *default_env = default_env_set; - *default_env_size = sizeof(default_env_set)/sizeof(default_env_set[0]); - + *default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]); + rt_sem_init(&env_cache_lock, "env lock", 1, RT_IPC_FLAG_PRIO); return result; } - /** * Read data from flash. * @note This operation's units is word. @@ -127,10 +126,10 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t * * @return result */ -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(size % 4 == 0); + EF_ASSERT(size % 4 == 0); /*copy from flash to ram */ for (; size > 0; size -= 4, addr += 4, buf++) { @@ -150,14 +149,14 @@ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { * * @return result */ -FlashErrCode flash_erase(uint32_t addr, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_erase(uint32_t addr, size_t size) { + EfErrCode result = EF_NO_ERR; FLASH_Status flash_status; size_t erased_size = 0; uint32_t cur_erase_sector; - /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ - FLASH_ASSERT(addr % FLASH_ERASE_MIN_SIZE == 0); + /* make sure the start address is a multiple of ERASE_MIN_SIZE */ + EF_ASSERT(addr % ERASE_MIN_SIZE == 0); /* start erase */ FLASH_Unlock(); @@ -168,7 +167,7 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { cur_erase_sector = stm32_get_sector(addr + erased_size); flash_status = FLASH_EraseSector(cur_erase_sector, VoltageRange_3); if (flash_status != FLASH_COMPLETE) { - result = FLASH_ERASE_ERR; + result = EF_ERASE_ERR; break; } erased_size += stm32_get_sector_size(cur_erase_sector); @@ -188,13 +187,13 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { * * @return result */ -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; size_t i; uint32_t read_data; - FLASH_ASSERT(size % 4 == 0); - + EF_ASSERT(size % 4 == 0); + FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); @@ -204,7 +203,7 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { read_data = *(uint32_t *)addr; /* check data */ if (read_data != *buf) { - result = FLASH_WRITE_ERR; + result = EF_WRITE_ERR; break; } } @@ -216,17 +215,18 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { /** * lock the ENV ram cache */ -void flash_env_lock(void) { +void ef_port_env_lock(void) { rt_sem_take(&env_cache_lock, RT_WAITING_FOREVER); } /** * unlock the ENV ram cache */ -void flash_env_unlock(void) { +void ef_port_env_unlock(void) { rt_sem_release(&env_cache_lock); } + /** * Get the sector of a given address * @@ -299,7 +299,7 @@ static uint32_t stm32_get_sector(uint32_t address) { * @return sector size */ static uint32_t stm32_get_sector_size(uint32_t sector) { - FLASH_ASSERT(IS_FLASH_SECTOR(sector)); + EF_ASSERT(IS_FLASH_SECTOR(sector)); switch (sector) { case 0: return 16 * 1024; @@ -339,18 +339,18 @@ static uint32_t stm32_get_sector_size(uint32_t sector) { * @param ... args * */ -void flash_log_debug(const char *file, const long line, const char *format, ...) { +void ef_log_debug(const char *file, const long line, const char *format, ...) { -#ifdef FLASH_PRINT_DEBUG +#ifdef PRINT_DEBUG va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash](%s:%ld) ", file, line); + ef_print("[Flash](%s:%ld) ", file, line); /* must use vprintf to print */ rt_vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); va_end(args); #endif @@ -363,15 +363,15 @@ void flash_log_debug(const char *file, const long line, const char *format, ...) * @param format output format * @param ... args */ -void flash_log_info(const char *format, ...) { +void ef_log_info(const char *format, ...) { va_list args; /* args point to the first variable parameter */ va_start(args, format); - flash_print("[Flash]"); + ef_print("[Flash]"); /* must use vprintf to print */ rt_vsprintf(log_buf, format, args); - flash_print("%s", log_buf); + ef_print("%s", log_buf); va_end(args); } /** @@ -380,7 +380,7 @@ void flash_log_info(const char *format, ...) { * @param format output format * @param ... args */ -void flash_print(const char *format, ...) { +void ef_print(const char *format, ...) { va_list args; /* args point to the first variable parameter */ diff --git a/docs/zh/api.md b/docs/zh/api.md index 3903f65..abb2d3e 100644 --- a/docs/zh/api.md +++ b/docs/zh/api.md @@ -2,11 +2,11 @@ --- -所有支持的API接口都在 `\flash\inc\flash.h` 中声明。以下内容较多,建议使用 **CTRL+F** 搜索。 +所有支持的API接口都在 `\easyflash\inc\easyflash.h` 中声明。以下内容较多,建议使用 **CTRL+F** 搜索。 名词介绍: -**备份区** :是EasyFlash定义的一个存放环境变量及已下载程序的Flash区域,详细存储架构可以参考 `\flash\src\flash.c` 文件头位置的注释说明。 +**备份区** :是EasyFlash定义的一个存放环境变量及已下载程序的Flash区域,详细存储架构可以参考 `\easyflash\src\easyflash.c` 文件头位置的注释说明。 **环境变量表** :负责存放所有的环境变量,该表在Flash及RAM中均存在,上电后需从Flash加载到RAM中,修改后,则需要保存其至Flash中。。 @@ -14,10 +14,10 @@ ### 1.1 初始化 -初始化EasyFlash。在初始化的过程中会使用 `\flash\port\flash_port.c` 中的用户自定义参数。 +初始化EasyFlash。在初始化的过程中会使用 `\easyflash\port\ef_port.c` 中的用户自定义参数。 ```C -FlashErrCode flash_init(void) +EfErrCode easyflash_init(void) ``` ### 1.2 环境变量 @@ -27,15 +27,15 @@ FlashErrCode flash_init(void) 加载Flash中的所有环境变量到系统内存中。 ```C -void flash_load_env(void) +void ef_load_env(void) ``` #### 1.2.2 打印环境变量 -通过在移植接口( `\flash\port\flash_port.c` )中定义的 `flash_print` 打印方法,来将Flash中的所有环境变量输出出来。 +通过在移植接口( `\easyflash\port\ef_port.c` )中定义的 `ef_print` 打印方法,来将Flash中的所有环境变量输出出来。 ```C -void flash_print_env(void) +void ef_print_env(void) ``` #### 1.2.3 获取环境变量 @@ -43,7 +43,7 @@ void flash_print_env(void) 通过环境变量的名字来获取其对应的值。(注意:此处的环境变量指代的已加载到内存中的环境变量) ```C -char *flash_get_env(const char *key) +char *ef_get_env(const char *key) ``` |参数 |描述| @@ -61,7 +61,7 @@ char *flash_get_env(const char *key) - **删除** :当入参中的value为空时,则会删除入参名对应的环境变量。 ```C -FlashErrCode flash_set_env(const char *key, const char *value) +EfErrCode ef_set_env(const char *key, const char *value) ``` |参数 |描述| @@ -74,26 +74,26 @@ FlashErrCode flash_set_env(const char *key, const char *value) 保存内存中的环境变量表到Flash中。 ```C -FlashErrCode flash_save_env(void) +EfErrCode ef_save_env(void) ``` #### 1.2.6 重置环境变量 将内存中的环境变量表重置为默认值。 ```C -FlashErrCode flash_env_set_default(void) +EfErrCode ef_env_set_default(void) ``` #### 1.2.7 获取环境变量分区的总容量 ```C -size_t flash_get_env_total_size(void) +size_t ef_get_env_total_size(void) ``` #### 1.2.8 获取当前环境变量写入到Flash的字节大小 ```C -size_t flash_get_env_write_bytes(void) +size_t ef_get_env_write_bytes(void) ``` ### 1.3 在线升级 @@ -101,7 +101,7 @@ size_t flash_get_env_write_bytes(void) #### 1.3.1 擦除备份区中的应用程序 ```C -FlashErrCode flash_erase_bak_app(size_t app_size) +EfErrCode ef_erase_bak_app(size_t app_size) ``` #### 1.3.2 擦除用户的应用程序 @@ -109,7 +109,7 @@ FlashErrCode flash_erase_bak_app(size_t app_size) 注意:请不要在应用程序中调用该方法 ```C -FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t user_app_size) +EfErrCode ef_erase_user_app(uint32_t user_app_addr, size_t user_app_size) ``` |参数 |描述| @@ -122,7 +122,7 @@ FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t user_app_size) 注意:请不要在Bootloader中调用该方法 ```C -FlashErrCode flash_erase_bl(uint32_t bl_addr, size_t bl_size) +EfErrCode ef_erase_bl(uint32_t bl_addr, size_t bl_size) ``` |参数 |描述| @@ -136,10 +136,10 @@ FlashErrCode flash_erase_bl(uint32_t bl_addr, size_t bl_size) 注意:写之前请先确认Flash已进行擦除。 ```C -FlashErrCode flash_write_data_to_bak(uint8_t *data, - size_t size, - size_t *cur_size, - size_t total_size) +EfErrCode ef_write_data_to_bak(uint8_t *data, + size_t size, + size_t *cur_size, + size_t total_size) ``` |参数 |描述| @@ -157,7 +157,7 @@ FlashErrCode flash_write_data_to_bak(uint8_t *data, 2、不要在应用程序中调用该方法 ```C -FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) +EfErrCode ef_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) ``` |参数 |描述| @@ -173,7 +173,7 @@ FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) 2、不要在Bootloader中调用该方法 ```C -FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) +EfErrCode ef_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) ``` |参数 |描述| @@ -186,7 +186,7 @@ FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) #### 1.4.1 从Flash中读取已存在的日志 ```C -FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size); +EfErrCode ef_log_read(size_t index, uint32_t *log, size_t size); ``` |参数 |描述| @@ -198,7 +198,7 @@ FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size); #### 1.4.2 往Flash中保存日志 ```C -FlashErrCode flash_log_write(const uint32_t *log, size_t size); +EfErrCode ef_log_write(const uint32_t *log, size_t size); ``` |参数 |描述| @@ -209,13 +209,13 @@ FlashErrCode flash_log_write(const uint32_t *log, size_t size); #### 1.4.3 清空存储在Flash中全部日志 ```C -FlashErrCode flash_log_clean(void); +EfErrCode ef_log_clean(void); ``` #### 1.4.4 获取已存储在Flash中的日志大小 ```C -size_t flash_log_get_used_size(void); +size_t ef_log_get_used_size(void); ``` ## 2 移植接口 @@ -225,7 +225,7 @@ size_t flash_log_get_used_size(void); 最小单位为4个字节 ```C -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size) ``` |参数 |描述| @@ -237,7 +237,7 @@ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) ### 2.2 擦除Flash ```C -FlashErrCode flash_erase(uint32_t addr, size_t size) +EfErrCode ef_port_erase(uint32_t addr, size_t size) ``` |参数 |描述| @@ -250,7 +250,7 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) 最小单位为4个字节 ```C -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) ``` |参数 |描述| @@ -262,21 +262,21 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) ### 2.4 对环境变量缓冲区加锁 ```C -void flash_env_lock(void) +void ef_port_env_lock(void) ``` ### 2.5 对环境变量缓冲区解锁 ```C -void flash_env_unlock(void) +void ef_port_env_unlock(void) ``` ### 2.6 打印调试日志信息 -在定义 `FLASH_PRINT_DEBUG` 宏后,打印调试日志信息 +在定义 `PRINT_DEBUG` 宏后,打印调试日志信息 ```C -void flash_log_debug(const char *file, const long line, const char *format, ...) +void ef_log_debug(const char *file, const long line, const char *format, ...) ``` |参数 |描述| @@ -289,7 +289,7 @@ void flash_log_debug(const char *file, const long line, const char *format, ...) ### 2.7 打印普通日志信息 ```C -void flash_log_info(const char *format, ...) +void ef_log_info(const char *format, ...) ``` |参数 |描述| @@ -299,10 +299,10 @@ void flash_log_info(const char *format, ...) ### 2.8 无格式打印信息 -该方法输出无固定格式的打印信息,为 `flash_print_env` 方法所用。而 `flash_log_debug` 及 `flash_log_info` 可以输出带指定前缀及格式的打印日志信息。 +该方法输出无固定格式的打印信息,为 `ef_print_env` 方法所用。而 `ef_log_debug` 及 `ef_log_info` 可以输出带指定前缀及格式的打印日志信息。 ```C -void flash_print(const char *format, ...) +void ef_print(const char *format, ...) ``` |参数 |描述| @@ -312,33 +312,35 @@ void flash_print(const char *format, ...) ## 3、配置 -配置该库需要打开`\flash\flash.h`文件,开启、关闭、修改对应的宏即可。 +配置该库需要打开`\easyflash\easyflash.h`文件,开启、关闭、修改对应的宏即可。 ### 3.1 ENV功能 - 默认状态:开启 -- 操作方法:开启、关闭`FLASH_USING_ENV`宏即可 +- 操作方法:开启、关闭`EF_USING_ENV`宏即可 ### 3.2 IAP功能 - 默认状态:开启 -- 操作方法:开启、关闭`FLASH_USING_IAP`宏即可 +- 操作方法:开启、关闭`EF_USING_IAP`宏即可 ### 3.3 Log功能 - 默认状态:开启 -- 操作方法:开启、关闭`FLASH_USING_LOG`宏即可 +- 操作方法:开启、关闭`EF_USING_LOG`宏即可 ### 3.4 环境变量的容量 - 默认容量:2K Bytes -- 操作方法:修改`FLASH_USER_SETTING_ENV_SIZE`宏定义即可 +- 操作方法:修改`EF_USER_SETTING_ENV_SIZE`宏定义即可 ### 3.5 磨损平衡/常规 模式 +> 磨损平衡:由于flash在写操作之前需要擦除且使用寿命有限,所以需要设计合理的磨损平衡(写平衡)机制,来保证数据被安全的保存在未到擦写寿命的Flash区中。 + - 默认状态:常规模式 -- 磨损平衡模式:打开`FLASH_ENV_USING_WEAR_LEVELING_MODE`,关闭`FLASH_ENV_USING_NORMAL_MODE` -- 常规模式:打开`FLASH_ENV_USING_NORMAL_MODE`,关闭`FLASH_ENV_USING_WEAR_LEVELING_MODE` +- 磨损平衡模式:打开`EF_ENV_USING_WL_MODE`,关闭`EF_ENV_USING_NORMAL_MODE` +- 常规模式:打开`EF_ENV_USING_NORMAL_MODE`,关闭`FLASH_ENV_USING_WL_MODE` > 注意:只能选择其中一种模式,两种模式不能同时使用 @@ -347,6 +349,6 @@ void flash_print(const char *format, ...) ## 4、注意 - 写数据前务必记得先擦除 -- 环境变量设置完后,只有调用 `flash_save_env`才会保存在Flash中,否则开机会丢失修改的内容 +- 环境变量设置完后,只有调用 `ef_save_env`才会保存在Flash中,否则开机会丢失修改的内容 - 不要在应用程序及Bootloader中执行擦除及拷贝自身的动作 - ENV及Log功能对Flash擦除和写入要求4个字节对齐,擦除的最小单位则需根据用户的平台来确定 diff --git a/docs/zh/images/EnvDemo.gif b/docs/zh/images/EnvDemo.gif index ee93f118b5dcf31915c368bc4599138dd7988d33..92cdcc85742410f0b932bb9fb29bec31bae4ef5f 100644 GIT binary patch literal 241371 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

PI{9KAbxAOx=`Stm~)4ZkJWUQn^J!VpJasv=; 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

%v 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 literal 274956 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�Yc)4cVQ zott_}yVHb+d}!#u3tPWe2V}j6)Ib}7RRug&o8wixvwE2mSS6!ECoo|6JD)(GwO&>&0SZosGtYYg~PUQ9p-Q4q>f~g#Z?(7UL(9S7uS!*Mw+9!3PFUo3r;hIW6mOa0x-~xsEs_Z6eE1Kz-#!tl7y5MNQR3sC_l983yQBFv)U&<(qi4gpPugV8Ipp@jf+r~LTJ zs2;L38u>?F#|66etvwK|o=Q|M#Vdou6UlcwE0makUQE-cA5yt8BMK(}$f8qe&DbTf zr^3F+ErDf19^=mv4$r}+$1|Mk?XVj*ht$1Hi*6s8GG)iVq0@aHXf#C7Jwy%Rxc}xv z$dK={&aTfF%jBqW@dt0V#7K{b^8RvH?!kz(0WGZm{2n+&CF1@Q=idAK{b5&Y!r{lE z=kDGRF+^eWPrZI*nvHykM@;L3kPz4iP!Iz~ZDP^)&vOH37|s!8?_I(w6e6XcqlGFk zku*oqQ93MxT0RDAyAJ6x)r-2Y%FzVzCl=O)UOu=SB*ql~(Lc~MpjX|9YoWgNk1rZ? z5pkkdtyE=6n}bvkVJ&l2)&E=n$g!@hIm@;0ygbWu9;ZFe|6hQ^SnqJ<41ve2DfG z{=de@lg>cQTl&Ynp&;?RBOdd7K_<*zRZ6rjk)0=TKLICJPWsq zf@d(TB8rs|`)bP=(m*s{xlFb|w&VL7QM=7{ce>+Rv_JxspTl|)UZRM4iO$~|OPC$O zlri}WSkSb>I&-x^<)QDMXoo!)S^yXANyncN7n536({N|@sb62;wm zX2d~sb5c*)Oo>$`vMKF z>s4*3JtOtsB^S>EwD+w1)a+vkOHUr9e-#@8c5jcEJ+3ZXq`|`0>$ezfvD=~$hE*7(=1K};U`&*4cP58 zB10a{L`}~(S;n%6-i6N8#m&LeOR);bKF$1L;x(?fcnWh8|Gz6OXW7>!rQ^uCR;HRf z1LBLrSj8H4>d;0L0i@UvmW4LA42%k-BD6H6lT0Lm$s5}!nw3w&>o$USQBm#4y0VI( zX6h`)anJI+u6Z0tcU^ySczGcHJ>jWJ>VvX5Q$;>hk%EisHm+1nK6<07Q1AuSj=IT- zC{75n(b22U{^M?%f#qRyD_T1|X6qNWYsyEVX$V8qyxo`guLn{KJyk(IzP@4+(Xrk5m&;c4=s zQ;r}Lp3q}BO)2CJmuekUem(P-1)Yi5-!ojd^wvji?S4pD2|e3>3A%O{H%hceB`raz zrD&;@te5d)q(QbRZL5aYb=D(V>Nd~4=~sYxmcyGSgaMLz?bK) z_j$wnj*T4fs@?C7YP@sI58LtMFuLfRQ`##}9otnB@sI9M5VhmyX||Q3S|9AJ{#gRK zhpmX7J)3Nn@6@g(-3Xi2DI}3fPHTkoN%;3cS7XV{G zoWDq@IZ{OA^%^EY4Q0%l61TF1GGx(bOw#%mSiH28r5TAn_G_RFXGlY+a87NbA&Ul; z1t>y6Bw&U5(2)NSrKmjh$%G9V(WC~(C$(WpNspUCY*xshxDW?aS5z9dB0@#N)$og8 z4C9?@q%a5yh$t2OQBs0gut&Yiyef3gbXr`sFGU7~09{AT8!@{hkY4e-l4Cm&8HcJ-qu5IE>r#jck&UU) z4atZwFJk{lIrZ}^#OT+}f)U(O|qYLP45)<$(A!sW?yGey1cQ6x2;Tai9FDcT7!qna^2D`Z8gkWm;7 za$L2Z>e|C5@S;|{JZWNP)BCw=DTjFNO)7r{;@=>eWx@dPZ+dMY7oGF9EOnZa3;gDbj2)~9lND0uoW2Q_a(fm4iqMx3J-?^TRkR2Y=lT^g?nzwc5Hrp*q=yNMnj(Tr#U-F{4Tk$9_em$(nvKFMQ}%HTpA0ryv3VYQzEk+ zGhpe*>@pG(0NursgDQ*eRHAj<1}e9N&drc*yRg7yx|m93U7RV=do<`QaEC|tR3`Nb zW2YuEzlLq5ZD%^tqQZAl*#hdOYB8w*w-~$4ovnmdyH)n4brN%_SAYeIz?T0YL0cZO zGk+U8 zqlk|4054ZbKc6>#ss22ht+}RD7q^tWi*>03{atpMX2ZBhs#p&kvJ){-k?0*Qh6sF* z`u;9gzkWiVW45ZIOM5*Nn-CXv@m==Qi}ngj@rFU0=>$eKLRMvM9ya~hn*`{2;cROl zF*}ION#X4pKX>(|&@6=i^v+AG^Q9gf6Mb|P#Z@^>S1nq$Nx>MkCoitbHwleE%Fq@O z-ffT)d?7Fud&6SSSlYK6@9W;TK$8FN+{3<(l|g;C^&K5m{t+Y6S2X_yqKMOm++Eah zM;Qm1{QB;XGnsA zNt`BFQ$=hp=prIG5YDw1%Y*^PlmIKYeYMA7E7&0|m_XB~T`^-@NM|)$Wm~EwO-{FV z|8-$OV~XImM%4!}qR338c#2ktd>v7YV<=$zAvAZVFX(6q>X=N(gp2QTGJAH6@-}eHl`Fo; zC}Yw&<7h+|=wP~tj$XhfA2$ZI1SPnrfB~b7PgPZ47=t(UDNu%A;+TPL1P?EV0W7y& z*5!*;r;TvJQ8?jEhjVU>~uSSs58931{Orhst9y7#0%M1t*7D zS$?IL$aoWpxo?a4aON=_P;zrhF_!D1n1N|3bGe2#!95oNny;}Dw;`IE0wrHqAV;K{ z1Id~rr4pt|5wV#=;gLg3a#N_80&Ub&qm@&-8C0!@kL$RWHPt%d*H<+e8IskK&q$nb zmYhimI?Nf2a(NS0SrKd^FTfFjN?49Ncb!#dQ`GaUfa_r3U*wisSw>o77z-L+}L#(8KSEhZWgdx zyQ51aT4Eh>qAKbt-qoTD3ONm0UJtr?XJw-wdOdNWqs2uQaA%<{QtgPKYZGEh6<=QR!xRlp!6ZAW5h|WM`x9$ zeV~J8_k(>+W_Jt|Wh7!EC}L%h1gfsaXGFM+FKCc}S!A7xbD$clS(sq_Ng=Q1X1Bt1 z&)8_T>Z(hnjrzB$Z04&B!4WXT$9lGUno5o^MFE0`vke%GyM zMy!G*I@{V2raEP)+EJaCjJkPi?Ye>x;2JZxBN>6DyVh$o0$teFuJvkC^f!ri6tB3} zBmXL|^xCfX>Y@2sO$Qs2gT`xyW)hz$RPlxhW_XMdS|IgDp<_2~Zg_MwI4;kcZNsNR zEmV9Bhq2d0qjY4k8JMxv_*F7&Hr_Z4b3o{Xzd45zU_m~=aGxzy^pk#<@Jx|&(HwfmxU z&I+~o=@Fgr1tBXDOG}ov6nz5uVXIpvS#&F*JEjbmMRU83#oKkGJF}_lAaFaf5*DxD zHY)tOqbYlzJoF~53d$8ZrG~0W8-79+g8eqrcy}+rd3Tl1K zr&(GTbju^HhG~5u3$2yAfF}EN#Ak)Z7ai31vhjDn*_XeKIf1|@wC?gY3B0q*C#pf{ zzz(P@H#@;fS+sU5xC=K_L|QG(N4r*aJSfJ}DY*&^jA49&sEDhF_(+n( zZSW~!cx=HL4268GvDg3d#>hIz*P?|7+Kmh-L>>%TnIxftbja67yf3^kRmfO~Ts%&t zh$FbizM{xni*sz8!}|%Kk!YXu!9jX<9~Rf2lnBe}v#b26V#xzZ@5P_5+@G;5f3pmU zd_g_oxXX`KEkSq2AyKglDv!iCjrX^)nQW5m(TOm197>9ztJKCQG63-vrC+*z54nB3 z1fwL$5Y9NBP$SLK$X8p7QV$`{X#02V6SjQyz|Z*3qbQLz92fR1UpN|`>AZ?|cNe)d zKhN|N&!jfCTqZA?rFpAN%p^7kZH=1iF8(~t`|K7;le_`e(eWHL0qt#^45HPhXh&3$ zQ=l!Ysd!-#n+*SU%dROMtyx^J$x~C%7T(O#1L@K*-I_8znmJw5&TE>Ovd(1e%(a7P zQ=yU)NU_jKo{SNbIKfunxky$05}8XD#j>o7v6FpS)>$1;P+?KXgPEaOp0&FePze=o zthGZmMe5|JG%pPjmxUD>3)O|54asJWRU{aTt*em2qBFe2DWRlh88&;-cV zrJdWf0?lbEq~sN%t`(tc#-v#~US3(#w+q$g=Ue90JD;B3+sin<*TXh;u%>7`Q z0##1>%g_I97GfHwD^}b&nq8P()6w-btaZfHqucJSF1%f>X7;J%dOvG+t^y&hN*E#u zakOLEs++a}epa@KMWD={oWpK zF7dr=EDLeY=40bJwJ}?@C@aYC%YFNLZzu#VcdKl|_jJ`JwYr$CF>bWL%MdD0Dr~@FZRmLZHUSgqO3YOo*MMB8B!mhPsY&OazT|d3t92L3Qdr`33&So9 z7meu2CXCSNrGv+a9awniW7x=xF1^g^z#vRYv!3c_esZJq$7o2mRJahUPL}H(AYX{h zpWf{05#rF8jvj5&dJc^Ecq{Sv&(us?yfqdFPzlPtjT^0xBTnm8XNzEt>mWVuQ~J^R zR+-T#>AMu~3<=T1&g~o_kxwJfNykjC?(6_>9pF@|G6QP#aHEKK`1H{V{hr@&zR;dhH^iJ#---msbD1 zmmyE_BQfxi>3|8c*@X!bhdCpUDO0L_wKQ83L2t-2ZyuJ(noPa)1%l+_@$!xXnM1Gh zQQOH+389C2Uc*tF5Q>}6(dn}Zp=}BiWsftwY1Cey(|VDcyGhh?!Ntq`%)u#=@GDov z`Bhk-#^6{?Gf8)CXN-L)xn+S=bfMBpe7;Pf|=NXp7fU= z6Z)yUy6m60{GN6tpPz3p$}HL;(fN@Npb>&^{MqTZMEU?~shCCAg6^~~s-`LWTVKy( zQ2&eOCz9Swr@7@F42#bs`k<{jqB1&;Idm5&y4Wi!6lh9SzPeEJ!GvQqckaFa2Nb|NUK>Qbq_6=xA90 zf+>NeL;yA!oN^!n006oYOqrNq14IDLCOX8}QK7+#2{3fD(kCIr2NgL2u##dTLI55t zY>+r*q(_JgL)wf<&>+l@8y`NvV`fT0pg3h-1n|INOD__-btGGkU)_o&3lZ=`4+QFVB+S&V zTPr*ko5fl3Bmg33K1QW%*n-8ohR0lv2=?)5E8)T>-K;l4$_>pB>hk|0GccYr3!`R4 z3%csmhs|)y^qsbIXN;*mB8O-hW9HV#iC;9U9HVWoxOKahiEtCSlgzDOPg~jKbIseO zf2LkusfF9QG3^H4J<<2@?oZ1mofFea&m8NBGUiGDqV1U z00aB*>!_^=8M_L%#|m@~BIwjpaJtakI?jRz6G9L;*!ZK(uE^?guB8obl&rb)Y=Z#A z8hN}A6Jb6B$_jLHDU78ZSu!a|Cli5kL>2XW5kQZoJP$`5ZR`=gA2ri*$RZCq2}vcH z8nY*g97A(S2}x=)#VpUmNw9@LBu_3lJs7Q{8RI;Sfy)p~&d&d(h&n?n+NygJ(V5Iz zXafXml(ewU^3)6`LI+e(NVo9BM9&T<#i-K`EgNwu<_bi$!#ewWYa~rQ*68)R~^_izREPFhFZv{X2| z&6OlbH&B$(-EiX2EZIod?cKB%ngUtP=-mK2-Xg%y)N2FOSKkoz+tpjOI*fPTm8!BA z-+;H`7r1|yBp4&u6ao)mL7SUXCW_2Nw@{FHYR;vbE_KXL(gN)mGSy&Bc&l|sYP3Ad z^i>(;iV#wn&XYyTGG>_%B{_kKz-me8&^R8?(L{9awb}pifc`e9q?1FLT!cf*xnW+t zRd&ypkptH1j7&2&0T9hD`LC(F-Vl!#ywGI>LVe|sPM#@ZEkT5-)G6zrQ!bBVbIINi zY;|#Cm&PVXtaV#ZXVi2|nRa8D+K<$X{K?Oy4833hFRpC#kMvyAa&a-YK=aW!2Y5|D zN0Pl&Jo(HwVAjnUrzyw81$Ue0k<}joi zSlB5>{jiD2!O~FkmkoVo*Z5^VP1R;y@q3Awu7a3Grs;87%Ru zGDOpefUfi!3pP(C;R+Xh_Trz5@aJ5n0#*_!NHhj|=7{M7fEn+?M3%&Ciy!GCcRoeG z=AiL>`B~#g+*lPjdWws!>6fsyMIJ0w5hn|YqJAngt_em`DFVP4M~3w}I$8~n33>_+ z&~XO60qAUE4Avgin8`mHM|g5u5w5PtJeN63JKE|Bj-)cnKDs6&xI_s|gflLV{qjY; z+@*YkIKM*@5;%_$CM}c3m;_c z)RdQ;Go3D3C)ci*5SjE7VnLw`+72p2RHYFm5k;p$+1b7-Y4o4@L`<_j8qcuYvo4IR z%RnnKoX?yvBRXW;xPDnb3&<2>6`2=FG2~LBo<>w~>)PHRT2ZO=OjeS-S~(?ZQj5Az zKZX=aQ?eM#I}y&78JPl8Y62GGbo4ERlL|$!gt)T;imefut6g5oQ7nZ@tk7($S=pLa z0L2v}_DsNA%OzNrP!xk4n~X+yhPrT#Cs zcRQ|Vi;G;XDi^w}o#S+^dtK~iSG(KgZg;)=-6}~JyxDE;crjaE^QKq5>t%0y-TPkD zP}H}`e92T7s373lm$tgA?KSlaU(fm%sIFv4Z~=T^1SeR*3ubVG9ShFKP^oOzVi|Jz zOIrauc(WOfE{z_lVGxH{#3Lqgi6KkGoFa`>67E>_oS0UT#rDD`1{`>c_+ioB)hw=s zFpYiuV;~1v$Q~1?hc9!`m9+napj*)eMNCs+cn;OA!68+k2)hy>e&Mmsnlh7}T+HHm z0f=BLNQ}qaQks03C`LibNv@3MCJQaj6_MLdC-l_9wzSMJ861F+tmmJQM#67C*^=!F z6Yr(P&O>H&qaFQd_@a264=quH)>E975s!YA=3!!j^C8VVG9ts(%j)3Qnlh~~nye?thyQ$Waw zX6zXq`mCK9CynW5hU#1GbK@ePcdm)7A&v?S-{xkB%=c|Hkel#G5f87?Wa5hy95dlV zCwkExO>KuZkd59Z4-XkTSs^Lgc(l2Ye=z9ra$CK|otseA7sqM^xw~`lPNu|ncPB4+ zUFuA=E0&k8@8{t>$`Evmvahw2u^L_Pd*?fek!~J7qEd;tMrjknL&+IV)2mOYCuSEc{xLd`Ck{HUZZ57<3A{o`AkBKk82s6^HWE7k7-{N#7cVL(^8&!`gA zph-QDxO9IIiOw7)#mCSXPQYzQ4qB>MT^m%ZV|>}$UjFl^|7|~xTy581|NG~E|NXyO zCF?2Z8XN=rKLb2K1WZ5$TtEhFKnHxl1Ps7#3%K?Iq5_O8^nySQ+&~W8zx%r{@q#RX z>aoqrzlg|@Pdc6q>_8T5K^Gi46f+^;>$wu#Dopw|81s%Cl0lqeIN+O~0(tY+(l-3?I=2xwblbN{Oqa8BL{v;gRn#mL zyQxiyvoC|1fnl6VR19jdf&ows;;5_q8LDIjdRa{19WJWlo z!CFceO6&~gvH(1&gA_P`)asgElsm)27%?lLqM05&dn5B8h63efc zyh)tQNuAtDp6p3ROh=y#N}(Le=>kfkJW8Z=K^U9B0jojrY9;M5%A}l1s{AoPy1|{w zv!D@~Ict-V>asE9$|-z|VD!qRh%>Oz2(65;6d)*I`K17q!!!hqw$jQqOMo`3O1<36 z5X;1@7)0{v2wn?B7otIsOGav1w5?+|luMk!0ySAn1hC>u%B)QHstN&%H|aY&xO2>= zRGdkPH@lF&VUmwd%ob6^qD8qN%WO^8R4>2+yO28*o^zXrvzq3D%FbE2|5_Tb=nDU* zsZAT4P3(J3<2=r&oQb?B$flE-wZqLww82~XJgwRd-B1*|OCZbJJml<7@7%4b7^{D5 zqrtlr1+t#e^A_r)x$|tN@w5xp!x&2-0j7x0xf@UHi@)#OPyQ?|J@h?~WWTTUJ>mmD zbSjX$dW@G6C?Bkh-cz8-5l}p97mv)(Z|YAB&CvdnN)7E$4`o2b{7?}cQ4W*{f+JBB zP0`r$x|dnEmw7G~jZqn8v{w-n7v-!O%~2iovCEQ>8;z41-BBSOQU(js{TRY2B2pz? z(k1LHA4SrOVp1uc()BV@yZF%vb5bhZQZB`=9=%d11)nY*Q!cEoHWFPflx-?n$!fXtxPSY25m7T z{8U=?&-PHDZd9*(oC&n-2{5e7mH0FNpa?A^LD$11nJAN_AhfUq3Sliv&^WUI>D7;* zh%InFV0la2h)ZG{OJE&}qBsgnxWHQdRKKhp_}W!9M70(vH4x#oLJYOxvb(O}7g0Ml zP#QLvgI5Fv8%&GWQ6s^#k(&6y6?~1%$t>4e#Z1=7)%4ocTM0!X^N9b>q#Vbz45*2> zvH6{TMMf~H4pt3GWtyea?55N#PK71ZvP{&R%PWVKD-&Yb}2WTVj|wPOvQ zLCT2EI}uD$HaxnR&}1Y1#7B0!Ci;X3`y3_KklVR6*Z*vnm&IC|jo4=K$Za!FxM_&y zBf$yvi~$hYozlKfDNu7VzSCvQb|Mbub3PaoCGSft?i)}Fl`8+syaytF;RgHC^b<-cT`AC}mMd%fJk?z^PhW?JZyT(o;MI z(*M$}jFFIFgwpr@%#P_)7Ms}VYTx4VCrAn_s9GzN87TpQu{1T`GQCr9(;qEGE_>o2 z>AHZE`5y;PELNIT)W9+Ot&%Pytp(N(tzce{h+y&Lr40^X#US8CMc?#Q-{e%r_0&48 z0z-HS7o^E6!C{DE)t@F2*0ZcD#{?Ls8cjd|f7|dH68v?mG5VTlIyhyq%;yp#-6jovEDzE<*W=_TN*=RD2AO2$Uow15V z9M2RriBK+UB3cAhLou$?BSzvRK4T+HQCvdBK3Q!*}NGq$edqGKSIE)^<|{CQ)wRohLS*yn`gb8#1fL!1@boz2~3D*aZ|l=NO39pK_oRfBG5hkj^?uFU^VjbvLLFX_#aRgUNnjo;!C+PCm% zHlaz+;^>cNT8Jv0+XSzPeq{`#VDNNl%gSht?obfst7<|-Vyb4+s_AGF;RImdDnU{K z?k@i+C59H1+>}oHo79V*X`(cd4-(>9_AIELK7{$amH>-U7*?%JRwEe_1rm;d07Gfz z>T8v^UWL{Pc0z64U(WzTwRUG2Oh&kXn_nfXwG>uKzG1zZ>%q$40=3Jcz{_!6U#G^& z@C=)d|ePi zvSWfnj@0HggjMLnPRTq*Mya`q6BR*cLRSCoHUd%aUIyvua%V$?na#g0q*w@B7y}K;KUTt!(<|( z9+!ifYY}Ct>TMmWNa!})*^D`zRb|s%k^R27k;rcCj!9V-TO0cB)jIIF+Z}YK*!dE> zwrJaBZf`{%#g-#wA*S$WChajIi|D2~^;u-kJe%hv@B)9yV7_VkASM9|QO#QMX)a9j zc2M7dyt1p39EV(droJ@2B+vC0zCB#OW!wt|VhmdHTte{_$JEc* zU1}|9(;zhCy7K;|R&EwRwJhc;NooIS%_!BK9PwM{+C6S(Zq?-==WNQ|=iZRrwX3As zna^c7*Oe$XZ)XMFUC`}wbfWSqhu-prX}7>m+iL1VfAj_;7Uzu<50)($hjdK;UIn?{ z&7$7h;`B`4`G%Uz2oq35MC<)^z}cL>?R$ zYF~Dxc&9XmnMgOn9u=uv_ZI(bKAwg*C0Tc`pDGq24vXULn}3!qqs&xtPiFI)@hde% zd(MiSwrTouj2UnFZ89;QR%S!d36?+kXRdS6az}C!zMy$pCY!7L`{Cm;Qk$|kkkF^W zZZoeov!jPIwi+nwqlv7EYu)vEh8c&(iA77;Fnmaw8Z5ssj1u-tzn^>Csj?w-`(T_1uHgA*?N+}I^b8)H z8=i||P5dxSGK$){`g)8r?D>BepQG@`_g$zV-Ox9kAMBa>E5i%8qZfMD;cSl_@L~6 z#aGU5+Q4yAhsR=EseUz;B*G+IS-Gt2Cw`#e{=ooDOf!p&cb4GFdngJM&+tmCmEXgZ zm{jX~zXuvD9&ICpSJnoI2mo~9IWzD;1P>N0CE7$T5dZ+q5K1hla6`n57c+9~$ngP1 z02@7ew8BFm04seUT1l}%CCif$VT!bH07Ai(GE=VHgh`l%1Po`Q%Y_M}PLwcBDqYER z=1P)MYa;as5+z5U7$Qy-*evH%09PZ94BK(zQ=Tk~9@S_Qr$MO-hY~z9mMUJ3T`Qg` zJ2h?Il2JYC+UoxkELjUkeOC1_24Y5CUd&Qv02zSK$sB1?eNeF3R>>om4!$^&apsvP zPq+1ZIBrMF9Q|hG+_5lbOo;O`&L}(L>)DDsrY8A2an;R(ZyVMPn|E81#hJ3k2%4*A z>6o&c^*LqAZm|iHOWZn@cJ=burv?{Jo+EDBfhk9fKRoH^)%P<_KiM9*bM!@Y*MC#p zHBvK{kf7Ot!+8guK@D!85Jg=%)KGL1Y8aAyVHKFsUGU}9A68Nk7@&Z~NqAvz0Dc#q zdr)Dh*;fX+ww-Dbd|1*>H6<{GP?xF2A0|I0U|vco9Elu&jXee*cLH`~ML2Ger{QOz zc`@2b5?24G5RgDJl%9MoExB2hR+40!PYL{pq?zWWH&dFmDJkcEOs-kye6=mt=9_k& zIj2Wp8ad{Dy)kv+d3lB$?jyEl(B+XYkeFB1!RzB zg_z`-9^#mzjK=0xm9HokdLKegh05(^)@Qu+p2aehK} zk!NRIC)#~iab{YgNA;^`Z=?zv+hrZXEAOli6AHj_^!B+h#Gg(%m{#>wY(c#VzXxEH zb4vgAK)ysqDHplRiOgJB=$Txf7c2|-@O&W;wAHANYDe*qNv)cYqZ|vDGRc%(o7l^r z-qnl(7T}50Ra^#JFha#Sb_yn8x>+*T2#u6A*Cp!9^MKGMc$v~+JzZ1OL?(Ck0mFoC zWCCQ%2y@v2WfriWC^uR+VDFaJbjUuy!KA%UK3gJ%l-r~>of$PV9;h@T6!5@XTAf>S zo+G_jTW`nsZEoB-UU=rP`wKPc0KAUZ#Z*Rg`$qC@esW56O1${7@!I}4?l()N`ll^= z_C&;&>%}>7n1tl>UUuFs^yYr`qK-VW8DkfV z_#+AaW_XvmA{cFmLnY~uVbNLMp|(~=03k+*nlmCwB8ZhsB_Jd@j1mGHWh4mAX-Au( z;}$`L#Tmx&h8==qBuzv^Ir``Tm5|A$Jjp7OP%%ho#8w@hW=KfZ4L*TN5&-|FfD~Q4 z(nm?e3N25i7a&2aMfIuWK!BOcN(mBItn5gG#Fjxds*6@iIi@11m7QT$uQ5R>B<3_S zh7$k@F$Kb8c1p>RQ`W?gJ<=CCYv#kmw5(ZtN~g!*DNlXrZl3mx-94xD&U~6BUA)XD zKLbh0%^C=xRWs)FiE7x$Ye_arJHkBW4l zAC)IbOR7?YDx{q&eJM<1DpQQ!ai%sEXd-W_)0a|or#}5DP=hMep%S&IMm;J@vDr|I zJ_l4Z6w=O;RwOV&H8&hJkV}!O!Im*KqgAC0ZFF`}v6h663w&xid#e9cu#V24fYPXx zyt>x8HtMAFMB!KIs@IqTrc*MDD)8?0$gD~wV|x{lVOzJRztTrOiOpwX2Cu0w*FU>|~k_%PqUE$hMAQAR2E|DZ_1!~z$iuRs~o7RsI^I5hA zcAe>?Og;CC+Te}rWV`LB(1I&a<#zG7H47uHI$hlo?EN-XJ zN_5V)WSELedDW+x3t;xN(2XewVP>RSRd-wv6j!9sd(Biz*K&NjXl?)Eu8`UWldF6c zRdf+sZ3<~_Qc5f{N3=I3;=v4400Jfu1r&98N2wQ4aJJMaMaBPsI5dl-UP}-hk>eoI zNR=w^e4mNn4=)&FP)%{Q6oTPqMmR1ko~nzL^Trt4YQ`k4@$&we;MnFAQd8+MfNIrW zk2HfBHT~gtZH1&!P*SNfnY-T2Lvu$jvNn+ak~s(`}?*Rlc%f2c&>?K48=T z655pG8DM%27N0Eiv3fXrsnMk{Qs?a% z_nmIc2&xskYGIR$Pc~x+qa?Cu<{mpD$yRlngTn0l{o4N`+NR1#LQTp=7c((Gs)`lZ z@}9o_>{0o;_O|}U6}XC7$jDChwrJDsriwb);J%NzX{J7mglt}GI%l7R)9VTOc`LQP zwdm-QlYP&nA)K<7wCtLczx|IU!zPMR*4-nI8l2=;8`rtBJZfB(S}ME6O@SgOBqz`F z$5A?%VwN}%(IJI2pJsR&NkpbRIWl9_rdiB+_~YHsCVfWd-piZAbROn8N9nnaL|XY< zO%nVez6|D~vCii4wp)fAtM`}j1v?S}Zs1K)Pu5}fvW?*Nx~^31*1yznv1DoIS`+$v zt#Up5nkeJ*UQl8h&7zvpQlsfUL$1&Pc~C;P)(QV#IdBJ@M|%S($hI034_&=;+X~N7 zSP~c$W0nXnnQXRH9s0U&g{JOtJ~y6UmmSgl&RE&Z)Xs+bpMVS}*bvW(ZzG%JY%9!CMeAp3E#VF6Mjc%rVxug7+bbIc7$*y+*I=t@$>-kDt zkNnX>%UK6+3cpZP=dC;+(>&`xjTDc0brZkY$L3*P<_!{ofsFB#oyN$V+TGJ{a173E zfX=;Nq*Y*boZZbhOw(}0aa5bn7~J_?Ok!D#RJBqF0$=_S&C);z@NnQB?HpNY2iXl2 z2DI2^Y0j*W;BAD*2xcFa>50Kj%&XnV4fg+u%H)hod60WdT73W*_Prf)mC;Dx#s%_R zq{$%tVUFFc&eT-R$%#eY0ND;sVTTc58YY0ZeUyD@90Jxx%PrQY70*`a4+K^a5LpgK z1=sI%4p)4R`-zSTWm;EU9lhPm!f+5iRh#)34<1roJw@Vs{NbL6n!G*Y9n#Nm6rWxs z;tW1d^tjCh5lKP)PYBr;?UmKk*sAvmEDZS6~Qk)u$UBQzD?84V=& zxTD&%5etGyIf{`%&LAFDk@Eb9I!XkQSrt~`n4aB{n(2~WNTInc*aI{qoX8A9iiHk| zofnN{K+4${WfDHh7qzq@6*`jfEy>wz(QJ*7n|NgR^A zxn(}VrF->cPlDrGaaJ7WrC#nOU)oj*(4$DbRaKQ6O2J_<7F9~YRALI$V)i9NwUlE< zresbgWmYD61)gPQre7+ELa~rI#(~ByMF3UPjb!4&kVg)-Ro5NqLuXQfG1^=WU6NZZ&6J z$%Suur#p$(aJl8tWoJpKCF$Yf$H=GKh39mg#e!-_a^w^aN?$&)rTU0X5`xzx%@$aQ zr^WyPd%;p$E(e9)m1$j}UC!rRiKEMr*+u5iP<$9LiJpTYR#lafgt-ZYS=gX$&4y)A z6d@Xk)e;qr*alG3nF0Sv&(V=a{TSbPq`bZ4DxnpOI;ml~C`2S0kDb?wXi1@E-IVZsRfxID!u65$hj>Kzi}g3uql<1oAoFllDb8<&IYxOR@hOMHTCuifgM(>XWi1x^_nclHuv}DX5B;iqc_(CLKhIo}j{$%^fIm z$fN3MpveH<9^J@AJ)Lod7R=!np)B2VG#!6#sjqsG+8HbrmddtJ$IW1!w|wiz%8e`` z)5~hk$*3eL2Fe0Yh#(N17t$S~)J@|-Ro0I4SRi-Z~|0It5o)Wt_vp-|A(Y-YHW)vQC-EUTyr|#d2va zeJw;Xm)%aSK7}mT_T=z^9z<4X9%+hyTpXJjW@NC-ygVK$Wz|JIMY_zNYMSenbPc98 zD?Jjfju`*0dX0;cec=nLr-3Hk0p@MfdXc`?AKV%!Oelmeq`-w3DNOlxBA zNGUFoG-l#bMqywb7f!AMlE>gk;q|c&4K`tTJTB};q15tV$>t~bzTg#lY3h362b$~& z!Ou&)mh9FR?J_JaLLw)kD*N_Ox$>a{Um}<#$F41-X<&UG!6&n zPMT06m04=sPA~D)4hb)CwPvvLh~gej&wCK2_6%yzN#5Z)4OL-~3+pW9T15&uXZG@4 z__+U;FM?<=&hIdOYQnLQ{-g#ne%aO`Q~q$UiAbv7pyE0XFxHBy0e?{#%~6TwF7~RU zSb{890Fv#QpTjy)Qg)vCP0`@K@FY2enxaZU$lYnbVc{Hd`{L+ceG~S)_=i}TwDuyE}rfG%W6&mL&*Q-Fe} zLA9$Ee-KEzUQ_F)@=kR_Idf5wHFgqpau#sym6@YSYLOzDjJ`7$eb7weo00+Ag=H9z z28EBp5cVG_6<+Ts%PKQ%vxi^* zb#pYDZFg9$D7L&2cOZ4Gx*VD@G4>RK8DM($WFMHi^fp>2Ag_86ur6C*AS^+j@Fxn% z1V0=@;F_5|P$1SSs#2V=DsXcdn^Xh9c4wQjD%Z1->%3JJwZ->*->b8ZTX&jk%H>9n zLX~J^Vt-RHO3W*NFKe*=x8C|Ias&-|>>GI}g4im!$_d_rx3?Z%UWfqech1cKd4wMQ&0=K)OcqV4cDiNqQ&(SiT6jqxqUN?pe) zo%YqZ%SbN@&p46?Wem2gf%IC1xQ$Eo6pcT}tf_B&kF3TXa?~zr0KM;!4lEg zu$~o$m*h4~a;x}4m;w4uw&5Gyr(*vGJ}6V0kmPeRf5ecu1- zNOaJW=N;Xs!+NQ&3EY~?9XSiSNc!px;+j9wYCBV@!@2nqN%aY}1f8e+@uKNo$NFM! zJ=>rC1^WGEH}#Sr^xAmXem6@~;P0Mo2LA2_dME6WA4}sg1K$6x^#<+cq97_G!B{Y@Vz88h zyvoxC*-CZFukhDRVhG2N2{$6pug@kzP6xicRGRE53h-~{R8QHAD{>GDk-$kgqSE*L zp$0BTV0{pKJ?bD5TtU3Clf5c+I7Eg>+%$+Qj(DvUQH5Xh6Ca~T&ivDdci3|<1)VWk ztM!+$WFbFf$%@{>n6cBZ`$-~qGCH~i3;Suo*of0_#K2d+PMDa31uj((u^iUNu zM4>-CssA#|wLO{jO~HT3&;MS9X6z4Vs93A}6NW-ZI8XtEt_=VP7BqMeVM2uq0SILH zaG^tp6Dd}-xX^P^XY=-AdN0B2Jehf(xWlEJRS+;cf5@t-9GilZonQ@>^ojZB< z^odeef&&qLsth``Xi}w1nKpI$6lzqdQ>j+9dKLd`R;^pPcJ=xdY*?{l$(A*H7HwL! zYuUDS`xb6oxpV2(wR;zDUcGzy_VxQ0aA3iM2^The7;$37iy1d|{1|d%$&)EpwtN|L zX3d*9clP`lbZF6|NtZT#8g**bt68^p{Tg;`*|TZawtX9SZr!_i_xAl8cyQsvi5EA1 z9C>o(%b7QK{v3LA>C>rKw|*UacJ14_clZ7se0cHW$(J{O9({WC>)E$=PjM3_q!r^& zNnk0_!3X#gTH!%-yNot^k3g`3nqokP9!Makf);F0K?e1ca3U*GNRT5d`pD0q{Wv_x zKLD3HFaa+*q>v#JO)Tg@3?DQoqXZI|VnzRzUOW-Pg>GbVMvxea(Y_ji^s%A&3ak!D z8EbqgNh2%52_juEY-S^q;#=~dW~NZUf(DyOfXf^a(lX3~$n0{WD+_8;#Dz5c5TXz- z%E&$^NxFa_3kNz=OoZ?RKu?0K#Kc5CVI-int6F>`R#7|8#i986(QsbL(zE!6{ibVVRBrC0BTJXRZj`Z^&wz?^;JhB zQzaCDT&XnZO@dYxN<>$`_|IAScvVPFU1x+g*)Cg56WL*BO-RjLcNO>0Yf%!m+Z^L_ z64>~1Iv0R^Es8pO8f_T1M3*Ip$p3^3KW0O(TaSE6%K#F0Hm~NW6 zB#C?$!Gc6haM!&Xvd_M}J=RFqz`GRN@o~wP(`KbHejOsiRcCQYu0_vjS8U9sfwSSVN`eAZs&)@d04aBAh2|caPGA|_4e;uYj)l>A(KB%k@QOynN7Mc8S^ zS=}=ZZJ)wN!hK4I(i`~HzO9c6f20uPS)FSOoC=ZEWsnKHHc$$@yU53_hNm1nQuA=Y z!b7OPmv3;K6a;D~AYBRp=w`a!PGi`grg?!GgOkK}=Ojxpq!f;qM87NI^Cu zbTw)6cs8*Y?_IwbEe#FgIV~sdpMcmi@EASKR@`PTBGC3m4cnx};331qBEBseM(4@e zWiTgk8R&}AXvRCwzo`(DAqHT>UsMPv50rQmlbf2w8$i7GLcSn9`IF7Zr`efWGq!$B zqObyL4s)})`sJ6}&wwQusEIN+?vUy)k1!=Kk^IC}s*Pfl!b6~q@myegh!9=)naaE8 zA``Yqs2lANox+$m-?xF@+Bhy7h z6yl~!sy+dSrSL_qYjfl+O%-D~R!WL_T?fT>K}$y7pQAc>kEo1K<^<6*Ueh_n3j4bj z%>ek`(n-4927bqqtc5QF%t}>v?~yO7W-sd;^_?mN5o-gpGnj)N6dnY$8;h)tjX59O z9OY>FH5!{z2W5(>=?$|K#O$L1F7AZ#0^njp^|nB;ntA!v<~pRXHIaSVwdr@@AQt%L zZjXV}iKvD_xuYTHRzoOrY~e2}FJ7@*5nkVR^A5ubgaOYn&M|Ps^>ii4EqNo1guFAM z_iK%8Tg`cBCLt_-FSof4YeV8BNh6NLWN~JVQ;7}= zVv^3@=&0AMzErsGhpgI6YzLk5Rk`eIq3dZ|9Al?2Q=d!=@3;htHT=c_>6rJS!i)07 zeF?N*gFZt~c6~&-?vtkO-3xQJa`;Vk8@b~ z9F5x-_~L`(%!|hxC0>7<_*b#^wqlUJ_N#yVVpOH2u0l?*8tu(7fRQ~l1dQ=3x!Gpy?u_q4 z)I*G4d*?Q&IL(K3zn$9NJjZgyrO;C9x8+Can#r{&jg7v(^*hyOv z?XVKU_C{jg(;u_aB&s8X3{-U|5s73^en{N0*;qhq?ug+BYNeuIZux}<5(ZiEc#G1i z&+(#4*`HHg%)?l*Oq8A7L^&C{X(-$c`&oK1RI)tPOA$w)2BUr+Y zW)Gbyhja?lOy*zZ=tdtuuOhqFp<8-~6t7om$817gj^#n6KTR{`3|+bI&V zbfG#gWXm$SGhTP3&NK94f^iXkD+n?t05!Rj3pwB>rco%pHcApvI7q*H<|9y0wu)F( zsBdD~mJ~)v) z?j^UCH~T_5cby}xKolu{Gl74N-QGF#%{V#NE=nANDLl_iv#fxu_b8d3y}XDta5cTZ zNgNK!DBAs^#J_B+!-x^1-7DUpRPas7f#MB?W}RN5A}xl>H5e|eX3EN~aFn7#c?O_k zX4&G$b{3NJYqsoVGtyB`N1HXbNz2RkP@St*-Or$>Wlk0rnd&#FP<2B+`!=HtF3}S) z-TBU~wRc{gK(7Xn)pZYBXM?ViIqRu;Meu7yyJ`t>a(o0ce}abX@MFBJQFea4cXOy; z6{n(>vJO6YUbB=%Aa;Jv%2N3~3*q|yCbPlCfM$(o^F1%;2$_k?G+~Vmn&`=gG#4mv z&wyW46PI5{B1TVaMQ=*PnOp2@?@&v;0C)ziEf{Od z)W9YNhvEY&@x*8%M=aN)zaTG-X$J|JDNS0IBPuEv)a&Rh@n%uF!M6_^x?kwmE|swC zFy>l#Dl=rPHR5c1f@C@D3K_-6#2Vx&VGlPRyP50!WsR1RtuN!75S7}eq*m(`dLqtf zK{2DvV%CQa(w;=dUcRfD`Zkn=igP9EVqV~(`j^BMycQ~CDxwbdz(%kE1evCkR|0m0 z%Xz}NpyIqCx{e$3j(v)sqgDsvegHo-+49P3JZ_-cn4y_brW|oIn@ptXOD~4EI`{D8 zCJAYzvt#FpD}G*aqJQ?dFMWn_LW}9#0eGYxy5}w>P<9q?9VtM+O~HD9K*Ds@U~c2E za|>k7Lb}KIw+oy$>3U_?Pq5&+70Ei(^#R~<>_dtTrh4huP`7cD?cjdEnG zM(+cjoVo;Ag$vz}m2<^5Bq`~ze4CM+xL?D*M{|=8$5cCT1xk2*%zVVwfaU8z9Ke=s zLdH1@=dLPtGCoD7V^o%TTz3z%3wJr}1rdTzR-f@|)hw^N0#}>FR)V#hYRESY5%eURx@4c~xeOk#l&u=BKsmj0>jKCGyirjN9vUfC*U6 zk$261t(X^nwZ^u^nT2K;7EBVgKn4LJ)`SuJqoZJsgNu{1*$N|^ls&iC>z`8LkWkU^fw?U$-lJ zq@N;mfpd`?60{(Z{b*3)a5>D{N5O|0j;|HH>l7id7kV#r#UxBMdsmS|$PdO0$U<~P zIP68Vm`WY$`}+EVPN=ek4-s=yk#FMbIH?^>t2ml8&`Nm=rUD5xs2v(OBlWK%_kIx` zgXmubXe*i&O+e#L0@(^36bOHKW111*(kK`Y`WdpnQNeJc%&kV{ut~PtFmx(1)5Nc2 zm+(x2E?7Pex`s8u6T+#Z0v62IzquirrF0K+qJH3Mybeb%qYiIy0jU5jX^H}`OEIfl zJ1Mj0BqK*g8D`40kerqyqNPovbie%Ela=Yo7BOVMkcs?4ZaA}%)x5lJHxUOGVQ1-Z zHC84Pm`dOzSpe9-QK)Ev)0%P%2FV8~Hmb+m&F=@a^(4v+@)~Qlf0)##Rz1tkt*5Em zoIr)Vt=@o^U6Q|>gXyG-8OxAY!Teb&lK2zf23qDM5#|*{Qk(hRptNZs(6&UFT9>~g_A2{T0kZY$wbCUc@njRyxYiKLUQw@Xekx9d&nfUs_{;zUIOGSP7ecPZa05sB}hBL-9+(VBmYRw+>5z1i_gl6tr*zKDn?B5+J=vQ5 zPB(X9F?XFm_j_yZo^Bq~avrx}p76sw3H`z&%LS@}1=r00kqcUQ1PJWP~TV5Mi zbt-A%hmhpBlEgt!u(5BB9e*<7-m$|Br{GoId^`%WS#+|9c90n=#XB4?lr{K9hqR%15RgR02MSFrJM-);TGV!q0i;weO@UDsZ! zd}E-j`q^DHb-*c==PT=Ml`(NduXfbe;o-IUk-lF3eg=*Mp7Q?lRRf{CDmK_BAyiP4 zs|F5eveYRQj_pRBZCshC&v9!N3#x5X2OH&~QBgf2hE-4aU9_+F=r`;T3yh;evs7w+ zjC&GPn67TeKx1k2?avG2dyVfEvy3gj8sm11B|08UV7T#{`hlG4si->27NtGU(|Twg zWYY?EDQ&uEX@J{9 zC-nx~@&4QI13w#Qx|vtlEjIHT=Y;&fpFfjnyrJ<3d1WPtum60-RA~?p1e^J)a6YpL zC|L6IbNFMS8aVsX8m0fZNMp+S2bxV^U`^cnX-B!w_M2CPO-kL{Cc#qsLrHten|uB~ zsj@OweK82jv3)l8ecb2cnK&5e7!myswY6@8dn(2K(X>FjLBWTS(^v}hfO@najLMND zyy;Fyf=nY2IJxd6y4udYN*bkkX9&JX`E-t`>-+9R5#(%v?0-@ri`@?}$YK-^eUz+8 z{VrxAH($L$fFRdOIU4m-&UHWufBH-YJLg0elUftAt>Tl?GX*`Z5D8xhpoCO<472!EYf!wq(FXR+1&bTbpS&pLINYmwj#X9VOR`qp5rG>{Eni)mZ{)piX8O1D5`V z+SpdgK;`l*Sg|Pvu_=8bh5KJ#2y3%VG#`$xeU_0`q66Hl7gnms&(rkNH#4d;fqu(x*)I-DRO&mi~MX;sO3JU_53AR%R zP^B0s^YLJFG~Q!fL{gS{tK`W0HNuga!A1^1uPE&tr|P<10@oT9J{R5c!U<<;WV}!= zPiaf1syvp*EXYxbMpx9uBAUp_#W&9_s8Bw#lhd_j)#^T(uckRy)x-r($)i*ErcRXK zFCdV#CeH|PR*4OH8=2SV_?ClDTm@<=J;<*IrvI7|E^su8(HRAd?zOLW|1bGR+;V0d^KKFg5c|v`*^G#l;w=H0xn6 zsVHftO9sH^6-h!Z`r-I^5SuA@&Or_W0m=raa{|GwfUk>uXaW|(U(S$uvAnVk?Hl_49u@M= z`pJ*hsUK3eg;R6rf3C(}-QV5}&4vHDyC&(s#}|yiqANzHGLXCD5{v{W7h_VP`f)Y> zoeKGCgY%Yx^DiodmClw_``@XMNkKe2Nn0Xkry;uC`v0Ip2z39SR7m=Ng$fa6pxtnM za-CWi0oy9N!#a|aoqYFyQz5v#tXL!)^2$%^|APt%`ilwy;|n+|K5KOPhYI;MNSmY= zUrJZP6`e4tUnQJXL$~{1ph7DC_fsLqe^Vil#s3)DU1Dum~O3VHHCg-nXQ zv-@`{1V0Z4hyE%i(Xz(gaeaNPT(B|Y8@Izi(8i?8zo?Mk#(fM%&Bd0y&X0rNFSZJ{ zSUA+WSpP$XBs|2eB3he$yQ|Gz1$-9nzgM=&uO4MoD0;j~-ugT_K--ZpOt8NLpqgjt z2yHoWs@1yxP^W0zDGYNbMVxH)2T8Pk{ssC<0{(OY0!0>7!+(y-{fK*AxS;2T# zK-Fx9?Ap0kIcn?&F?heIbTRRjrtT=cwsAYiGPHyy-mx6qUQL>%q(;v^M z=p9?UwU$1P+jqF-gu6F|h}YysOrbpUgHyTGBO*qhA}I%VnvL3rfBx}G_-Ss91~%zi zWc!hz8?f`cP_QrR+c!568FZ5!3@S}|VcDvXLHvIE$#w*$y?gKuiEDfNtP^%j4|)PO zog`ipHI!pS-s1D*0~Nx~155RKphD0_insWS43BL7rb19>5r0!5s0S)UIjDLE;Bs$( zKFbq!8i8Jav_I&u;ARAkW`1(~A|KUHSuFZQ-Q5M)Xf(Iv?n7!a1Ci)DTg>-JD|Jm( zTo`=6(gpX;cyZ*?mwxIs*9A71;>^Zj+F2`wY8zO7=T>i3|aq4(g+CYTz-1)GWOMq zYXlTW-Bvrs72!%@Wz^seS(r?xgF0@@)bQQ&5ACPzrDHxhyc=l(;PNX?!n^P52j6-u zSra8oZ3)II9-%P|^56y_Wbj6gS{JR!0QMpYJ!uT1IZGindg0RJ$-SaznYY%F>UQX( zeyu^jQ?I)ZJ9oIco8)amY@pN%O&#o|iDJ3;8pBVcQN`tt*^qziWB_=QQyB_OD)VKiH{d z-_d+&{iTvs&u0+*^`qZXc)jmnUy#pXMN6gAa;UD$x8aGDxH9eQhIPJg&ag&VOwn!8 z?#ZnzPao|L;J+Zb0kIFHN-FiLToC)je=gX=k1-$OIFQLp?t(Vedk3lANBFMV^ht#O zx+dTehu%0^jJH}RA#K0CRs6*sMj(lgPXz^5m|%|L34*=*#e(m%q1(PVj|1>WjM2Fy zLu#q8dVHM=fzbsNQT;$07L)^*XtWj%73O;2QwY|8za1|MKOW5zp(X__){3awgdjMc(kG;_*Znp$}$AT!QbagxlngQf z9p4(;KO}A33$y%{xe1sjCP^jUs}$}t>`M}}`f3w53bYpWUCav@_)23mQcJ=V-PkUO z(|Z*!gwdF+2@ws@$RNUpUOT+{gK`-=@)~wZ0i{6zcHuc~PC!(~(+(KFR3sNNQT;D4 zB!lNy21aWvMB;V&PUQJc#lk5!t-QWjUD0 z$img{A;5QpGUBYtCw$2YU2=rsmRo)7e@MJDF^;pF_KC#KoNN0@La4GQ%E7hp|s8?__+2c+f)Ci7cxM5muYIz1n zrJ^LKS#3vd^F*?8Tdsg#Am9NEA^i&snGz$>(nz8*&h7IHc@-E)S)2!_jvT_zKqjU> zUT0*%4TSa+h2&WKIw$d8KPXHA)&Kwi diff --git a/easyflash/inc/easyflash.h b/easyflash/inc/easyflash.h new file mode 100644 index 0000000..0667e3a --- /dev/null +++ b/easyflash/inc/easyflash.h @@ -0,0 +1,142 @@ +/* + * This file is part of the EasyFlash Library. + * + * Copyright (c) 2014, Armink, + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * 'Software'), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Function: Is is an head file for this library. You can see all be called functions. + * Created on: 2014-09-10 + */ + + +#ifndef EASYFLASH_H_ +#define EASYFLASH_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* using ENV function */ +#define EF_USING_ENV +/* using IAP function */ +#define EF_USING_IAP +/* using save log function */ +/* #define EF_USING_LOG */ +/* the user setting size of ENV, must be word alignment */ +#define EF_USER_SETTING_ENV_SIZE (2 * 1024) /* default 2K */ +/* using wear leveling mode or normal mode */ +/* #define EF_ENV_USING_WL_MODE */ +#define EF_ENV_USING_NORMAL_MODE + +/* EasyFlash debug print function. Must be implement by user. */ +#define EF_DEBUG(...) ef_log_debug(__FILE__, __LINE__, __VA_ARGS__) +/* EasyFlash routine print function. Must be implement by user. */ +#define EF_INFO(...) ef_log_info(__VA_ARGS__) +/* EasyFlash assert for developer. */ +#define EF_ASSERT(EXPR) \ +if (!(EXPR)) \ +{ \ + EF_DEBUG("(%s) has assert failed at %s.\n", #EXPR, __FUNCTION__); \ + while (1); \ +} +/* EasyFlash software version number */ +#define EF_SW_VERSION "1.07.04" + +typedef struct _eflash_env{ + char *key; + char *value; +}ef_env, *ef_env_t; + +/* EasyFlash error code */ +typedef enum { + EF_NO_ERR, + EF_ERASE_ERR, + EF_WRITE_ERR, + EF_ENV_NAME_ERR, + EF_ENV_NAME_EXIST, + EF_ENV_FULL, +} EfErrCode; + +/* the flash sector current status */ +typedef enum { + FLASH_SECTOR_EMPTY, + FLASH_SECTOR_USING, + FLASH_SECTOR_FULL, +}FlashSecrorStatus; + +/* easyflash.c */ +EfErrCode easyflash_init(void); + +#ifdef EF_USING_ENV +/* env.c env_wl.c */ +void ef_load_env(void); +void ef_print_env(void); +char *ef_get_env(const char *key); +EfErrCode ef_set_env(const char *key, const char *value); +EfErrCode ef_save_env(void); +EfErrCode ef_env_set_default(void); +size_t ef_get_env_total_size(void); +size_t ef_get_env_write_bytes(void); +#endif + +#ifdef EF_USING_IAP +/* iap.c */ +EfErrCode ef_erase_bak_app(size_t app_size); +EfErrCode ef_erase_user_app(uint32_t user_app_addr, size_t user_app_size); +EfErrCode ef_erase_bl(uint32_t bl_addr, size_t bl_size); +EfErrCode ef_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_size, + size_t total_size); +EfErrCode ef_copy_app_from_bak(uint32_t user_app_addr, size_t app_size); +EfErrCode ef_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size); +#endif + +#ifdef EF_USING_LOG +/* log.c */ +EfErrCode ef_log_read(size_t index, uint32_t *log, size_t size); +EfErrCode ef_log_write(const uint32_t *log, size_t size); +EfErrCode ef_log_clean(void); +size_t ef_log_get_used_size(void); +#endif + +/* utils.c */ +uint32_t calc_crc32(uint32_t crc, const void *buf, size_t size); +FlashSecrorStatus ef_get_sector_status(uint32_t addr, size_t sec_size); +uint32_t ef_find_sec_using_end_addr(uint32_t addr, size_t sec_size); + +/* port.c */ +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size); +EfErrCode ef_port_erase(uint32_t addr, size_t size); +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size); +void ef_port_env_lock(void); +void ef_port_env_unlock(void); +void ef_log_debug(const char *file, const long line, const char *format, ...); +void ef_log_info(const char *format, ...); +void ef_print(const char *format, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* EASYFLASH_H_ */ diff --git a/easyflash/inc/flash.h b/easyflash/inc/flash.h deleted file mode 100644 index 2eb0ff9..0000000 --- a/easyflash/inc/flash.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * This file is part of the EasyFlash Library. - * - * Copyright (c) 2014, Armink, - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * 'Software'), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Function: Is is an head file for this library. You can see all be called functions. - * Created on: 2014-09-10 - */ - - -#ifndef FLASH_H_ -#define FLASH_H_ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* using ENV function */ -#define FLASH_USING_ENV -/* using IAP function */ -#define FLASH_USING_IAP -/* using save log function */ -#define FLASH_USING_LOG -/* the user setting size of ENV, must be word alignment */ -#define FLASH_USER_SETTING_ENV_SIZE (2 * 1024) /* default 2K */ -/* using wear leveling mode or normal mode */ -/* #define FLASH_ENV_USING_WEAR_LEVELING_MODE */ -#define FLASH_ENV_USING_NORMAL_MODE - -/* Flash debug print function. Must be implement by user. */ -#define FLASH_DEBUG(...) flash_log_debug(__FILE__, __LINE__, __VA_ARGS__) -/* Flash routine print function. Must be implement by user. */ -#define FLASH_INFO(...) flash_log_info(__VA_ARGS__) -/* Flash assert for developer. */ -#define FLASH_ASSERT(EXPR) \ -if (!(EXPR)) \ -{ \ - FLASH_DEBUG("(%s) has assert failed at %s.\n", #EXPR, __FUNCTION__); \ - while (1); \ -} -/* EasyFlash software version number */ -#define FLASH_SW_VERSION "1.07.02" - -typedef struct _flash_env{ - char *key; - char *value; -}flash_env, *flash_env_t; - -/* Flash error code */ -typedef enum { - FLASH_NO_ERR, - FLASH_ERASE_ERR, - FLASH_WRITE_ERR, - FLASH_ENV_NAME_ERR, - FLASH_ENV_NAME_EXIST, - FLASH_ENV_FULL, -} FlashErrCode; - -/* the flash sector current status */ -typedef enum { - FLASH_SECTOR_EMPTY, - FLASH_SECTOR_USING, - FLASH_SECTOR_FULL, -}FlashSecrorStatus; - -/* flash.c */ -FlashErrCode flash_init(void); - -#ifdef FLASH_USING_ENV -/* flash_env.c flash_env_wl.c */ -void flash_load_env(void); -void flash_print_env(void); -char *flash_get_env(const char *key); -FlashErrCode flash_set_env(const char *key, const char *value); -FlashErrCode flash_save_env(void); -FlashErrCode flash_env_set_default(void); -size_t flash_get_env_total_size(void); -size_t flash_get_env_write_bytes(void); -#endif - -#ifdef FLASH_USING_IAP -/* flash_iap.c */ -FlashErrCode flash_erase_bak_app(size_t app_size); -FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t user_app_size); -FlashErrCode flash_erase_bl(uint32_t bl_addr, size_t bl_size); -FlashErrCode flash_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_size, - size_t total_size); -FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size); -FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size); -#endif - -#ifdef FLASH_USING_LOG -/* flash_log.c */ -FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size); -FlashErrCode flash_log_write(const uint32_t *log, size_t size); -FlashErrCode flash_log_clean(void); -size_t flash_log_get_used_size(void); -#endif - -/* flash_utils.c */ -uint32_t calc_crc32(uint32_t crc, const void *buf, size_t size); -FlashSecrorStatus flash_get_sector_status(uint32_t addr, size_t sec_size); -uint32_t flash_find_sec_using_end_addr(uint32_t addr, size_t sec_size); - -/* flash_port.c */ -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size); -FlashErrCode flash_erase(uint32_t addr, size_t size); -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size); -void flash_env_lock(void); -void flash_env_unlock(void); -void flash_log_debug(const char *file, const long line, const char *format, ...); -void flash_log_info(const char *format, ...); -void flash_print(const char *format, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* FLASH_H_ */ diff --git a/easyflash/port/flash_port.c b/easyflash/port/ef_port.c similarity index 69% rename from easyflash/port/flash_port.c rename to easyflash/port/ef_port.c index 189c2c5..476ad3b 100644 --- a/easyflash/port/flash_port.c +++ b/easyflash/port/ef_port.c @@ -26,23 +26,23 @@ * Created on: 2015-01-16 */ -#include "flash.h" +#include "easyflash.h" /* environment variables start address */ -#define FLASH_ENV_START_ADDR /* @note you must define it for a value */ +#define ENV_START_ADDR /* @note you must define it for a value */ /* the minimum size of flash erasure */ -#define FLASH_ERASE_MIN_SIZE /* @note you must define it for a value */ -#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE +#define ERASE_MIN_SIZE /* @note you must define it for a value */ +#ifdef EF_ENV_USING_WL_MODE /* ENV section total bytes size in wear leveling mode. */ -#define FLASH_ENV_SECTION_SIZE /* @note you must define it for a value */ +#define ENV_SECTION_SIZE /* @note you must define it for a value */ #else /* ENV section total bytes size in normal mode. It's equal with FLASH_USER_SETTING_ENV_SIZE */ -#define FLASH_ENV_SECTION_SIZE (FLASH_USER_SETTING_ENV_SIZE) +#define ENV_SECTION_SIZE (EF_USER_SETTING_ENV_SIZE) #endif /* saved log section size */ -#define FLASH_LOG_AREA_SIZE /* @note you must define it for a value */ +#define LOG_AREA_SIZE /* @note you must define it for a value */ /* print debug information of flash */ -#define FLASH_PRINT_DEBUG +#define PRINT_DEBUG /* default environment variables set for user */ static const flash_env default_env_set[] = { @@ -61,19 +61,19 @@ static const flash_env default_env_set[] = { * * @return result */ -FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, - flash_env const **default_env, size_t *default_env_size, size_t *log_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_init(uint32_t *env_addr, size_t *env_total_size, size_t *erase_min_size, + ef_env const **default_env, size_t *default_env_size, size_t *log_size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); - FLASH_ASSERT(FLASH_ENV_SECTION_SIZE % 4 == 0); + EF_ASSERT(EF_USER_SETTING_ENV_SIZE % 4 == 0); + EF_ASSERT(ENV_SECTION_SIZE % 4 == 0); - *env_addr = FLASH_ENV_START_ADDR; - *env_total_size = FLASH_ENV_SECTION_SIZE; - *erase_min_size = FLASH_ERASE_MIN_SIZE; + *env_addr = ENV_START_ADDR; + *env_total_size = ENV_SECTION_SIZE; + *erase_min_size = ERASE_MIN_SIZE; *default_env = default_env_set; - *default_env_size = sizeof(default_env_set)/sizeof(default_env_set[0]); - *log_size = FLASH_LOG_AREA_SIZE; + *default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]); + *log_size = LOG_AREA_SIZE; return result; } @@ -88,10 +88,10 @@ FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, size_t * * @return result */ -FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; - - FLASH_ASSERT(size % 4 == 0); +EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; + + EF_ASSERT(size % 4 == 0); /* You can add your code under here. */ @@ -108,11 +108,11 @@ FlashErrCode flash_read(uint32_t addr, uint32_t *buf, size_t size) { * * @return result */ -FlashErrCode flash_erase(uint32_t addr, size_t size) { - FlashErrCode result = FLASH_NO_ERR; - - /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ - FLASH_ASSERT(addr % FLASH_ERASE_MIN_SIZE == 0); +EfErrCode ef_port_erase(uint32_t addr, size_t size) { + EfErrCode result = EF_NO_ERR; + + /* make sure the start address is a multiple of ERASE_MIN_SIZE */ + EF_ASSERT(addr % ERASE_MIN_SIZE == 0); /* You can add your code under here. */ @@ -129,10 +129,10 @@ FlashErrCode flash_erase(uint32_t addr, size_t size) { * * @return result */ -FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(size % 4 == 0); + EF_ASSERT(size % 4 == 0); /* You can add your code under here. */ @@ -142,7 +142,7 @@ FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size) { /** * lock the ENV ram cache */ -void flash_env_lock(void) { +void ef_port_env_lock(void) { /* You can add your code under here. */ @@ -151,7 +151,7 @@ void flash_env_lock(void) { /** * unlock the ENV ram cache */ -void flash_env_unlock(void) { +void ef_port_env_unlock(void) { /* You can add your code under here. */ @@ -167,9 +167,9 @@ void flash_env_unlock(void) { * @param ... args * */ -void flash_log_debug(const char *file, const long line, const char *format, ...) { +void ef_log_debug(const char *file, const long line, const char *format, ...) { -#ifdef FLASH_PRINT_DEBUG +#ifdef PRINT_DEBUG va_list args; @@ -190,7 +190,7 @@ void flash_log_debug(const char *file, const long line, const char *format, ...) * @param format output format * @param ... args */ -void flash_log_info(const char *format, ...) { +void ef_log_info(const char *format, ...) { va_list args; /* args point to the first variable parameter */ @@ -206,7 +206,7 @@ void flash_log_info(const char *format, ...) { * @param format output format * @param ... args */ -void flash_print(const char *format, ...) { +void ef_print(const char *format, ...) { va_list args; /* args point to the first variable parameter */ diff --git a/easyflash/src/flash.c b/easyflash/src/easyflash.c similarity index 56% rename from easyflash/src/flash.c rename to easyflash/src/easyflash.c index e16085c..875a909 100644 --- a/easyflash/src/flash.c +++ b/easyflash/src/easyflash.c @@ -50,66 +50,66 @@ * 2.data section.(storage all environment variables) * */ -#include "flash.h" +#include "easyflash.h" /** - * Flash system initialize. + * EasyFlash system initialize. * * @return result */ -FlashErrCode flash_init(void) { - extern FlashErrCode flash_port_init(uint32_t *env_addr, size_t *env_total_size, - size_t *erase_min_size, flash_env const **default_env, size_t *default_env_size, +EfErrCode easyflash_init(void) { + extern EfErrCode ef_port_init(uint32_t *env_addr, size_t *env_total_size, + size_t *erase_min_size, ef_env const **default_env, size_t *default_env_size, size_t *log_size); - extern FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, - size_t erase_min_size, flash_env const *default_env, size_t default_env_size); - extern FlashErrCode flash_iap_init(uint32_t start_addr); - extern FlashErrCode flash_log_init(uint32_t start_addr, size_t log_size, size_t erase_min_size); + extern EfErrCode ef_env_init(uint32_t start_addr, size_t total_size, size_t erase_min_size, + ef_env const *default_env, size_t default_env_size); + extern EfErrCode ef_iap_init(uint32_t start_addr); + extern EfErrCode ef_log_init(uint32_t start_addr, size_t log_size, size_t erase_min_size); uint32_t env_start_addr; size_t env_total_size = 0, erase_min_size = 0, default_env_set_size = 0, log_size = 0; - const flash_env *default_env_set; - FlashErrCode result = FLASH_NO_ERR; + const ef_env *default_env_set; + EfErrCode result = EF_NO_ERR; - result = flash_port_init(&env_start_addr, &env_total_size, &erase_min_size, &default_env_set, + result = ef_port_init(&env_start_addr, &env_total_size, &erase_min_size, &default_env_set, &default_env_set_size, &log_size); -#ifdef FLASH_USING_ENV - if (result == FLASH_NO_ERR) { - result = flash_env_init(env_start_addr, env_total_size, erase_min_size, default_env_set, +#ifdef EF_USING_ENV + if (result == EF_NO_ERR) { + result = ef_env_init(env_start_addr, env_total_size, erase_min_size, default_env_set, default_env_set_size); } #endif -#ifdef FLASH_USING_IAP - if (result == FLASH_NO_ERR) { - if (flash_get_env_total_size() < erase_min_size) { - result = flash_iap_init(env_start_addr + erase_min_size + log_size); - } else if (flash_get_env_total_size() % erase_min_size == 0) { - result = flash_iap_init(env_start_addr + flash_get_env_total_size() + log_size); +#ifdef EF_USING_IAP + if (result == EF_NO_ERR) { + if (ef_get_env_total_size() < erase_min_size) { + result = ef_iap_init(env_start_addr + erase_min_size + log_size); + } else if (ef_get_env_total_size() % erase_min_size == 0) { + result = ef_iap_init(env_start_addr + ef_get_env_total_size() + log_size); } else { - result = flash_iap_init((flash_get_env_total_size() / erase_min_size + 1) * erase_min_size + log_size); + result = ef_iap_init((ef_get_env_total_size() / erase_min_size + 1) * erase_min_size + log_size); } } #endif -#ifdef FLASH_USING_LOG - if (result == FLASH_NO_ERR) { - if (flash_get_env_total_size() < erase_min_size) { - result = flash_log_init(env_start_addr + erase_min_size, log_size, erase_min_size); - } else if (flash_get_env_total_size() % erase_min_size == 0) { - result = flash_log_init(env_start_addr + flash_get_env_total_size(), log_size, erase_min_size); +#ifdef EF_USING_LOG + if (result == EF_NO_ERR) { + if (ef_get_env_total_size() < erase_min_size) { + result = ef_log_init(env_start_addr + erase_min_size, log_size, erase_min_size); + } else if (ef_get_env_total_size() % erase_min_size == 0) { + result = ef_log_init(env_start_addr + ef_get_env_total_size(), log_size, erase_min_size); } else { - result = flash_log_init((flash_get_env_total_size() / erase_min_size + 1) * erase_min_size, + result = ef_log_init((ef_get_env_total_size() / erase_min_size + 1) * erase_min_size, log_size, erase_min_size); } } #endif - if (result == FLASH_NO_ERR) { - FLASH_DEBUG("EasyFlash V%s is initialize success.\n", FLASH_SW_VERSION); + if (result == EF_NO_ERR) { + EF_DEBUG("EasyFlash V%s is initialize success.\n", EF_SW_VERSION); } else { - FLASH_DEBUG("EasyFlash V%s is initialize fail.\n", FLASH_SW_VERSION); + EF_DEBUG("EasyFlash V%s is initialize fail.\n", EF_SW_VERSION); } return result; diff --git a/easyflash/src/flash_env.c b/easyflash/src/ef_env.c similarity index 72% rename from easyflash/src/flash_env.c rename to easyflash/src/ef_env.c index c032902..92db391 100644 --- a/easyflash/src/flash_env.c +++ b/easyflash/src/ef_env.c @@ -26,13 +26,13 @@ * Created on: 2014-10-06 */ -#include "flash.h" +#include "easyflash.h" #include #include -#ifdef FLASH_USING_ENV +#ifdef EF_USING_ENV -#ifdef FLASH_ENV_USING_NORMAL_MODE +#ifdef EF_ENV_USING_NORMAL_MODE /** * ENV area has 2 sections @@ -58,11 +58,11 @@ enum { }; /* default ENV set, must be initialized by user */ -static flash_env const *default_env_set = NULL; +static ef_env const *default_env_set = NULL; /* default ENV set size, must be initialized by user */ static size_t default_env_set_size = NULL; /* ENV RAM cache */ -static uint32_t env_cache[FLASH_USER_SETTING_ENV_SIZE / 4] = { 0 }; +static uint32_t env_cache[EF_USER_SETTING_ENV_SIZE / 4] = { 0 }; /* ENV start address in flash */ static uint32_t env_start_addr = NULL; @@ -70,11 +70,11 @@ static uint32_t get_env_system_addr(void); static uint32_t get_env_data_addr(void); static uint32_t get_env_end_addr(void); static void set_env_end_addr(uint32_t end_addr); -static FlashErrCode write_env(const char *key, const char *value); +static EfErrCode write_env(const char *key, const char *value); static uint32_t *find_env(const char *key); -static FlashErrCode del_env(const char *key); +static EfErrCode del_env(const char *key); static size_t get_env_data_size(void); -static FlashErrCode create_env(const char *key, const char *value); +static EfErrCode create_env(const char *key, const char *value); static uint32_t calc_env_crc(void); static bool env_crc_is_ok(void); @@ -91,26 +91,26 @@ static bool env_crc_is_ok(void); * * @return result */ -FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, size_t erase_min_size, - flash_env const *default_env, size_t default_env_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_env_init(uint32_t start_addr, size_t total_size, size_t erase_min_size, + ef_env const *default_env, size_t default_env_size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(start_addr); - FLASH_ASSERT(total_size); + EF_ASSERT(start_addr); + EF_ASSERT(total_size); /* user_size must equal with total_size in normal mode */ - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE == total_size); - FLASH_ASSERT(default_env); - FLASH_ASSERT(default_env_size < total_size); + EF_ASSERT(EF_USER_SETTING_ENV_SIZE == total_size); + EF_ASSERT(default_env); + EF_ASSERT(default_env_size < total_size); /* must be word alignment for ENV */ - FLASH_ASSERT(total_size % 4 == 0); + EF_ASSERT(total_size % 4 == 0); env_start_addr = start_addr; default_env_set = default_env; default_env_set_size = default_env_size; - FLASH_DEBUG("Env start address is 0x%08X, size is %d bytes.\n", start_addr, total_size); + EF_DEBUG("Env start address is 0x%08X, size is %d bytes.\n", start_addr, total_size); - flash_load_env(); + ef_load_env(); return result; } @@ -120,15 +120,15 @@ FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, size_t erase * * @return result */ -FlashErrCode flash_env_set_default(void){ - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_env_set_default(void){ + EfErrCode result = EF_NO_ERR; size_t i; - FLASH_ASSERT(default_env_set); - FLASH_ASSERT(default_env_set_size); + EF_ASSERT(default_env_set); + EF_ASSERT(default_env_set_size); /* lock the ENV cache */ - flash_env_lock(); + ef_port_env_lock(); /* set environment end address is at data section start address */ set_env_end_addr(get_env_data_addr()); @@ -139,9 +139,9 @@ FlashErrCode flash_env_set_default(void){ } /* unlock the ENV cache */ - flash_env_unlock(); + ef_port_env_unlock(); - flash_save_env(); + ef_save_env(); return result; } @@ -152,7 +152,7 @@ FlashErrCode flash_env_set_default(void){ * @return system section start address */ static uint32_t get_env_system_addr(void) { - FLASH_ASSERT(env_start_addr); + EF_ASSERT(env_start_addr); return env_start_addr; } @@ -162,7 +162,7 @@ static uint32_t get_env_system_addr(void) { * @return data section start address */ static uint32_t get_env_data_addr(void) { - FLASH_ASSERT(env_start_addr); + EF_ASSERT(env_start_addr); return env_start_addr + ENV_PARAM_BYTE_SIZE; } @@ -201,8 +201,8 @@ static size_t get_env_data_size(void) { * * @return size */ -size_t flash_get_env_total_size(void) { - return FLASH_USER_SETTING_ENV_SIZE; +size_t ef_get_env_total_size(void) { + return EF_USER_SETTING_ENV_SIZE; } /** @@ -210,7 +210,7 @@ size_t flash_get_env_total_size(void) { * * @return write bytes */ -size_t flash_get_env_write_bytes(void) { +size_t ef_get_env_write_bytes(void) { return get_env_end_addr() - env_start_addr; } @@ -222,8 +222,8 @@ size_t flash_get_env_write_bytes(void) { * * @return result */ -static FlashErrCode write_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode write_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; size_t ker_len = strlen(key), value_len = strlen(value), env_str_len; char *env_cache_bak = (char *)env_cache; @@ -233,11 +233,11 @@ static FlashErrCode write_env(const char *key, const char *value) { env_str_len = (env_str_len / 4 + 1) * 4; } /* check capacity of ENV */ - if (env_str_len + get_env_data_size() >= flash_get_env_total_size()) { - return FLASH_ENV_FULL; + if (env_str_len + get_env_data_size() >= ef_get_env_total_size()) { + return EF_ENV_FULL; } /* calculate current ENV ram cache end address */ - env_cache_bak += flash_get_env_write_bytes(); + env_cache_bak += ef_get_env_write_bytes(); /* copy key name */ memcpy(env_cache_bak, key, ker_len); env_cache_bak += ker_len; @@ -269,16 +269,16 @@ static uint32_t *find_env(const char *key) { char *env_start, *env_end, *env; size_t key_len = strlen(key), env_len; - FLASH_ASSERT(env_start_addr); + EF_ASSERT(env_start_addr); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not empty!\n"); + EF_INFO("Flash ENV name must be not empty!\n"); return NULL; } /* from data section start to data section end */ env_start = (char *) ((char *) env_cache + ENV_PARAM_BYTE_SIZE); - env_end = (char *) ((char *) env_cache + flash_get_env_write_bytes()); + env_end = (char *) ((char *) env_cache + ef_get_env_write_bytes()); /* ENV is null */ if (env_start == env_end) { @@ -314,26 +314,26 @@ static uint32_t *find_env(const char *key) { * * @return result */ -static FlashErrCode create_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode create_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(key); - FLASH_ASSERT(value); + EF_ASSERT(key); + EF_ASSERT(value); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not empty!\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name must be not empty!\n"); + return EF_ENV_NAME_ERR; } if (strchr(key, '=')) { - FLASH_INFO("Flash ENV name can't contain '='.\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name can't contain '='.\n"); + return EF_ENV_NAME_ERR; } /* find ENV */ if (find_env(key)) { - FLASH_INFO("The name of \"%s\" is already exist.\n", key); - return FLASH_ENV_NAME_EXIST; + EF_INFO("The name of \"%s\" is already exist.\n", key); + return EF_ENV_NAME_EXIST; } /* write ENV at the end of cache */ result = write_env(key, value); @@ -348,29 +348,29 @@ static FlashErrCode create_env(const char *key, const char *value) { * * @return result */ -static FlashErrCode del_env(const char *key){ - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode del_env(const char *key){ + EfErrCode result = EF_NO_ERR; char *del_env_str = NULL; size_t del_env_length, remain_env_length; - FLASH_ASSERT(key); + EF_ASSERT(key); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not NULL!\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name must be not NULL!\n"); + return EF_ENV_NAME_ERR; } if (strchr(key, '=')) { - FLASH_INFO("Flash ENV name or value can't contain '='.\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name or value can't contain '='.\n"); + return EF_ENV_NAME_ERR; } /* find ENV */ del_env_str = (char *) find_env(key); if (!del_env_str) { - FLASH_INFO("Not find \"%s\" in ENV.\n", key); - return FLASH_ENV_NAME_ERR; + EF_INFO("Not find \"%s\" in ENV.\n", key); + return EF_ENV_NAME_ERR; } del_env_length = strlen(del_env_str); /* '\0' also must be as ENV length */ @@ -399,11 +399,11 @@ static FlashErrCode del_env(const char *key){ * * @return result */ -FlashErrCode flash_set_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_set_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; /* lock the ENV cache */ - flash_env_lock(); + ef_port_env_lock(); /* if ENV value is empty, delete it */ if (*value == NULL) { @@ -413,12 +413,12 @@ FlashErrCode flash_set_env(const char *key, const char *value) { if (find_env(key)) { result = del_env(key); } - if (result == FLASH_NO_ERR) { + if (result == EF_NO_ERR) { result = create_env(key, value); } } /* unlock the ENV cache */ - flash_env_unlock(); + ef_port_env_unlock(); return result; } @@ -430,7 +430,7 @@ FlashErrCode flash_set_env(const char *key, const char *value) { * * @return value */ -char *flash_get_env(const char *key) { +char *ef_get_env(const char *key) { uint32_t *env_cache_addr = NULL; char *value = NULL; @@ -451,7 +451,7 @@ char *flash_get_env(const char *key) { /** * Print ENV. */ -void flash_print_env(void) { +void ef_print_env(void) { uint32_t *env_cache_data_addr = env_cache + ENV_PARAM_WORD_SIZE, *env_cache_end_addr = (uint32_t *) (env_cache + ENV_PARAM_WORD_SIZE + get_env_data_size() / 4); @@ -461,43 +461,43 @@ void flash_print_env(void) { for (; env_cache_data_addr < env_cache_end_addr; env_cache_data_addr += 1) { for (j = 0; j < 4; j++) { c = (*env_cache_data_addr) >> (8 * j); - flash_print("%c", c); + ef_print("%c", c); if (c == NULL) { - flash_print("\n"); + ef_print("\n"); break; } } } - flash_print("\nENV size: %ld/%ld bytes, mode: normal.\n", - flash_get_env_write_bytes(), flash_get_env_total_size()); + ef_print("\nENV size: %ld/%ld bytes, mode: normal.\n", + ef_get_env_write_bytes(), ef_get_env_total_size()); } /** * Load flash ENV to ram. */ -void flash_load_env(void) { +void ef_load_env(void) { uint32_t *env_cache_bak, env_end_addr; /* read ENV end address from flash */ - flash_read(get_env_system_addr() + ENV_PARAM_INDEX_END_ADDR * 4, &env_end_addr, 4); + ef_port_read(get_env_system_addr() + ENV_PARAM_INDEX_END_ADDR * 4, &env_end_addr, 4); /* if ENV is not initialize or flash has dirty data, set default for it */ if ((env_end_addr == 0xFFFFFFFF) - || (env_end_addr > env_start_addr + flash_get_env_total_size())) { - flash_env_set_default(); + || (env_end_addr > env_start_addr + ef_get_env_total_size())) { + ef_env_set_default(); } else { /* set ENV end address */ set_env_end_addr(env_end_addr); env_cache_bak = env_cache + ENV_PARAM_WORD_SIZE; /* read all ENV from flash */ - flash_read(get_env_data_addr(), env_cache_bak, get_env_data_size()); + ef_port_read(get_env_data_addr(), env_cache_bak, get_env_data_size()); /* read ENV CRC code from flash */ - flash_read(get_env_system_addr() + ENV_PARAM_INDEX_DATA_CRC * 4, + ef_port_read(get_env_system_addr() + ENV_PARAM_INDEX_DATA_CRC * 4, &env_cache[ENV_PARAM_INDEX_DATA_CRC] , 4); /* if ENV CRC32 check is fault, set default for it */ if (!env_crc_is_ok()) { - FLASH_INFO("Warning: ENV CRC check failed. Set it to default.\n"); - flash_env_set_default(); + EF_INFO("Warning: ENV CRC check failed. Set it to default.\n"); + ef_env_set_default(); } } } @@ -505,34 +505,34 @@ void flash_load_env(void) { /** * Save ENV to flash. */ -FlashErrCode flash_save_env(void) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_save_env(void) { + EfErrCode result = EF_NO_ERR; /* calculate and cache CRC32 code */ env_cache[ENV_PARAM_INDEX_DATA_CRC] = calc_env_crc(); /* erase ENV */ - result = flash_erase(get_env_system_addr(), flash_get_env_write_bytes()); + result = ef_port_erase(get_env_system_addr(), ef_get_env_write_bytes()); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Erased ENV OK.\n"); + case EF_NO_ERR: { + EF_INFO("Erased ENV OK.\n"); break; } - case FLASH_ERASE_ERR: { - FLASH_INFO("Warning: Erased ENV fault!\n"); + case EF_ERASE_ERR: { + EF_INFO("Warning: Erased ENV fault!\n"); /* will return when erase fault */ return result; } } /* write ENV to flash */ - result = flash_write(get_env_system_addr(), env_cache, flash_get_env_write_bytes()); + result = ef_port_write(get_env_system_addr(), env_cache, ef_get_env_write_bytes()); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Saved ENV OK.\n"); + case EF_NO_ERR: { + EF_INFO("Saved ENV OK.\n"); break; } - case FLASH_WRITE_ERR: { - FLASH_INFO("Warning: Saved ENV fault!\n"); + case EF_WRITE_ERR: { + EF_INFO("Warning: Saved ENV fault!\n"); break; } } @@ -552,7 +552,7 @@ static uint32_t calc_env_crc(void) { * The 4 is ENV end address bytes size. */ crc32 = calc_crc32(crc32, &env_cache[ENV_PARAM_INDEX_END_ADDR], 4); crc32 = calc_crc32(crc32, &env_cache[ENV_PARAM_WORD_SIZE], get_env_data_size()); - FLASH_DEBUG("Calculate Env CRC32 number is 0x%08X.\n", crc32); + EF_DEBUG("Calculate Env CRC32 number is 0x%08X.\n", crc32); return crc32; } @@ -564,13 +564,13 @@ static uint32_t calc_env_crc(void) { */ static bool env_crc_is_ok(void) { if (calc_env_crc() == env_cache[ENV_PARAM_INDEX_DATA_CRC]) { - FLASH_DEBUG("Verify Env CRC32 result is OK.\n"); + EF_DEBUG("Verify Env CRC32 result is OK.\n"); return true; } else { return false; } } -#endif /* FLASH_ENV_USING_NORMAL_MODE */ +#endif /* EF_ENV_USING_NORMAL_MODE */ -#endif /* FLASH_USING_ENV */ +#endif /* EF_USING_ENV */ diff --git a/easyflash/src/flash_env_wl.c b/easyflash/src/ef_env_wl.c similarity index 73% rename from easyflash/src/flash_env_wl.c rename to easyflash/src/ef_env_wl.c index 6272911..504839c 100644 --- a/easyflash/src/flash_env_wl.c +++ b/easyflash/src/ef_env_wl.c @@ -26,13 +26,13 @@ * Created on: 2015-02-11 */ -#include "flash.h" +#include "easyflash.h" #include #include -#ifdef FLASH_USING_ENV +#ifdef EF_USING_ENV -#ifdef FLASH_ENV_USING_WEAR_LEVELING_MODE +#ifdef EF_ENV_USING_WL_MODE /** * ENV area has 2 sections @@ -65,7 +65,7 @@ enum { }; /* default ENV set, must be initialized by user */ -static flash_env const *default_env_set = NULL; +static ef_env const *default_env_set = NULL; /* default ENV set size, must be initialized by user */ static size_t default_env_set_size = NULL; /* flash ENV all section total size */ @@ -73,7 +73,7 @@ static size_t env_total_size = NULL; /* the minimum size of flash erasure */ static size_t flash_erase_min_size = NULL; /* ENV RAM cache */ -static uint32_t env_cache[FLASH_USER_SETTING_ENV_SIZE / 4] = { 0 }; +static uint32_t env_cache[EF_USER_SETTING_ENV_SIZE / 4] = { 0 }; /* ENV start address in flash */ static uint32_t env_start_addr = NULL; /* current using data section address */ @@ -85,13 +85,13 @@ static uint32_t get_env_detail_addr(void); static uint32_t get_env_detail_end_addr(void); static void set_cur_using_data_addr(uint32_t using_data_addr); static void set_env_detail_end_addr(uint32_t end_addr); -static FlashErrCode write_env(const char *key, const char *value); +static EfErrCode write_env(const char *key, const char *value); static uint32_t *find_env(const char *key); static size_t get_env_detail_size(void); static size_t get_env_user_used_size(void); -static FlashErrCode create_env(const char *key, const char *value); -static FlashErrCode del_env(const char *key); -static FlashErrCode save_cur_using_data_addr(uint32_t cur_data_addr); +static EfErrCode create_env(const char *key, const char *value); +static EfErrCode del_env(const char *key); +static EfErrCode save_cur_using_data_addr(uint32_t cur_data_addr); static uint32_t calc_env_crc(void); static bool env_crc_is_ok(void); @@ -106,20 +106,20 @@ static bool env_crc_is_ok(void); * * @return result */ -FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, size_t erase_min_size, - flash_env const *default_env, size_t default_env_size) { - FlashErrCode result = FLASH_NO_ERR; - - FLASH_ASSERT(start_addr); - FLASH_ASSERT(total_size); - FLASH_ASSERT(erase_min_size); - FLASH_ASSERT(default_env); - FLASH_ASSERT(default_env_size < FLASH_USER_SETTING_ENV_SIZE); +EfErrCode ef_env_init(uint32_t start_addr, size_t total_size, size_t erase_min_size, + ef_env const *default_env, size_t default_env_size) { + EfErrCode result = EF_NO_ERR; + + EF_ASSERT(start_addr); + EF_ASSERT(total_size); + EF_ASSERT(erase_min_size); + EF_ASSERT(default_env); + EF_ASSERT(default_env_size < EF_USER_SETTING_ENV_SIZE); /* must be word alignment for ENV */ - FLASH_ASSERT(FLASH_USER_SETTING_ENV_SIZE % 4 == 0); - FLASH_ASSERT(total_size % 4 == 0); + EF_ASSERT(EF_USER_SETTING_ENV_SIZE % 4 == 0); + EF_ASSERT(total_size % 4 == 0); /* the ENV total size should be an integral multiple of erase minimum size. */ - FLASH_ASSERT(total_size % erase_min_size == 0); + EF_ASSERT(total_size % erase_min_size == 0); env_start_addr = start_addr; env_total_size = total_size; @@ -127,9 +127,9 @@ FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, size_t erase default_env_set = default_env; default_env_set_size = default_env_size; - FLASH_DEBUG("Env start address is 0x%08X, size is %d bytes.\n", start_addr, total_size); + EF_DEBUG("Env start address is 0x%08X, size is %d bytes.\n", start_addr, total_size); - flash_load_env(); + ef_load_env(); return result; } @@ -139,15 +139,15 @@ FlashErrCode flash_env_init(uint32_t start_addr, size_t total_size, size_t erase * * @return result */ -FlashErrCode flash_env_set_default(void){ - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_env_set_default(void){ + EfErrCode result = EF_NO_ERR; size_t i; - FLASH_ASSERT(default_env_set); - FLASH_ASSERT(default_env_set_size); + EF_ASSERT(default_env_set); + EF_ASSERT(default_env_set_size); /* lock the ENV cache */ - flash_env_lock(); + ef_port_env_lock(); /* set ENV detail part end address is at ENV detail part start address */ set_env_detail_end_addr(get_env_detail_addr()); @@ -158,9 +158,9 @@ FlashErrCode flash_env_set_default(void){ } /* unlock the ENV cache */ - flash_env_unlock(); + ef_port_env_unlock(); - flash_save_env(); + ef_save_env(); return result; } @@ -171,7 +171,7 @@ FlashErrCode flash_env_set_default(void){ * @return ENV start address in flash */ static uint32_t get_env_start_addr(void) { - FLASH_ASSERT(env_start_addr); + EF_ASSERT(env_start_addr); return env_start_addr; } /** @@ -180,7 +180,7 @@ static uint32_t get_env_start_addr(void) { * @return current using data section address */ static uint32_t get_cur_using_data_addr(void) { - FLASH_ASSERT(cur_using_data_addr); + EF_ASSERT(cur_using_data_addr); return cur_using_data_addr; } @@ -199,7 +199,7 @@ static void set_cur_using_data_addr(uint32_t using_data_addr) { * @return detail part start address */ static uint32_t get_env_detail_addr(void) { - FLASH_ASSERT(cur_using_data_addr); + EF_ASSERT(cur_using_data_addr); return get_cur_using_data_addr() + ENV_PARAM_PART_BYTE_SIZE; } @@ -236,7 +236,7 @@ static size_t get_env_detail_size(void) { /** * Get current user used ENV size. * - * @see FLASH_USER_SETTING_ENV_SIZE + * @see EF_USER_SETTING_ENV_SIZE * * @return size */ @@ -251,7 +251,7 @@ static size_t get_env_user_used_size(void) { * * @return write bytes */ -size_t flash_get_env_write_bytes(void) { +size_t ef_get_env_write_bytes(void) { return get_env_detail_end_addr() - get_env_start_addr(); } @@ -262,9 +262,9 @@ size_t flash_get_env_write_bytes(void) { * * @return size */ -size_t flash_get_env_total_size(void) { +size_t ef_get_env_total_size(void) { /* must be initialized */ - FLASH_ASSERT(env_total_size); + EF_ASSERT(env_total_size); return env_total_size; } @@ -277,8 +277,8 @@ size_t flash_get_env_total_size(void) { * * @return result */ -static FlashErrCode write_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode write_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; size_t ker_len = strlen(key), value_len = strlen(value), env_str_len; char *env_cache_bak = (char *)env_cache; @@ -288,8 +288,8 @@ static FlashErrCode write_env(const char *key, const char *value) { env_str_len = (env_str_len / 4 + 1) * 4; } /* check capacity of ENV */ - if (env_str_len + get_env_detail_size() >= FLASH_USER_SETTING_ENV_SIZE) { - return FLASH_ENV_FULL; + if (env_str_len + get_env_detail_size() >= EF_USER_SETTING_ENV_SIZE) { + return EF_ENV_FULL; } /* calculate current ENV ram cache end address */ env_cache_bak += ENV_PARAM_PART_BYTE_SIZE + get_env_detail_size(); @@ -324,10 +324,10 @@ static uint32_t *find_env(const char *key) { char *env_start, *env_end, *env; size_t key_len = strlen(key), env_len; - FLASH_ASSERT(cur_using_data_addr); + EF_ASSERT(cur_using_data_addr); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not empty!\n"); + EF_INFO("Flash ENV name must be not empty!\n"); return NULL; } @@ -370,26 +370,26 @@ static uint32_t *find_env(const char *key) { * * @return result */ -static FlashErrCode create_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode create_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(key); - FLASH_ASSERT(value); + EF_ASSERT(key); + EF_ASSERT(value); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not empty!\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name must be not empty!\n"); + return EF_ENV_NAME_ERR; } if (strchr(key, '=')) { - FLASH_INFO("Flash ENV name can't contain '='.\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name can't contain '='.\n"); + return EF_ENV_NAME_ERR; } /* find ENV */ if (find_env(key)) { - FLASH_INFO("The name of \"%s\" is already exist.\n", key); - return FLASH_ENV_NAME_EXIST; + EF_INFO("The name of \"%s\" is already exist.\n", key); + return EF_ENV_NAME_EXIST; } /* write ENV at the end of cache */ result = write_env(key, value); @@ -404,29 +404,29 @@ static FlashErrCode create_env(const char *key, const char *value) { * * @return result */ -static FlashErrCode del_env(const char *key) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode del_env(const char *key) { + EfErrCode result = EF_NO_ERR; char *del_env_str = NULL; size_t del_env_length, remain_env_length; - FLASH_ASSERT(key); + EF_ASSERT(key); if (*key == NULL) { - FLASH_INFO("Flash ENV name must be not NULL!\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name must be not NULL!\n"); + return EF_ENV_NAME_ERR; } if (strchr(key, '=')) { - FLASH_INFO("Flash ENV name or value can't contain '='.\n"); - return FLASH_ENV_NAME_ERR; + EF_INFO("Flash ENV name or value can't contain '='.\n"); + return EF_ENV_NAME_ERR; } /* find ENV */ del_env_str = (char *) find_env(key); if (!del_env_str) { - FLASH_INFO("Not find \"%s\" in ENV.\n", key); - return FLASH_ENV_NAME_ERR; + EF_INFO("Not find \"%s\" in ENV.\n", key); + return EF_ENV_NAME_ERR; } del_env_length = strlen(del_env_str); /* '\0' also must be as ENV length */ @@ -455,11 +455,11 @@ static FlashErrCode del_env(const char *key) { * * @return result */ -FlashErrCode flash_set_env(const char *key, const char *value) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_set_env(const char *key, const char *value) { + EfErrCode result = EF_NO_ERR; /* lock the ENV cache */ - flash_env_lock(); + ef_port_env_lock(); /* if ENV value is empty, delete it */ if (*value == NULL) { @@ -469,12 +469,12 @@ FlashErrCode flash_set_env(const char *key, const char *value) { if (find_env(key)) { result = del_env(key); } - if (result == FLASH_NO_ERR) { + if (result == EF_NO_ERR) { result = create_env(key, value); } } /* unlock the ENV cache */ - flash_env_unlock(); + ef_port_env_unlock(); return result; } @@ -486,7 +486,7 @@ FlashErrCode flash_set_env(const char *key, const char *value) { * * @return value */ -char *flash_get_env(const char *key) { +char *ef_get_env(const char *key) { uint32_t *env_cache_addr = NULL; char *value = NULL; @@ -507,9 +507,8 @@ char *flash_get_env(const char *key) { /** * Print ENV. */ -void flash_print_env(void) { - uint32_t *env_cache_detail_addr = env_cache + ENV_PARAM_PART_WORD_SIZE, - *env_cache_end_addr = +void ef_print_env(void) { + uint32_t *env_cache_detail_addr = env_cache + ENV_PARAM_PART_WORD_SIZE, *env_cache_end_addr = (uint32_t *) (env_cache + ENV_PARAM_PART_WORD_SIZE + get_env_detail_size() / 4); uint8_t j; char c; @@ -517,58 +516,58 @@ void flash_print_env(void) { for (; env_cache_detail_addr < env_cache_end_addr; env_cache_detail_addr += 1) { for (j = 0; j < 4; j++) { c = (*env_cache_detail_addr) >> (8 * j); - flash_print("%c", c); + ef_print("%c", c); if (c == NULL) { - flash_print("\n"); + ef_print("\n"); break; } } } - flash_print("\nENV size: %ld/%ld bytes, write bytes %ld/%ld, mode: wear leveling.\n", - get_env_user_used_size(), FLASH_USER_SETTING_ENV_SIZE, flash_get_env_write_bytes(), - flash_get_env_total_size()); + ef_print("\nENV size: %ld/%ld bytes, write bytes %ld/%ld, mode: wear leveling.\n", + get_env_user_used_size(), EF_USER_SETTING_ENV_SIZE, ef_get_env_write_bytes(), + ef_get_env_total_size()); } /** * Load flash ENV to ram. */ -void flash_load_env(void) { +void ef_load_env(void) { uint32_t *env_cache_bak, env_end_addr, using_data_addr; /* read current using data section address */ - flash_read(get_env_start_addr(), &using_data_addr, 4); + ef_port_read(get_env_start_addr(), &using_data_addr, 4); /* if ENV is not initialize or flash has dirty data, set default for it */ if ((using_data_addr == 0xFFFFFFFF) - || (using_data_addr > get_env_start_addr() + flash_get_env_total_size()) + || (using_data_addr > get_env_start_addr() + ef_get_env_total_size()) || (using_data_addr < get_env_start_addr() + flash_erase_min_size)) { /* initialize current using data section address */ set_cur_using_data_addr(get_env_start_addr() + flash_erase_min_size); /* save current using data section address to flash*/ save_cur_using_data_addr(get_cur_using_data_addr()); /* set default ENV */ - flash_env_set_default(); + ef_env_set_default(); } else { /* set current using data section address */ set_cur_using_data_addr(using_data_addr); /* read ENV detail part end address from flash */ - flash_read(get_cur_using_data_addr() + ENV_PARAM_PART_INDEX_END_ADDR * 4, &env_end_addr, 4); + ef_port_read(get_cur_using_data_addr() + ENV_PARAM_PART_INDEX_END_ADDR * 4, &env_end_addr, 4); /* if ENV end address has error, set default for ENV */ - if (env_end_addr > get_env_start_addr() + flash_get_env_total_size()) { - flash_env_set_default(); + if (env_end_addr > get_env_start_addr() + ef_get_env_total_size()) { + ef_env_set_default(); } else { /* set ENV detail part end address */ set_env_detail_end_addr(env_end_addr); env_cache_bak = env_cache + ENV_PARAM_PART_WORD_SIZE; /* read all ENV from flash */ - flash_read(get_env_detail_addr(), env_cache_bak, get_env_detail_size()); + ef_port_read(get_env_detail_addr(), env_cache_bak, get_env_detail_size()); /* read ENV CRC code from flash */ - flash_read(get_cur_using_data_addr() + ENV_PARAM_PART_INDEX_DATA_CRC * 4, + ef_port_read(get_cur_using_data_addr() + ENV_PARAM_PART_INDEX_DATA_CRC * 4, &env_cache[ENV_PARAM_PART_INDEX_DATA_CRC], 4); /* if ENV CRC32 check is fault, set default for it */ if (!env_crc_is_ok()) { - FLASH_INFO("Warning: ENV CRC check failed. Set it to default.\n"); - flash_env_set_default(); + EF_INFO("Warning: ENV CRC check failed. Set it to default.\n"); + ef_env_set_default(); } } @@ -578,26 +577,26 @@ void flash_load_env(void) { /** * Save ENV to flash. */ -FlashErrCode flash_save_env(void) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_save_env(void) { + EfErrCode result = EF_NO_ERR; uint32_t cur_data_addr_bak = get_cur_using_data_addr(), move_offset_addr; size_t env_detail_size = get_env_detail_size(); /* wear leveling process, automatic move ENV to next available position */ while (get_cur_using_data_addr() + env_detail_size - < get_env_start_addr() + flash_get_env_total_size()) { + < get_env_start_addr() + ef_get_env_total_size()) { /* calculate and cache CRC32 code */ env_cache[ENV_PARAM_PART_INDEX_DATA_CRC] = calc_env_crc(); /* erase ENV */ - result = flash_erase(get_cur_using_data_addr(), ENV_PARAM_PART_BYTE_SIZE + env_detail_size); + result = ef_port_erase(get_cur_using_data_addr(), ENV_PARAM_PART_BYTE_SIZE + env_detail_size); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Erased ENV OK.\n"); + case EF_NO_ERR: { + EF_INFO("Erased ENV OK.\n"); break; } - case FLASH_ERASE_ERR: { - FLASH_INFO("Warning: Erased ENV fault!\n"); - FLASH_INFO("Moving ENV to next available position.\n"); + case EF_ERASE_ERR: { + EF_INFO("Warning: Erased ENV fault!\n"); + EF_INFO("Moving ENV to next available position.\n"); /* Calculate move offset address. * Current strategy is optimistic. It will offset the flash erasure minimum size. */ @@ -610,16 +609,16 @@ FlashErrCode flash_save_env(void) { } } /* write ENV to flash */ - result = flash_write(get_cur_using_data_addr(), env_cache, + result = ef_port_write(get_cur_using_data_addr(), env_cache, ENV_PARAM_PART_BYTE_SIZE + env_detail_size); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Saved ENV OK.\n"); + case EF_NO_ERR: { + EF_INFO("Saved ENV OK.\n"); break; } - case FLASH_WRITE_ERR: { - FLASH_INFO("Warning: Saved ENV fault!\n"); - FLASH_INFO("Moving ENV to next available position.\n"); + case EF_WRITE_ERR: { + EF_INFO("Warning: Saved ENV fault!\n"); + EF_INFO("Moving ENV to next available position.\n"); /* Calculate move offset address. * Current strategy is optimistic. It will offset the flash erasure minimum size. */ @@ -632,20 +631,20 @@ FlashErrCode flash_save_env(void) { } } /* save ENV success */ - if (result == FLASH_NO_ERR) { + if (result == EF_NO_ERR) { break; } } if (get_cur_using_data_addr() + env_detail_size - < get_env_start_addr() + flash_get_env_total_size()) { + < get_env_start_addr() + ef_get_env_total_size()) { /* current using data section address has changed, save it */ if (get_cur_using_data_addr() != cur_data_addr_bak) { save_cur_using_data_addr(get_cur_using_data_addr()); } } else { - result = FLASH_ENV_FULL; - FLASH_INFO("Error: The flash has no available space to save ENV.\n"); + result = EF_ENV_FULL; + EF_INFO("Error: The flash has no available space to save ENV.\n"); /* clear current using data section address on flash */ save_cur_using_data_addr(0xFFFFFFFF); } @@ -665,7 +664,7 @@ static uint32_t calc_env_crc(void) { * The 4 is ENV end address bytes size. */ crc32 = calc_crc32(crc32, &env_cache[ENV_PARAM_PART_INDEX_END_ADDR], 4); crc32 = calc_crc32(crc32, &env_cache[ENV_PARAM_PART_WORD_SIZE], get_env_detail_size()); - FLASH_DEBUG("Calculate Env CRC32 number is 0x%08X.\n", crc32); + EF_DEBUG("Calculate Env CRC32 number is 0x%08X.\n", crc32); return crc32; } @@ -677,7 +676,7 @@ static uint32_t calc_env_crc(void) { */ static bool env_crc_is_ok(void) { if (calc_env_crc() == env_cache[ENV_PARAM_PART_INDEX_DATA_CRC]) { - FLASH_DEBUG("Verify Env CRC32 result is OK.\n"); + EF_DEBUG("Verify Env CRC32 result is OK.\n"); return true; } else { return false; @@ -691,24 +690,24 @@ static bool env_crc_is_ok(void) { * * @return result */ -static FlashErrCode save_cur_using_data_addr(uint32_t cur_data_addr) { - FlashErrCode result = FLASH_NO_ERR; +static EfErrCode save_cur_using_data_addr(uint32_t cur_data_addr) { + EfErrCode result = EF_NO_ERR; /* erase ENV system section */ - result = flash_erase(get_env_start_addr(), 4); - if (result == FLASH_NO_ERR) { + result = ef_port_erase(get_env_start_addr(), 4); + if (result == EF_NO_ERR) { /* write current using data section address to flash */ - result = flash_write(get_env_start_addr(), &cur_data_addr, 4); - if (result == FLASH_WRITE_ERR) { - FLASH_INFO("Error: Write system section fault!\n"); - FLASH_INFO("Note: The ENV can not be used.\n"); + result = ef_port_write(get_env_start_addr(), &cur_data_addr, 4); + if (result == EF_WRITE_ERR) { + EF_INFO("Error: Write system section fault!\n"); + EF_INFO("Note: The ENV can not be used.\n"); } } else { - FLASH_INFO("Error: Erased system section fault!\n"); - FLASH_INFO("Note: The ENV can not be used\n"); + EF_INFO("Error: Erased system section fault!\n"); + EF_INFO("Note: The ENV can not be used\n"); } return result; } -#endif /* FLASH_ENV_USING_WEAR_LEVELING_MODE */ +#endif /* EF_ENV_USING_WL_MODE */ -#endif /* FLASH_USING_ENV */ +#endif /* EF_USING_ENV */ diff --git a/easyflash/src/flash_iap.c b/easyflash/src/ef_iap.c similarity index 63% rename from easyflash/src/flash_iap.c rename to easyflash/src/ef_iap.c index aefde10..c59c3c2 100644 --- a/easyflash/src/flash_iap.c +++ b/easyflash/src/ef_iap.c @@ -26,9 +26,9 @@ * Created on: 2015-01-05 */ -#include "flash.h" +#include "easyflash.h" -#ifdef FLASH_USING_IAP +#ifdef EF_USING_IAP /* IAP section backup application section start address in flash */ static uint32_t bak_app_start_addr = NULL; @@ -42,10 +42,10 @@ static uint32_t get_bak_app_start_addr(void); * * @return result */ -FlashErrCode flash_iap_init(uint32_t start_addr) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_iap_init(uint32_t start_addr) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(start_addr); + EF_ASSERT(start_addr); bak_app_start_addr = start_addr; return result; @@ -58,17 +58,17 @@ FlashErrCode flash_iap_init(uint32_t start_addr) { * * @return result */ -FlashErrCode flash_erase_bak_app(size_t app_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_erase_bak_app(size_t app_size) { + EfErrCode result = EF_NO_ERR; - result = flash_erase(get_bak_app_start_addr(), app_size); + result = ef_port_erase(get_bak_app_start_addr(), app_size); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Erased backup area application OK.\n"); + case EF_NO_ERR: { + EF_INFO("Erased backup area application OK.\n"); break; } - case FLASH_ERASE_ERR: { - FLASH_INFO("Warning: Erase backup area application fault!\n"); + case EF_ERASE_ERR: { + EF_INFO("Warning: Erase backup area application fault!\n"); /* will return when erase fault */ return result; } @@ -86,17 +86,17 @@ FlashErrCode flash_erase_bak_app(size_t app_size) { * * @return result */ -FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t app_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_erase_user_app(uint32_t user_app_addr, size_t app_size) { + EfErrCode result = EF_NO_ERR; - result = flash_erase(user_app_addr, app_size); + result = ef_port_erase(user_app_addr, app_size); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Erased user application OK.\n"); + case EF_NO_ERR: { + EF_INFO("Erased user application OK.\n"); break; } - case FLASH_ERASE_ERR: { - FLASH_INFO("Warning: Erase user application fault!\n"); + case EF_ERASE_ERR: { + EF_INFO("Warning: Erase user application fault!\n"); /* will return when erase fault */ return result; } @@ -113,17 +113,17 @@ FlashErrCode flash_erase_user_app(uint32_t user_app_addr, size_t app_size) { * * @return result */ -FlashErrCode flash_erase_bl(uint32_t bl_addr, size_t bl_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_erase_bl(uint32_t bl_addr, size_t bl_size) { + EfErrCode result = EF_NO_ERR; - result = flash_erase(bl_addr, bl_size); + result = ef_port_erase(bl_addr, bl_size); switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Erased bootloader OK.\n"); + case EF_NO_ERR: { + EF_INFO("Erased bootloader OK.\n"); break; } - case FLASH_ERASE_ERR: { - FLASH_INFO("Warning: Erase bootloader fault!\n"); + case EF_ERASE_ERR: { + EF_INFO("Warning: Erase bootloader fault!\n"); /* will return when erase fault */ return result; } @@ -142,24 +142,24 @@ FlashErrCode flash_erase_bl(uint32_t bl_addr, size_t bl_size) { * * @return result */ -FlashErrCode flash_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_size, +EfErrCode ef_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_size, size_t total_size) { - FlashErrCode result = FLASH_NO_ERR; + EfErrCode result = EF_NO_ERR; /* make sure don't write excess data */ if (*cur_size + size > total_size) { size = total_size - *cur_size; } - result = flash_write(get_bak_app_start_addr() + *cur_size, (uint32_t *) data, size); + result = ef_port_write(get_bak_app_start_addr() + *cur_size, (uint32_t *) data, size); switch (result) { - case FLASH_NO_ERR: { + case EF_NO_ERR: { *cur_size += size; - FLASH_INFO("Write data to backup area OK.\n"); + EF_INFO("Write data to backup area OK.\n"); break; } - case FLASH_WRITE_ERR: { - FLASH_INFO("Warning: Write data to backup area fault!\n"); + case EF_WRITE_ERR: { + EF_INFO("Warning: Write data to backup area fault!\n"); break; } } @@ -175,10 +175,10 @@ FlashErrCode flash_write_data_to_bak(uint8_t *data, size_t size, size_t *cur_siz * * @return result */ -FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) { +EfErrCode ef_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) { size_t cur_size; uint32_t app_cur_addr, bak_cur_addr; - FlashErrCode result = FLASH_NO_ERR; + EfErrCode result = EF_NO_ERR; /* 32 words size buffer */ uint32_t buff[32]; @@ -186,20 +186,20 @@ FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) { for (cur_size = 0; cur_size < app_size; cur_size += sizeof(buff)) { app_cur_addr = user_app_addr + cur_size; bak_cur_addr = get_bak_app_start_addr() + cur_size; - flash_read(bak_cur_addr, buff, sizeof(buff)); - result = flash_write(app_cur_addr, buff, sizeof(buff)); - if (result != FLASH_NO_ERR) { + ef_port_read(bak_cur_addr, buff, sizeof(buff)); + result = ef_port_write(app_cur_addr, buff, sizeof(buff)); + if (result != EF_NO_ERR) { break; } } switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Write data to application entry OK.\n"); + case EF_NO_ERR: { + EF_INFO("Write data to application entry OK.\n"); break; } - case FLASH_WRITE_ERR: { - FLASH_INFO("Warning: Write data to application entry fault!\n"); + case EF_WRITE_ERR: { + EF_INFO("Warning: Write data to application entry fault!\n"); break; } } @@ -215,10 +215,10 @@ FlashErrCode flash_copy_app_from_bak(uint32_t user_app_addr, size_t app_size) { * * @return result */ -FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) { +EfErrCode ef_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) { size_t cur_size; uint32_t bl_cur_addr, bak_cur_addr; - FlashErrCode result = FLASH_NO_ERR; + EfErrCode result = EF_NO_ERR; /* 32 words buffer */ uint32_t buff[32]; @@ -226,20 +226,20 @@ FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) { for (cur_size = 0; cur_size < bl_size; cur_size += sizeof(buff)) { bl_cur_addr = bl_addr + cur_size; bak_cur_addr = get_bak_app_start_addr() + cur_size; - flash_read(bak_cur_addr, buff, sizeof(buff)); - result = flash_write(bl_cur_addr, buff, sizeof(buff)); - if (result != FLASH_NO_ERR) { + ef_port_read(bak_cur_addr, buff, sizeof(buff)); + result = ef_port_write(bl_cur_addr, buff, sizeof(buff)); + if (result != EF_NO_ERR) { break; } } switch (result) { - case FLASH_NO_ERR: { - FLASH_INFO("Write data to bootloader entry OK.\n"); + case EF_NO_ERR: { + EF_INFO("Write data to bootloader entry OK.\n"); break; } - case FLASH_WRITE_ERR: { - FLASH_INFO("Warning: Write data to bootloader entry fault!\n"); + case EF_WRITE_ERR: { + EF_INFO("Warning: Write data to bootloader entry fault!\n"); break; } } @@ -253,8 +253,8 @@ FlashErrCode flash_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size) { * @return size */ static uint32_t get_bak_app_start_addr(void) { - FLASH_ASSERT(bak_app_start_addr); + EF_ASSERT(bak_app_start_addr); return bak_app_start_addr; } -#endif /* FLASH_USING_IAP */ +#endif /* EF_USING_IAP */ diff --git a/easyflash/src/flash_log.c b/easyflash/src/ef_log.c similarity index 81% rename from easyflash/src/flash_log.c rename to easyflash/src/ef_log.c index a87d46f..398721b 100644 --- a/easyflash/src/flash_log.c +++ b/easyflash/src/ef_log.c @@ -26,9 +26,9 @@ * Created on: 2015-06-04 */ -#include "flash.h" +#include "easyflash.h" -#ifdef FLASH_USING_LOG +#ifdef EF_USING_LOG /* the stored logs start address and end address. It's like a ring buffer which implement by flash. */ static uint32_t log_start_addr = 0, log_end_addr = 0; @@ -53,16 +53,16 @@ static uint32_t get_next_flash_sec_addr(uint32_t cur_addr); * * @return result */ -FlashErrCode flash_log_init(uint32_t start_addr, size_t log_size, size_t erase_min_size) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_log_init(uint32_t start_addr, size_t log_size, size_t erase_min_size) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(start_addr); - FLASH_ASSERT(log_size); - FLASH_ASSERT(erase_min_size); + EF_ASSERT(start_addr); + EF_ASSERT(log_size); + EF_ASSERT(erase_min_size); /* the log area size must be an integral multiple of erase minimum size. */ - FLASH_ASSERT(log_size % erase_min_size == 0); + EF_ASSERT(log_size % erase_min_size == 0); /* the log area size must be more than 2 multiple of erase minimum size */ - FLASH_ASSERT(log_size / erase_min_size >= 2); + EF_ASSERT(log_size / erase_min_size >= 2); log_area_start_addr = start_addr; flash_log_size = log_size; @@ -111,12 +111,12 @@ static void find_start_and_end_addr(void) { uint8_t cur_log_sec_state = 0; /* get the first sector status */ - cur_sec_status = flash_get_sector_status(log_area_start_addr, flash_erase_min_size); + cur_sec_status = ef_get_sector_status(log_area_start_addr, flash_erase_min_size); last_sec_status = cur_sec_status; for (cur_size = flash_erase_min_size; cur_size < flash_log_size; cur_size += flash_erase_min_size) { /* get current sector status */ - cur_sec_status = flash_get_sector_status(log_area_start_addr + cur_size, flash_erase_min_size); + cur_sec_status = ef_get_sector_status(log_area_start_addr + cur_size, flash_erase_min_size); /* compare last and current status */ switch (last_sec_status) { case FLASH_SECTOR_EMPTY: { @@ -124,12 +124,12 @@ static void find_start_and_end_addr(void) { case FLASH_SECTOR_EMPTY: break; case FLASH_SECTOR_USING: - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; case FLASH_SECTOR_FULL: - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; } empty_sec_counts++; @@ -144,8 +144,8 @@ static void find_start_and_end_addr(void) { cur_using_sec_addr = log_area_start_addr + cur_size - flash_erase_min_size; break; case FLASH_SECTOR_USING: - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; case FLASH_SECTOR_FULL: /* like state 2 */ @@ -162,8 +162,8 @@ static void find_start_and_end_addr(void) { case FLASH_SECTOR_EMPTY: /* like state 1 */ if (cur_log_sec_state == 2) { - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; } else { cur_log_sec_state = 1; @@ -203,20 +203,20 @@ static void find_start_and_end_addr(void) { } if (using_sec_counts > 1) { - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; } else if (empty_sec_counts == total_sec_num) { log_start_addr = log_end_addr = log_area_start_addr; } else if (full_sector_counts == total_sec_num) { /* this state is almost impossible */ - FLASH_DEBUG("Error: Log area error! Now will clean all log area.\n"); - flash_log_clean(); + EF_DEBUG("Error: Log area error! Now will clean all log area.\n"); + ef_log_clean(); return; } else if (((cur_log_sec_state == 1) && (cur_using_sec_addr != 0)) || (cur_log_sec_state == 2)) { /* find the end address */ - log_end_addr = flash_find_sec_using_end_addr(cur_using_sec_addr, flash_erase_min_size); + log_end_addr = ef_find_sec_using_end_addr(cur_using_sec_addr, flash_erase_min_size); } } @@ -225,12 +225,12 @@ static void find_start_and_end_addr(void) { * * @return log used flash total size */ -size_t flash_log_get_used_size(void) { - FLASH_ASSERT(log_start_addr); - FLASH_ASSERT(log_end_addr); +size_t ef_log_get_used_size(void) { + EF_ASSERT(log_start_addr); + EF_ASSERT(log_end_addr); /* must be call this function after initialize OK */ - FLASH_ASSERT(init_ok); + EF_ASSERT(init_ok); if (log_start_addr < log_end_addr) { return log_end_addr - log_start_addr + 4; @@ -252,22 +252,22 @@ size_t flash_log_get_used_size(void) { * * @return result */ -FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size) { - FlashErrCode result = FLASH_NO_ERR; - size_t cur_using_size = flash_log_get_used_size(); +EfErrCode ef_log_read(size_t index, uint32_t *log, size_t size) { + EfErrCode result = EF_NO_ERR; + size_t cur_using_size = ef_log_get_used_size(); size_t read_size_temp = 0; - FLASH_ASSERT(size % 4 == 0); - FLASH_ASSERT(index + size <= cur_using_size); + EF_ASSERT(size % 4 == 0); + EF_ASSERT(index + size <= cur_using_size); /* must be call this function after initialize OK */ - FLASH_ASSERT(init_ok); + EF_ASSERT(init_ok); if (!size) { return result; } if (log_start_addr < log_end_addr) { - result = flash_read(log_area_start_addr + index, log, size); + result = ef_port_read(log_area_start_addr + index, log, size); } else if (log_start_addr > log_end_addr) { if (log_start_addr + index + size <= log_area_start_addr + flash_log_size) { /* Flash log area @@ -287,7 +287,7 @@ FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size) { * * read from (log_start_addr + index) to (log_start_addr + index + size) */ - result = flash_read(log_start_addr + index, log, size); + result = ef_port_read(log_start_addr + index, log, size); } else if (log_start_addr + index < log_area_start_addr + flash_log_size) { /* Flash log area * |--------------| @@ -308,9 +308,9 @@ FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size) { * step2: read from flash log area start address to read size's end address */ read_size_temp = (log_area_start_addr + flash_log_size) - (log_start_addr + index); - result = flash_read(log_start_addr + index, log, read_size_temp); - if (result == FLASH_NO_ERR) { - result = flash_read(log_area_start_addr, log + read_size_temp, + result = ef_port_read(log_start_addr + index, log, read_size_temp); + if (result == EF_NO_ERR) { + result = ef_port_read(log_area_start_addr, log + read_size_temp, size - read_size_temp); } } else { @@ -330,7 +330,7 @@ FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size) { * |--------------| * read from (log_start_addr + index - flash_log_size) to read size's end address */ - result = flash_read(log_start_addr + index - flash_log_size, log, size); + result = ef_port_read(log_start_addr + index - flash_log_size, log, size); } } @@ -345,14 +345,14 @@ FlashErrCode flash_log_read(size_t index, uint32_t *log, size_t size) { * * @return result */ -FlashErrCode flash_log_write(const uint32_t *log, size_t size) { - FlashErrCode result = FLASH_NO_ERR; - size_t cur_using_size = flash_log_get_used_size(), write_size = 0, writable_size = 0; +EfErrCode ef_log_write(const uint32_t *log, size_t size) { + EfErrCode result = EF_NO_ERR; + size_t cur_using_size = ef_log_get_used_size(), write_size = 0, writable_size = 0; uint32_t write_addr, erase_addr; - FLASH_ASSERT(size % 4 == 0); + EF_ASSERT(size % 4 == 0); /* must be call this function after initialize OK */ - FLASH_ASSERT(init_ok); + EF_ASSERT(init_ok); /* write address is after log end address */ write_addr = log_end_addr + 4; @@ -360,13 +360,13 @@ FlashErrCode flash_log_write(const uint32_t *log, size_t size) { writable_size = flash_erase_min_size - ((write_addr - log_area_start_addr) % flash_erase_min_size); if (writable_size != flash_erase_min_size) { if (size > writable_size) { - result = flash_write(write_addr, log, writable_size); - if (result != FLASH_NO_ERR) { + result = ef_port_write(write_addr, log, writable_size); + if (result != EF_NO_ERR) { goto exit; } write_size += writable_size; } else { - result = flash_write(write_addr, log, size); + result = ef_port_write(write_addr, log, size); log_end_addr = write_addr + size - 4; goto exit; } @@ -380,19 +380,19 @@ FlashErrCode flash_log_write(const uint32_t *log, size_t size) { log_start_addr = get_next_flash_sec_addr(log_start_addr); } /* erase sector */ - result = flash_erase(erase_addr, flash_erase_min_size); - if (result == FLASH_NO_ERR) { + result = ef_port_erase(erase_addr, flash_erase_min_size); + if (result == EF_NO_ERR) { if (size - write_size > flash_erase_min_size) { - result = flash_write(write_addr, log + write_size / 4, flash_erase_min_size); - if (result != FLASH_NO_ERR) { + result = ef_port_write(write_addr, log + write_size / 4, flash_erase_min_size); + if (result != EF_NO_ERR) { goto exit; } log_end_addr = write_addr + flash_erase_min_size - 4; write_size += flash_erase_min_size; write_addr += flash_erase_min_size; } else { - result = flash_write(write_addr, log + write_size / 4, size - write_size); - if (result != FLASH_NO_ERR) { + result = ef_port_write(write_addr, log + write_size / 4, size - write_size); + if (result != EF_NO_ERR) { goto exit; } log_end_addr = write_addr + (size - write_size) - 4; @@ -430,18 +430,18 @@ static uint32_t get_next_flash_sec_addr(uint32_t cur_addr) { * * @return result */ -FlashErrCode flash_log_clean(void) { - FlashErrCode result = FLASH_NO_ERR; +EfErrCode ef_log_clean(void) { + EfErrCode result = EF_NO_ERR; - FLASH_ASSERT(log_area_start_addr); - FLASH_ASSERT(flash_log_size); + EF_ASSERT(log_area_start_addr); + EF_ASSERT(flash_log_size); /* clean address */ log_start_addr = log_end_addr = log_area_start_addr; /* erase log flash area */ - result = flash_erase(log_area_start_addr, flash_log_size); + result = ef_port_erase(log_area_start_addr, flash_log_size); return result; } -#endif +#endif /* EF_USING_LOG */ diff --git a/easyflash/src/flash_utils.c b/easyflash/src/ef_utils.c similarity index 96% rename from easyflash/src/flash_utils.c rename to easyflash/src/ef_utils.c index 8e3efb0..728f6d9 100644 --- a/easyflash/src/flash_utils.c +++ b/easyflash/src/ef_utils.c @@ -26,7 +26,7 @@ * Created on: 2015-01-14 */ -#include "flash.h" +#include "easyflash.h" static const uint32_t crc32_table[] = { @@ -106,8 +106,8 @@ uint32_t calc_crc32(uint32_t crc, const void *buf, size_t size) * * @return the flash sector current status */ -FlashSecrorStatus flash_get_sector_status(uint32_t addr, size_t sec_size) { - uint32_t cur_using_addr = flash_find_sec_using_end_addr(addr, sec_size); +FlashSecrorStatus ef_get_sector_status(uint32_t addr, size_t sec_size) { + uint32_t cur_using_addr = ef_find_sec_using_end_addr(addr, sec_size); /* get current status by current using address */ if (cur_using_addr == addr) { return FLASH_SECTOR_EMPTY; @@ -126,7 +126,7 @@ FlashSecrorStatus flash_get_sector_status(uint32_t addr, size_t sec_size) { * * @return current flash sector using end address */ -uint32_t flash_find_sec_using_end_addr(uint32_t addr, size_t sec_size) { +uint32_t ef_find_sec_using_end_addr(uint32_t addr, size_t sec_size) { size_t start, continue_ff; /* counts continuous 0xFF */ for (start = 0; start < sec_size; start++) {