diff --git a/.config b/.config index a1f7e9b..242e3fd 100644 --- a/.config +++ b/.config @@ -220,7 +220,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=y +CONFIG_FAL_PART_HAS_TABLE_CFG=y +# CONFIG_FAL_USING_SFUD_PORT is not set # # Device Drivers @@ -1513,6 +1516,7 @@ CONFIG_BSP_SCB_ENABLE_I_CACHE=y CONFIG_BSP_ENABLE_FPU=y CONFIG_BSP_USING_GPIO=y # CONFIG_BSP_USING_USBD is not set +CONFIG_BSP_USING_ON_CHIP_FLASH=y CONFIG_BSP_USING_UART=y CONFIG_BSP_STM32_UART_V1_TX_TIMEOUT=6000 CONFIG_BSP_USING_UART1=y diff --git a/CMakeLists.txt b/CMakeLists.txt index 52852b5..01fbc31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ INCLUDE_DIRECTORIES( board board/CubeMX_Config/Inc board/ports/usb + board/ports/fal libraries/HAL_Drivers/CMSIS/Include packages/erpc-1.14.0/erpc_c packages/erpc-1.14.0/erpc_c/config @@ -74,6 +75,7 @@ INCLUDE_DIRECTORIES( rt-thread/components/drivers/usb/cherryusb/class/vendor/serial rt-thread/components/drivers/usb/cherryusb/class/vendor/wifi rt-thread/components/drivers/usb/cherryusb/osal + rt-thread/components/fal/inc rt-thread/components/finsh rt-thread/components/libc/compilers/common/include rt-thread/components/libc/compilers/newlib @@ -91,6 +93,7 @@ INCLUDE_DIRECTORIES( libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Inc/Legacy libraries/HAL_Drivers/drivers libraries/HAL_Drivers/drivers/config + libraries/HAL_Drivers/drivers/drv_flash libraries/HAL_Drivers ) @@ -105,11 +108,11 @@ ADD_DEFINITIONS( # Library source files SET(RT_APP_ERPC_SOURCES - applications/erpc/common/src/erpc_error_handler.cpp applications/erpc/proto/generated/servo_service_server.cpp + applications/erpc/common/src/erpc_error_handler.cpp applications/erpc/proto/generated/servo_service_interface.cpp - applications/erpc/service/src/servo_service_impl.cpp applications/erpc/service/src/erpc_server_main.cpp + applications/erpc/service/src/servo_service_impl.cpp ) SET(RT_APPLICATIONS_SOURCES @@ -117,13 +120,13 @@ SET(RT_APPLICATIONS_SOURCES ) SET(RT_CHERRYUSB_SOURCES - rt-thread/components/drivers/usb/cherryusb/core/usbd_core.c rt-thread/components/drivers/usb/cherryusb/osal/usb_osal_rtthread.c - rt-thread/components/drivers/usb/cherryusb/class/cdc/usbd_cdc_acm.c - rt-thread/components/drivers/usb/cherryusb/port/dwc2/usb_dc_dwc2.c - rt-thread/components/drivers/usb/cherryusb/platform/rtthread/usb_check.c rt-thread/components/drivers/usb/cherryusb/platform/rtthread/usb_msh.c rt-thread/components/drivers/usb/cherryusb/port/dwc2/usb_glue_st.c + rt-thread/components/drivers/usb/cherryusb/port/dwc2/usb_dc_dwc2.c + rt-thread/components/drivers/usb/cherryusb/class/cdc/usbd_cdc_acm.c + rt-thread/components/drivers/usb/cherryusb/platform/rtthread/usb_check.c + rt-thread/components/drivers/usb/cherryusb/core/usbd_core.c ) SET(RT_COMMON_SOURCES @@ -178,6 +181,7 @@ SET(RT_DRIVERS_SOURCES board/ports/usb/usb_cdc_init.c libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Source/Templates/gcc/startup_stm32h750xx.s libraries/HAL_Drivers/drivers/drv_adc.c + libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c libraries/HAL_Drivers/drivers/drv_gpio.c libraries/HAL_Drivers/drivers/drv_pwm.c libraries/HAL_Drivers/drivers/drv_qspi.c @@ -188,30 +192,37 @@ SET(RT_DRIVERS_SOURCES ) SET(RT_ERPC_SOURCES - packages/erpc-1.14.0/erpc_c/transports/erpc_inter_thread_buffer_transport.cpp - packages/erpc-1.14.0/erpc_c/transports/erpc_usb_cdc_transport.cpp - packages/erpc-1.14.0/erpc_c/port/erpc_port_rtt.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_transport_arbitrator.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_framed_transport.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_pre_post_action.cpp + packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_dynamic.cpp packages/erpc-1.14.0/erpc_c/infra/erpc_message_loggers.cpp packages/erpc-1.14.0/erpc_c/infra/erpc_server.cpp - packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_static.cpp packages/erpc-1.14.0/erpc_c/setup/erpc_setup_usb_cdc.cpp + packages/erpc-1.14.0/erpc_c/transports/erpc_inter_thread_buffer_transport.cpp + packages/erpc-1.14.0/erpc_c/transports/erpc_usb_cdc_transport.cpp packages/erpc-1.14.0/erpc_c/infra/erpc_simple_server.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_message_buffer.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_transport_arbitrator.cpp - packages/erpc-1.14.0/erpc_c/setup/erpc_server_setup.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_framed_transport.cpp - packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_dynamic.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_basic_codec.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_crc16.cpp packages/erpc-1.14.0/erpc_c/port/erpc_threading_pthreads.cpp - packages/erpc-1.14.0/erpc_c/infra/erpc_pre_post_action.cpp + packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_static.cpp + packages/erpc-1.14.0/erpc_c/setup/erpc_server_setup.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_crc16.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_message_buffer.cpp + packages/erpc-1.14.0/erpc_c/infra/erpc_basic_codec.cpp + packages/erpc-1.14.0/erpc_c/port/erpc_port_rtt.cpp +) + +SET(RT_FAL_SOURCES + rt-thread/components/fal/src/fal_rtt.c + rt-thread/components/fal/src/fal.c + rt-thread/components/fal/src/fal_flash.c + rt-thread/components/fal/src/fal_partition.c ) SET(RT_FINSH_SOURCES - rt-thread/components/finsh/cmd.c - rt-thread/components/finsh/msh.c rt-thread/components/finsh/msh_parse.c + rt-thread/components/finsh/cmd.c rt-thread/components/finsh/shell.c + rt-thread/components/finsh/msh.c ) SET(RT_KERNEL_SOURCES @@ -233,16 +244,16 @@ SET(RT_KERNEL_SOURCES ) SET(RT_KLIBC_SOURCES - rt-thread/src/klibc/rt_vsscanf.c rt-thread/src/klibc/kstdio.c + rt-thread/src/klibc/rt_vsscanf.c rt-thread/src/klibc/kstring.c rt-thread/src/klibc/kerrno.c ) SET(RT_KTIME_SOURCES rt-thread/components/drivers/ktime/src/hrtimer.c - rt-thread/components/drivers/ktime/src/boottime.c rt-thread/components/drivers/ktime/src/cputimer.c + rt-thread/components/drivers/ktime/src/boottime.c ) SET(RT_LIBCPU_SOURCES @@ -256,34 +267,36 @@ SET(RT_LIBCPU_SOURCES SET(RT_LIBRARIES_SOURCES libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rng.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cec.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_comp.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_usart.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cryp.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_lptim.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc.c + libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Source/Templates/system_stm32h7xx.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c + libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cryp_ex.c - libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Source/Templates/system_stm32h7xx.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cec.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_lptim.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_usart.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_comp.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cryp.c - libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc.c ) SET(RT_POSIX_SOURCES @@ -301,9 +314,9 @@ SET(RT_POSIX_SOURCES ) SET(RT_SERVO_CONTROL_SOURCES - applications/servo_manager/src/servo_manager.cpp applications/servo_manager/src/servo_driver.cpp applications/servo_manager/src/servo_control.cpp + applications/servo_manager/src/servo_manager.cpp ) SET(RT_UTC_UTEST_SOURCES @@ -338,6 +351,7 @@ ADD_LIBRARY(rtt_CPP OBJECT ${RT_CPP_SOURCES}) ADD_LIBRARY(rtt_DeviceDrivers OBJECT ${RT_DEVICEDRIVERS_SOURCES}) ADD_LIBRARY(rtt_Drivers OBJECT ${RT_DRIVERS_SOURCES}) ADD_LIBRARY(rtt_erpc OBJECT ${RT_ERPC_SOURCES}) +ADD_LIBRARY(rtt_Fal OBJECT ${RT_FAL_SOURCES}) ADD_LIBRARY(rtt_Finsh OBJECT ${RT_FINSH_SOURCES}) ADD_LIBRARY(rtt_Kernel OBJECT ${RT_KERNEL_SOURCES}) ADD_LIBRARY(rtt_klibc OBJECT ${RT_KLIBC_SOURCES}) @@ -369,6 +383,7 @@ TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME}.elf rtt_DeviceDrivers rtt_Drivers rtt_erpc + rtt_Fal rtt_Finsh rtt_Kernel rtt_klibc diff --git a/README.md b/README.md index 4e06a94..4ed37cf 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,12 @@ -# BSP README 模板 +为了暂时使用芯片上超出128k 的flash 当作config 文件的存储区,修改了 +libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h +的 -## 简介 +#define FLASH_END (0x0801FFFFUL) /*!< FLASH end address -本文档为 xxx 开发板的 BSP (板级支持包) 说明。 +为 -主要内容如下: +#define FLASH_END (0x0803FFFFUL) /*!< FLASH end address -- 开发板资源介绍 -- BSP 快速上手 -- 进阶使用方法 - -通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 - -## 开发板介绍 - -【此处简单介绍一下开发板】 - -开发板外观如下图所示: - -![board](figures/board.jpg) - -该开发板常用 **板载资源** 如下: - -- MCU:STM32H743,主频 400MHz,2MB FLASH ,1MB RAM -- 外部 SDRAM:W9825G6KH,32MB -- 外部 NAND FLASH:H27U4G8F2,512MB -- 外部 FLASH:W25Q256,32MB -- 常用外设 - - LED:2个,DS0(红色,PB1),DS1(绿色,PB0) - - 按键:4个,KEY_UP(兼具唤醒功能,PA0),K0(PH3),K1(PH2),K2(PC13) -- 常用接口:USB 转串口、SD 卡接口、以太网接口、LCD 接口等 -- 调试接口,标准 JTAG/SWD - -开发板更多详细信息请参考正点原子 [STM32阿波罗开发板介绍](https://eboard.taobao.com/index.htm)。 - -## 外设支持 - -本 BSP 目前对外设的支持情况如下: - -| **板载外设** | **支持情况** | **备注** | -| :----------------- | :----------: | :------------------------------------- | -| USB 转串口 | 支持 | | -| QSPI Flash | 暂不支持 | | -| 以太网 | 暂不支持 | | -| SD卡 | 暂不支持 | | -| CAN | 暂不支持 | | -| SDRAM | 暂不支持 | | -| MPU9250六轴传感器 | 暂不支持 | | -| **片上外设** | **支持情况** | **备注** | -| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...176 | -| UART | 支持 | | -| SPI | 暂不支持 | | -| I2C | 暂不支持 | | -| SDIO | 暂不支持 | 即将支持 | -| RTC | 暂不支持 | 即将支持 | -| PWM | 暂不支持 | 即将支持 | -| USB Device | 暂不支持 | 即将支持 | -| USB Host | 暂不支持 | 即将支持 | -| IWG | 暂不支持 | 即将支持 | - -## 使用说明 - -使用说明分为如下两个章节: - -- 快速上手 - - 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 - -- 进阶使用 - - 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 - - -### 快速上手 - -本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 - -#### 硬件连接 - -使用数据线连接开发板到 PC,打开电源开关。 - -#### 编译下载 - -双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 - -> 工程默认配置使用 ST_LINK 仿真器下载程序,在通过 ST_LINK 连接开发板的基础上,点击下载按钮即可下载程序到开发板 - -#### 运行结果 - -下载程序成功之后,系统会自动运行,LED闪烁。 - -连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: - -```bash - \ | / -- RT - Thread Operating System - / | \ 4.0.1 build Mar 5 2019 - 2006 - 2019 Copyright by rt-thread team -msh > -``` -### 进阶使用 - -此 BSP 默认只开启了 GPIO 和 串口1 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下: - -1. 在 bsp 下打开 env 工具。 - -2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 - -3. 输入`pkgs --update`命令更新软件包。 - -4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。 - -本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。 - -## 注意事项 - -- xxx - -## 联系人信息 - -维护人: - -- [xxx](https://个人主页), 邮箱: \ No newline at end of file +并在libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c 中添加了 +const struct fal_flash_dev stm32_onchip_flash_256k = { "onchip_flash_256k", 0x08000000, (256 * 1024), (128 * 1024), {NULL, fal_flash_read_128k, fal_flash_write_128k, fal_flash_erase_128k},256 }; diff --git a/applications/main.cpp b/applications/main.cpp index 6c8b5b5..5973f42 100644 --- a/applications/main.cpp +++ b/applications/main.cpp @@ -12,6 +12,7 @@ #include #include +#include "fal.h" #include "planner/s_curve_planner/include/s_curve_position_planner.h" /* defined the LED0 pin: PC13 */ @@ -22,6 +23,7 @@ int main(void) { int count = 1; + fal_init(); rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); while (count++) diff --git a/board/Kconfig b/board/Kconfig index a37beaf..dec46d4 100644 --- a/board/Kconfig +++ b/board/Kconfig @@ -56,6 +56,9 @@ menu "On-chip Peripheral Drivers" bool "Enable USB Device" select RT_USING_USB_DEVICE default y + config BSP_USING_ON_CHIP_FLASH + bool "Enable on chip flash" + default n # menuconfig BSP_USING_UART # bool "Enable UART" diff --git a/board/SConscript b/board/SConscript index 5bec199..d225094 100644 --- a/board/SConscript +++ b/board/SConscript @@ -13,6 +13,7 @@ src += Glob('ports/usb/*.c') path = [cwd] path += [cwd + '/CubeMX_Config/Inc'] path += [cwd + '/ports/usb'] +path += [cwd + '/ports/fal'] # 这样需要包含 core_cm7.h ROOT = os.path.abspath(os.path.join(cwd, '..')) diff --git a/board/ports/fal/fal_cfg.h b/board/ports/fal/fal_cfg.h new file mode 100644 index 0000000..a876f7a --- /dev/null +++ b/board/ports/fal/fal_cfg.h @@ -0,0 +1,30 @@ +#ifndef _FAL_CFG_H_ +#define _FAL_CFG_H_ + +#include +#include + + +/* ===================== Flash device Configuration ========================= */ + +extern const struct fal_flash_dev stm32_onchip_flash_256k; + +/* flash device table */ +#define FAL_FLASH_DEV_TABLE \ +{ \ +&stm32_onchip_flash_256k \ +} + +/* ====================== Partition Configuration ========================== */ + +#ifdef FAL_PART_HAS_TABLE_CFG + +#define FAL_PART_TABLE \ +{ \ +{FAL_PART_MAGIC_WORD, "bl", "onchip_flash_256k", 0, 128 * 1024, 0}, \ +{FAL_PART_MAGIC_WORD, "config", "onchip_flash_256k", 128 * 1024, 128 * 1024, 0}, \ +} + +#endif /* FAL_PART_HAS_TABLE_CFG */ + +#endif /* _FAL_CFG_H_ */ \ No newline at end of file diff --git a/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c b/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c index 7690f97..d4fb21b 100644 --- a/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c +++ b/libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c @@ -243,7 +243,8 @@ __exit: 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} }; +const struct fal_flash_dev stm32_onchip_flash_128k = { "onchip_flash_128k", 0x08000000, (128 * 1024), (128 * 1024), {NULL, fal_flash_read_128k, fal_flash_write_128k, fal_flash_erase_128k} }; +const struct fal_flash_dev stm32_onchip_flash_256k = { "onchip_flash_256k", 0x08000000, (256 * 1024), (128 * 1024), {NULL, fal_flash_read_128k, fal_flash_write_128k, fal_flash_erase_128k},256 }; static int fal_flash_read_128k(long offset, rt_uint8_t *buf, size_t size) { diff --git a/libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h b/libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h index 8fce634..55bb192 100644 --- a/libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h +++ b/libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h @@ -2145,7 +2145,7 @@ typedef struct #define FLASH_BANK1_BASE (0x08000000UL) /*!< Base address of : (up to 128 KB) Flash Bank1 accessible over AXI */ #define FLASH_BANK2_BASE (0x08100000UL) /*!< For legacy only , Flash bank 2 not available on STM32H750xx value line */ -#define FLASH_END (0x0801FFFFUL) /*!< FLASH end address */ +#define FLASH_END (0x0803FFFFUL) /*!< FLASH end address */ /* Legacy define */ #define FLASH_BASE FLASH_BANK1_BASE diff --git a/rtconfig.h b/rtconfig.h index 8d8294c..3b1ebd8 100644 --- a/rtconfig.h +++ b/rtconfig.h @@ -136,6 +136,9 @@ /* DFS: device virtual file system */ /* end of DFS: device virtual file system */ +#define RT_USING_FAL +#define FAL_USING_DEBUG +#define FAL_PART_HAS_TABLE_CFG /* Device Drivers */ @@ -439,6 +442,7 @@ #define BSP_SCB_ENABLE_I_CACHE #define BSP_ENABLE_FPU #define BSP_USING_GPIO +#define BSP_USING_ON_CHIP_FLASH #define BSP_USING_UART #define BSP_STM32_UART_V1_TX_TIMEOUT 6000 #define BSP_USING_UART1