优化stm32f1支持

This commit is contained in:
zhangzheng
2024-01-18 01:09:39 +08:00
parent c4c39521d7
commit 4d89ed81e9
22 changed files with 129 additions and 18 deletions

View File

@@ -0,0 +1,112 @@
#
# Knl config
#
CONFIG_KNL_INFO=y
CONFIG_KNL_TEXT_ADDR=0x8000000
CONFIG_KNL_TEXT_SIZE=0x100000
CONFIG_KNL_DATA_ADDR=0x20000000
CONFIG_KNL_DATA_SIZE=0x2000000
CONFIG_KNL_OFFSET=0x2000
CONFIG_INIT_TASK_OFFSET=0x10000
CONFIG_BOOTFS_OFFSET=0x22000
CONFIG_MK_MPU_CFG=y
CONFIG_FT_ADDR_NR=16
CONFIG_SYS_SCHE_HZ=1000
CONFIG_USER_ISR_START_NO=16
CONFIG_IRQ_REG_TAB_SIZE=80
CONFIG_REGION_NUM=8
CONFIG_OBJ_MAP_TAB_SIZE=4
CONFIG_OBJ_MAP_ENTRY_SIZE=8
CONFIG_PRINTK_CACHE_SIZE=128
# end of Knl config
#
# Libc backend
#
CONFIG_FD_MAP_ROW_CN=16
CONFIG_FD_MAP_ROW_NR=16
# end of Libc backend
#
# Sys util config
#
CONFIG_USING_SIG=y
CONFIG_SIG_THREAD_STACK_SIZE=512
CONFIG_SIG_THREAD_PRIO=3
# end of Sys util config
#
# DFS: device virtual file system
#
CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_POSIX=y
CONFIG_DFS_USING_WORKDIR=y
# CONFIG_RT_USING_DFS_MNTTABLE is not set
CONFIG_DFS_FD_MAX=16
CONFIG_RT_USING_DFS_V1=y
# CONFIG_RT_USING_DFS_V2 is not set
CONFIG_DFS_FILESYSTEMS_MAX=4
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
# CONFIG_RT_USING_DFS_ELMFAT is not set
CONFIG_RT_USING_DFS_DEVFS=y
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_CROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_TMPFS is not set
# CONFIG_RT_USING_DFS_MQUEUE is not set
# end of DFS: device virtual file system
#
# Device Drivers
#
# CONFIG_RT_USING_DM is not set
CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_UNAMED_PIPE_NUMBER=64
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_SERIAL_V1=y
# CONFIG_RT_USING_SERIAL_V2 is not set
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
# CONFIG_RT_USING_NULL is not set
# CONFIG_RT_USING_ZERO is not set
# CONFIG_RT_USING_RANDOM is not set
# CONFIG_RT_USING_PWM is not set
# 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_SDIO is not set
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_AUDIO is not set
# CONFIG_RT_USING_SENSOR is not set
# CONFIG_RT_USING_TOUCH is not set
# CONFIG_RT_USING_LCD is not set
# CONFIG_RT_USING_HWCRYPTO is not set
# CONFIG_RT_USING_PULSE_ENCODER is not set
# CONFIG_RT_USING_INPUT_CAPTURE is not set
# CONFIG_RT_USING_DEV_BUS is not set
# CONFIG_RT_USING_WIFI is not set
# CONFIG_RT_USING_VIRTIO is not set
#
# Using USB
#
# CONFIG_RT_USING_USB_HOST is not set
# CONFIG_RT_USING_USB_DEVICE is not set
# end of Using USB
# end of Device Drivers
CONFIG_CPU_TYPE="stm32f1"
CONFIG_RTT_DIR="./"
CONFIG_ARCH="cortex-m3"

View File

@@ -15,7 +15,7 @@ include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc)
file(GLOB deps *.c)
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
if (${CONFIG_CPU_TYPE} STREQUAL "stm32f1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
file(GLOB
@@ -26,14 +26,14 @@ if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
)
list(APPEND deps ${bsp_src})
include_directories(
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F1x
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F1
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/inc
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/Include
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
)
add_subdirectory(bsp/STM32F1x)
add_subdirectory(bsp/STM32F1)
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/src/*.c)

View File

@@ -5,15 +5,16 @@ file(GLOB deps *.c *.S)
add_library(arch STATIC ${deps})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__MPU_PRESENT=1 -DUSE_STDPERIPH_DRIVER=1 ")
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
if (${CONFIG_CPU_TYPE} STREQUAL "stm32f1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
target_include_directories(
arch
PUBLIC
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1x
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/inc
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
)
add_subdirectory(stm32f1x)
add_subdirectory(stm32f1)
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
target_include_directories(
arch

View File

@@ -2,7 +2,10 @@ cmake_minimum_required(VERSION 3.13)
file(GLOB_RECURSE deps **/*.S *.S **/*.C *.c)
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/src/*.c)
file(GLOB bsp_src
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/src/*.c
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
)
list(APPEND deps ${bsp_src})
add_library(knl_bsp STATIC ${deps})
target_include_directories(
@@ -12,6 +15,7 @@ target_include_directories(
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/Include
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/lib
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1x
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1
)

View File

@@ -3,16 +3,16 @@ cmake_minimum_required(VERSION 3.13)
file(GLOB deps *.c *.S)
add_library(drv STATIC ${deps})
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
if (${CONFIG_CPU_TYPE} STREQUAL "stm32f1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
include_directories(
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1x
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/inc
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/Include
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
)
add_subdirectory(stm32f1x)
add_subdirectory(stm32f1)
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
include_directories(
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2

View File

@@ -4,13 +4,7 @@
# export TOOLCHAIN_LIB=/home/ATShining/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7-m
export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
export KEN_OFFSET=0x2000
export INIT_OFFSET=0x10000
export BOOTFS_ADDR_OFFSET=0x22000
export KNL_DATA=0x20000000
export CPU_TYPE=STM32
export BOARD=STM32F1x
export ARCH=cortex-m3
export BOARD=STM32F103ZET6
set -e
cmake -G Ninja -B build/$KNL .