From 501afa02d77969a0935fadc9063dbd5ea59571e0 Mon Sep 17 00:00:00 2001 From: YJIE_1998 <1039241323@qq.com> Date: Fri, 30 Jul 2021 11:40:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=B7=BB=E5=8A=A0=E3=80=91stm32f302-s?= =?UTF-8?q?t-nucleo=20bsp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/stm32f302-st-nucleo/.config | 584 ++++ bsp/stm32/stm32f302-st-nucleo/.cproject | 200 ++ bsp/stm32/stm32f302-st-nucleo/.gitignore | 42 + bsp/stm32/stm32f302-st-nucleo/.project | 28 + bsp/stm32/stm32f302-st-nucleo/Kconfig | 21 + bsp/stm32/stm32f302-st-nucleo/README.md | 124 + bsp/stm32/stm32f302-st-nucleo/SConscript | 15 + bsp/stm32/stm32f302-st-nucleo/SConstruct | 60 + .../applications/SConscript | 12 + .../stm32f302-st-nucleo/applications/main.c | 32 + .../board/CubeMX_Config/.mxproject | 29 + .../board/CubeMX_Config/Inc/main.h | 71 + .../CubeMX_Config/Inc/stm32f3xx_hal_conf.h | 360 +++ .../board/CubeMX_Config/Inc/stm32f3xx_it.h | 69 + .../board/CubeMX_Config/STM32F302R8T6.ioc | 127 + .../board/CubeMX_Config/Src/main.c | 237 ++ .../CubeMX_Config/Src/stm32f3xx_hal_msp.c | 309 ++ .../board/CubeMX_Config/Src/stm32f3xx_it.c | 205 ++ .../CubeMX_Config/Src/system_stm32f3xx.c | 291 ++ bsp/stm32/stm32f302-st-nucleo/board/Kconfig | 37 + .../stm32f302-st-nucleo/board/SConscript | 31 + bsp/stm32/stm32f302-st-nucleo/board/board.c | 52 + bsp/stm32/stm32f302-st-nucleo/board/board.h | 50 + .../board/linker_scripts/link.icf | 28 + .../board/linker_scripts/link.lds | 157 + .../board/linker_scripts/link.sct | 15 + .../stm32f302-st-nucleo/figures/board.png | Bin 0 -> 291907 bytes .../stm32f302-st-nucleo/makefile.targets | 6 + bsp/stm32/stm32f302-st-nucleo/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f302-st-nucleo/project.ewp | 2260 +++++++++++++ bsp/stm32/stm32f302-st-nucleo/project.eww | 10 + bsp/stm32/stm32f302-st-nucleo/project.uvoptx | 980 ++++++ bsp/stm32/stm32f302-st-nucleo/rtconfig.h | 190 ++ bsp/stm32/stm32f302-st-nucleo/rtconfig.py | 150 + bsp/stm32/stm32f302-st-nucleo/template.ewp | 2031 ++++++++++++ bsp/stm32/stm32f302-st-nucleo/template.eww | 10 + bsp/stm32/stm32f302-st-nucleo/template.uvoptx | 197 ++ .../stm32f302-st-nucleo/template.uvprojx | 396 +++ 38 files changed, 12250 insertions(+) create mode 100644 bsp/stm32/stm32f302-st-nucleo/.config create mode 100644 bsp/stm32/stm32f302-st-nucleo/.cproject create mode 100644 bsp/stm32/stm32f302-st-nucleo/.gitignore create mode 100644 bsp/stm32/stm32f302-st-nucleo/.project create mode 100644 bsp/stm32/stm32f302-st-nucleo/Kconfig create mode 100644 bsp/stm32/stm32f302-st-nucleo/README.md create mode 100644 bsp/stm32/stm32f302-st-nucleo/SConscript create mode 100644 bsp/stm32/stm32f302-st-nucleo/SConstruct create mode 100644 bsp/stm32/stm32f302-st-nucleo/applications/SConscript create mode 100644 bsp/stm32/stm32f302-st-nucleo/applications/main.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_hal_conf.h create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_it.h create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/STM32F302R8T6.ioc create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_hal_msp.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_it.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/system_stm32f3xx.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/Kconfig create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/SConscript create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/board.c create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/board.h create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f302-st-nucleo/figures/board.png create mode 100644 bsp/stm32/stm32f302-st-nucleo/makefile.targets create mode 100644 bsp/stm32/stm32f302-st-nucleo/project.ewd create mode 100644 bsp/stm32/stm32f302-st-nucleo/project.ewp create mode 100644 bsp/stm32/stm32f302-st-nucleo/project.eww create mode 100644 bsp/stm32/stm32f302-st-nucleo/project.uvoptx create mode 100644 bsp/stm32/stm32f302-st-nucleo/rtconfig.h create mode 100644 bsp/stm32/stm32f302-st-nucleo/rtconfig.py create mode 100644 bsp/stm32/stm32f302-st-nucleo/template.ewp create mode 100644 bsp/stm32/stm32f302-st-nucleo/template.eww create mode 100644 bsp/stm32/stm32f302-st-nucleo/template.uvoptx create mode 100644 bsp/stm32/stm32f302-st-nucleo/template.uvprojx diff --git a/bsp/stm32/stm32f302-st-nucleo/.config b/bsp/stm32/stm32f302-st-nucleo/.config new file mode 100644 index 0000000000..6c1eb1d3b5 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/.config @@ -0,0 +1,584 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set + +# +# kservice optimization +# +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart2" +# CONFIG_RT_PRINTF_LONGLONG is not set +CONFIG_RT_VER_NUM=0x40004 +CONFIG_ARCH_ARM=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# 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=y +# 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_PWM=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_SDIO is not set +CONFIG_RT_USING_SPI=y +# CONFIG_RT_USING_QSPI is not set +# CONFIG_RT_USING_SPI_MSD is not set +# CONFIG_RT_USING_SFUD is not set +# CONFIG_RT_USING_ENC28J60 is not set +# CONFIG_RT_USING_SPI_WIFI 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_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_LIBC_USING_TIME=y +CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_RT_LINK is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set + +# +# system packages +# + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_COWSAY is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F3=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F302R8=y + +# +# Onboard Peripheral Drivers +# + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART2=y + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f302-st-nucleo/.cproject b/bsp/stm32/stm32f302-st-nucleo/.cproject new file mode 100644 index 0000000000..8dd4d80fa2 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/.cproject @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/.gitignore b/bsp/stm32/stm32f302-st-nucleo/.gitignore new file mode 100644 index 0000000000..7221bde019 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/.gitignore @@ -0,0 +1,42 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h diff --git a/bsp/stm32/stm32f302-st-nucleo/.project b/bsp/stm32/stm32f302-st-nucleo/.project new file mode 100644 index 0000000000..3fb729f636 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/.project @@ -0,0 +1,28 @@ + + + __project_name_flag__ + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.rt-thread.studio.rttnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/Kconfig b/bsp/stm32/stm32f302-st-nucleo/Kconfig new file mode 100644 index 0000000000..8cbc7b71a8 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../libraries/Kconfig" +source "board/Kconfig" diff --git a/bsp/stm32/stm32f302-st-nucleo/README.md b/bsp/stm32/stm32f302-st-nucleo/README.md new file mode 100644 index 0000000000..aa57cc6c01 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/README.md @@ -0,0 +1,124 @@ +# BSP README 模板 + +## 简介 + +本文档为 xxx 开发板的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +【此处简单介绍一下开发板】 + +开发板外观如下图所示: + +![board](figures/board.png) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32xxx,主频 xxxMHz,xxxKB FLASH ,xxxKB RAM +- 外部 RAM:型号,xMB +- 外部 FLASH:型号,xMB +- 常用外设 + - LED:x个,LD2(绿色,PB13) + - 按键:x个,B1,B2 +- 常用接口:USB 转串口、SD 卡接口、以太网接口、LCD 接口等 +- 调试接口,标准 JTAG/SWD + +开发板更多详细信息请参考【厂商名】 [xxx开发板介绍](https://xxx)。 + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **板载外设** | **支持情况** | **备注** | +| :----------------- | :----------: | :------------------------------------- | +| USB 转串口 | 暂不支持 | | +| SPI Flash | 暂不支持 | | +| 以太网 | 暂不支持 | | +| SD卡 | 暂不支持 | | +| CAN | 暂不支持 | | +| **片上外设** | **支持情况** | **备注** | +| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...176 | +| UART | 支持 | UART1/x/x | +| SPI | 暂不支持 | 即将支持 | +| I2C | 暂不支持 | 即将支持 | +| SDIO | 暂不支持 | 即将支持 | +| RTC | 暂不支持 | 即将支持 | +| PWM | 暂不支持 | 即将支持 | +| USB Device | 暂不支持 | 即将支持 | +| USB Host | 暂不支持 | 即将支持 | +| IWG | 暂不支持 | 即将支持 | +| xxx | 暂不支持 | 即将支持 | +| **扩展模块** | **支持情况** | **备注** | +| xxx 模块 | 支持 | | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + + +### 快速上手 + +本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用数据线连接开发板到 PC,打开电源开关。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 xxx 仿真器下载程序,在通过 xxx 连接开发板的基础上,点击下载按钮即可下载程序到开发板 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,【这里写开发板运行起来之后的现象,如:LED 闪烁等】。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.4 build Jul 28 2021 + 2006 - 2021 Copyright by rt-thread team +msh > +``` +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口2 的功能,若需要利用 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 diff --git a/bsp/stm32/stm32f302-st-nucleo/SConscript b/bsp/stm32/stm32f302-st-nucleo/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f302-st-nucleo/SConstruct b/bsp/stm32/stm32f302-st-nucleo/SConstruct new file mode 100644 index 0000000000..c213e833ee --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/SConstruct @@ -0,0 +1,60 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32F3xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f302-st-nucleo/applications/SConscript b/bsp/stm32/stm32f302-st-nucleo/applications/SConscript new file mode 100644 index 0000000000..6f66f7ab73 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/applications/SConscript @@ -0,0 +1,12 @@ +import rtconfig +from building import * + +cwd = GetCurrentDir() +CPPPATH = [cwd, str(Dir('#'))] +src = Split(""" +main.c +""") + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32f302-st-nucleo/applications/main.c b/bsp/stm32/stm32f302-st-nucleo/applications/main.c new file mode 100644 index 0000000000..f9b60daaad --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/applications/main.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include +#include +#include + +int main(void) +{ + /* LED pin: PB13 */ + rt_uint16_t led = rt_pin_get("PB.13"); + + /* set LED pin mode to output */ + rt_pin_mode(led, PIN_MODE_OUTPUT); + + while (1) + { + rt_pin_write(led, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(led, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..477bb9b72c --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/.mxproject @@ -0,0 +1,29 @@ +[PreviousLibFiles] +LibFiles=Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c;Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h;Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h;Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h;Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h;Drivers/CMSIS/Device/ST/STM32F3xx/Source/Templates/system_stm32f3xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; + +[PreviousUsedIarFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../\Src/system_stm32f4xx.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../\Src/system_stm32f4xx.c;../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; + +[PreviousUsedKeilFiles] +SourceFiles=..\Core\Src\main.c;..\Core\Src\stm32f3xx_it.c;..\Core\Src\stm32f3xx_hal_msp.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c;..\Core\Src/system_stm32f3xx.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c;..\Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c;..\Core\Src/system_stm32f3xx.c;..\Drivers/CMSIS/Device/ST/STM32F3xx/Source/Templates/system_stm32f3xx.c;; +HeaderPath=..\Drivers\STM32F3xx_HAL_Driver\Inc;..\Drivers\STM32F3xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F3xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; +CDefines=USE_HAL_DRIVER;STM32F302x8;USE_HAL_DRIVER;USE_HAL_DRIVER; + +[PreviousGenFiles] +AdvancedFolderStructure=true +HeaderFileListSize=3 +HeaderFiles#0=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Inc/stm32f3xx_it.h +HeaderFiles#1=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Inc/stm32f3xx_hal_conf.h +HeaderFiles#2=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Inc/main.h +HeaderFolderListSize=1 +HeaderPath#0=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Inc +HeaderFiles=; +SourceFileListSize=3 +SourceFiles#0=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Src/stm32f3xx_it.c +SourceFiles#1=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Src/stm32f3xx_hal_msp.c +SourceFiles#2=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Src/main.c +SourceFolderListSize=1 +SourcePath#0=C:/Users/RTT/Documents/rtt_dev/rtt_github/rt-thread/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Core/Src +SourceFiles=; + diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..52ad5e265d --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,71 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f3xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_hal_conf.h b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_hal_conf.h new file mode 100644 index 0000000000..ea203afd8f --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_hal_conf.h @@ -0,0 +1,360 @@ +/** + ****************************************************************************** + * @file stm32f3xx_hal_conf.h + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F3xx_HAL_CONF_H +#define __STM32F3xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ + +#define HAL_MODULE_ENABLED + /*#define HAL_ADC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_CAN_MODULE_ENABLED */ +/*#define HAL_CEC_MODULE_ENABLED */ +/*#define HAL_NAND_MODULE_ENABLED */ +/*#define HAL_NOR_MODULE_ENABLED */ +/*#define HAL_PCCARD_MODULE_ENABLED */ +/*#define HAL_SRAM_MODULE_ENABLED */ +/*#define HAL_HRTIM_MODULE_ENABLED */ +/*#define HAL_OPAMP_MODULE_ENABLED */ +/*#define HAL_SDADC_MODULE_ENABLED */ +/*#define HAL_TSC_MODULE_ENABLED */ +/*#define HAL_COMP_MODULE_ENABLED */ +/*#define HAL_CRC_MODULE_ENABLED */ +/*#define HAL_CRYP_MODULE_ENABLED */ +/*#define HAL_DAC_MODULE_ENABLED */ +/*#define HAL_I2S_MODULE_ENABLED */ +/*#define HAL_IWDG_MODULE_ENABLED */ +/*#define HAL_LCD_MODULE_ENABLED */ +/*#define HAL_LPTIM_MODULE_ENABLED */ +/*#define HAL_RNG_MODULE_ENABLED */ +/*#define HAL_RTC_MODULE_ENABLED */ +/*#define HAL_SPI_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED +/*#define HAL_USART_MODULE_ENABLED */ +/*#define HAL_IRDA_MODULE_ENABLED */ +/*#define HAL_SMARTCARD_MODULE_ENABLED */ +/*#define HAL_SMBUS_MODULE_ENABLED */ +/*#define HAL_WWDG_MODULE_ENABLED */ +/*#define HAL_PCD_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +/* #define HAL_CAN_LEGACY_MODULE_ENABLED */ +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED +#define HAL_I2C_MODULE_ENABLED +/* ########################## HSE/HSI Values adaptation ##################### */ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +/** + * @brief In the following line adjust the External High Speed oscillator (HSE) Startup + * Timeout value + */ +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief In the following line adjust the Internal High Speed oscillator (HSI) Startup + * Timeout value + */ +#if !defined (HSI_STARTUP_TIMEOUT) + #define HSI_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for HSI start up */ +#endif /* HSI_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)40000) +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +/** + * @brief Time out for LSE start up value in ms. + */ +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + * - External clock generated through external PLL component on EVAL 303 (based on MCO or crystal) + * - External clock not generated on EVAL 373 + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ + +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 1 +#define INSTRUCTION_CACHE_ENABLE 0 +#define DATA_CACHE_ENABLE 0 +#define USE_SPI_CRC 0U + +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */ +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */ +#define USE_HAL_COMP_REGISTER_CALLBACKS 0U /* COMP register callback disabled */ +#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */ +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */ +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */ +#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */ +#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */ +#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */ +#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */ +#define USE_HAL_HRTIM_REGISTER_CALLBACKS 0U /* HRTIM register callback disabled */ +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ +#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */ +#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */ +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */ +#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U /* OPAMP register callback disabled */ +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */ +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */ +#define USE_HAL_TSC_REGISTER_CALLBACKS 0U /* TSC register callback disabled */ +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */ + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f3xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f3xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f3xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f3xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f3xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f3xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f3xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "stm32f3xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f3xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED + #include "stm32f3xx_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f3xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f3xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f3xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f3xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f3xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f3xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f3xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_HRTIM_MODULE_ENABLED + #include "stm32f3xx_hal_hrtim.h" +#endif /* HAL_HRTIM_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f3xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f3xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f3xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f3xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_OPAMP_MODULE_ENABLED + #include "stm32f3xx_hal_opamp.h" +#endif /* HAL_OPAMP_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f3xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f3xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f3xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SDADC_MODULE_ENABLED + #include "stm32f3xx_hal_sdadc.h" +#endif /* HAL_SDADC_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f3xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED + #include "stm32f3xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f3xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f3xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_TSC_MODULE_ENABLED + #include "stm32f3xx_hal_tsc.h" +#endif /* HAL_TSC_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f3xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f3xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f3xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_HAL_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_it.h b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_it.h new file mode 100644 index 0000000000..cd74c72663 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Inc/stm32f3xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F3xx_IT_H +#define __STM32F3xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F3xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/STM32F302R8T6.ioc b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/STM32F302R8T6.ioc new file mode 100644 index 0000000000..73142efc6e --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/STM32F302R8T6.ioc @@ -0,0 +1,127 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +GPIO.groupedBy=Group By Peripherals +KeepUserPlacement=false +Mcu.Family=STM32F3 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=SYS +Mcu.IP3=USART2 +Mcu.IPNb=4 +Mcu.Name=STM32F302R(6-8)Tx +Mcu.Package=LQFP64 +Mcu.Pin0=PC14 - OSC32_IN +Mcu.Pin1=PC15 - OSC32_OUT +Mcu.Pin2=PF0-OSC_IN +Mcu.Pin3=PF1-OSC_OUT +Mcu.Pin4=PA2 +Mcu.Pin5=PA3 +Mcu.Pin6=PA13 +Mcu.Pin7=PA14 +Mcu.Pin8=VP_SYS_VS_Systick +Mcu.PinsNb=9 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F302R8Tx +MxCube.Version=6.2.0 +MxDb.Version=DB.6.0.20 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA2.Mode=Asynchronous +PA2.Signal=USART2_TX +PA3.Mode=Asynchronous +PA3.Signal=USART2_RX +PC14\ -\ OSC32_IN.Mode=LSE-External-Oscillator +PC14\ -\ OSC32_IN.Signal=RCC_OSC32_IN +PC15\ -\ OSC32_OUT.Mode=LSE-External-Oscillator +PC15\ -\ OSC32_OUT.Signal=RCC_OSC32_OUT +PF0-OSC_IN.Mode=HSE-External-Oscillator +PF0-OSC_IN.Signal=RCC_OSC_IN +PF1-OSC_OUT.Mode=HSE-External-Oscillator +PF1-OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F302R8Tx +ProjectManager.FirmwarePackage=STM32Cube FW_F3 V1.11.2 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32F302R8T6.ioc +ProjectManager.ProjectName=STM32F302R8T6 +ProjectManager.RegisterCallBack= +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_TIM1_Init-TIM1-false-HAL-true +RCC.ADC12outputFreq_Value=72000000 +RCC.AHBFreq_Value=72000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=36000000 +RCC.APB1TimFreq_Value=72000000 +RCC.APB2Freq_Value=72000000 +RCC.APB2TimFreq_Value=72000000 +RCC.CortexFreq_Value=72000000 +RCC.FCLKCortexFreq_Value=72000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=72000000 +RCC.HSEPLLFreq_Value=8000000 +RCC.HSE_VALUE=8000000 +RCC.HSIPLLFreq_Value=4000000 +RCC.HSI_VALUE=8000000 +RCC.I2C1Freq_Value=8000000 +RCC.I2C2Freq_Value=8000000 +RCC.I2C3Freq_Value=8000000 +RCC.I2SClocksFreq_Value=72000000 +RCC.IPParameters=ADC12outputFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSEPLLFreq_Value,HSE_VALUE,HSIPLLFreq_Value,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SClocksFreq_Value,LSI_VALUE,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSourceVirtual,TIM15Freq_Value,TIM16Freq_Value,TIM17Freq_Value,TIM1Freq_Value,TIM2Freq_Value,USART1Freq_Value,USBFreq_Value,VCOOutput2Freq_Value +RCC.LSI_VALUE=40000 +RCC.MCOFreq_Value=72000000 +RCC.PLLCLKFreq_Value=72000000 +RCC.PLLMCOFreq_Value=72000000 +RCC.PLLMUL=RCC_PLL_MUL9 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.RTCFreq_Value=40000 +RCC.RTCHSEDivFreq_Value=250000 +RCC.SYSCLKFreq_VALUE=72000000 +RCC.SYSCLKSourceVirtual=RCC_SYSCLKSOURCE_PLLCLK +RCC.TIM15Freq_Value=72000000 +RCC.TIM16Freq_Value=72000000 +RCC.TIM17Freq_Value=72000000 +RCC.TIM1Freq_Value=72000000 +RCC.TIM2Freq_Value=72000000 +RCC.USART1Freq_Value=36000000 +RCC.USBFreq_Value=72000000 +RCC.VCOOutput2Freq_Value=8000000 +USART2.BaudRate=115200 +USART2.IPParameters=VirtualMode-Asynchronous,BaudRate +USART2.VirtualMode-Asynchronous=VM_ASYNC +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +board=custom diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..d18cee929f --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/main.c @@ -0,0 +1,237 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +UART_HandleTypeDef huart1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART1_UART_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_USART1_UART_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief USART1 Initialization Function + * @param None + * @retval None + */ +static void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOF_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_hal_msp.c b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_hal_msp.c new file mode 100644 index 0000000000..2452d56808 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_hal_msp.c @@ -0,0 +1,309 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspInit 0 */ + + /* USER CODE END TIM1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM1_CLK_ENABLE(); + /* USER CODE BEGIN TIM1_MspInit 1 */ + + /* USER CODE END TIM1_MspInit 1 */ + } +} + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspPostInit 0 */ + + /* USER CODE END TIM1_MspPostInit 0 */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**TIM1 GPIO Configuration + PC0 ------> TIM1_CH1 + PB13 ------> TIM1_CH1N + */ + GPIO_InitStruct.Pin = GPIO_PIN_0; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF2_TIM1; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_13; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF6_TIM1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM1_MspPostInit 1 */ + + /* USER CODE END TIM1_MspPostInit 1 */ + } + +} +/** +* @brief TIM_Base MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspDeInit 0 */ + + /* USER CODE END TIM1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM1_CLK_DISABLE(); + /* USER CODE BEGIN TIM1_MspDeInit 1 */ + + /* USER CODE END TIM1_MspDeInit 1 */ + } + +} + +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + /**USART1 GPIO Configuration + PC4 ------> USART1_TX + PC5 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspInit 0 */ + + /* USER CODE END USART2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART2_MspInit 1 */ + + /* USER CODE END USART2_MspInit 1 */ + } + + if(huart->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspInit 0 */ + + /* USER CODE END USART3_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART3_CLK_ENABLE(); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**USART3 GPIO Configuration + PB10 ------> USART2_TX + PB11 ------> USART2_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART3; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN USART3_MspInit 1 */ + + /* USER CODE END USART3_MspInit 1 */ + } +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ + +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PC4 ------> USART1_TX + PC5 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + if(huart->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspDeInit 0 */ + + /* USER CODE END USART2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART2_CLK_DISABLE(); + + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); + + /* USER CODE BEGIN USART2_MspDeInit 1 */ + + /* USER CODE END USART2_MspDeInit 1 */ + } + if(huart->Instance==USART3) + { + /* USER CODE BEGIN USART3_MspDeInit 0 */ + + /* USER CODE END USART3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART3_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PB10 ------> USART3_TX + PB11 ------> USART3_RX + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11); + + /* USER CODE BEGIN USART3_MspDeInit 1 */ + + /* USER CODE END USART3_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_it.c b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_it.c new file mode 100644 index 0000000000..7737ca8d27 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/stm32f3xx_it.c @@ -0,0 +1,205 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f3xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f3xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ + +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + while (1) + { + } + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F3xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f3xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/system_stm32f3xx.c b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/system_stm32f3xx.c new file mode 100644 index 0000000000..12c7d7190a --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/CubeMX_Config/Src/system_stm32f3xx.c @@ -0,0 +1,291 @@ +/** + ****************************************************************************** + * @file system_stm32f3xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f3xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f3xx.s" file, to + * configure the system clock before to branch to main program. + * + * 3. This file configures the system clock as follows: + *============================================================================= + * Supported STM32F3xx device + *----------------------------------------------------------------------------- + * System Clock source | HSI + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 8000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 8000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * USB Clock | DISABLE + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f3xx_system + * @{ + */ + +/** @addtogroup STM32F3xx_System_Private_Includes + * @{ + */ + +#include "stm32f3xx.h" + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Defines + * @{ + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)8000000) /*!< Default value of the Internal oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSI_VALUE */ + +/* Note: Following vector table addresses must be defined in line with linker + configuration. */ +/*!< Uncomment the following line if you need to relocate the vector table + anywhere in Flash or Sram, else the vector table is kept at the automatic + remap of boot address selected */ +/* #define USER_VECT_TAB_ADDRESS */ + +#if defined(USER_VECT_TAB_ADDRESS) +/*!< Uncomment the following line if you need to relocate your vector Table + in Sram else user remap will be done in Flash. */ +/* #define VECT_TAB_SRAM */ +#if defined(VECT_TAB_SRAM) +#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#else +#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. + This value must be a multiple of 0x200. */ +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ + +/******************************************************************************/ +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock there is no need to + call the 2 first functions listed above, since SystemCoreClock variable is + updated automatically. + */ +uint32_t SystemCoreClock = 8000000; + +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F3xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * @param None + * @retval None + */ +void SystemInit(void) +{ +/* FPU settings --------------------------------------------------------------*/ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ +#endif + + /* Configure the Vector Table location -------------------------------------*/ +#if defined(USER_VECT_TAB_ADDRESS) + SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#endif /* USER_VECT_TAB_ADDRESS */ +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f3xx_hal.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f3xx_hal.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0, predivfactor = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case RCC_CFGR_SWS_HSI: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case RCC_CFGR_SWS_HSE: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case RCC_CFGR_SWS_PLL: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMUL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + pllmull = ( pllmull >> 18) + 2; + +#if defined (STM32F302xE) || defined (STM32F303xE) || defined (STM32F398xx) + predivfactor = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1; + if (pllsource == RCC_CFGR_PLLSRC_HSE_PREDIV) + { + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / predivfactor) * pllmull; + } + else + { + /* HSI oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSI_VALUE / predivfactor) * pllmull; + } +#else + if (pllsource == RCC_CFGR_PLLSRC_HSI_DIV2) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + predivfactor = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / predivfactor) * pllmull; + } +#endif /* STM32F302xE || STM32F303xE || STM32F398xx */ + break; + default: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/bsp/stm32/stm32f302-st-nucleo/board/Kconfig b/bsp/stm32/stm32f302-st-nucleo/board/Kconfig new file mode 100644 index 0000000000..7877fe81df --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/Kconfig @@ -0,0 +1,37 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F302R8 + bool + select SOC_SERIES_STM32F3 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +menu "Onboard Peripheral Drivers" + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_USING_UART2 + bool "Enable UART2" + default y + endif + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f302-st-nucleo/board/SConscript b/bsp/stm32/stm32f302-st-nucleo/board/SConscript new file mode 100644 index 0000000000..5ceee7422e --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/SConscript @@ -0,0 +1,31 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f3xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32F3xx_HAL/CMSIS/Device/ST/STM32F3xx/Source/Templates/gcc/startup_stm32f302x8.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32F3xx_HAL/CMSIS/Device/ST/STM32F3xx/Source/Templates/arm/startup_stm32f302x8.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32F3xx_HAL/CMSIS/Device/ST/STM32F3xx/Source/Templates/iar/startup_stm32f302x8.s'] + + +CPPDEFINES = ['STM32F302xx'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') diff --git a/bsp/stm32/stm32f302-st-nucleo/board/board.c b/bsp/stm32/stm32f302-st-nucleo/board/board.c new file mode 100644 index 0000000000..c05238234b --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/board.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1; + PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f302-st-nucleo/board/board.h b/bsp/stm32/stm32f302-st-nucleo/board/board.h new file mode 100644 index 0000000000..ac80ac3e1c --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 SummerGift first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (64 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#define STM32_SRAM_SIZE 16 +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN (&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.icf b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.icf new file mode 100644 index 0000000000..4627620efd --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.icf @@ -0,0 +1,28 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08010000; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20004000; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x0000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, last block CSTACK}; diff --git a/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.lds b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.lds new file mode 100644 index 0000000000..34b899bda1 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.lds @@ -0,0 +1,157 @@ +/* + * linker script for STM32F4xx with GNU ld + * bernard.xiong 2009-10-14 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 64k /* 64KB flash */ + RAM (rw) : ORIGIN = 0x20000000, LENGTH = 16k /* 16K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + + PROVIDE(__ctors_start__ = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE(__ctors_end__ = .); + + . = ALIGN(4); + + _etext = .; + } > ROM = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > ROM + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.sct b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.sct new file mode 100644 index 0000000000..905bb70423 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00010000 { ; load region size_region + ER_IROM1 0x08000000 0x00010000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00004000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f302-st-nucleo/figures/board.png b/bsp/stm32/stm32f302-st-nucleo/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ee89422d08203acaf586dca5ed2324938aaf7e GIT binary patch literal 291907 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

