From fa4d12b6e033306be577537d1b218f9bc5e9af56 Mon Sep 17 00:00:00 2001 From: wmano Date: Wed, 27 Aug 2025 23:16:25 +0800 Subject: [PATCH] add fal wdt tmr --- apps/boot/include/app_config.h | 41 +- apps/chrg/.config | 29 +- apps/chrg/applications/bsp/chrg_fal.c | 30 + apps/chrg/applications/bsp/chrg_tmr.c | 177 +++++ apps/chrg/applications/bsp/chrg_tmr.h | 39 + apps/chrg/applications/bsp/chrg_wdt.c | 48 ++ apps/chrg/applications/bsp/chrg_wdt.h | 24 + apps/chrg/applications/main.c | 4 +- .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 6 +- apps/chrg/board/Kconfig | 97 +++ apps/chrg/board/ports/SConscript | 22 + apps/chrg/board/ports/fal_cfg.h | 51 ++ apps/chrg/project.uvprojx | 703 ++++++++++++------ apps/chrg/rtconfig.h | 11 + apps/chrg/template.uvprojx | 2 +- ...V1_0_2.pdf => HC_DFCD_Protocol_V1_0_3.pdf} | Bin 285783 -> 285862 bytes mdks/boot.uvprojx | 38 +- .../drivers/drv_flash/drv_flash_f1.c | 275 ------- .../drivers/drv_flash/drv_flash_f4.c | 3 - .../drivers/drv_flash/drv_flash_h7.c | 263 ------- 20 files changed, 1059 insertions(+), 804 deletions(-) create mode 100644 apps/chrg/applications/bsp/chrg_fal.c create mode 100644 apps/chrg/applications/bsp/chrg_tmr.c create mode 100644 apps/chrg/applications/bsp/chrg_tmr.h create mode 100644 apps/chrg/applications/bsp/chrg_wdt.c create mode 100644 apps/chrg/applications/bsp/chrg_wdt.h create mode 100644 apps/chrg/board/ports/SConscript create mode 100644 apps/chrg/board/ports/fal_cfg.h rename docs/{HC_DFCD_Protocol_V1_0_2.pdf => HC_DFCD_Protocol_V1_0_3.pdf} (62%) delete mode 100644 rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f1.c delete mode 100644 rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c diff --git a/apps/boot/include/app_config.h b/apps/boot/include/app_config.h index baaaf2e..25c8c80 100644 --- a/apps/boot/include/app_config.h +++ b/apps/boot/include/app_config.h @@ -18,37 +18,34 @@ #if defined(STM32F405xx) #define NAME_CHIP "STM32F405xx" #define SIZE_ONCHIP_FLASH (1024 * 1024ul) // 片上 flash 总容量 -#elif defined(STM32F411xE) - #define NAME_CHIP "STM32F411xE" - #define SIZE_ONCHIP_FLASH (512 * 1024ul) -#elif defined(STM32F401xC) - #define NAME_CHIP "STM32F401xC" - #define SIZE_ONCHIP_FLASH (256 * 1024ul) #else #error "no chip size defined" #endif -#define SIZE_PART_BOOTLOADER (32 * 1024ul) // bootloader 占用空间(需要大于本程序bin大小) -#define SIZE_PART_PARAMETERS (32 * 1024ul) // 参数 占用空间 -#define SIZE_PART_APPLICATION (SIZE_ONCHIP_FLASH/4) // app 占用空间 不少于1/4 -#define SIZE_PART_DOWNLOAD (SIZE_PART_APPLICATION) // download 占用空间(不用时0) -#define SIZE_PART_FACTORY (SIZE_PART_APPLICATION) // factory 占用空间(不用时0) +#define SIZE_PART_BOOTLOADER (64 * 1024ul) // bootloader 占用空间(需要大于本程序bin大小) +#define SIZE_PART_PARAMETERS (64 * 1024ul) // 参数 占用空间 +#define SIZE_PART_LOG (128 * 1024ul) // 日志 占用空间 +#define SIZE_PART_APPLICATION (SIZE_ONCHIP_FLASH/4) // app 占用空间 +#define SIZE_PART_DOWNLOAD (SIZE_PART_APPLICATION) // download 占用空间 +#define SIZE_PART_FACTORY (SIZE_PART_APPLICATION) // factory 占用空间 #define BASE_ONCHIP_FLASH (FLASH_BASE) // on chip flash 首地址 #define OFFSET_ONCHIP_FLASH_END (BASE_ONCHIP_FLASH + SIZE_ONCHIP_FLASH) /* - chipsize (256KB/512KB/1024KB) eg: 1024KB - 32KB - bootloader = 0x00000 + 32*1024 - 32KB - parameter = 0x08000 + 32*1024 - chipsize/2-64KB - application = 0x10000 + 448*1024 - chipsize/4 - download = 0x80000 + 256*1024 - chipsize/4 - factory = 0xC0000 + 256*1024 + chipsize eg: 1024KB + 64KB - bootloader = 0x00000 + 64*1024 + 64KB - parameter = 0x10000 + 64*1024 + 128KB - log = 0x20000 + 128*1024 + 256KB - application = 0x40000 + 256*1024 + 256KB - download = 0x80000 + 256*1024 + 256KB - factory = 0xC0000 + 256*1024 */ -#define BASE_BOOTLOADER (BASE_ONCHIP_FLASH) -#define BASE_PARAMETERS (BASE_BOOTLOADER + SIZE_PART_BOOTLOADER) // 参数分区起始地址 -#define BASE_APPLICATION (BASE_ONCHIP_FLASH + SIZE_PART_BOOTLOADER+SIZE_PART_PARAMETERS) // app 分区起始地址 -#define BASE_DOWNLOAD (BASE_ONCHIP_FLASH + SIZE_ONCHIP_FLASH/2) // download 分区起始地址 -#define BASE_FACTORY (BASE_DOWNLOAD + SIZE_PART_DOWNLOAD) // factory 分区起始地址 +#define BASE_BOOTLOADER (BASE_ONCHIP_FLASH) +#define BASE_PARAMETERS (BASE_BOOTLOADER + SIZE_PART_BOOTLOADER) // 参数分区起始地址 +#define BASE_LOG (BASE_PARAMETERS + SIZE_PART_PARAMETERS) +#define BASE_APPLICATION (BASE_ONCHIP_FLASH + SIZE_PART_BOOTLOADER+SIZE_PART_PARAMETERS+SIZE_PART_LOG) // app 分区起始地址 +#define BASE_DOWNLOAD (BASE_ONCHIP_FLASH + SIZE_ONCHIP_FLASH/2) // download 分区起始地址 +#define BASE_FACTORY (BASE_DOWNLOAD + SIZE_PART_DOWNLOAD) // factory 分区起始地址 /* 片上分区数量选项 * app: 可运行的固件区域 diff --git a/apps/chrg/.config b/apps/chrg/.config index 419b33b..81cbe70 100644 --- a/apps/chrg/.config +++ b/apps/chrg/.config @@ -224,7 +224,10 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y # CONFIG_RT_USING_DFS is not set # end of DFS: device virtual file system -# CONFIG_RT_USING_FAL is not set +CONFIG_RT_USING_FAL=y +# CONFIG_FAL_USING_DEBUG is not set +CONFIG_FAL_PART_HAS_TABLE_CFG=y +# CONFIG_FAL_USING_SFUD_PORT is not set # # Device Drivers @@ -267,10 +270,12 @@ CONFIG_RT_USING_I2C_BITOPS=y # CONFIG_RT_USING_MTD_NOR is not set # CONFIG_RT_USING_MTD_NAND is not set # CONFIG_RT_USING_PM is not set -# CONFIG_RT_USING_RTC is not set +CONFIG_RT_USING_RTC=y +# CONFIG_RT_USING_ALARM is not set +# CONFIG_RT_USING_SOFT_RTC is not set # CONFIG_RT_USING_SDIO is not set # CONFIG_RT_USING_SPI is not set -# CONFIG_RT_USING_WDT is not set +CONFIG_RT_USING_WDT=y # CONFIG_RT_USING_AUDIO is not set # CONFIG_RT_USING_SENSOR is not set # CONFIG_RT_USING_TOUCH is not set @@ -281,7 +286,7 @@ CONFIG_RT_USING_I2C_BITOPS=y # CONFIG_RT_USING_VIRTIO is not set CONFIG_RT_USING_PIN=y # CONFIG_RT_USING_KTIME is not set -# CONFIG_RT_USING_HWTIMER is not set +CONFIG_RT_USING_HWTIMER=y # CONFIG_RT_USING_CHERRYUSB is not set # end of Device Drivers @@ -1504,6 +1509,22 @@ CONFIG_BSP_USING_I2C3=y CONFIG_BSP_USING_I2C4=y CONFIG_BSP_USING_CAN=y CONFIG_BSP_USING_CAN1=y +# CONFIG_BSP_USING_ADC is not set +CONFIG_BSP_USING_ONCHIP_RTC=y +CONFIG_BSP_RTC_USING_LSE=y +# CONFIG_BSP_RTC_USING_LSI is not set +CONFIG_BSP_USING_WDT=y +# CONFIG_BSP_USING_USBD is not set +# CONFIG_BSP_USING_USBH is not set +CONFIG_BSP_USING_ON_CHIP_FLASH=y +CONFIG_BSP_USING_TIM=y +# CONFIG_BSP_USING_TIM1 is not set +CONFIG_BSP_USING_TIM2=y +# CONFIG_BSP_USING_TIM3 is not set +# CONFIG_BSP_USING_TIM4 is not set +# CONFIG_BSP_USING_TIM5 is not set +# CONFIG_BSP_USING_TIM6 is not set +# CONFIG_BSP_USING_TIM7 is not set # CONFIG_BSP_USING_RNG is not set # CONFIG_BSP_USING_UDID is not set # end of On-chip Peripheral Drivers diff --git a/apps/chrg/applications/bsp/chrg_fal.c b/apps/chrg/applications/bsp/chrg_fal.c new file mode 100644 index 0000000..f4e92e6 --- /dev/null +++ b/apps/chrg/applications/bsp/chrg_fal.c @@ -0,0 +1,30 @@ +#include +#include "fal.h" + +#define LOG_TAG "etc2.fal" +#define DBG_ENABLE +#define DBG_SECTION_NAME LOG_TAG +#define DBG_LEVEL DBG_LOG +#define DBG_COLOR +#include + +static int chrg_fal_init (void) +{ + rt_int32_t ret = 0; + + ret = fal_init(); + if (ret <= 0) { + LOG_E("fal init failed."); + + return ret; + } + + + + return 0; +} + + +INIT_ENV_EXPORT(chrg_fal_init); + + diff --git a/apps/chrg/applications/bsp/chrg_tmr.c b/apps/chrg/applications/bsp/chrg_tmr.c new file mode 100644 index 0000000..a41136c --- /dev/null +++ b/apps/chrg/applications/bsp/chrg_tmr.c @@ -0,0 +1,177 @@ + +#include + +#include "chrg_tmr.h" + +#define LOG_TAG "chrg.tmr" +#define DBG_ENABLE +#define DBG_SECTION_NAME LOG_TAG +#define DBG_LEVEL DBG_LOG +#define DBG_COLOR +#include + +struct chrg_tmr_t chrgtmr[TOTAL_TMRS] = { + [IDX_TMR_1S] = { + .index = IDX_TMR_1S, + .dev = RT_NULL, + .name = DEV_NAME_HWTIMER_1S, + .mode = HWTIMER_MODE_PERIOD, + .timeout = 1000000, // 10ms + } +}; + +static rt_err_t chrg_tmr_1s_callback(rt_device_t dev, rt_size_t size) +{ + rt_kprintf("."); + + return RT_EOK; +} + +int chrg_tmr_init (eIDX_TMR index) +{ + rt_err_t ret = RT_EOK; + rt_uint32_t freq = 1000000; + if (index >= TOTAL_TMRS) { + return -1; + } + + struct chrg_tmr_t *pTMR = &chrgtmr[index]; + + pTMR->dev = rt_device_find(pTMR->name); + if (RT_NULL == pTMR->dev) { + LOG_E("dev '%s' not found.", pTMR->name); + return -1; + } + + ret = rt_device_open(pTMR->dev, RT_DEVICE_OFLAG_RDWR); + if (RT_EOK != ret) { + LOG_E("open dev '%s' failed. %d", pTMR->name, ret); + return ret; + } + + ret = rt_device_control(pTMR->dev, HWTIMER_CTRL_FREQ_SET, &freq); + if (RT_EOK != ret) { + LOG_E("set '%s' freq failed. %d", pTMR->name, ret); + return ret; + } + + ret = rt_device_control(pTMR->dev, HWTIMER_CTRL_MODE_SET, &pTMR->mode); + if (RT_EOK != ret) { + LOG_E("set '%s' mode failed. %d", pTMR->name, ret); + return ret; + } + + switch (pTMR->index) { + case IDX_TMR_1S: + ret = rt_device_set_rx_indicate(pTMR->dev, chrg_tmr_1s_callback); + break; + + default: + return -1; + } + + return ret; +} + +rt_err_t chrg_tmr_start (eIDX_TMR index, uint32_t timeo) +{ + rt_err_t ret = RT_EOK; + + if (index >= TOTAL_TMRS) { + return RT_EINVAL; + } + + struct chrg_tmr_t *pTMR = &chrgtmr[index]; + if (RT_NULL == pTMR->dev) { + LOG_E("dev '%s' not opened.", pTMR->name); + return 0; + } + + pTMR->timeout.sec = timeo/1000000; + pTMR->timeout.usec = timeo%1000000; + + if (rt_device_write(pTMR->dev, 0, &pTMR->timeout, sizeof(rt_hwtimerval_t)) != sizeof(rt_hwtimerval_t)) { + rt_kprintf("set '%s' timeout failed.\r\n", pTMR->name); + return ret; + } + + return ret; +} + +rt_err_t chrg_tmr_stop (eIDX_TMR index) +{ + rt_err_t ret = RT_EOK; + + if (index >= TOTAL_TMRS) { + return RT_EINVAL; + } + + struct chrg_tmr_t *pTMR = &chrgtmr[index]; + if (RT_NULL == pTMR->dev) { + LOG_E("dev '%s' not opened.", pTMR->name); + return 0; + } + + ret = rt_device_control(pTMR->dev, HWTIMER_CTRL_STOP, RT_NULL); + if (RT_EOK != ret) { + LOG_E("set '%s' stop failed. %d", pTMR->name, ret); + return ret; + } + + return ret; +} + +void chrg_tmr_release (eIDX_TMR index) +{ + if (index >= TOTAL_TMRS) { + return ; + } + + struct chrg_tmr_t *pTMR = &chrgtmr[index]; + if (RT_NULL != pTMR->dev) { + rt_device_close(pTMR->dev); + pTMR->dev = RT_NULL; + } +} + +int chrg_tmrs_init (void) +{ + int i = 0; + + for (i = 0; i < TOTAL_TMRS; i++) { + chrg_tmr_init((eIDX_TMR)i); + } + + return 0; +} + + +INIT_ENV_EXPORT(chrg_tmrs_init); + +#if 1 + +static int sec_tmr(int argc, char **argv) +{ + if (argc != 2) { + rt_kprintf("sec_tmr \r\n"); + return RT_ERROR; + } + + if (strcmp(argv[1], "start") == 0) { + chrg_tmr_start(IDX_TMR_1S, 1000000); + } else if (strcmp(argv[1], "stop") == 0) { + chrg_tmr_stop(IDX_TMR_1S); + } else { + rt_kprintf("sec_tmr start|stop\r\n"); + } + + return 0; +} + +MSH_CMD_EXPORT(sec_tmr, second timer); + + +#endif + + + diff --git a/apps/chrg/applications/bsp/chrg_tmr.h b/apps/chrg/applications/bsp/chrg_tmr.h new file mode 100644 index 0000000..5fe5a6e --- /dev/null +++ b/apps/chrg/applications/bsp/chrg_tmr.h @@ -0,0 +1,39 @@ +#ifndef __CHRG_TMR_H__ +#define __CHRG_TMR_H__ + +#include +#include + + +#define DEV_NAME_HWTIMER_1S "timer2" + + +typedef enum { + IDX_TMR_1S = 0, // 1s 周期 + + TOTAL_TMRS +} eIDX_TMR; + +struct chrg_tmr_t { + rt_device_t dev; + const char *name; + rt_hwtimer_mode_t mode; // 执行模式 周期/单次 + rt_hwtimerval_t timeout; // 周期 us + eIDX_TMR index; // 定时器编号 + +}; + +extern struct chrg_tmr_t chrgtmr[TOTAL_TMRS]; + +extern rt_err_t chrg_tmr_start (eIDX_TMR index, uint32_t timeo); + +extern rt_err_t chrg_tmr_stop (eIDX_TMR index); + +extern void chrg_tmr_release (eIDX_TMR index); + + + + +#endif + + diff --git a/apps/chrg/applications/bsp/chrg_wdt.c b/apps/chrg/applications/bsp/chrg_wdt.c new file mode 100644 index 0000000..6d2c855 --- /dev/null +++ b/apps/chrg/applications/bsp/chrg_wdt.c @@ -0,0 +1,48 @@ + +#include +#include + +#include "chrg_wdt.h" + +struct chrg_wdt_t chrgwdt = { + .dev = RT_NULL, + .name = DEV_NAME_WATCHDOG, + .feed = 3, +}; + +void chrg_wdt_feed (void) +{ + rt_device_control(chrgwdt.dev, RT_DEVICE_CTRL_WDT_KEEPALIVE, RT_NULL); +} + +static int chrg_wdt_init (void) +{ + rt_err_t ret; + struct chrg_wdt_t *pWDT = &chrgwdt; + + pWDT->dev = rt_device_find(pWDT->name); + if (RT_NULL == pWDT->dev) { + rt_kprintf("dev '%s' not found.\r\n", pWDT->name); + return RT_ERROR; + } + + ret = rt_device_control(chrgwdt.dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &pWDT->feed); + if (RT_EOK != ret) { + rt_kprintf("dev '%s' control failed.\r\n", pWDT->name); + return ret; + } + + ret = rt_device_control(chrgwdt.dev, RT_DEVICE_CTRL_WDT_START, RT_NULL); + if (RT_EOK != ret) { + rt_kprintf("dev '%s' start failed.\r\n", pWDT->name); + return ret; + } + + //rt_thread_idle_sethook(chrg_wdt_feed); + + return RT_EOK; +} + +INIT_APP_EXPORT(chrg_wdt_init); + + diff --git a/apps/chrg/applications/bsp/chrg_wdt.h b/apps/chrg/applications/bsp/chrg_wdt.h new file mode 100644 index 0000000..ecde724 --- /dev/null +++ b/apps/chrg/applications/bsp/chrg_wdt.h @@ -0,0 +1,24 @@ +#ifndef __CHRG_WDT_H__ +#define __CHRG_WDT_H__ + +#include +#include + + +#define DEV_NAME_WATCHDOG "wdt" + + +struct chrg_wdt_t { + rt_device_t dev; + const char *name; + + rt_uint32_t feed; +}; + +extern struct chrg_wdt_t chrgwdt; + +extern void chrg_wdt_feed (void); + + +#endif + diff --git a/apps/chrg/applications/main.c b/apps/chrg/applications/main.c index 45a93d7..a2a97a2 100644 --- a/apps/chrg/applications/main.c +++ b/apps/chrg/applications/main.c @@ -6,6 +6,7 @@ #include "shell.h" #include "main.h" +#include "chrg_wdt.h" void show_app_version (void) { @@ -25,7 +26,8 @@ int main(void) #endif while (1) { - rt_thread_mdelay(500); + rt_thread_mdelay(1000); + chrg_wdt_feed(); } } diff --git a/apps/chrg/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/apps/chrg/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h index 93b1074..1f11be6 100644 --- a/apps/chrg/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h +++ b/apps/chrg/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -66,15 +66,15 @@ /* #define HAL_HASH_MODULE_ENABLED */ /* #define HAL_I2C_MODULE_ENABLED */ /* #define HAL_I2S_MODULE_ENABLED */ -/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED /* #define HAL_LTDC_MODULE_ENABLED */ /* #define HAL_RNG_MODULE_ENABLED */ -/* #define HAL_RTC_MODULE_ENABLED */ +#define HAL_RTC_MODULE_ENABLED /* #define HAL_SAI_MODULE_ENABLED */ /* #define HAL_SD_MODULE_ENABLED */ /* #define HAL_MMC_MODULE_ENABLED */ /* #define HAL_SPI_MODULE_ENABLED */ -/* #define HAL_TIM_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED #define HAL_UART_MODULE_ENABLED /* #define HAL_USART_MODULE_ENABLED */ /* #define HAL_IRDA_MODULE_ENABLED */ diff --git a/apps/chrg/board/Kconfig b/apps/chrg/board/Kconfig index 889286d..8643250 100644 --- a/apps/chrg/board/Kconfig +++ b/apps/chrg/board/Kconfig @@ -260,6 +260,103 @@ menu "On-chip Peripheral Drivers" default n endif + menuconfig BSP_USING_ADC + bool "Enable ADC" + default n + select RT_USING_ADC + if BSP_USING_ADC + config BSP_USING_ADC1 + bool "Enable ADC1" + default n + endif + + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + default n + if BSP_USING_ONCHIP_RTC + choice + prompt "Select clock source" + default BSP_RTC_USING_LSE + + config BSP_RTC_USING_LSE + bool "RTC USING LSE" + + config BSP_RTC_USING_LSI + bool "RTC USING LSI" + endchoice + endif + + config BSP_USING_WDT + bool "Enable Watchdog Timer" + select RT_USING_WDT + default n + + config BSP_USING_USBD + bool "Enable USB Device" + select RT_USING_USB_DEVICE + default n + + menuconfig BSP_USING_USBH + bool "Enable USB Host" + select RT_USING_USB_HOST + default n + if BSP_USING_USBH + menuconfig RT_USBH_MSTORAGE + bool "Enable Udisk Drivers" + default n + if RT_USBH_MSTORAGE + config UDISK_MOUNTPOINT + string "Udisk mount dir" + default "/" + endif + endif + + config BSP_USING_FMC + bool + default n + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_HWTIMER + if BSP_USING_TIM + config BSP_USING_TIM1 + bool "Enable TIM1" + default n + + config BSP_USING_TIM2 + bool "Enable TIM2" + default n + + config BSP_USING_TIM3 + bool "Enable TIM3" + default n + + config BSP_USING_TIM4 + bool "Enable TIM4" + default n + + config BSP_USING_TIM5 + bool "Enable TIM5" + default n + + config BSP_USING_TIM6 + bool "Enable TIM6" + default n + + config BSP_USING_TIM7 + bool "Enable TIM7" + default n + + + endif + + source "$(RTT_DIR)/bsp/stm32/libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/apps/chrg/board/ports/SConscript b/apps/chrg/board/ports/SConscript new file mode 100644 index 0000000..556df35 --- /dev/null +++ b/apps/chrg/board/ports/SConscript @@ -0,0 +1,22 @@ +import os +from building import * + +objs = [] +cwd = GetCurrentDir() + +# add general drivers +src = [] +path = [cwd] + +#if GetDepend(['BSP_USING_SDCARD']): +# src += Glob('sdcard_port.c') + +CPPDEFINES = ['STM32F405xx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + group = group + SConscript(os.path.join(item, 'SConscript')) + +Return('group') diff --git a/apps/chrg/board/ports/fal_cfg.h b/apps/chrg/board/ports/fal_cfg.h new file mode 100644 index 0000000..c582da4 --- /dev/null +++ b/apps/chrg/board/ports/fal_cfg.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-07-13 Dozingfiretruck first version + */ + +#ifndef _FAL_CFG_H_ +#define _FAL_CFG_H_ + +#include +#include + +#define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024) +#define FLASH_SIZE_GRANULARITY_64K (64 * 1024) +#define FLASH_SIZE_GRANULARITY_128K (7 * 128 * 1024) + +#define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS +#define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K) +#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K) + +extern const struct fal_flash_dev stm32_onchip_flash_16k; +extern const struct fal_flash_dev stm32_onchip_flash_64k; +extern const struct fal_flash_dev stm32_onchip_flash_128k; + +/* flash device table */ +#define FAL_FLASH_DEV_TABLE \ +{ \ + &stm32_onchip_flash_16k, \ + &stm32_onchip_flash_64k, \ + &stm32_onchip_flash_128k, \ +} +/* ====================== Partition Configuration ========================== */ +#ifdef FAL_PART_HAS_TABLE_CFG + +/* partition table */ +#define FAL_PART_TABLE \ +{ \ + {FAL_PART_MAGIC_WROD, "boot", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \ + {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \ + {FAL_PART_MAGIC_WROD, "log", "onchip_flash_128k", 0 , 128*1024 , 0}, \ + {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 128*1024 , 2*128*1024, 0}, \ + {FAL_PART_MAGIC_WROD, "download", "onchip_flash_128k", 3*128*1024 , 2*128*1024, 0}, \ + {FAL_PART_MAGIC_WROD, "factory", "onchip_flash_128k", 5*128*1024 , 2*128*1024, 0}, \ +} + +#endif /* FAL_PART_HAS_TABLE_CFG */ +#endif /* _FAL_CFG_H_ */ diff --git a/apps/chrg/project.uvprojx b/apps/chrg/project.uvprojx index 706afa3..e52c267 100644 --- a/apps/chrg/project.uvprojx +++ b/apps/chrg/project.uvprojx @@ -10,7 +10,6 @@ rt-thread 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -275,7 +274,7 @@ 1 - 0x8010000 + 0x8040000 0x40000 @@ -337,9 +336,9 @@ 0 - __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, USE_HAL_DRIVER, __STDC_LIMIT_MACROS, STM32F405xx, RT_USING_LIBC, RT_USING_ARMLIBC + __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, RT_USING_ARMLIBC, STM32F405xx, RT_USING_LIBC, USE_HAL_DRIVER, __STDC_LIMIT_MACROS - ..\..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\tcp;..\..\rt-thread\libcpu\arm\cortex-m4;board\CubeMX_Config\Inc;.;..\..\libs\freemodbus\modbus\include;..\..\rt-thread\components\libc\posix\io\eventfd;..\..\rt-thread\components\drivers\include;..\..\libs\cmsis-core\Include;..\..\rt-thread\components\libc\posix\io\epoll;..\..\rt-thread\components\libc\posix\ipc;..\..\rt-thread\components\libc\posix\io\poll;..\..\rt-thread\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\port;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\config;..\..\rt-thread\components\libc\compilers\common\extension;..\..\rt-thread\components\finsh;..\..\libs\freemodbus\modbus\rtu;..\..\rt-thread\components\drivers\phy;..\..\rt-thread\components\drivers\include;board;..\..\libs\stm32f4\STM32F4_HAL\Inc;..\..\rt-thread\components\libc\compilers\common\extension\fcntl\octal;..\..\rt-thread\components\drivers\smp_call;applications;..\..\libs\freemodbus\modbus\ascii;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;applications\bsp;..\..\rt-thread\libcpu\arm\common;..\..\rt-thread\components\libc\compilers\common\include;..\..\libs\stm32f4\STM32F4_CMSIS\Include + .;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\ascii;..\..\rt-thread\components\drivers\include;..\..\rt-thread\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;board\ports;..\..\rt-thread\components\libc\posix\io\epoll;..\..\libs\freemodbus\modbus\tcp;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\config;..\..\rt-thread\components\fal\inc;..\..\rt-thread\components\drivers\phy;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers;..\..\rt-thread\components\finsh;..\..\libs\freemodbus\port;..\..\rt-thread\components\libc\compilers\common\include;applications;..\..\rt-thread\components\drivers\include;..\..\libs\stm32f4\STM32F4_HAL\Inc;..\..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\..\rt-thread\components\drivers\include;..\..\rt-thread\libcpu\arm\cortex-m4;..\..\rt-thread\components\libc\posix\io\poll;..\..\rt-thread\components\libc\posix\ipc;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_flash;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\rtu;..\..\rt-thread\libcpu\arm\common;..\..\rt-thread\components\libc\compilers\common\extension;..\..\rt-thread\components\libc\posix\io\eventfd;..\..\rt-thread\components\libc\compilers\common\extension\fcntl\octal;board;..\..\rt-thread\components\drivers\smp_call;..\..\libs\cmsis-core\Include;..\..\rt-thread\components\drivers\include;board\CubeMX_Config\Inc;..\..\libs\stm32f4\STM32F4_CMSIS\Include;..\..\libs\freemodbus\modbus\include;applications\bsp;..\..\rt-thread\components\drivers\include @@ -383,25 +382,30 @@ Applications - - chrg_pin.c - 1 - applications\bsp\chrg_pin.c - - - chrg_switch.c - 1 - applications\bsp\chrg_switch.c - chrg_intr.c 1 applications\bsp\chrg_intr.c - chrg_i2c.c + chrg_wdt.c 1 - applications\bsp\chrg_i2c.c + applications\bsp\chrg_wdt.c + + + chrg_clk.c + 1 + applications\bsp\chrg_clk.c + + + chrg_tmr.c + 1 + applications\bsp\chrg_tmr.c + + + chrg_switch.c + 1 + applications\bsp\chrg_switch.c main.c @@ -414,15 +418,25 @@ applications\bsp\chrg_tty.c - chrg_clk.c + chrg_i2c.c 1 - applications\bsp\chrg_clk.c + applications\bsp\chrg_i2c.c + + + chrg_pin.c + 1 + applications\bsp\chrg_pin.c chrg_can.c 1 applications\bsp\chrg_can.c + + chrg_fal.c + 1 + applications\bsp\chrg_fal.c + @@ -523,7 +537,7 @@ __RT_IPC_SOURCE__ - + @@ -579,7 +593,63 @@ __RT_IPC_SOURCE__ - + + + + + + + + hwtimer.c + 1 + ..\..\rt-thread\components\drivers\hwtimer\hwtimer.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + __RT_IPC_SOURCE__ + + @@ -635,7 +705,7 @@ __RT_IPC_SOURCE__ - + @@ -691,7 +761,7 @@ __RT_IPC_SOURCE__ - + @@ -747,7 +817,7 @@ __RT_IPC_SOURCE__ - + @@ -803,7 +873,7 @@ __RT_IPC_SOURCE__ - + @@ -859,7 +929,7 @@ __RT_IPC_SOURCE__ - + @@ -915,7 +985,7 @@ __RT_IPC_SOURCE__ - + @@ -971,7 +1041,7 @@ __RT_IPC_SOURCE__ - + @@ -1027,7 +1097,7 @@ __RT_IPC_SOURCE__ - + @@ -1083,7 +1153,7 @@ __RT_IPC_SOURCE__ - + @@ -1139,7 +1209,7 @@ __RT_IPC_SOURCE__ - + @@ -1195,7 +1265,7 @@ __RT_IPC_SOURCE__ - + @@ -1251,7 +1321,7 @@ __RT_IPC_SOURCE__ - + @@ -1307,7 +1377,63 @@ __RT_IPC_SOURCE__ - + + + + + + + + dev_rtc.c + 1 + ..\..\rt-thread\components\drivers\rtc\dev_rtc.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + __RT_IPC_SOURCE__ + + @@ -1363,7 +1489,63 @@ __RT_IPC_SOURCE__ - + + + + + + + + dev_watchdog.c + 1 + ..\..\rt-thread\components\drivers\watchdog\dev_watchdog.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + __RT_IPC_SOURCE__ + + @@ -1389,21 +1571,41 @@ 1 ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_can.c + + drv_flash_f4.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_flash\drv_flash_f4.c + drv_gpio.c 1 ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_gpio.c + + drv_rtc.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_rtc.c + drv_soft_i2c.c 1 ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_soft_i2c.c + + drv_tim.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_tim.c + drv_usart.c 1 ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_usart.c + + drv_wdt.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\drv_wdt.c + drv_common.c 1 @@ -1411,9 +1613,39 @@ + + Fal + + + fal_rtt.c + 1 + ..\..\rt-thread\components\fal\src\fal_rtt.c + + + fal_partition.c + 1 + ..\..\rt-thread\components\fal\src\fal_partition.c + + + fal.c + 1 + ..\..\rt-thread\components\fal\src\fal.c + + + fal_flash.c + 1 + ..\..\rt-thread\components\fal\src\fal_flash.c + + + Finsh + + shell.c + 1 + ..\..\rt-thread\components\finsh\shell.c + cmd.c 1 @@ -1429,85 +1661,35 @@ 1 ..\..\rt-thread\components\finsh\msh.c - - shell.c - 1 - ..\..\rt-thread\components\finsh\shell.c - FreeModbus - - sample_mb_master.c - 1 - ..\..\libs\freemodbus\samples\sample_mb_master.c - - - mbfuncinput.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncinput.c - - - mbrtu.c - 1 - ..\..\libs\freemodbus\modbus\rtu\mbrtu.c - - - portevent.c - 1 - ..\..\libs\freemodbus\port\portevent.c - - - user_mb_app.c - 1 - ..\..\libs\freemodbus\port\user_mb_app.c - mbfuncdiag.c 1 ..\..\libs\freemodbus\modbus\functions\mbfuncdiag.c - - portevent_m.c - 1 - ..\..\libs\freemodbus\port\portevent_m.c - - - mbfunccoils.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfunccoils.c - - - porttimer_m.c - 1 - ..\..\libs\freemodbus\port\porttimer_m.c - - - port.c - 1 - ..\..\libs\freemodbus\port\port.c - - - portserial.c - 1 - ..\..\libs\freemodbus\port\portserial.c - mbfuncdisc_m.c 1 ..\..\libs\freemodbus\modbus\functions\mbfuncdisc_m.c - porttimer.c + mbrtu.c 1 - ..\..\libs\freemodbus\port\porttimer.c + ..\..\libs\freemodbus\modbus\rtu\mbrtu.c - sample_mb_slave.c + port.c 1 - ..\..\libs\freemodbus\samples\sample_mb_slave.c + ..\..\libs\freemodbus\port\port.c + + + mbfunccoils.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfunccoils.c mb_m.c @@ -1515,34 +1697,9 @@ ..\..\libs\freemodbus\modbus\mb_m.c - mbfuncholding.c + sample_mb_master.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncholding.c - - - mbrtu_m.c - 1 - ..\..\libs\freemodbus\modbus\rtu\mbrtu_m.c - - - mbfuncholding_m.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c - - - mbcrc.c - 1 - ..\..\libs\freemodbus\modbus\rtu\mbcrc.c - - - user_mb_app_m.c - 1 - ..\..\libs\freemodbus\port\user_mb_app_m.c - - - mbfuncother.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncother.c + ..\..\libs\freemodbus\samples\sample_mb_master.c portserial_m.c @@ -1550,14 +1707,14 @@ ..\..\libs\freemodbus\port\portserial_m.c - mbfunccoils_m.c + mbfuncdisc.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c + ..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c - mbutils.c + porttimer.c 1 - ..\..\libs\freemodbus\modbus\functions\mbutils.c + ..\..\libs\freemodbus\port\porttimer.c mbfuncinput_m.c @@ -1565,20 +1722,90 @@ ..\..\libs\freemodbus\modbus\functions\mbfuncinput_m.c - mb.c + mbfuncholding_m.c 1 - ..\..\libs\freemodbus\modbus\mb.c + ..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c - mbfuncdisc.c + mbfuncother.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c + ..\..\libs\freemodbus\modbus\functions\mbfuncother.c + + + mbfunccoils_m.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c porttcp.c 1 ..\..\libs\freemodbus\port\porttcp.c + + portevent.c + 1 + ..\..\libs\freemodbus\port\portevent.c + + + mbcrc.c + 1 + ..\..\libs\freemodbus\modbus\rtu\mbcrc.c + + + mbrtu_m.c + 1 + ..\..\libs\freemodbus\modbus\rtu\mbrtu_m.c + + + user_mb_app_m.c + 1 + ..\..\libs\freemodbus\port\user_mb_app_m.c + + + user_mb_app.c + 1 + ..\..\libs\freemodbus\port\user_mb_app.c + + + porttimer_m.c + 1 + ..\..\libs\freemodbus\port\porttimer_m.c + + + portevent_m.c + 1 + ..\..\libs\freemodbus\port\portevent_m.c + + + sample_mb_slave.c + 1 + ..\..\libs\freemodbus\samples\sample_mb_slave.c + + + portserial.c + 1 + ..\..\libs\freemodbus\port\portserial.c + + + mbutils.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbutils.c + + + mbfuncholding.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncholding.c + + + mb.c + 1 + ..\..\libs\freemodbus\modbus\mb.c + + + mbfuncinput.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncinput.c + @@ -1634,7 +1861,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1690,7 +1917,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1746,7 +1973,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1802,7 +2029,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1858,7 +2085,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1914,7 +2141,7 @@ __RT_KERNEL_SOURCE__ - + @@ -1970,7 +2197,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2026,7 +2253,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2082,7 +2309,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2138,7 +2365,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2194,7 +2421,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2250,7 +2477,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2306,7 +2533,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2362,7 +2589,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2418,7 +2645,7 @@ __RT_KERNEL_SOURCE__ - + @@ -2430,9 +2657,14 @@ klibc - kerrno.c + rt_vsnprintf_tiny.c 1 - ..\..\rt-thread\src\klibc\kerrno.c + ..\..\rt-thread\src\klibc\rt_vsnprintf_tiny.c + + + rt_vsscanf.c + 1 + ..\..\rt-thread\src\klibc\rt_vsscanf.c kstdio.c @@ -2445,14 +2677,9 @@ ..\..\rt-thread\src\klibc\kstring.c - rt_vsscanf.c + kerrno.c 1 - ..\..\rt-thread\src\klibc\rt_vsscanf.c - - - rt_vsnprintf_tiny.c - 1 - ..\..\rt-thread\src\klibc\rt_vsnprintf_tiny.c + ..\..\rt-thread\src\klibc\kerrno.c @@ -2504,75 +2731,20 @@ STM32F4-HAL - - stm32f4xx_hal_cryp_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c - - - stm32f4xx_hal_dma.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c - - - stm32f4xx_hal_dma_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c - - - stm32f4xx_hal_pwr.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c - - - stm32f4xx_hal_i2c_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c - - - stm32f4xx_hal_cryp.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp.c - - - stm32f4xx_hal_can.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c - - - stm32f4xx_hal_uart.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c - - - stm32f4xx_hal.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c - - - stm32f4xx_hal_pwr_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c - stm32f4xx_hal_rng.c 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rng.c - stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rtc.c 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rtc.c - stm32f4xx_hal_rcc.c + stm32f4xx_hal_flash_ramfunc.c 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c - - - stm32f4xx_hal_gpio.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ramfunc.c stm32f4xx_hal_usart.c @@ -2580,9 +2752,9 @@ ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_usart.c - stm32f4xx_hal_cortex.c + stm32f4xx_hal_dma_ex.c 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c stm32f4xx_hal_crc.c @@ -2594,11 +2766,116 @@ 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cec.c + + stm32f4xx_hal_wwdg.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_wwdg.c + + + stm32f4xx_hal_flash.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash.c + + + stm32f4xx_hal_flash_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ex.c + + + stm32f4xx_hal_cryp.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_can.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c + + + stm32f4xx_hal_tim_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim_ex.c + stm32f4xx_hal_i2c.c 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c.c + + stm32f4xx_hal_cryp_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_gpio.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_pwr.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_dma.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_uart.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_i2c_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c + + + stm32f4xx_hal_rtc_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rtc_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_lptim.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_lptim.c + + + stm32f4xx_hal_iwdg.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_iwdg.c + + + stm32f4xx_hal_cortex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_tim.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c + diff --git a/apps/chrg/rtconfig.h b/apps/chrg/rtconfig.h index d5df29f..cd8e06f 100644 --- a/apps/chrg/rtconfig.h +++ b/apps/chrg/rtconfig.h @@ -137,6 +137,8 @@ /* DFS: device virtual file system */ /* end of DFS: device virtual file system */ +#define RT_USING_FAL +#define FAL_PART_HAS_TABLE_CFG /* Device Drivers */ @@ -155,7 +157,10 @@ #define RT_CANSND_MSG_TIMEOUT 100 #define RT_USING_I2C #define RT_USING_I2C_BITOPS +#define RT_USING_RTC +#define RT_USING_WDT #define RT_USING_PIN +#define RT_USING_HWTIMER /* end of Device Drivers */ /* C/C++ and POSIX layer */ @@ -476,6 +481,12 @@ #define BSP_USING_I2C4 #define BSP_USING_CAN #define BSP_USING_CAN1 +#define BSP_USING_ONCHIP_RTC +#define BSP_RTC_USING_LSE +#define BSP_USING_WDT +#define BSP_USING_ON_CHIP_FLASH +#define BSP_USING_TIM +#define BSP_USING_TIM2 /* end of On-chip Peripheral Drivers */ /* Board extended module Drivers */ diff --git a/apps/chrg/template.uvprojx b/apps/chrg/template.uvprojx index 47662fb..5bcfb67 100644 --- a/apps/chrg/template.uvprojx +++ b/apps/chrg/template.uvprojx @@ -274,7 +274,7 @@ 1 - 0x8010000 + 0x8040000 0x40000 diff --git a/docs/HC_DFCD_Protocol_V1_0_2.pdf b/docs/HC_DFCD_Protocol_V1_0_3.pdf similarity index 62% rename from docs/HC_DFCD_Protocol_V1_0_2.pdf rename to docs/HC_DFCD_Protocol_V1_0_3.pdf index d9c9432d1c73f22e2266d24c248d46ede7e54a4d..ffd927e67dad1d545fddf64f35ec71d39ca03632 100644 GIT binary patch delta 109991 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∋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 S2IAa4qfi%HTkqJ-Ui=@!VqVq& diff --git a/mdks/boot.uvprojx b/mdks/boot.uvprojx index b48032d..ef00664 100644 --- a/mdks/boot.uvprojx +++ b/mdks/boot.uvprojx @@ -276,7 +276,7 @@ 1 0x8000000 - 0x8000 + 0x10000 1 @@ -339,7 +339,7 @@ USE_HAL_DRIVER,STM32F405xx - ..\lib\stm32f4\STM32F4_HAL\Inc;..\lib\stm32f4\STM32F4_HAL\Inc\Legacy;..\lib\stm32f4\STM32F4_CMSIS\Include;..\lib\cmsis-core\Include;..\apps\boot\include;..\apps\boot\bsp + ..\libs\stm32f4\STM32F4_HAL\Inc;..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\libs\stm32f4\STM32F4_CMSIS\Include;..\libs\cmsis-core\Include;..\apps\boot\include;..\apps\boot\bsp @@ -421,7 +421,7 @@ startup_stm32f405xx.s 2 - ..\lib\stm32f4\STm32F4_CMSIS\Source\Templates\arm\startup_stm32f405xx.s + ..\libs\stm32f4\STm32F4_CMSIS\Source\Templates\arm\startup_stm32f405xx.s @@ -556,82 +556,82 @@ stm32f4xx_hal.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c stm32f4xx_hal_cortex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c stm32f4xx_hal_dma.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c stm32f4xx_hal_dma_ex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c stm32f4xx_hal_exti.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_exti.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_exti.c stm32f4xx_hal_flash.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash.c stm32f4xx_hal_flash_ex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ex.c stm32f4xx_hal_flash_ramfunc.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ramfunc.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_flash_ramfunc.c stm32f4xx_hal_gpio.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c stm32f4xx_hal_pwr.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c stm32f4xx_hal_pwr_ex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c stm32f4xx_hal_rcc.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c stm32f4xx_hal_rcc_ex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c stm32f4xx_hal_tim.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim.c stm32f4xx_hal_tim_ex.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim_ex.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_tim_ex.c stm32f4xx_hal_uart.c 1 - ..\lib\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c + ..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c diff --git a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f1.c b/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f1.c deleted file mode 100644 index 7672c9d..0000000 --- a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f1.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-12-5 SummerGift first version - * 2020-03-05 redoc support stm32f103vg - * - */ - -#include -#include - -#ifdef BSP_USING_ON_CHIP_FLASH -#include "drv_config.h" -#include "drv_flash.h" -#include - -#if defined(RT_USING_FAL) -#include "fal.h" -#endif - -//#define DRV_DEBUG -#define LOG_TAG "drv.flash" -#include - -/** - * @brief Gets the page of a given address - * @param Addr: Address of the FLASH Memory - * @retval The page of a given address - */ -static uint32_t GetPage(uint32_t addr) -{ - uint32_t page = 0; - page = RT_ALIGN_DOWN(addr, FLASH_PAGE_SIZE); - return page; -} - -/** - * Read data from flash. - * @note This operation's units is word. - * - * @param addr flash address - * @param buf buffer to store read data - * @param size read bytes size - * - * @return result - */ -int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size) -{ - size_t i; - - if ((addr + size) > STM32_FLASH_END_ADDRESS) - { - LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size)); - return -RT_EINVAL; - } - - for (i = 0; i < size; i++, buf++, addr++) - { - *buf = *(rt_uint8_t *) addr; - } - - return size; -} - -/** - * Write data to flash. - * @note This operation's units is word. - * @note This operation must after erase. @see flash_erase. - * - * @param addr flash address - * @param buf the write data buffer - * @param size write bytes size - * - * @return result - */ -int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size) -{ - rt_err_t result = RT_EOK; - rt_uint32_t end_addr = addr + size; - - if (addr % 4 != 0) - { - LOG_E("write addr must be 4-byte alignment"); - return -RT_EINVAL; - } - - if ((end_addr) > STM32_FLASH_END_ADDRESS) - { - LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size)); - return -RT_EINVAL; - } - - HAL_FLASH_Unlock(); - - while (addr < end_addr) - { - if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addr, *((rt_uint32_t *)buf)) == HAL_OK) - { - if (*(rt_uint32_t *)addr != *(rt_uint32_t *)buf) - { - result = -RT_ERROR; - break; - } - addr += 4; - buf += 4; - } - else - { - result = -RT_ERROR; - break; - } - } - - HAL_FLASH_Lock(); - - if (result != RT_EOK) - { - return result; - } - - return size; -} - -/** - * Erase data on flash with bank. - * @note This operation is irreversible. - * @note This operation's units is different which on many chips. - * - * @param bank flash bank - * @param addr flash address - * @param size erase bytes size - * - * @return result - */ -int stm32_flash_erase_bank(uint32_t bank, rt_uint32_t addr, size_t size) -{ - rt_err_t result = RT_EOK; - uint32_t PAGEError = 0; - - /*Variable used for Erase procedure*/ - FLASH_EraseInitTypeDef EraseInitStruct; - - if ((addr + size) > STM32_FLASH_END_ADDRESS) - { - LOG_E("ERROR: erase outrange flash size! addr is (0x%p)\n", (void *)(addr + size)); - return -RT_EINVAL; - } - - HAL_FLASH_Unlock(); - - /* Fill EraseInit structure*/ - EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; - EraseInitStruct.PageAddress = GetPage(addr); - EraseInitStruct.NbPages = (size + FLASH_PAGE_SIZE - 1) / FLASH_PAGE_SIZE; - EraseInitStruct.Banks = bank; - - if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK) - { - result = -RT_ERROR; - goto __exit; - } - -__exit: - HAL_FLASH_Lock(); - - if (result != RT_EOK) - { - return result; - } - - LOG_D("erase done: addr (0x%p), size %d", (void *)addr, size); - return size; -} - -/** - * Erase data on flash . - * @note This operation is irreversible. - * @note This operation's units is different which on many chips. - * - * @param addr flash address - * @param size erase bytes size - * - * @return result - */ -int stm32_flash_erase(rt_uint32_t addr, size_t size) -{ -#if defined(FLASH_BANK2_END) - rt_err_t result = RT_EOK; - rt_uint32_t addr_bank1 = 0; - rt_uint32_t size_bank1 = 0; - rt_uint32_t addr_bank2 = 0; - rt_uint32_t size_bank2 = 0; - - if((addr + size) <= FLASH_BANK1_END) - { - addr_bank1 = addr; - size_bank1 = size; - size_bank2 = 0; - } - else if(addr > FLASH_BANK1_END) - { - size_bank1 = 0; - addr_bank2 = addr; - size_bank2 = size; - } - else - { - addr_bank1 = addr; - size_bank1 = FLASH_BANK1_END + 1 - addr_bank1; - addr_bank2 = FLASH_BANK1_END + 1; - size_bank2 = addr + size - (FLASH_BANK1_END + 1); - } - - if(size_bank1) - { - LOG_D("bank1: addr (0x%p), size %d", (void *)addr_bank1, size_bank1); - if(size_bank1 != stm32_flash_erase_bank(FLASH_BANK_1, addr_bank1, size_bank1)) - { - result = -RT_ERROR; - goto __exit; - } - } - - if(size_bank2) - { - LOG_D("bank2: addr (0x%p), size %d", (void *)addr_bank2, size_bank2); - if(size_bank2 != stm32_flash_erase_bank(FLASH_BANK_2, addr_bank2, size_bank2)) - { - result = -RT_ERROR; - goto __exit; - } - } - -__exit: - if(result != RT_EOK) - { - return result; - } - - return size_bank1 + size_bank2; -#else - return stm32_flash_erase_bank(FLASH_BANK_1, addr, size); -#endif -} - - -#if defined(RT_USING_FAL) - -static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size); -static int fal_flash_write(long offset, const rt_uint8_t *buf, size_t size); -static int fal_flash_erase(long offset, size_t size); - -const struct fal_flash_dev stm32_onchip_flash = { "onchip_flash", STM32_FLASH_START_ADRESS, STM32_FLASH_SIZE, FLASH_PAGE_SIZE, {NULL, fal_flash_read, fal_flash_write, fal_flash_erase} }; - -static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size) -{ - return stm32_flash_read(stm32_onchip_flash.addr + offset, buf, size); -} - -static int fal_flash_write(long offset, const rt_uint8_t *buf, size_t size) -{ - return stm32_flash_write(stm32_onchip_flash.addr + offset, buf, size); -} - -static int fal_flash_erase(long offset, size_t size) -{ - return stm32_flash_erase(stm32_onchip_flash.addr + offset, size); -} - -#endif -#endif /* BSP_USING_ON_CHIP_FLASH */ diff --git a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f4.c b/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f4.c index 5c2fc4b..d219f8a 100644 --- a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f4.c +++ b/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_f4.c @@ -388,7 +388,6 @@ const struct fal_flash_dev stm32_onchip_flash_16k = fal_flash_erase_16k, }, 8, - {}, }; const struct fal_flash_dev stm32_onchip_flash_64k = { @@ -403,7 +402,6 @@ const struct fal_flash_dev stm32_onchip_flash_64k = fal_flash_erase_64k, }, 8, - {}, }; const struct fal_flash_dev stm32_onchip_flash_128k = { @@ -418,7 +416,6 @@ const struct fal_flash_dev stm32_onchip_flash_128k = fal_flash_erase_128k, }, 8, - {}, }; static int fal_flash_read_16k(long offset, rt_uint8_t *buf, size_t size) diff --git a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c b/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c deleted file mode 100644 index 7690f97..0000000 --- a/rt-thread/bsp/stm32/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-12-5 SummerGift first version - * 2019-3-2 jinsheng add Macro judgment - * 2020-1-6 duminmin support single bank mode - * 2020-5-17 yufanyufan77 support support H7 - * 2021-3-3 zhuyf233 fix some bugs - */ - -#include -#include - -#ifdef BSP_USING_ON_CHIP_FLASH -#include "drv_config.h" -#include "drv_flash.h" -#include - -#if defined(RT_USING_FAL) -#include "fal.h" -#endif - -//#define DRV_DEBUG -#define LOG_TAG "drv.flash" -#include - -/** - * Read data from flash. - * @note This operation's units is word. - * - * @param addr flash address - * @param buf buffer to store read data - * @param size read bytes size - * - * @retval The length of bytes that have been read - */ -int stm32_flash_read(rt_uint32_t addr, rt_uint8_t *buf, size_t size) -{ - size_t i; - - if ((addr + size - 1) > FLASH_END) - { - LOG_E("read outrange flash size! addr is (0x%p)", (void *)(addr + size)); - return -RT_ERROR; - } - - for (i = 0; i < size; i++, buf++, addr++) - { - *buf = *(rt_uint8_t *) addr; - } - - return size; -} - -/** - * Write data to flash. - * @note This operation's units is word. - * @note This operation must after erase. @see flash_erase. - * - * @param addr flash address - * @param buf the write data buffer - * @param size write bytes size - * - * @return The length of bytes that have been written - */ -int stm32_flash_write(rt_uint32_t addr, const rt_uint8_t *buf, size_t size) -{ - rt_err_t result = RT_EOK; - rt_uint32_t end_addr = addr + size - 1, write_addr; - rt_uint32_t write_granularity = FLASH_NB_32BITWORD_IN_FLASHWORD * 4; - rt_uint32_t write_size = write_granularity; - rt_uint8_t write_buffer[32] = {0}; - - if ((end_addr) > FLASH_END) - { - LOG_E("write outrange flash size! addr is (0x%p)", (void *)(addr + size)); - return -RT_EINVAL; - } - - if(addr % 32 != 0) - { - LOG_E("write addr must be 32-byte alignment"); - return -RT_EINVAL; - } - - if (size < 1) - { - return -RT_EINVAL; - } - - HAL_FLASH_Unlock(); - write_addr = (uint32_t)buf; - __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR); - while (addr < end_addr) - { - if(end_addr - addr + 1 < write_granularity) - { - write_size = end_addr - addr + 1; - for(size_t i = 0; i < write_size; i++) - { - write_buffer[i] = *((uint8_t *)(write_addr + i)); - } - write_addr = (uint32_t)((rt_uint32_t *)write_buffer); - } - if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_FLASHWORD, addr, write_addr) == HAL_OK) - { - for(rt_uint8_t i = 0; i < write_size; i++) - { - if (*(rt_uint8_t *)(addr + i) != *(rt_uint8_t *)(write_addr + i)) - { - result = -RT_ERROR; - goto __exit; - } - } - addr += write_granularity; - write_addr += write_granularity; - } - else - { - result = -RT_ERROR; - goto __exit; - } - } - -__exit: - HAL_FLASH_Lock(); - - if (result != RT_EOK) - { - return result; - } - - return size; -} - -/** - * Erase data on flash. - * @note This operation is irreversible. - * @note This operation's units is different which on many chips. - * - * @param addr flash address - * @param size erase bytes size - * - * @return result - */ -int stm32_flash_erase(rt_uint32_t addr, size_t size) -{ - rt_err_t result = RT_EOK; - rt_uint32_t SECTORError = 0; - - if ((addr + size - 1) > FLASH_END) - { - LOG_E("ERROR: erase outrange flash size! addr is (0x%p)\n", (void *)(addr + size)); - return -RT_EINVAL; - } - - rt_uint32_t addr_bank1 = 0; - rt_uint32_t size_bank1 = 0; -#ifdef FLASH_BANK_2 - rt_uint32_t addr_bank2 = 0; - rt_uint32_t size_bank2 = 0; -#endif - - if((addr + size) < FLASH_BANK2_BASE) - { - addr_bank1 = addr; - size_bank1 = size; -#ifdef FLASH_BANK_2 - size_bank2 = 0; -#endif - } - else if(addr >= FLASH_BANK2_BASE) - { - size_bank1 = 0; -#ifdef FLASH_BANK_2 - addr_bank2 = addr; - size_bank2 = size; -#endif - } - else - { - addr_bank1 = addr; - size_bank1 = FLASH_BANK2_BASE - addr_bank1; -#ifdef FLASH_BANK_2 - addr_bank2 = FLASH_BANK2_BASE; - size_bank2 = addr + size - FLASH_BANK2_BASE; -#endif - } - - /*Variable used for Erase procedure*/ - FLASH_EraseInitTypeDef EraseInitStruct; - /* Unlock the Flash to enable the flash control register access */ - HAL_FLASH_Unlock(); - EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS; - EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3; - SCB_DisableDCache(); - - if(size_bank1) - { - EraseInitStruct.Sector = (addr_bank1 - FLASH_BANK1_BASE) / FLASH_SECTOR_SIZE; - EraseInitStruct.NbSectors = (addr_bank1 + size_bank1 -1 - FLASH_BANK1_BASE) / FLASH_SECTOR_SIZE - EraseInitStruct.Sector + 1; - EraseInitStruct.Banks = FLASH_BANK_1; - if (HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError) != HAL_OK) - { - result = -RT_ERROR; - goto __exit; - } - } - -#ifdef FLASH_BANK_2 - if(size_bank2) - { - EraseInitStruct.Sector = (addr_bank2 - FLASH_BANK2_BASE) / FLASH_SECTOR_SIZE; - EraseInitStruct.NbSectors = (addr_bank2 + size_bank2 -1 - FLASH_BANK2_BASE) / FLASH_SECTOR_SIZE - EraseInitStruct.Sector + 1; - EraseInitStruct.Banks = FLASH_BANK_2; - if (HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError) != HAL_OK) - { - result = -RT_ERROR; - goto __exit; - } - } -#endif - -__exit: - - SCB_EnableDCache(); - HAL_FLASH_Lock(); - - if (result != RT_EOK) - { - return result; - } - - LOG_D("erase done: addr (0x%p), size %d", (void *)addr, size); - return size; -} - -#if defined(RT_USING_FAL) -static int fal_flash_read_128k(long offset, rt_uint8_t *buf, size_t size); -static int fal_flash_write_128k(long offset, const rt_uint8_t *buf, size_t size); -static int fal_flash_erase_128k(long offset, size_t size); -const struct fal_flash_dev stm32_onchip_flash_128k = { "onchip_flash_128k", STM32_FLASH_START_ADRESS, FLASH_SIZE_GRANULARITY_128K, (128 * 1024), {NULL, fal_flash_read_128k, fal_flash_write_128k, fal_flash_erase_128k} }; - -static int fal_flash_read_128k(long offset, rt_uint8_t *buf, size_t size) -{ - return stm32_flash_read(stm32_onchip_flash_128k.addr + offset, buf, size); -} -static int fal_flash_write_128k(long offset, const rt_uint8_t *buf, size_t size) -{ - return stm32_flash_write(stm32_onchip_flash_128k.addr + offset, buf, size); -} - -static int fal_flash_erase_128k(long offset, size_t size) -{ - return stm32_flash_erase(stm32_onchip_flash_128k.addr + offset, size); -} - -#endif -#endif /* BSP_USING_ON_CHIP_FLASH */