%FE!5U^QY+rMyLXm>k*nfXM7^n0xdQwVvF)m8 zx>`XwGCD5mHW?Fhea@UcD!|&n+wZ)_%{Qyzo&Q*@bE3bFC<@Eg&h{tfTcqQjcw4>susdc5*XEkj%g-`PWZ5H z3CE7^#Mj%E#DpxuB1`d)X=C%z7>*d`lUz1{Z+tr|cY5O#Sc$hd z5fev$Y+ORboy3t_+(hi9>*YX$L*wxDj*{)EB`LL>bGla2%(NU(p)n=IXY|N-Dr*c{MX@LF`L1NDL=+|0PqXS|9*=z*&F>ae z^1xRG-2Fv3&wc054%1>{OUG#z_YjmZ%IdQ@{Po*t9{cH@zb*8$veUQ}AE(XUsVJ|ZuC|4ShE|$7nrQFsqO)g+{{9ih zMpO;fF52qqC`ivE%s(6t7dKp;9C3Aa#>LSICs8U6qB3km9}8$WmX_z5#}& z`l6r=1p0=|oBNe0z1z9@XSZ zFB%7r9O>W<6jzN>+cAy3Z?P!x0&KkUaq!9#*O4qitB%@AfnQ}Ejk2Bf^>U%-)esn4 zg5RYo0+YlE^i0#IYR1Y1JKCelzg?xH^D4p7br{=aVCq!Fo-;87Bo3hGl+OjZ$d4LC zuw}o61RQ(xW&7=HO|Z8yLHF!Axv=%wdB6c(%Uq0X3W!YUW$Ph(-uP%IpD#Sj&O;93 z5=?mW-R*q*#U?(Q_dOqdzJiZGUB<^BE#u`EKI7@Xyv(*u+i|vc6zErLeSUWKI`n7% z8T94#kI+{IC$5MUPz$W;>-%YL9+UHRO#+^PU(~3|U*9kLsA|`$g5@J>CFRs*E+r&# zL0^ZHr;f03)Azja;&a*<{{J-e|6^E4o!=X77!iWmMeC}=czn3_aX~- z=HU_FLvi0VlA9+v=Fz~b-zA7E@MFz^ENVrtsUfnNYg0^L8xiQM{9sD)s17gP`zQYR z_k{kHDT<2o$j!^4t*uQf5Yf{;M2{+1Jle;=_^_6qS1WNgJWP8>8&y@cq$TAL$74UCV!vF&P`yPA{H}5bKGg_!@ysRw;FOg^0&~j}3hl6ZU~E zxJ5PN9NI}u&n#g{gX}ma4xyw6iQ$Mop}XfQ{R47L#vreD8UtqmXYwF+VeRD=BZdLTu^~Cog1k-lPimz#dYHrZ95OI5L?a;~6@-VYH0L$=29y&STaSN4xj2g|;^bOL$Za7! zxs?D>>AJ2>e6%)-&$dKk?A4BEOba%Ct?W3J!-DnxtUnr$ZBP>)QF8ozJFs%^z|=v4 znH(42;2O$m2dU`2%G;YFd0>7f_s$cAzpzZeU&O7-*+v6|$HZ6VqvZnFJq^GOce#i9h}=p?~G-G*#7Q(keBmt3t&i!&3|n zPtZ9sK=1IV)@esoMJADnHSO(WmsM*wCw<+5@pbgV%h64M?}4q8JJ$9tqL3W0u(rb7 z!W=VG0l%>+7ABTjl_?VgGt7)kS@g}<+;+>&0{1!E4ci~nFkHXMca!|?m)t5%l@h$` z-UsmV3)g^K(>z5@#}!fQ*Qn~8#ydt7QE)!T&RcW#!fBkHbny2&g^$aA0^AN_Wv~r* zTPxYV5ZwGz(X)-BvQ6FKRH+9>80a1oxJ=VOe1%@Q2orL;IDEzr2iF2EmwIFO4At#} z6xH<8&@oDzsOPrMaaubDX_n8o$m{IFK~mECsjeO-JFl1E$U<~YTsV8)2_rLC&gogQ zc*$|*ezunlo6a)-+m*cW&d0p=^5?wy$~XM=iFbMN@9(m6(>~lB+-a(5)jIr-&{r3N zb`4x-{Pp%9(7z@>zounE?C+bUs$z(&%r0?TDMUxta51io5`j}=lLUnN2?>goP98pjrLh@N zArW{udulUv(lc`zR0Uy1XQU5KG9ba;%|AyVK1J^g)XVuPZM((=+h%mE+9;KM?CPK8 z@+4Z>#xa#+XaY)_CNOfTBdL4}+mK$I!WuDjD#R&t*?KyNEa`i}nVp#VcVHK+3a!^_^V0`JAvX`G0yaZjo|t8o)eOUOe*30p1^(BAfSNTnD9_z0b7iMIcg;{y z+)HI)pE%bM8sz-d%RaVu%jYGqwfE1^Dy>}vjIMJdyG?3XaUzuywxwj%LwxZB=j^I+ zj_l^7bqVfq9aKvobPQ_e$b~d?&2#Y#siQ+g&$y_H)T%22YhUhLSjfE#N_gnYLVhdY z|INY@9{f6+KP*h-uWL%V@0&s%S(L{62kZFbqAVVqm&T(@O1S5neD3>Jxq}KGnODN& z-&XUOsQx>@%;ICn_V;3<%g=|A^?IZ?P$%MsJFet%%;>wIbU&M`cZt2edr=S1C zAOD`v7o}fWRZ2}w6)Jazg8tB;*w%qDdPc_uhEojnPBSD{R@GoFtZ5)7Jr|FFNSy3F zaTiE=II2ZhUIKm3>(IA#6zE%vx;Mwv)C?1WyosS1riSv`z+3`=IV+Yg<&Iz7&Mk8B zD^-8{&8i@}QhutItg0LP3sHm8Zn%y6fAbhlp1}k~X0ZRH1^RZu7&*ma<(Y+{T{35l zgZO6IIyP=ujHTr+LIY0{>U)SVpMyA>ZNcBkg7Dx3LZb`NvyLRUYE(M9s@plm$lxf0 zgEO?r>*m2(x+bqu+c`yfwY=`W#>I?QbS;8#@lD0rF^ru2dI}1w#Tk{5TTn?sX)_*v zDd_2ka^ZY9jxN~({X7iK9oW17EEi;d4;(wi_iIkDYSjsrF4@ZGU(DyL1q*rqo%ziD zXeH18?IWJ~%Nwl!ZZl4{&a^gmURU}v;>50s29h=_>PKA+>h%4Qp3Z; zS7~URCLys+TvjRrq9Qvb5Hz=6)uz+6bxsg{v4ZB-AuZ!!d0CyD9}9Nx-plswyLjWx zcevq3mHy(N1N&dm{uA_nX!qZDANJNZ60Cj5OvxZWw}>(k7Tu!s2Sj`*g|Eu(DcHFO zWKr5MLjTk>-2&Ex+yRzv31!p%bX)^!M3@L@$F4BiuhIjkGzV8CNDQ<2SPa`v#q#|D ze+oo#s>)PeQSDsJu4CgqId|s8m^fw8GJK8jlm>JxvqarjW9#2a&A?SmeTqn{8N)NK zk!5>ASa~1@w}3*ehOjC!uj5ruK1dO|FS&yi%1!0mh-2!NkqnQzwFD{V9+;ljbRA_JwtNdL~OLR3{g>3PkBx?6@~TU09)zllprXxPvtLSvC)UoylVhvv_>5eD2F+?)@f@`!1XJllAp6&tq zM5%NN;OpBuscUYhzP6KE>2Ucul_Vx+5E34Zo39^sE-u(OIAQPLD$w^7HSLAHy(_kM z&RE;nVqz|^w=~mk;2N8oU|?)0>fcJ>sK?&j2YKdif8~$Ay^k0E`VbG?^>c0&Al!0; zDv16|0spTAK%(?-yp{VO`J)7xSmIJ@Iil-9a7rl`bLxr9>crA1l~dL-dx^X84j{v!w0Ve={Uj9odcZ^xJ4?vS8#ik&+Tv-sO3Y}>Mh<;z#|<>yOTxL^%0 zKL0lB*KQQ2;zYX~cXbcziku?V@n^0G^smlpXG~N4(yl{ay+I_eG_^RZZ*YpL#t9+> z`UbYSbO{Vp^{2+JD*_d9F&UkN$Cfc9P#PYY=2Bd|I59&BSm)TaXAjT6_^KT5n>8^1 zGhqL#ng)9b^xA8cd+Cm!bMEX(={weVdb;7}=1NR-tT?9zZEC4X*{c@H^^9C2rJx<} zuu9pNW};+Ynp!8RuA9Ndvw_4+IhUgX;DIYzvM*HtzDM>uSB{BuL@y~7lbA{$sO^~` zGObNqVh5R({n{$&(#B!TT}s3iOcR^khM8Lq22Oc|Wi-)s`5L~__2iab#?`M1kI;Vn zl7?{dFQ>CdT%#ygRgQ9O^s+b%Iai|Grv%)iB9^8k@TzqNlLGo-ftxD+u7*k{CN9hM zHi=e8SbnD}o%M=S7!bGJ*4af@cR#tg#iS(Vkdl~3W?Bh(SrxQ2^)V=*9O_rcB}aWI9qS4HsF+Dp9reJn4mxy19|$MfQDl(iEOrlFXkMC-dauRB-}n{NdXyo>-W}UnO|F{B106e(TB3 zGYR6%L|lryQMG*~)@j4|s#~l6{bT#7KmI+TKRc<7>F4F=(%LGjMlQ6f$_7eHtI01b zBd17|f+(-7j6zc4Gqm)te*OYbxj1cH9k6i`=)1THtOWX^`kkFb^$YlIMD43#9wT!L zj4UlMwzAg#ZES9dshKt3f482u-gs3k{dR)9j<9*{yWD^0Eu#8w;AR2;O*j5Z;P6X+ zb@#)(_0hM)XH=4$)q|OH0img4%jH6j&Fsh4rI3?4A*|nYn#IePvtso^)~s91ks~`f zdwMt9w=PBJgaOBnIbr3ThM}z}#ag* sHb_A%K%&akNA&aTT?*vGNwgdf(P1(>-P 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%0AC){VfRK!isG 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 L=qlGMy^a1q$*Yn2 literal 0 HcmV?d00001 diff --git a/bsp/stm32/stm32f302-st-nucleo/makefile.targets b/bsp/stm32/stm32f302-st-nucleo/makefile.targets new file mode 100644 index 0000000000..e71da5a6e1 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/makefile.targets @@ -0,0 +1,6 @@ +clean2: + -$(RM) $(CC_DEPS)$(C++_DEPS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) + -$(RM) $(OBJS) *.elf + -@echo ' ' + +*.elf: $(wildcard ../linkscripts/*/*.lds) $(wildcard ../linkscripts/*/*/*.lds) \ No newline at end of file diff --git a/bsp/stm32/stm32f302-st-nucleo/project.ewd b/bsp/stm32/stm32f302-st-nucleo/project.ewd new file mode 100644 index 0000000000..e94c83ed06 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/project.ewd @@ -0,0 +1,2834 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\IARProbe\IarProbePlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\IARProbe\IarProbePlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/project.ewp b/bsp/stm32/stm32f302-st-nucleo/project.ewp new file mode 100644 index 0000000000..aba6e4c839 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/project.ewp @@ -0,0 +1,2260 @@ + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + CPU + + $PROJ_DIR$\rt-thread\libcpu\arm\common\div0.c + + + $PROJ_DIR$\rt-thread\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\rt-thread\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\rt-thread\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\rt-thread\libcpu\arm\cortex-m4\context_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\rt-thread\components\drivers\misc\pin.c + + + $PROJ_DIR$\rt-thread\components\drivers\serial\serial.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\workqueue.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\pipe.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\rt-thread\components\drivers\src\completion.c + + + + Drivers + + $PROJ_DIR$\libraries\STM32F3xx_HAL\CMSIS\Device\ST\STM32F3xx\Source\Templates\iar\startup_stm32f302x8.s + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f3xx_hal_msp.c + + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\libraries\HAL_Drivers\drv_common.c + + + + finsh + + $PROJ_DIR$\rt-thread\components\finsh\shell.c + + + $PROJ_DIR$\rt-thread\components\finsh\msh.c + + + $PROJ_DIR$\rt-thread\components\finsh\cmd.c + + + + Kernel + + $PROJ_DIR$\rt-thread\src\device.c + + + $PROJ_DIR$\rt-thread\src\mem.c + + + $PROJ_DIR$\rt-thread\src\components.c + + + $PROJ_DIR$\rt-thread\src\timer.c + + + $PROJ_DIR$\rt-thread\src\mempool.c + + + $PROJ_DIR$\rt-thread\src\clock.c + + + $PROJ_DIR$\rt-thread\src\thread.c + + + $PROJ_DIR$\rt-thread\src\idle.c + + + $PROJ_DIR$\rt-thread\src\scheduler.c + + + $PROJ_DIR$\rt-thread\src\object.c + + + $PROJ_DIR$\rt-thread\src\irq.c + + + $PROJ_DIR$\rt-thread\src\ipc.c + + + $PROJ_DIR$\rt-thread\src\kservice.c + + + + libc + + $PROJ_DIR$\rt-thread\components\libc\compilers\common\time.c + + + + Libraries + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_crc.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_uart.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_usart.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_uart_ex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cec.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_usart_ex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_crc_ex.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c + + + $PROJ_DIR$\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_sram.c + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/project.eww b/bsp/stm32/stm32f302-st-nucleo/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/project.uvoptx b/bsp/stm32/stm32f302-st-nucleo/project.uvoptx new file mode 100644 index 0000000000..ccbafccdba --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/project.uvoptx @@ -0,0 +1,980 @@ + + + + 1.0 + +

### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U066FFF545050807567212654 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC4000 -FN1 -FF0STM32F3xx_256.FLM -FS08000000 -FL010000 -FP0($$Device:STM32F302R8Tx$CMSIS\Flash\STM32F3xx_256.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL010000 -FP0($$Device:STM32F302R8Tx$CMSIS\Flash\STM32F3xx_256.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Applications + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + CPU + 0 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + 2 + 6 + 2 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 3 + 7 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\hwtimer\hwtimer.c + hwtimer.c + 0 + 0 + + + 3 + 8 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 3 + 9 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 3 + 10 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 3 + 11 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 3 + 12 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 3 + 13 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 3 + 14 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 3 + 15 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + 3 + 16 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 4 + 17 + 2 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\CMSIS\Device\ST\STM32F3xx\Source\Templates\arm\startup_stm32f302x8.s + startup_stm32f302x8.s + 0 + 0 + + + 4 + 18 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f3xx_hal_msp.c + stm32f3xx_hal_msp.c + 0 + 0 + + + 4 + 19 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 4 + 20 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 4 + 21 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 4 + 22 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + 4 + 23 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_hwtimer.c + drv_hwtimer.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 5 + 24 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 5 + 25 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + 5 + 26 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + + + Kernel + 0 + 0 + 0 + 0 + + 6 + 27 + 1 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 6 + 28 + 1 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + 6 + 29 + 1 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 6 + 30 + 1 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 6 + 31 + 1 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 6 + 32 + 1 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 6 + 33 + 1 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 6 + 34 + 1 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 6 + 35 + 1 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 6 + 36 + 1 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + + + libc + 0 + 0 + 0 + 0 + + 7 + 40 + 1 + 0 + 0 + 0 + ..\..\..\components\libc\compilers\common\time.c + time.c + 0 + 0 + + + + + Libraries + 0 + 0 + 0 + 0 + + 8 + 41 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_crc.c + stm32f3xx_hal_crc.c + 0 + 0 + + + 8 + 42 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim.c + stm32f3xx_hal_tim.c + 0 + 0 + + + 8 + 43 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_hrtim.c + stm32f3xx_hal_hrtim.c + 0 + 0 + + + 8 + 44 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_uart.c + stm32f3xx_hal_uart.c + 0 + 0 + + + 8 + 45 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_usart.c + stm32f3xx_hal_usart.c + 0 + 0 + + + 8 + 46 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c + stm32f3xx_hal.c + 0 + 0 + + + 8 + 47 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_uart_ex.c + stm32f3xx_hal_uart_ex.c + 0 + 0 + + + 8 + 48 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cec.c + stm32f3xx_hal_cec.c + 0 + 0 + + + 8 + 49 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c + stm32f3xx_hal_pwr_ex.c + 0 + 0 + + + 8 + 50 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c + stm32f3xx_hal_gpio.c + 0 + 0 + + + 8 + 51 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c + stm32f3xx_hal_rcc_ex.c + 0 + 0 + + + 8 + 52 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_usart_ex.c + stm32f3xx_hal_usart_ex.c + 0 + 0 + + + 8 + 53 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c + system_stm32f3xx.c + 0 + 0 + + + 8 + 54 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c + stm32f3xx_hal_cortex.c + 0 + 0 + + + 8 + 55 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c + stm32f3xx_hal_exti.c + 0 + 0 + + + 8 + 56 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_crc_ex.c + stm32f3xx_hal_crc_ex.c + 0 + 0 + + + 8 + 57 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c + stm32f3xx_hal_rcc.c + 0 + 0 + + + 8 + 58 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c + stm32f3xx_hal_pwr.c + 0 + 0 + + + 8 + 59 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c + stm32f3xx_hal_dma.c + 0 + 0 + + + 8 + 60 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_tim_ex.c + stm32f3xx_hal_tim_ex.c + 0 + 0 + + + 8 + 61 + 1 + 0 + 0 + 0 + ..\libraries\STM32F3xx_HAL\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_sram.c + stm32f3xx_hal_sram.c + 0 + 0 + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/rtconfig.h b/bsp/stm32/stm32f302-st-nucleo/rtconfig.h new file mode 100644 index 0000000000..f8e1717e6c --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/rtconfig.h @@ -0,0 +1,190 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 + +/* kservice optimization */ + +#define RT_DEBUG +#define RT_DEBUG_COLOR + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart2" +#define RT_VER_NUM 0x40004 +#define ARCH_ARM +#define RT_USING_CPU_FFS +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V1 +#define RT_SERIAL_USING_DMA +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_HWTIMER +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + +#define RT_LIBC_USING_TIME +#define RT_LIBC_DEFAULT_TIMEZONE 8 + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread Utestcases */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + + +/* Micrium: Micrium software products porting for RT-Thread */ + + +/* peripheral libraries and drivers */ + + +/* AI packages */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + + +/* entertainment: terminal games and other interesting software packages */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F3 + +/* Hardware Drivers Config */ + +#define SOC_STM32F302R8 + +/* Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART2 + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f302-st-nucleo/rtconfig.py b/bsp/stm32/stm32f302-st-nucleo/rtconfig.py new file mode 100644 index 0000000000..00d5d737ac --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/rtconfig.py @@ -0,0 +1,150 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + CXX = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M4' + CFLAGS += ' -e' + CFLAGS += ' --fpu=VFPv4_sp' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M4' + AFLAGS += ' --fpu VFPv4_sp' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/stm32/stm32f302-st-nucleo/template.ewp b/bsp/stm32/stm32f302-st-nucleo/template.ewp new file mode 100644 index 0000000000..21c66ca0d0 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/template.ewp @@ -0,0 +1,2031 @@ + + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/template.eww b/bsp/stm32/stm32f302-st-nucleo/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f302-st-nucleo/template.uvoptx b/bsp/stm32/stm32f302-st-nucleo/template.uvoptx new file mode 100644 index 0000000000..bdf0c2ef42 --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/template.uvoptx @@ -0,0 +1,197 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ST-LINKIII-KEIL_SWO + -U066FFF545050807567212654 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC4000 -FN1 -FF0STM32F3xx_256.FLM -FS08000000 -FL010000 -FP0($$Device:STM32F302R8Tx$CMSIS\Flash\STM32F3xx_256.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F3xx_256 -FL010000 -FS08000000 -FP0($$Device:STM32F302R8Tx$CMSIS\Flash\STM32F3xx_256.FLM) + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/bsp/stm32/stm32f302-st-nucleo/template.uvprojx b/bsp/stm32/stm32f302-st-nucleo/template.uvprojx new file mode 100644 index 0000000000..15851854bb --- /dev/null +++ b/bsp/stm32/stm32f302-st-nucleo/template.uvprojx @@ -0,0 +1,396 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F302R8Tx + STMicroelectronics + Keil.STM32F3xx_DFP.2.1.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00004000) IROM(0x08000000,0x00010000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL010000 -FP0($$Device:STM32F302R8Tx$CMSIS\Flash\STM32F3xx_256.FLM)) + 0 + $$Device:STM32F302R8Tx$Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f3xx.h + + + + + + + + + + $$Device:STM32F302R8Tx$CMSIS\SVD\STM32F302x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 1 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 1 + 0x8000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x10000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Source Group 1 + + + + + + + + + + + +
-- GitLab