diff --git a/bsp/stm32/libraries/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/arm/startup_stm32mp15xx.s b/bsp/stm32/libraries/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/arm/startup_stm32mp15xx.s
index d38ddd3fa4363518488e36a6b5c95351be1c63ba..4deacdd1e5a1a03e179030d342a46b17840fd93f 100644
--- a/bsp/stm32/libraries/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/arm/startup_stm32mp15xx.s
+++ b/bsp/stm32/libraries/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/arm/startup_stm32mp15xx.s
@@ -14,8 +14,8 @@
;******************************************************************************
;* @attention
;*
-;*
© Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.
+;* © Copyright (c) 2019 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
@@ -30,7 +30,7 @@
; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
;
-Stack_Size EQU 0x00000400
+Stack_Size EQU 0x00000800
AREA STACK, NOINIT, READWRITE, ALIGN=3
__stack_limit
diff --git a/bsp/stm32/stm32mp157a-st-ev1/.config b/bsp/stm32/stm32mp157a-st-ev1/.config
new file mode 100644
index 0000000000000000000000000000000000000000..4f6a2ab164d5794d1b3c5a21e612f202a125670b
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/.config
@@ -0,0 +1,450 @@
+#
+# 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=100
+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=y
+CONFIG_RT_TIMER_THREAD_PRIO=4
+CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+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=y
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_SMALL_MEM is not set
+# CONFIG_RT_USING_SLAB is not set
+CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
+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="uart4"
+CONFIG_RT_VER_NUM=0x40003
+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 is not set
+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_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_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=y
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# 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_LWP is not set
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_PAHOMQTT 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_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_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_IOTHUB 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_ONNX_PARSER is not set
+# CONFIG_PKG_USING_ONNX_BACKEND 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
+
+#
+# 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
+
+#
+# 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
+
+#
+# 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_RDB is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH 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_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
+
+#
+# system packages
+#
+# 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_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL 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_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
+
+#
+# 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_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_ROSSERIAL 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_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
+
+#
+# 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_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_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_NNOM is not set
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_UKAL is not set
+CONFIG_SOC_FAMILY_STM32=y
+CONFIG_SOC_SERIES_STM32MP1=y
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_STM32MP157A=y
+
+#
+# Onboard Peripheral Drivers
+#
+CONFIG_BSP_USING_STLINK_TO_USART=y
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+# CONFIG_BSP_USING_WWDG is not set
+CONFIG_BSP_USING_UART=y
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_UART3_RX_USING_DMA is not set
+CONFIG_BSP_USING_UART4=y
+# CONFIG_BSP_UART4_RX_USING_DMA is not set
+# CONFIG_BSP_UART4_TX_USING_DMA is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_LPTIM is not set
+# CONFIG_BSP_USING_PWM is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_DAC is not set
+# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_CRC is not set
+# CONFIG_BSP_USING_RNG is not set
+# CONFIG_BSP_USING_UDID is not set
+
+#
+# Board extended module Drivers
+#
diff --git a/bsp/stm32/stm32mp157a-st-ev1/.gitignore b/bsp/stm32/stm32mp157a-st-ev1/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7221bde019df6157cbf9e42ef5ab8a78420e3b68
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/.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/stm32mp157a-st-ev1/.project b/bsp/stm32/stm32mp157a-st-ev1/.project
new file mode 100644
index 0000000000000000000000000000000000000000..29d7c74de54734cade9c44dbe15d1ac350c609d9
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/.project
@@ -0,0 +1,11 @@
+
+
+ STM32MP157
+
+
+
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/EventRecorderStub.scvd b/bsp/stm32/stm32mp157a-st-ev1/EventRecorderStub.scvd
new file mode 100644
index 0000000000000000000000000000000000000000..2956b29683898915efa436cc948384a2c431dc31
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/EventRecorderStub.scvd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/Kconfig b/bsp/stm32/stm32mp157a-st-ev1/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..7a400db91f4a82292908c8b2b99e87e4193f78d0
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/Kconfig
@@ -0,0 +1,22 @@
+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/stm32mp157a-st-ev1/README.md b/bsp/stm32/stm32mp157a-st-ev1/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a4798872c458207566bc033bbb8e27dd4e37c732
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/README.md
@@ -0,0 +1,168 @@
+# STM32MP157A-EV1 BSP (Board Support Package) Execution Instruction
+
+[中文页](README_zh.md) |
+
+# Introduction
+
+This document records the execution instruction of the BSP (board support package) provided by the RT-Thread development team for the STM32MP157A-EV1 development board.
+
+The document is covered in three parts:
+
+- STM32MP157A-EV1 Board Resources Introduction
+
+- Quickly Get Started
+
+- Advanced Features
+
+By reading the Quickly Get Started section developers can quickly get their hands on this BSP and run RT-Thread on the board. More advanced features will be introduced in the Advanced Features section to help developers take advantage of RT-Thread to drive more on-board resources.
+
+## STM32MP157A-EV1 Board Resources Introduction
+
+The STM32MP157A-EV1 is a development board based on a dual Cortex-A7 and Cortex-M4 core. The Cortex-A7 core operates at 650 MHZ and the Cortex-M4 operates at 209MHZ. There is no Flash inside the STM32MP157A.
+
+ ![board](figures/board.png)
+
+The mainly-used **on-board resources** are shown as follows:
+
+* MCU : STM32MP157AAAx
+* Common peripherals:
+ - 4 LEDs: LD4(PD8), LD5(PD9), LD2(PA13), LD3(PA14)
+ - 4 Buttons: WAKE_UP, RESET (NRST), USER1(PA13), USER2 (PA14)
+* Common-used interface: USB, SD card, Ethernet, MIPI, USB HOST, Audio, HDMI, Arduino.
+* Debug interface: Standard JTAG/SWD.
+
+For more details about this board, please refer to the ST official documentation:
+
+[STM32MP157A-EV1 Development board introduction](https://www.st.com/content/st_com/zh/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157a-ev1.html)
+
+## Peripheral Condition
+
+Each peripheral supporting condition for this BSP is as follows:
+
+| On-board Peripheral | **Support** | **Remark** |
+| :----------------------------- | :---------: | :--------------: |
+| USB TO UART | YES | |
+| PMIC | NO | |
+| CAMERA | NO | OV5640 |
+| MFX | NO | |
+| FMC | NO | MT25F8G08A8ACAH4 |
+| QSPI FLASH | NO | MX25L51245G |
+| OpenAMP | NO | |
+| POWER | NO | |
+| SD Card (SDMMC1) | NO | |
+| EMMC(SDMMC2) | NO | |
+| ETH | NO | |
+| AUDIO | NO | WM8994 |
+| **On-chip Peripheral Drivers** | **Support** | **Remark** |
+| GPIO | YES | |
+| UART | YES | UART4 (ST-Link) |
+| EXTI | YES | |
+| SPI | YES | |
+| TIM | YES | |
+| LPTIM | YES | |
+| I2C | YES | Software |
+| ADC | YES | |
+| DAC | YES | |
+| WWDG | YES | |
+| MDMA | NO | |
+| SPDIFRX | NO | |
+| DFSDM | NO | |
+| PWM | NO | |
+| FDCAN | NO | |
+| CRC | NO | |
+| RNG | NO | |
+| HASH | NO | |
+| CRYP | NO | |
+
+## Execution Instruction
+
+### Quickly Get Started
+
+This BSP provides IAR projects for developers. Here's an example of the IAR development environment, to introduce how to run the system.
+
+#### Hardware Connection
+
+Use a USB cable to connect the development board to the PC and turn on the power switch.
+
+#### Compile And Download
+
+Double-click the project.eww file, to open the IAR project, compile and download the program to the board.
+
+> By default, the project uses ST_LINK simulator to download the program, when the ST_LINK connects the board, clicking the download button can download the program to the board.
+
+#### Running Results
+
+After the program is successfully downloaded, the system runs automatically. Observe the running results of the LED on the development board, the orange LD4 will flash periodically.
+
+Connect the serial port of the board to PC, communicate with it via a serial terminal tool (115200-8-1-N). Restart the board and the startup information of RT-Thread will be observed:
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 3.1.1 build Nov 19 2018
+ 2006 - 2018 Copyright by rt-thread team
+msh >
+```
+
+#### Drivers
+
+##### 1. DAC
+
+* Open the [Env](https://www.rt-thread.io/download.html?download=Env) tool under this BSP;
+* Enter the `menuconfig` command, enter the Hardware Drivers config and open DAC, save and exit;
+
+* Enter the `scons --target=iar` command to regenerate project.
+
+###### Finsh
+
+Before you use a device, you need to find out if the device exists, and you can use the name of the DAC device that is enrolled with the command `dac probe` . As shown as follows.
+
+```
+msh />dac probe dac1
+probe dac1 success
+```
+
+Enable the channel of the device can use the command `dac enable` followed by the channel number.
+
+ ```shell
+msh />dac probe dac1
+probe dac1 success
+ ```
+
+Set up the data of the channel for a DAC device can use the command `dac write` followed by the channel number.
+
+```
+msh />dac write 1 1000
+dac1 channel 1 write value is 1000
+```
+
+Disable the channel of the device can use the command `dac disable` followed by the channel number.
+
+```c
+msh />dac disable 1
+dac1 channel 1 disable success
+```
+
+### Advanced Features
+
+This BSP only enables GPIO and serial port 4 by default. If need more advanced features, you need to configure the BSP with RT-Thread Env tools, as follows:
+
+* Open the [Env](https://www.rt-thread.io/download.html?download=Env) tool under this BSP;
+* Enter the `menuconfig` command to configure the project, then save and exit;
+* Enter the `pkgs --update` command to update the packages;
+* Enter the `scons --target=iar `command to regenerate the project.
+
+## Notes
+
+* Before downloading the program, set the board to the mode of "Engineering Mode". The BOOT switch sets to BOOT0=0,BOOT1 = 0 and BOOT2=1, as shown below:
+
+
+
+* If need to reburn the program, please reset the development board.
+
+
+## Contact Information
+
+accendant:
+
+- [liukang](https://github.com/thread-liu)
diff --git a/bsp/stm32/stm32mp157a-st-ev1/README_zh.md b/bsp/stm32/stm32mp157a-st-ev1/README_zh.md
new file mode 100644
index 0000000000000000000000000000000000000000..8b5e3a2ada1fbc1da8dd8f09cb31bed35127066d
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/README_zh.md
@@ -0,0 +1,187 @@
+# STM32MP157A-DK1 开发板 BSP 说明
+
+## 简介
+
+本文档为 RT-Thread 开发团队为 STM32MP157A-DK1 开发板提供的 BSP (板级支持包) 说明。
+
+主要内容如下:
+
+- 开发板资源介绍
+- BSP 快速上手
+- 进阶使用方法
+
+通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。
+
+## 开发板介绍
+
+STM32MP157A-DK1 是 ST 推出的一款基于双 Cortex-A7 + Cortex-M4 内核的开发板。Cortex-A7 核工作频率为 800 MHZ,Cortex-M4 工作频率为 209MHZ。STM32MP157A 内部没有 Flash。
+
+开发板外观如下图所示:
+
+ ![board](figures/board.png)
+
+该开发板常用 **板载资源** 如下:
+
+- MCU:STM32MP157AACx
+- 常用外设
+ - LED:4个 ,LD4 (PA14), LD6 (PA13),LD7 (PH7),LD8 (PD11)
+ - 按键,4个,WAKE_UP,RESET (NRST),USER1(PA14),USER2 (PA13)
+- 常用接口:USB 转串口、SD 卡接口、以太网接口、MIPI接口、USB HOST、Audio、HDMI、Arduino
+- 调试接口,标准 JTAG/SWD
+
+开发板更多详细信息请参考 ST 官方文档 [STM32MP157A-DK1 开发板介绍](https://www.st.com/content/st_com/zh/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/stm32mp157a-dk1.html)。
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **板载外设** | **支持情况** | **备注** |
+| :----------- | :----------: | :--------------: |
+| USB 转串口 | 支持 | |
+| SD卡 | 暂不支持 | |
+| 以太网 | 暂不支持 | |
+| 音频接口 | 暂不支持 | |
+| **片上外设** | **支持情况** | **备注** |
+| GPIO | 支持 | |
+| UART | 支持 | UART4 (ST-Link) |
+| EXTI | 支持 | |
+| SPI | 支持 | |
+| TIM | 支持 | |
+| LPTIM | 支持 | |
+| I2C | 支持 | 软件、硬件都支持 |
+| ADC | 支持 | |
+| DAC | 支持 | |
+| WWDG | 支持 | |
+| USB Device | 暂不支持 | |
+| USB Host | 暂不支持 | |
+
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+ 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+ 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+
+### 快速上手
+
+本 BSP 为开发者提供 IAR 工程。下面以 IAR 开发环境为例,介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,打开电源开关。
+
+#### 编译下载
+
+双击 project.eww 文件,打开 IAR 工程,编译并下载程序到开发板。
+
+> 工程默认配置使用 ST-LINK 下载程序,在通过 ST-LINK连接开发板的基础上,点击下载按钮即可下载程序到开发板
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,观察开发板上 LED 的运行效果,蓝色 LD8 会周期性闪烁,终端会周期性输出 ”Hello RT-Thread!“
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),可以看到 RT-Thread 的输出信息:
+
+> 注:正点原子开发板 在使用终端工具如:PuTTy、XShell 时,会出现系统不能启动的问题,推荐使用串口调试助手如:sscom
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 3.1.1 build Nov 19 2018
+ 2006 - 2018 Copyright by rt-thread team
+msh >
+Hello RT-Thread!
+```
+#### 驱动使用
+##### 1. WWDG
+
+1. 在 bsp 下打开 env 工具;
+2. 输入 `menuconfig` 命令, 进入 Hardware Drivers config 打开 wwdg,保存并退出;
+3. 输入 `scons --target=iar` 命令重新生成工程;
+4. wwdg 设备会在喂狗前触发中断,LD5 会在中断中不停的闪烁;
+5. 在终端输入 `wwdg_sample` ,获取 wwdg 设备 Finsh 命令;
+6. `wwdg_sample run` 开启 wwdg 设备;
+7. `wwdg_sample set` 设置 wwdg 设备分频率;
+8. 通过调整 wwdg 设备分频率,开发板上 LD5 会有不同的闪烁频率。
+
+##### 2. DAC
+
+1. 在 bsp 下打开 env 工具;
+2. 输入`menuconfig`命令, 进入 Hardware Drivers config 打开 dac,保存并退出;
+3. 输入 `scons --target=iar` 命令重新生成工程;
+
+###### Finsh
+
+在使用设备前,需要先查找设备是否存在,可以使用命令 `dac probe` 后面跟注册的 DAC 设备的名称。如下所示:
+
+```c
+msh />dac probe dac1
+probe dac1 success
+```
+
+使能设备的某个通道可以使用命令 `dac enable` 后面跟通道号。
+
+```c
+msh />dac enable 1
+dac1 channel 1 enables success
+```
+
+设置 DAC 设备某个通道的数据可以使用命令 `dac write` 后面跟通道号。
+
+```c
+msh />dac write 1 1000
+dac1 channel 1 write value is 1000
+```
+
+关闭设备的某个通道可以使用命令 `dac disable` 后面跟通道号。
+
+```c
+msh />dac disable 1
+dac1 channel 1 disable success
+```
+#### 3. LPTIM
+
+1. 在 bsp 下打开 env 工具;
+2. 输入 `menuconfig` 命令, 进入 Hardware Drivers config 打开 lptim,保存并退出;
+3. 输入 `scons --target=iar` 命令重新生成工程;
+4. lptim 设备计时溢出时会触发中断,中断会打印字符串 `"hello rt-thread!"`;
+5. 在终端输入 `lptim_sample` ,获取 lptim 设备 Finsh 命令;
+6. `lptim_sample run` 开启 lptim 设备;
+7. `lptim_sample set` 设置 lptim 设备分频率。
+
+
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口4 的功能,如果需更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons --target=iar` 命令重新生成工程。
+
+本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。
+
+## 注意事项
+
+1. 下载程序前,将开发板设置为 "Engineering Mode" 模式。 在 DK1 开发板上,将底下的BOOT开关设成 BOOT0=0,BOOT2=1状态,就进入"Engineering Mode",如下图所示:
+
+
+
+2. 再次烧写程序时,需要复位开发板。
+
+## 联系人信息
+
+维护人:
+
+- [liukang](https://github.com/thread-liu)
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/SConscript b/bsp/stm32/stm32mp157a-st-ev1/SConscript
new file mode 100644
index 0000000000000000000000000000000000000000..20f7689c53ca71a676748f79187f9764065466c5
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/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/stm32mp157a-st-ev1/SConstruct b/bsp/stm32/stm32mp157a-st-ev1/SConstruct
new file mode 100644
index 0000000000000000000000000000000000000000..e1481a896b0d55ef0037989d313dd10c634b3a4d
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/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 = 'STM32MPxx_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/stm32mp157a-st-ev1/applications/SConscript b/bsp/stm32/stm32mp157a-st-ev1/applications/SConscript
new file mode 100644
index 0000000000000000000000000000000000000000..04f04dd5435cd69acd90735e75caaffc0ba0d9ff
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/applications/SConscript
@@ -0,0 +1,11 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd, str(Dir('#'))]
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/bsp/stm32/stm32mp157a-st-ev1/applications/main.c b/bsp/stm32/stm32mp157a-st-ev1/applications/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..b38732f066590bbcf8bb1715ed44f236ee617790
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/applications/main.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-06-05 thread-liu first version
+ */
+
+#include
+#include
+#include
+
+/* defined the LD4 pin: PD8 */
+#define LED4_PIN GET_PIN(D, 8)
+
+int main(void)
+{
+ int count = 1;
+ /* set LD8 pin mode to output */
+ rt_pin_mode(LED4_PIN, PIN_MODE_OUTPUT);
+
+ while (count++)
+ {
+ rt_pin_write(LED4_PIN, PIN_HIGH);
+ rt_thread_mdelay(500);
+ rt_pin_write(LED4_PIN, PIN_LOW);
+ rt_thread_mdelay(500);
+ }
+
+ return RT_EOK;
+}
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/.mxproject
new file mode 100644
index 0000000000000000000000000000000000000000..d2274cfbc139d830bcc8c60c325c9e4791bcba79
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/.mxproject
@@ -0,0 +1,14 @@
+[PreviousGenFiles]
+HeaderPath=D:/3_work/GitRepositories/rt-thread/bsp/stm32/stm32mp157a-st-discovery/board/CubeMX_Config/CM4/Inc
+HeaderFiles=stm32mp1xx_it.h;stm32mp1xx_hal_conf.h;main.h;
+SourcePath=D:/3_work/GitRepositories/rt-thread/bsp/stm32/stm32mp157a-st-discovery/board/CubeMX_Config/CM4/Src
+SourceFiles=stm32mp1xx_it.c;stm32mp1xx_hal_msp.c;main.c;
+
+[PreviousLibFiles]
+LibFiles=Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_adc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_adc_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_ll_adc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_rcc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_rcc_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_gpio.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_gpio_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_hsem.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dma.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dma_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_mdma.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_cortex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_def.h;Drivers/STM32MP1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_exti.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dac.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dac_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_ipcc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_lptim.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_spi.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_spi_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_tim.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_tim_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_uart.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_uart_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_wwdg.h;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_adc.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_gpio.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hsem.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_mdma.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cortex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_exti.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ipcc.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_lptim.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart_ex.c;Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_wwdg.c;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_adc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_adc_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_ll_adc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_rcc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_rcc_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_gpio.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_gpio_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_hsem.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dma.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dma_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_mdma.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_pwr_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_cortex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_def.h;Drivers/STM32MP1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_exti.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dac.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_dac_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_ipcc.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_lptim.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_spi.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_spi_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_tim.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_tim_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_uart.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_uart_ex.h;Drivers/STM32MP1xx_HAL_Driver/Inc/stm32mp1xx_hal_wwdg.h;Drivers/CMSIS/Device/ST/STM32MP1xx/Include/stm32mp157axx_cm4.h;Drivers/CMSIS/Device/ST/STM32MP1xx/Include/stm32mp1xx.h;Drivers/CMSIS/Device/ST/STM32MP1xx/Include/system_stm32mp1xx.h;Drivers/CMSIS/Device/ST/STM32MP1xx/Source/Templates/system_stm32mp1xx.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=..\CM4\Src\main.c;..\CM4\Src\stm32mp1xx_it.c;..\CM4\Src\stm32mp1xx_hal_msp.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_adc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_gpio.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hsem.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_mdma.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cortex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_exti.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ipcc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_lptim.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_wwdg.c;..\Common/System/system_stm32mp1xx.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_adc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_gpio.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hsem.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_mdma.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cortex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_exti.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ipcc.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_lptim.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart_ex.c;..\Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_wwdg.c;..\Common/System/system_stm32mp1xx.c;..\Drivers/CMSIS/Device/ST/STM32MP1xx/Source/Templates/system_stm32mp1xx.c;;
+HeaderPath=..\Drivers\STM32MP1xx_HAL_Driver\Inc;..\Drivers\STM32MP1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32MP1xx\Include;..\Drivers\CMSIS\Include;..\CM4\Inc;
+CDefines=CORE_CM4;CORE_CM4;CORE_CM4;USE_HAL_DRIVER;STM32MP157Axx;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/main.h b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/main.h
new file mode 100644
index 0000000000000000000000000000000000000000..9880e4f884d7cee85cbf308f4940066f92985404
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/main.h
@@ -0,0 +1,77 @@
+/* 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) 2020 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 "stm32mp1xx_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 */
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
+
+/* Exported functions prototypes ---------------------------------------------*/
+void Error_Handler(void);
+
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+/* Private defines -----------------------------------------------------------*/
+#define STLINK_RX_Pin GPIO_PIN_11
+#define STLINK_RX_GPIO_Port GPIOG
+#define STLINK_TX_Pin GPIO_PIN_2
+#define STLINK_TX_GPIO_Port GPIOB
+/* 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/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_hal_conf.h b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_hal_conf.h
new file mode 100644
index 0000000000000000000000000000000000000000..424bdc02a236d649c0e01396723c6b4d62ae222b
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_hal_conf.h
@@ -0,0 +1,396 @@
+/**
+ ******************************************************************************
+ * @file stm32mp1xx_hal_conf.h
+ * @brief HAL configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 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 STM32MP1xx_HAL_CONF_H
+#define STM32MP1xx_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_CEC_MODULE_ENABLED */
+/*#define HAL_CRC_MODULE_ENABLED */
+/*#define HAL_CRYP_MODULE_ENABLED */
+#define HAL_DAC_MODULE_ENABLED
+/*#define HAL_DCMI_MODULE_ENABLED */
+/*#define HAL_DSI_MODULE_ENABLED */
+/*#define HAL_DFSDM_MODULE_ENABLED */
+/*#define HAL_DTS_MODULE_ENABLED */
+/*#define HAL_ETH_MODULE_ENABLED */
+/*#define HAL_FDCAN_MODULE_ENABLED */
+/*#define HAL_HASH_MODULE_ENABLED */
+/*#define HAL_HCD_MODULE_ENABLED */
+#define HAL_HSEM_MODULE_ENABLED
+#define HAL_I2C_MODULE_ENABLED
+/*#define HAL_I2S_MODULE_ENABLED */
+#define HAL_IPCC_MODULE_ENABLED
+/*#define HAL_IWDG_MODULE_ENABLED */
+#define HAL_LPTIM_MODULE_ENABLED
+/*#define HAL_LTDC_MODULE_ENABLED */
+/*#define HAL_NAND_MODULE_ENABLED */
+/*#define HAL_NOR_MODULE_ENABLED */
+/*#define HAL_PCD_MODULE_ENABLED */
+/*#define HAL_QSPI_MODULE_ENABLED */
+/*#define HAL_RNG_MODULE_ENABLED */
+/*#define HAL_SAI_MODULE_ENABLED */
+/*#define HAL_SD_MODULE_ENABLED */
+/*#define HAL_MMC_MODULE_ENABLED */
+/*#define HAL_RTC_MODULE_ENABLED */
+/*#define HAL_SMBUS_MODULE_ENABLED */
+/*#define HAL_SPDIFRX_MODULE_ENABLED */
+#define HAL_SPI_MODULE_ENABLED
+/*#define HAL_SRAM_MODULE_ENABLED */
+/*#define HAL_TAMP_MODULE_ENABLED */
+#define HAL_TIM_MODULE_ENABLED
+#define HAL_UART_MODULE_ENABLED
+/*#define HAL_USART_MODULE_ENABLED */
+/*#define HAL_SMARTCARD_MODULE_ENABLED */
+#define HAL_WWDG_MODULE_ENABLED
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_MDMA_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_CORTEX_MODULE_ENABLED
+
+/* ########################## Register Callbacks selection ############################## */
+/**
+ * @brief This is the list of modules where register callback can be used
+ */
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0u
+#define USE_HAL_CEC_REGISTER_CALLBACKS 0u
+#define USE_HAL_DAC_REGISTER_CALLBACKS 0u
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0u
+#define USE_HAL_RNG_REGISTER_CALLBACKS 0u
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0u
+#define USE_HAL_UART_REGISTER_CALLBACKS 0u
+#define USE_HAL_USART_REGISTER_CALLBACKS 0u
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0u
+
+/* ########################## Oscillator 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 (24000000U) /*!< Value of the External oscillator in Hz : FPGA case fixed to 60MHZ */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT (100U) /*!< 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 (64000000U) /*!< 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 5000U /*!< Time out for HSI start up */
+#endif /* HSI_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE 32000U
+#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.
+ * This value is used by the UART, RTC HAL module to compute the system frequency
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External oscillator in Hz*/
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT ((uint32_t)5000U) /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal oscillator (CSI) default value.
+ * This value is the default CSI value after Reset.
+ */
+#if !defined (CSI_VALUE)
+ #define CSI_VALUE 4000000U /*!< Value of the Internal oscillator in Hz*/
+#endif /* CSI_VALUE */
+
+/**
+ * @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.
+ */
+#if !defined (EXTERNAL_CLOCK_VALUE)
+ #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External clock 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 3300U /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY 0U /*!< tick interrupt priority (lowest by default) */
+ /* Warning: Must be set to higher priority for HAL_Delay() */
+ /* and HAL_GetTick() usage under interrupt context */
+#define USE_RTOS 0U
+#define PREFETCH_ENABLE 0U
+#define INSTRUCTION_CACHE_ENABLE 0U
+#define DATA_CACHE_ENABLE 0U
+
+/* ########################## 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 "stm32mp1xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32mp1xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_HSEM_MODULE_ENABLED
+ #include "stm32mp1xx_hal_hsem.h"
+#endif /* HAL_HSEM_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32mp1xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_MDMA_MODULE_ENABLED
+ #include "stm32mp1xx_hal_mdma.h"
+#endif /* HAL_MDMA_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32mp1xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CEC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_cec.h"
+#endif /* HAL_CEC_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32mp1xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_DCMI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_dcmi.h"
+#endif /* HAL_DCMI_MODULE_ENABLED */
+
+#ifdef HAL_DFSDM_MODULE_ENABLED
+ #include "stm32mp1xx_hal_dfsdm.h"
+#endif /* HAL_DFSDM_MODULE_ENABLED */
+
+#ifdef HAL_DSI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_dsi.h"
+#endif /* HAL_DSI_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+ #include "stm32mp1xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_FDCAN_MODULE_ENABLED
+ #include "stm32mp1xx_hal_fdcan.h"
+#endif /* HAL_FDCAN_MODULE_ENABLED */
+
+#ifdef HAL_HASH_MODULE_ENABLED
+ #include "stm32mp1xx_hal_hash.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+ #include "stm32mp1xx_hal_hcd.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32mp1xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32mp1xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IPCC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_ipcc.h"
+#endif /* HAL_IPCC_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32mp1xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32mp1xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+ #include "stm32mp1xx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+
+#ifdef HAL_LTDC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_ltdc.h"
+#endif /* HAL_LTDC_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+ #include "stm32mp1xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+ #include "stm32mp1xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32mp1xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32mp1xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_QSPI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_qspi.h"
+#endif /* HAL_QSPI_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32mp1xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+ #include "stm32mp1xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32mp1xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32mp1xx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_SPDIFRX_MODULE_ENABLED
+ #include "stm32mp1xx_hal_spdifrx.h"
+#endif /* HAL_SPDIFRX_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32mp1xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+ #include "stm32mp1xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32mp1xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_TAMP_MODULE_ENABLED
+ #include "stm32mp1xx_hal_tamp.h"
+#endif /* HAL_TAMP_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32mp1xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32mp1xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32mp1xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32mp1xx_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 /* STM32MP1xx_HAL_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_it.h b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_it.h
new file mode 100644
index 0000000000000000000000000000000000000000..50c502088f88e3da9986847f565d271033822d3e
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Inc/stm32mp1xx_it.h
@@ -0,0 +1,77 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32mp1xx_it.h
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 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 __STM32MP1xx_IT_H
+#define __STM32MP1xx_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);
+void WWDG1_IRQHandler(void);
+void LPTIM1_IRQHandler(void);
+void IPCC_RX1_IRQHandler(void);
+void IPCC_TX1_IRQHandler(void);
+void LPTIM2_IRQHandler(void);
+void LPTIM3_IRQHandler(void);
+void LPTIM4_IRQHandler(void);
+void LPTIM5_IRQHandler(void);
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32MP1xx_IT_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/main.c b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..32ea4f86c184f27f6ac2bee4bc418abee46f03ff
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/main.c
@@ -0,0 +1,929 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 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 ---------------------------------------------------------*/
+ADC_HandleTypeDef hadc2;
+
+DAC_HandleTypeDef hdac1;
+
+IPCC_HandleTypeDef hipcc;
+
+LPTIM_HandleTypeDef hlptim1;
+LPTIM_HandleTypeDef hlptim2;
+LPTIM_HandleTypeDef hlptim3;
+LPTIM_HandleTypeDef hlptim4;
+LPTIM_HandleTypeDef hlptim5;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim4;
+TIM_HandleTypeDef htim14;
+TIM_HandleTypeDef htim16;
+TIM_HandleTypeDef htim17;
+
+UART_HandleTypeDef huart4;
+UART_HandleTypeDef huart3;
+
+WWDG_HandleTypeDef hwwdg1;
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_IPCC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM4_Init(void);
+static void MX_TIM14_Init(void);
+static void MX_TIM16_Init(void);
+static void MX_TIM17_Init(void);
+static void MX_UART4_Init(void);
+static void MX_ADC2_Init(void);
+static void MX_DAC1_Init(void);
+static void MX_LPTIM1_Init(void);
+static void MX_LPTIM2_Init(void);
+static void MX_LPTIM3_Init(void);
+static void MX_LPTIM4_Init(void);
+static void MX_LPTIM5_Init(void);
+static void MX_USART3_UART_Init(void);
+static void MX_WWDG1_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 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /* Configure the system clock */
+ SystemClock_Config();
+ }
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+ }
+
+ /* IPCC initialisation */
+ MX_IPCC_Init();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_SPI5_Init();
+ MX_TIM4_Init();
+ MX_TIM14_Init();
+ MX_TIM16_Init();
+ MX_TIM17_Init();
+ MX_UART4_Init();
+ MX_ADC2_Init();
+ MX_DAC1_Init();
+ MX_LPTIM1_Init();
+ MX_LPTIM2_Init();
+ MX_LPTIM3_Init();
+ MX_LPTIM4_Init();
+ MX_LPTIM5_Init();
+ MX_USART3_UART_Init();
+ MX_WWDG1_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};
+
+ /** Configure LSE Drive Capability
+ */
+ HAL_PWR_EnableBkUpAccess();
+ __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMHIGH);
+ /** Initializes the CPU, AHB and APB busses clocks
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE
+ |RCC_OSCILLATORTYPE_LSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DIG;
+ RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSICalibrationValue = 16;
+ RCC_OscInitStruct.HSIDivValue = RCC_HSI_DIV1;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
+ RCC_OscInitStruct.PLL2.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL2.PLLSource = RCC_PLL12SOURCE_HSE;
+ RCC_OscInitStruct.PLL2.PLLM = 3;
+ RCC_OscInitStruct.PLL2.PLLN = 66;
+ RCC_OscInitStruct.PLL2.PLLP = 2;
+ RCC_OscInitStruct.PLL2.PLLQ = 1;
+ RCC_OscInitStruct.PLL2.PLLR = 1;
+ RCC_OscInitStruct.PLL2.PLLFRACV = 0x1400;
+ RCC_OscInitStruct.PLL2.PLLMODE = RCC_PLL_FRACTIONAL;
+ RCC_OscInitStruct.PLL3.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL3.PLLSource = RCC_PLL3SOURCE_HSE;
+ RCC_OscInitStruct.PLL3.PLLM = 2;
+ RCC_OscInitStruct.PLL3.PLLN = 34;
+ RCC_OscInitStruct.PLL3.PLLP = 2;
+ RCC_OscInitStruct.PLL3.PLLQ = 17;
+ RCC_OscInitStruct.PLL3.PLLR = 37;
+ RCC_OscInitStruct.PLL3.PLLRGE = RCC_PLL3IFRANGE_1;
+ RCC_OscInitStruct.PLL3.PLLFRACV = 6660;
+ RCC_OscInitStruct.PLL3.PLLMODE = RCC_PLL_FRACTIONAL;
+ RCC_OscInitStruct.PLL4.PLLState = RCC_PLL_NONE;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** RCC Clock Config
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_ACLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
+ |RCC_CLOCKTYPE_PCLK3|RCC_CLOCKTYPE_PCLK4
+ |RCC_CLOCKTYPE_PCLK5;
+ RCC_ClkInitStruct.AXISSInit.AXI_Clock = RCC_AXISSOURCE_PLL2;
+ RCC_ClkInitStruct.AXISSInit.AXI_Div = RCC_AXI_DIV1;
+ RCC_ClkInitStruct.MCUInit.MCU_Clock = RCC_MCUSSOURCE_PLL3;
+ RCC_ClkInitStruct.MCUInit.MCU_Div = RCC_MCU_DIV1;
+ RCC_ClkInitStruct.APB4_Div = RCC_APB4_DIV2;
+ RCC_ClkInitStruct.APB5_Div = RCC_APB5_DIV4;
+ RCC_ClkInitStruct.APB1_Div = RCC_APB1_DIV2;
+ RCC_ClkInitStruct.APB2_Div = RCC_APB2_DIV2;
+ RCC_ClkInitStruct.APB3_Div = RCC_APB3_DIV2;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** Set the HSE division factor for RTC clock
+ */
+ __HAL_RCC_RTC_HSEDIV(24);
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+
+ /** Initializes the common periph clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_CKPER;
+ PeriphClkInit.CkperClockSelection = RCC_CKPERCLKSOURCE_HSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief ADC2 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_ADC2_Init(void)
+{
+
+ /* USER CODE BEGIN ADC2_Init 0 */
+
+ /* USER CODE END ADC2_Init 0 */
+
+ ADC_ChannelConfTypeDef sConfig = {0};
+
+ /* USER CODE BEGIN ADC2_Init 1 */
+
+ /* USER CODE END ADC2_Init 1 */
+ /** Common config
+ */
+ hadc2.Instance = ADC2;
+ hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV2;
+ hadc2.Init.Resolution = ADC_RESOLUTION_16B;
+ hadc2.Init.ScanConvMode = ADC_SCAN_DISABLE;
+ hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
+ hadc2.Init.LowPowerAutoWait = DISABLE;
+ hadc2.Init.ContinuousConvMode = DISABLE;
+ hadc2.Init.NbrOfConversion = 1;
+ hadc2.Init.DiscontinuousConvMode = DISABLE;
+ hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START;
+ hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
+ hadc2.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR;
+ hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED;
+ hadc2.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE;
+ hadc2.Init.OversamplingMode = DISABLE;
+ if (HAL_ADC_Init(&hadc2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** Configure Regular Channel
+ */
+ sConfig.Channel = ADC_CHANNEL_6;
+ sConfig.Rank = ADC_REGULAR_RANK_1;
+ sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
+ sConfig.SingleDiff = ADC_SINGLE_ENDED;
+ sConfig.OffsetNumber = ADC_OFFSET_NONE;
+ sConfig.Offset = 0;
+ if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN ADC2_Init 2 */
+
+ /* USER CODE END ADC2_Init 2 */
+
+}
+
+/**
+ * @brief DAC1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DAC1_Init(void)
+{
+
+ /* USER CODE BEGIN DAC1_Init 0 */
+
+ /* USER CODE END DAC1_Init 0 */
+
+ DAC_ChannelConfTypeDef sConfig = {0};
+
+ /* USER CODE BEGIN DAC1_Init 1 */
+
+ /* USER CODE END DAC1_Init 1 */
+ /** DAC Initialization
+ */
+ hdac1.Instance = DAC1;
+ if (HAL_DAC_Init(&hdac1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** DAC channel OUT1 config
+ */
+ sConfig.DAC_HighFrequency = DAC_HIGH_FREQUENCY_INTERFACE_MODE_DISABLE;
+ sConfig.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_DISABLE;
+ sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
+ sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
+ sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_DISABLE;
+ sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY;
+ if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DAC1_Init 2 */
+
+ /* USER CODE END DAC1_Init 2 */
+
+}
+
+/**
+ * @brief IPCC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_IPCC_Init(void)
+{
+
+ /* USER CODE BEGIN IPCC_Init 0 */
+
+ /* USER CODE END IPCC_Init 0 */
+
+ /* USER CODE BEGIN IPCC_Init 1 */
+
+ /* USER CODE END IPCC_Init 1 */
+ hipcc.Instance = IPCC;
+ if (HAL_IPCC_Init(&hipcc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN IPCC_Init 2 */
+
+ /* USER CODE END IPCC_Init 2 */
+
+}
+
+/**
+ * @brief LPTIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LPTIM1_Init(void)
+{
+
+ /* USER CODE BEGIN LPTIM1_Init 0 */
+
+ /* USER CODE END LPTIM1_Init 0 */
+
+ /* USER CODE BEGIN LPTIM1_Init 1 */
+
+ /* USER CODE END LPTIM1_Init 1 */
+ hlptim1.Instance = LPTIM1;
+ hlptim1.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim1.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim1.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim1.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim1.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim1.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ hlptim1.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO;
+ hlptim1.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO;
+ if (HAL_LPTIM_Init(&hlptim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LPTIM1_Init 2 */
+
+ /* USER CODE END LPTIM1_Init 2 */
+
+}
+
+/**
+ * @brief LPTIM2 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LPTIM2_Init(void)
+{
+
+ /* USER CODE BEGIN LPTIM2_Init 0 */
+
+ /* USER CODE END LPTIM2_Init 0 */
+
+ /* USER CODE BEGIN LPTIM2_Init 1 */
+
+ /* USER CODE END LPTIM2_Init 1 */
+ hlptim2.Instance = LPTIM2;
+ hlptim2.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim2.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim2.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim2.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim2.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim2.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ hlptim2.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO;
+ hlptim2.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO;
+ if (HAL_LPTIM_Init(&hlptim2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LPTIM2_Init 2 */
+
+ /* USER CODE END LPTIM2_Init 2 */
+
+}
+
+/**
+ * @brief LPTIM3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LPTIM3_Init(void)
+{
+
+ /* USER CODE BEGIN LPTIM3_Init 0 */
+
+ /* USER CODE END LPTIM3_Init 0 */
+
+ /* USER CODE BEGIN LPTIM3_Init 1 */
+
+ /* USER CODE END LPTIM3_Init 1 */
+ hlptim3.Instance = LPTIM3;
+ hlptim3.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim3.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim3.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim3.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim3.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim3.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ if (HAL_LPTIM_Init(&hlptim3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LPTIM3_Init 2 */
+
+ /* USER CODE END LPTIM3_Init 2 */
+
+}
+
+/**
+ * @brief LPTIM4 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LPTIM4_Init(void)
+{
+
+ /* USER CODE BEGIN LPTIM4_Init 0 */
+
+ /* USER CODE END LPTIM4_Init 0 */
+
+ /* USER CODE BEGIN LPTIM4_Init 1 */
+
+ /* USER CODE END LPTIM4_Init 1 */
+ hlptim4.Instance = LPTIM4;
+ hlptim4.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim4.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim4.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim4.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim4.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim4.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ if (HAL_LPTIM_Init(&hlptim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LPTIM4_Init 2 */
+
+ /* USER CODE END LPTIM4_Init 2 */
+
+}
+
+/**
+ * @brief LPTIM5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LPTIM5_Init(void)
+{
+
+ /* USER CODE BEGIN LPTIM5_Init 0 */
+
+ /* USER CODE END LPTIM5_Init 0 */
+
+ /* USER CODE BEGIN LPTIM5_Init 1 */
+
+ /* USER CODE END LPTIM5_Init 1 */
+ hlptim5.Instance = LPTIM5;
+ hlptim5.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim5.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim5.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim5.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim5.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim5.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ if (HAL_LPTIM_Init(&hlptim5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LPTIM5_Init 2 */
+
+ /* USER CODE END LPTIM5_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES_TXONLY;
+ hspi5.Init.DataSize = SPI_DATASIZE_4BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 0x0;
+ hspi5.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
+ hspi5.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
+ hspi5.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
+ hspi5.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+ hspi5.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+ hspi5.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
+ hspi5.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
+ hspi5.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
+ hspi5.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
+ hspi5.Init.IOSwap = SPI_IO_SWAP_DISABLE;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM4 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM4_Init(void)
+{
+
+ /* USER CODE BEGIN TIM4_Init 0 */
+
+ /* USER CODE END TIM4_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM4_Init 1 */
+
+ /* USER CODE END TIM4_Init 1 */
+ htim4.Instance = TIM4;
+ htim4.Init.Prescaler = 0;
+ htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim4.Init.Period = 0;
+ htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM4_Init 2 */
+
+ /* USER CODE END TIM4_Init 2 */
+ HAL_TIM_MspPostInit(&htim4);
+
+}
+
+/**
+ * @brief TIM14 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM14_Init(void)
+{
+
+ /* USER CODE BEGIN TIM14_Init 0 */
+
+ /* USER CODE END TIM14_Init 0 */
+
+ /* USER CODE BEGIN TIM14_Init 1 */
+
+ /* USER CODE END TIM14_Init 1 */
+ htim14.Instance = TIM14;
+ htim14.Init.Prescaler = 0;
+ htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim14.Init.Period = 0;
+ htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM14_Init 2 */
+
+ /* USER CODE END TIM14_Init 2 */
+
+}
+
+/**
+ * @brief TIM16 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM16_Init(void)
+{
+
+ /* USER CODE BEGIN TIM16_Init 0 */
+
+ /* USER CODE END TIM16_Init 0 */
+
+ /* USER CODE BEGIN TIM16_Init 1 */
+
+ /* USER CODE END TIM16_Init 1 */
+ htim16.Instance = TIM16;
+ htim16.Init.Prescaler = 0;
+ htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim16.Init.Period = 0;
+ htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim16.Init.RepetitionCounter = 0;
+ htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM16_Init 2 */
+
+ /* USER CODE END TIM16_Init 2 */
+
+}
+
+/**
+ * @brief TIM17 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM17_Init(void)
+{
+
+ /* USER CODE BEGIN TIM17_Init 0 */
+
+ /* USER CODE END TIM17_Init 0 */
+
+ /* USER CODE BEGIN TIM17_Init 1 */
+
+ /* USER CODE END TIM17_Init 1 */
+ htim17.Instance = TIM17;
+ htim17.Init.Prescaler = 0;
+ htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim17.Init.Period = 0;
+ htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim17.Init.RepetitionCounter = 0;
+ htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM17_Init 2 */
+
+ /* USER CODE END TIM17_Init 2 */
+
+}
+
+/**
+ * @brief UART4 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_UART4_Init(void)
+{
+
+ /* USER CODE BEGIN UART4_Init 0 */
+
+ /* USER CODE END UART4_Init 0 */
+
+ /* USER CODE BEGIN UART4_Init 1 */
+
+ /* USER CODE END UART4_Init 1 */
+ huart4.Instance = UART4;
+ huart4.Init.BaudRate = 115200;
+ huart4.Init.WordLength = UART_WORDLENGTH_8B;
+ huart4.Init.StopBits = UART_STOPBITS_1;
+ huart4.Init.Parity = UART_PARITY_NONE;
+ huart4.Init.Mode = UART_MODE_TX_RX;
+ huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart4.Init.OverSampling = UART_OVERSAMPLING_16;
+ huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+ huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
+ huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+ if (HAL_UART_Init(&huart4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetTxFifoThreshold(&huart4, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetRxFifoThreshold(&huart4, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_DisableFifoMode(&huart4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN UART4_Init 2 */
+
+ /* USER CODE END UART4_Init 2 */
+
+}
+
+/**
+ * @brief USART3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART3_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART3_Init 0 */
+
+ /* USER CODE END USART3_Init 0 */
+
+ /* USER CODE BEGIN USART3_Init 1 */
+
+ /* USER CODE END USART3_Init 1 */
+ huart3.Instance = USART3;
+ huart3.Init.BaudRate = 115200;
+ huart3.Init.WordLength = UART_WORDLENGTH_8B;
+ huart3.Init.StopBits = UART_STOPBITS_1;
+ huart3.Init.Parity = UART_PARITY_NONE;
+ huart3.Init.Mode = UART_MODE_TX_RX;
+ huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart3.Init.OverSampling = UART_OVERSAMPLING_16;
+ huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+ huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
+ huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+ if (HAL_UART_Init(&huart3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART3_Init 2 */
+
+ /* USER CODE END USART3_Init 2 */
+
+}
+
+/**
+ * @brief WWDG1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_WWDG1_Init(void)
+{
+
+ /* USER CODE BEGIN WWDG1_Init 0 */
+
+ /* USER CODE END WWDG1_Init 0 */
+
+ /* USER CODE BEGIN WWDG1_Init 1 */
+
+ /* USER CODE END WWDG1_Init 1 */
+ hwwdg1.Instance = WWDG1;
+ hwwdg1.Init.Prescaler = WWDG_PRESCALER_8;
+ hwwdg1.Init.Window = 64;
+ hwwdg1.Init.Counter = 64;
+ hwwdg1.Init.EWIMode = WWDG_EWI_DISABLE;
+ if (HAL_WWDG_Init(&hwwdg1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN WWDG1_Init 2 */
+
+ /* USER CODE END WWDG1_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_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOD_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 */
+
+ /* 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,
+ tex: 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/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_hal_msp.c b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_hal_msp.c
new file mode 100644
index 0000000000000000000000000000000000000000..efb81996fad1a5c6a2ad8d9eb6324aed43d28ca4
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_hal_msp.c
@@ -0,0 +1,987 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * File Name : stm32mp1xx_hal_msp.c
+ * Description : This file provides code for the MSP Initialization
+ * and de-Initialization codes.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 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 */
+#include "stpmic.h"
+#include "rtconfig.h"
+/* 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 */
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
+ /**
+ * Initializes the Global MSP.
+ */
+void HAL_MspInit(void)
+{
+ /* USER CODE BEGIN MspInit 0 */
+
+ /* USER CODE END MspInit 0 */
+
+ __HAL_RCC_HSEM_CLK_ENABLE();
+
+ /* System interrupt init*/
+
+ /* USER CODE BEGIN MspInit 1 */
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+#if defined(BSP_USING_ADC) || defined(BSP_USING_DAC)
+ /* Configure PMIC */
+ BSP_PMIC_Init();
+ BSP_PMIC_InitRegulators();
+
+ __HAL_RCC_VREF_CLK_ENABLE();
+ HAL_SYSCFG_VREFBUF_HighImpedanceConfig(SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE);
+ HAL_SYSCFG_EnableVREFBUF();
+#endif
+ }
+ /* USER CODE END MspInit 1 */
+}
+
+/**
+* @brief ADC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+ if(hadc->Instance==ADC2)
+ {
+ /* USER CODE BEGIN ADC2_MspInit 0 */
+
+ /* USER CODE END ADC2_MspInit 0 */
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
+ PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PER;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_ADC12_CLK_ENABLE();
+
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ /**ADC2 GPIO Configuration
+ PF14 ------> ADC2_INP6
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_14;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN ADC2_MspInit 1 */
+ /* USER CODE END ADC2_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief ADC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
+{
+ if(hadc->Instance==ADC2)
+ {
+ /* USER CODE BEGIN ADC2_MspDeInit 0 */
+
+ /* USER CODE END ADC2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_ADC12_CLK_DISABLE();
+
+ /**ADC2 GPIO Configuration
+ PF14 ------> ADC2_INP6
+ */
+ HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14);
+
+ /* USER CODE BEGIN ADC2_MspDeInit 1 */
+
+ /* USER CODE END ADC2_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief DAC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hdac: DAC handle pointer
+* @retval None
+*/
+void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(hdac->Instance==DAC1)
+ {
+ /* USER CODE BEGIN DAC1_MspInit 0 */
+
+ /* USER CODE END DAC1_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_DAC12_CLK_ENABLE();
+
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ /**DAC1 GPIO Configuration
+ PA4 ------> DAC1_OUT1
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_4;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN DAC1_MspInit 1 */
+
+ /* USER CODE END DAC1_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief DAC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hdac: DAC handle pointer
+* @retval None
+*/
+void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
+{
+ if(hdac->Instance==DAC1)
+ {
+ /* USER CODE BEGIN DAC1_MspDeInit 0 */
+
+ /* USER CODE END DAC1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_DAC12_CLK_DISABLE();
+
+ /**DAC1 GPIO Configuration
+ PA4 ------> DAC1_OUT1
+ */
+ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
+
+ /* USER CODE BEGIN DAC1_MspDeInit 1 */
+
+ /* USER CODE END DAC1_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief IPCC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hipcc: IPCC handle pointer
+* @retval None
+*/
+void HAL_IPCC_MspInit(IPCC_HandleTypeDef* hipcc)
+{
+ if(hipcc->Instance==IPCC)
+ {
+ /* USER CODE BEGIN IPCC_MspInit 0 */
+
+ /* USER CODE END IPCC_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_IPCC_CLK_ENABLE();
+ /* IPCC interrupt Init */
+ HAL_NVIC_SetPriority(IPCC_RX1_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(IPCC_RX1_IRQn);
+ HAL_NVIC_SetPriority(IPCC_TX1_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(IPCC_TX1_IRQn);
+ /* USER CODE BEGIN IPCC_MspInit 1 */
+
+ /* USER CODE END IPCC_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief IPCC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hipcc: IPCC handle pointer
+* @retval None
+*/
+void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef* hipcc)
+{
+ if(hipcc->Instance==IPCC)
+ {
+ /* USER CODE BEGIN IPCC_MspDeInit 0 */
+
+ /* USER CODE END IPCC_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_IPCC_CLK_DISABLE();
+
+ /* IPCC interrupt DeInit */
+ HAL_NVIC_DisableIRQ(IPCC_RX1_IRQn);
+ HAL_NVIC_DisableIRQ(IPCC_TX1_IRQn);
+ /* USER CODE BEGIN IPCC_MspDeInit 1 */
+
+ /* USER CODE END IPCC_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief LPTIM MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hlptim: LPTIM handle pointer
+* @retval None
+*/
+void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef* hlptim)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+ if(hlptim->Instance==LPTIM1)
+ {
+ /* USER CODE BEGIN LPTIM1_MspInit 0 */
+
+ /* USER CODE END LPTIM1_MspInit 0 */
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM1;
+ PeriphClkInit.Lptim1ClockSelection = RCC_LPTIM1CLKSOURCE_PCLK1;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_LPTIM1_CLK_ENABLE();
+ /* LPTIM1 interrupt Init */
+ HAL_NVIC_SetPriority(LPTIM1_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(LPTIM1_IRQn);
+ /* USER CODE BEGIN LPTIM1_MspInit 1 */
+
+ /* USER CODE END LPTIM1_MspInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM2)
+ {
+ /* USER CODE BEGIN LPTIM2_MspInit 0 */
+
+ /* USER CODE END LPTIM2_MspInit 0 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM23;
+ PeriphClkInit.Lptim23ClockSelection = RCC_LPTIM23CLKSOURCE_PCLK3;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_LPTIM2_CLK_ENABLE();
+ /* LPTIM2 interrupt Init */
+ HAL_NVIC_SetPriority(LPTIM2_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(LPTIM2_IRQn);
+ /* USER CODE BEGIN LPTIM2_MspInit 1 */
+
+ /* USER CODE END LPTIM2_MspInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM3)
+ {
+ /* USER CODE BEGIN LPTIM3_MspInit 0 */
+
+ /* USER CODE END LPTIM3_MspInit 0 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM23;
+ PeriphClkInit.Lptim23ClockSelection = RCC_LPTIM23CLKSOURCE_PCLK3;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_LPTIM3_CLK_ENABLE();
+ /* LPTIM3 interrupt Init */
+ HAL_NVIC_SetPriority(LPTIM3_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(LPTIM3_IRQn);
+ /* USER CODE BEGIN LPTIM3_MspInit 1 */
+
+ /* USER CODE END LPTIM3_MspInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM4)
+ {
+ /* USER CODE BEGIN LPTIM4_MspInit 0 */
+
+ /* USER CODE END LPTIM4_MspInit 0 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM45;
+ PeriphClkInit.Lptim45ClockSelection = RCC_LPTIM45CLKSOURCE_PCLK3;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_LPTIM4_CLK_ENABLE();
+ /* LPTIM4 interrupt Init */
+ HAL_NVIC_SetPriority(LPTIM4_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(LPTIM4_IRQn);
+ /* USER CODE BEGIN LPTIM4_MspInit 1 */
+
+ /* USER CODE END LPTIM4_MspInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM5)
+ {
+ /* USER CODE BEGIN LPTIM5_MspInit 0 */
+
+ /* USER CODE END LPTIM5_MspInit 0 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPTIM45;
+ PeriphClkInit.Lptim45ClockSelection = RCC_LPTIM45CLKSOURCE_PCLK3;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_LPTIM5_CLK_ENABLE();
+ /* LPTIM5 interrupt Init */
+ HAL_NVIC_SetPriority(LPTIM5_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(LPTIM5_IRQn);
+ /* USER CODE BEGIN LPTIM5_MspInit 1 */
+
+ /* USER CODE END LPTIM5_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief LPTIM MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hlptim: LPTIM handle pointer
+* @retval None
+*/
+void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef* hlptim)
+{
+ if(hlptim->Instance==LPTIM1)
+ {
+ /* USER CODE BEGIN LPTIM1_MspDeInit 0 */
+
+ /* USER CODE END LPTIM1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_LPTIM1_CLK_DISABLE();
+
+ /* LPTIM1 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPTIM1_IRQn);
+ /* USER CODE BEGIN LPTIM1_MspDeInit 1 */
+
+ /* USER CODE END LPTIM1_MspDeInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM2)
+ {
+ /* USER CODE BEGIN LPTIM2_MspDeInit 0 */
+
+ /* USER CODE END LPTIM2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_LPTIM2_CLK_DISABLE();
+
+ /* LPTIM2 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPTIM2_IRQn);
+ /* USER CODE BEGIN LPTIM2_MspDeInit 1 */
+
+ /* USER CODE END LPTIM2_MspDeInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM3)
+ {
+ /* USER CODE BEGIN LPTIM3_MspDeInit 0 */
+
+ /* USER CODE END LPTIM3_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_LPTIM3_CLK_DISABLE();
+
+ /* LPTIM3 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPTIM3_IRQn);
+ /* USER CODE BEGIN LPTIM3_MspDeInit 1 */
+
+ /* USER CODE END LPTIM3_MspDeInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM4)
+ {
+ /* USER CODE BEGIN LPTIM4_MspDeInit 0 */
+
+ /* USER CODE END LPTIM4_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_LPTIM4_CLK_DISABLE();
+
+ /* LPTIM4 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPTIM4_IRQn);
+ /* USER CODE BEGIN LPTIM4_MspDeInit 1 */
+
+ /* USER CODE END LPTIM4_MspDeInit 1 */
+ }
+ else if(hlptim->Instance==LPTIM5)
+ {
+ /* USER CODE BEGIN LPTIM5_MspDeInit 0 */
+
+ /* USER CODE END LPTIM5_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_LPTIM5_CLK_DISABLE();
+
+ /* LPTIM5 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPTIM5_IRQn);
+ /* USER CODE BEGIN LPTIM5_MspDeInit 1 */
+
+ /* USER CODE END LPTIM5_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief SPI MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+ if(hspi->Instance==SPI5)
+ {
+ /* USER CODE BEGIN SPI5_MspInit 0 */
+
+ /* USER CODE END SPI5_MspInit 0 */
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_SPI45;
+ PeriphClkInit.Spi45ClockSelection = RCC_SPI45CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_SPI5_CLK_ENABLE();
+
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ /**SPI5 GPIO Configuration
+ PF9 ------> SPI5_MOSI
+ PF7 ------> SPI5_SCK
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_7;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
+ GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN SPI5_MspInit 1 */
+
+ /* USER CODE END SPI5_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief SPI MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
+{
+ if(hspi->Instance==SPI5)
+ {
+ /* USER CODE BEGIN SPI5_MspDeInit 0 */
+
+ /* USER CODE END SPI5_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_SPI5_CLK_DISABLE();
+
+ /**SPI5 GPIO Configuration
+ PF9 ------> SPI5_MOSI
+ PF7 ------> SPI5_SCK
+ */
+ HAL_GPIO_DeInit(GPIOF, GPIO_PIN_9|GPIO_PIN_7);
+
+ /* USER CODE BEGIN SPI5_MspDeInit 1 */
+
+ /* USER CODE END SPI5_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief TIM_Base MSP Initialization
+* This function configures the hardware resources used in this example
+* @param htim_base: TIM_Base handle pointer
+* @retval None
+*/
+void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
+{
+ if(htim_base->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspInit 0 */
+
+ /* USER CODE END TIM4_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM4_CLK_ENABLE();
+ /* USER CODE BEGIN TIM4_MspInit 1 */
+
+ /* USER CODE END TIM4_MspInit 1 */
+ }
+ else if(htim_base->Instance==TIM14)
+ {
+ /* USER CODE BEGIN TIM14_MspInit 0 */
+
+ /* USER CODE END TIM14_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM14_CLK_ENABLE();
+ /* USER CODE BEGIN TIM14_MspInit 1 */
+
+ /* USER CODE END TIM14_MspInit 1 */
+ }
+ else if(htim_base->Instance==TIM16)
+ {
+ /* USER CODE BEGIN TIM16_MspInit 0 */
+
+ /* USER CODE END TIM16_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM16_CLK_ENABLE();
+ /* USER CODE BEGIN TIM16_MspInit 1 */
+
+ /* USER CODE END TIM16_MspInit 1 */
+ }
+ else if(htim_base->Instance==TIM17)
+ {
+ /* USER CODE BEGIN TIM17_MspInit 0 */
+
+ /* USER CODE END TIM17_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_TIM17_CLK_ENABLE();
+ /* USER CODE BEGIN TIM17_MspInit 1 */
+
+ /* USER CODE END TIM17_MspInit 1 */
+ }
+
+}
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(htim->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspPostInit 0 */
+
+ /* USER CODE END TIM4_MspPostInit 0 */
+
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+ /**TIM4 GPIO Configuration
+ PD13 ------> TIM4_CH2
+ */
+ 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_AF2_TIM4;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM4_MspPostInit 1 */
+
+ /* USER CODE END TIM4_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==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspDeInit 0 */
+
+ /* USER CODE END TIM4_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM4_CLK_DISABLE();
+ /* USER CODE BEGIN TIM4_MspDeInit 1 */
+
+ /* USER CODE END TIM4_MspDeInit 1 */
+ }
+ else if(htim_base->Instance==TIM14)
+ {
+ /* USER CODE BEGIN TIM14_MspDeInit 0 */
+
+ /* USER CODE END TIM14_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM14_CLK_DISABLE();
+ /* USER CODE BEGIN TIM14_MspDeInit 1 */
+
+ /* USER CODE END TIM14_MspDeInit 1 */
+ }
+ else if(htim_base->Instance==TIM16)
+ {
+ /* USER CODE BEGIN TIM16_MspDeInit 0 */
+
+ /* USER CODE END TIM16_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM16_CLK_DISABLE();
+ /* USER CODE BEGIN TIM16_MspDeInit 1 */
+
+ /* USER CODE END TIM16_MspDeInit 1 */
+ }
+ else if(htim_base->Instance==TIM17)
+ {
+ /* USER CODE BEGIN TIM17_MspDeInit 0 */
+
+ /* USER CODE END TIM17_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM17_CLK_DISABLE();
+ /* USER CODE BEGIN TIM17_MspDeInit 1 */
+
+ /* USER CODE END TIM17_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief UART MSP Initialization
+* This function configures the hardware resources used in this example
+* @param huart: UART handle pointer
+* @retval None
+*/
+void HAL_UART_MspInit(UART_HandleTypeDef* huart)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+ if(huart->Instance==UART4)
+ {
+ /* USER CODE BEGIN UART4_MspInit 0 */
+
+ /* USER CODE END UART4_MspInit 0 */
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_UART24;
+ PeriphClkInit.Uart24ClockSelection = RCC_UART24CLKSOURCE_HSI;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_UART4_CLK_ENABLE();
+
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ /**UART4 GPIO Configuration
+ PG11 ------> UART4_TX
+ PB2 ------> UART4_RX
+ */
+ GPIO_InitStruct.Pin = STLINK_RX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF6_UART4;
+ HAL_GPIO_Init(STLINK_RX_GPIO_Port, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = STLINK_TX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Alternate = GPIO_AF8_UART4;
+ HAL_GPIO_Init(STLINK_TX_GPIO_Port, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN UART4_MspInit 1 */
+
+ /* USER CODE END UART4_MspInit 1 */
+ }
+ else if(huart->Instance==USART3)
+ {
+ /* USER CODE BEGIN USART3_MspInit 0 */
+
+ /* USER CODE END USART3_MspInit 0 */
+
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_UART35;
+ PeriphClkInit.Uart35ClockSelection = RCC_UART35CLKSOURCE_PCLK1;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_USART3_CLK_ENABLE();
+
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ /**USART3 GPIO Configuration
+ PB10 ------> USART3_TX
+ PB12 ------> USART3_RX
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = GPIO_PIN_12;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Alternate = GPIO_AF8_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==UART4)
+ {
+ /* USER CODE BEGIN UART4_MspDeInit 0 */
+
+ /* USER CODE END UART4_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_UART4_CLK_DISABLE();
+
+ /**UART4 GPIO Configuration
+ PG11 ------> UART4_TX
+ PB2 ------> UART4_RX
+ */
+ HAL_GPIO_DeInit(STLINK_RX_GPIO_Port, STLINK_RX_Pin);
+
+ HAL_GPIO_DeInit(STLINK_TX_GPIO_Port, STLINK_TX_Pin);
+
+ /* USER CODE BEGIN UART4_MspDeInit 1 */
+
+ /* USER CODE END UART4_MspDeInit 1 */
+ }
+ else if(huart->Instance==USART3)
+ {
+ /* USER CODE BEGIN USART3_MspDeInit 0 */
+
+ /* USER CODE END USART3_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_USART3_CLK_DISABLE();
+
+ /**USART3 GPIO Configuration
+ PB10 ------> USART3_TX
+ PB12 ------> USART3_RX
+ */
+ HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_12);
+
+ /* USER CODE BEGIN USART3_MspDeInit 1 */
+
+ /* USER CODE END USART3_MspDeInit 1 */
+ }
+
+}
+
+/**
+* @brief WWDG MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hwwdg: WWDG handle pointer
+* @retval None
+*/
+void HAL_WWDG_MspInit(WWDG_HandleTypeDef* hwwdg)
+{
+ if(hwwdg->Instance==WWDG1)
+ {
+ /* USER CODE BEGIN WWDG1_MspInit 0 */
+
+ /* USER CODE END WWDG1_MspInit 0 */
+ /* Peripheral clock enable */
+ __HAL_RCC_WWDG1_CLK_ENABLE();
+ /* WWDG1 interrupt Init */
+ HAL_NVIC_SetPriority(WWDG1_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(WWDG1_IRQn);
+ /* USER CODE BEGIN WWDG1_MspInit 1 */
+
+ /* USER CODE END WWDG1_MspInit 1 */
+ }
+
+}
+
+/* USER CODE BEGIN 1 */
+/**
+ * @brief Initializes I2C MSP.
+ * @param hI2c : I2C handler
+ * @retval None
+ */
+void HAL_I2C_MspInit(I2C_HandleTypeDef *hI2c)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+
+ if(hI2c->Instance == I2C4)
+ {
+ if(IS_ENGINEERING_BOOT_MODE())
+ {
+ /*** Configure the I2C peripheral clock ***/
+ PeriphClkInit.I2c46ClockSelection = RCC_I2C46CLKSOURCE_HSI;
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C46;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ }
+
+ /* Enable GPIO clock */
+ __HAL_RCC_GPIOZ_CLK_ENABLE();
+
+ /* Configure I2C Tx/RX as alternate function */
+ GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF6_I2C4;
+ HAL_GPIO_Init(GPIOZ, &GPIO_InitStruct);
+
+ /* Enable I2C clock */
+ __HAL_RCC_I2C4_CLK_ENABLE();
+ /* Force the I2C peripheral clock reset */
+ __HAL_RCC_I2C4_FORCE_RESET();
+ /* Release the I2C peripheral clock reset */
+ __HAL_RCC_I2C4_RELEASE_RESET();
+
+ HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 1);
+ HAL_NVIC_EnableIRQ(I2C4_ER_IRQn);
+ HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 2);
+ HAL_NVIC_EnableIRQ(I2C4_EV_IRQn);
+ }
+}
+
+/**
+ * @brief DeInitializes I2C MSP.
+ * @param hI2c : I2C handler
+ * @retval None
+ */
+void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hI2c)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+
+ if(hI2c->Instance == I2C4)
+ {
+ /* Configure I2C Tx, Rx as alternate function */
+ GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5;
+ HAL_GPIO_DeInit(GPIOZ, GPIO_InitStruct.Pin);
+
+ /* Disable I2C clock */
+ __HAL_RCC_I2C4_CLK_DISABLE();
+
+ /* Disable NVIC for I2C */
+ HAL_NVIC_DisableIRQ(I2C4_ER_IRQn);
+ HAL_NVIC_DisableIRQ(I2C4_EV_IRQn);
+ }
+}
+
+/**
+ * @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 */
+
+ /* USER CODE END Error_Handler_Debug */
+}
+/* USER CODE END 1 */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_it.c b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_it.c
new file mode 100644
index 0000000000000000000000000000000000000000..18c094f48dc181c3f7351e5309a18379cc085bf9
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/CM4/Src/stm32mp1xx_it.c
@@ -0,0 +1,321 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32mp1xx_it.c
+ * @brief Interrupt Service Routines.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 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 "stm32mp1xx_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 --------------------------------------------------------*/
+extern IPCC_HandleTypeDef hipcc;
+extern LPTIM_HandleTypeDef hlptim1;
+extern LPTIM_HandleTypeDef hlptim2;
+extern LPTIM_HandleTypeDef hlptim3;
+extern LPTIM_HandleTypeDef hlptim4;
+extern LPTIM_HandleTypeDef hlptim5;
+extern WWDG_HandleTypeDef hwwdg1;
+/* 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 */
+
+ /* 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 */
+}
+
+/******************************************************************************/
+/* STM32MP1xx 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_stm32mp1xx.s). */
+/******************************************************************************/
+
+/**
+ * @brief This function handles Window watchdog interrupt.
+ */
+void WWDG1_IRQHandler(void)
+{
+ /* USER CODE BEGIN WWDG1_IRQn 0 */
+
+ /* USER CODE END WWDG1_IRQn 0 */
+ HAL_WWDG_IRQHandler(&hwwdg1);
+ /* USER CODE BEGIN WWDG1_IRQn 1 */
+
+ /* USER CODE END WWDG1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPTIM1 global interrupt.
+ */
+void LPTIM1_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPTIM1_IRQn 0 */
+
+ /* USER CODE END LPTIM1_IRQn 0 */
+ HAL_LPTIM_IRQHandler(&hlptim1);
+ /* USER CODE BEGIN LPTIM1_IRQn 1 */
+
+ /* USER CODE END LPTIM1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles IPCC RX1 occupied interrupt.
+ */
+void IPCC_RX1_IRQHandler(void)
+{
+ /* USER CODE BEGIN IPCC_RX1_IRQn 0 */
+
+ /* USER CODE END IPCC_RX1_IRQn 0 */
+ HAL_IPCC_RX_IRQHandler(&hipcc);
+ /* USER CODE BEGIN IPCC_RX1_IRQn 1 */
+
+ /* USER CODE END IPCC_RX1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles IPCC TX1 free interrupt.
+ */
+void IPCC_TX1_IRQHandler(void)
+{
+ /* USER CODE BEGIN IPCC_TX1_IRQn 0 */
+
+ /* USER CODE END IPCC_TX1_IRQn 0 */
+ HAL_IPCC_TX_IRQHandler(&hipcc);
+ /* USER CODE BEGIN IPCC_TX1_IRQn 1 */
+
+ /* USER CODE END IPCC_TX1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPTIM2 global interrupt.
+ */
+void LPTIM2_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPTIM2_IRQn 0 */
+
+ /* USER CODE END LPTIM2_IRQn 0 */
+ HAL_LPTIM_IRQHandler(&hlptim2);
+ /* USER CODE BEGIN LPTIM2_IRQn 1 */
+
+ /* USER CODE END LPTIM2_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPTIM3 global interrupt.
+ */
+void LPTIM3_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPTIM3_IRQn 0 */
+
+ /* USER CODE END LPTIM3_IRQn 0 */
+ HAL_LPTIM_IRQHandler(&hlptim3);
+ /* USER CODE BEGIN LPTIM3_IRQn 1 */
+
+ /* USER CODE END LPTIM3_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPTIM4 global interrupt.
+ */
+void LPTIM4_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPTIM4_IRQn 0 */
+
+ /* USER CODE END LPTIM4_IRQn 0 */
+ HAL_LPTIM_IRQHandler(&hlptim4);
+ /* USER CODE BEGIN LPTIM4_IRQn 1 */
+
+ /* USER CODE END LPTIM4_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPTIM5 global interrupt.
+ */
+void LPTIM5_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPTIM5_IRQn 0 */
+
+ /* USER CODE END LPTIM5_IRQn 0 */
+ HAL_LPTIM_IRQHandler(&hlptim5);
+ /* USER CODE BEGIN LPTIM5_IRQn 1 */
+
+ /* USER CODE END LPTIM5_IRQn 1 */
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/Common/System/system_stm32mp1xx.c b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/Common/System/system_stm32mp1xx.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e606791bf5087ab6b0f41dce0f59be2ae03819b
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/Common/System/system_stm32mp1xx.c
@@ -0,0 +1,290 @@
+/**
+ ******************************************************************************
+ * @file system_stm32mp1xx.c
+ * @author MCD Application Team
+ * @brief CMSIS Cortex Device Peripheral Access Layer System Source File.
+ *
+ * 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_stm32mp1xx.s" file.
+ *
+ * - SystemCoreClock variable: Contains the core clock frequency, 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.
+ *
+ *
+ ******************************************************************************
+ *
+ * @attention
+ *
+ * © Copyright (c) 2019 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 stm32mp1xx_system
+ * @{
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_Includes
+ * @{
+ */
+
+#include "stm32mp1xx_hal.h"
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_TypesDefinitions
+ * @{
+ */
+
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_Defines
+ * @{
+ */
+
+
+/************************* Miscellaneous Configuration ************************/
+/*!< Uncomment the following line if you need to use external SRAM mounted
+ on EVAL board as data memory */
+/* #define DATA_IN_ExtSRAM */
+
+/*!< Uncomment the following line if you need to relocate your vector Table in
+ Internal SRAM. */
+/* #define VECT_TAB_SRAM */
+#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
+ This value must be a multiple of 0x400. */
+/******************************************************************************/
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_Macros
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_Variables
+ * @{
+ */
+ /* This variable is updated in three ways:
+ 1) by calling CMSIS function SystemCoreClockUpdate()
+ 2) each time HAL_RCC_ClockConfig() is called to configure the system clock
+ frequency
+ Note: If you use this function to configure the system clock;
+ then there is no need to call the first functions listed above,
+ since SystemCoreClock variable is updated automatically.
+ */
+ uint32_t SystemCoreClock = HSI_VALUE;
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_FunctionPrototypes
+ * @{
+ */
+
+#if defined (DATA_IN_ExtSRAM)
+ static void SystemInit_ExtMemCtl(void);
+#endif /* DATA_IN_ExtSRAM */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32MP1xx_System_Private_Functions
+ * @{
+ */
+
+ /**
+ * @brief Setup the microcontroller system
+ * Initialize the FPU setting, vector table location and External memory
+ * configuration.
+ * @param None
+ * @retval None
+ */
+void SystemInit (void)
+{
+ /* FPU settings ------------------------------------------------------------*/
+#if defined (CORE_CM4)
+ #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 add offset address ------------------*/
+#if defined (VECT_TAB_SRAM)
+ SCB->VTOR = MCU_AHB_SRAM | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
+#endif
+ /* Disable all interrupts and events */
+ CLEAR_REG(EXTI_C2->IMR1);
+ CLEAR_REG(EXTI_C2->IMR2);
+ CLEAR_REG(EXTI_C2->IMR3);
+ CLEAR_REG(EXTI_C2->EMR1);
+ CLEAR_REG(EXTI_C2->EMR2);
+ CLEAR_REG(EXTI_C2->EMR3);
+#else
+#error Please #define CORE_CM4
+#endif
+}
+
+/**
+ * @brief Update SystemCoreClock variable according to Clock Register Values.
+ * The SystemCoreClock variable contains the core clock frequency (Hz),
+ * it can be used by the user application to setup the SysTick timer or
+ * configure other parameters.
+ *
+ * @note Each time the core clock 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 CSI, SystemCoreClock will contain the
+ * CSI_VALUE(***)
+ *
+ * - If SYSCLK source is PLL3_P, SystemCoreClock will contain the
+ * HSI_VALUE(*) or the HSE_VALUE(*) or the CSI_VALUE(***)
+ * multiplied/divided by the PLL3 factors.
+ *
+ * (*) HSI_VALUE is a constant defined in stm32mp1xx_hal_conf.h file
+ * (default value 64 MHz) but the real value may vary depending
+ * on the variations in voltage and temperature.
+ *
+ * (**) HSE_VALUE is a constant defined in stm32mp1xx_hal_conf.h file
+ * (default value 24 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.
+ *
+ * (***) CSI_VALUE is a constant defined in stm32mp1xx_hal_conf.h file
+ * (default value 4 MHz)but the real value may vary depending
+ * on the variations in voltage and temperature.
+ *
+ * - 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 pllsource, pll3m, pll3fracen;
+ float fracn1, pll3vco;
+
+ switch (RCC->MSSCKSELR & RCC_MSSCKSELR_MCUSSRC)
+ {
+ case 0x00: /* HSI used as system clock source */
+ SystemCoreClock = (HSI_VALUE >> (RCC->HSICFGR & RCC_HSICFGR_HSIDIV));
+ break;
+
+ case 0x01: /* HSE used as system clock source */
+ SystemCoreClock = HSE_VALUE;
+ break;
+
+ case 0x02: /* CSI used as system clock source */
+ SystemCoreClock = CSI_VALUE;
+ break;
+
+ case 0x03: /* PLL3_P used as system clock source */
+ pllsource = (RCC->RCK3SELR & RCC_RCK3SELR_PLL3SRC);
+ pll3m = ((RCC->PLL3CFGR1 & RCC_PLL3CFGR1_DIVM3) >> RCC_PLL3CFGR1_DIVM3_Pos) + 1U;
+ pll3fracen = (RCC->PLL3FRACR & RCC_PLL3FRACR_FRACLE) >> 16U;
+ fracn1 = (float)(pll3fracen * ((RCC->PLL3FRACR & RCC_PLL3FRACR_FRACV) >> 3U));
+ pll3vco = (float)((float)((RCC->PLL3CFGR1 & RCC_PLL3CFGR1_DIVN) + 1U) + (fracn1 / (float) 0x1FFF));
+
+ if (pll3m != 0U)
+ {
+ switch (pllsource)
+ {
+ case 0x00: /* HSI used as PLL clock source */
+ pll3vco *= (float)((HSI_VALUE >> (RCC->HSICFGR & RCC_HSICFGR_HSIDIV)) / pll3m);
+ break;
+
+ case 0x01: /* HSE used as PLL clock source */
+ pll3vco *= (float)(HSE_VALUE / pll3m);
+ break;
+
+ case 0x02: /* CSI used as PLL clock source */
+ pll3vco *= (float)(CSI_VALUE / pll3m);
+ break;
+
+ case 0x03: /* No clock source for PLL */
+ pll3vco = 0;
+ break;
+ }
+ SystemCoreClock = (uint32_t)(pll3vco/ ((float)((RCC->PLL3CFGR2 & RCC_PLL3CFGR2_DIVP) + 1U)));
+ }
+ else
+ {
+ SystemCoreClock = 0U;
+ }
+ break;
+ }
+
+ /* Compute mcu_ck */
+ SystemCoreClock = SystemCoreClock >> (RCC->MCUDIVR & RCC_MCUDIVR_MCUDIV);
+}
+
+
+#ifdef DATA_IN_ExtSRAM
+/**
+ * @brief Setup the external memory controller.
+ * Called in startup_stm32mp15xx.s before jump to main.
+ * This function configures the external SRAM mounted on Eval boards
+ * This SRAM will be used as program data memory (including heap and stack).
+ * @param None
+ * @retval None
+ */
+void SystemInit_ExtMemCtl(void)
+{
+
+}
+#endif /* DATA_IN_ExtSRAM */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/STM32MP157-DK1.ioc b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/STM32MP157-DK1.ioc
new file mode 100644
index 0000000000000000000000000000000000000000..2a094a9c12ff1a1ae9ac0f94adfe709064c275c6
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/CubeMX_Config/STM32MP157-DK1.ioc
@@ -0,0 +1,857 @@
+#MicroXplorer Configuration settings - do not modify
+ADC2.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_6
+ADC2.ClockPrescaler=ADC_CLOCK_ASYNC_DIV2
+ADC2.IPParameters=Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,OffsetNumber-2\#ChannelRegularConversion,NbrOfConversionFlag,Resolution,ClockPrescaler
+ADC2.NbrOfConversionFlag=1
+ADC2.OffsetNumber-2\#ChannelRegularConversion=ADC_OFFSET_NONE
+ADC2.Rank-2\#ChannelRegularConversion=1
+ADC2.Resolution=ADC_RESOLUTION_16B
+ADC2.SamplingTime-2\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
+BootLoader.IPs=RCC,DDR
+BootROM.IPs=RCC
+CortexA7NS.IPs=DDR\:I,RCC\:I,RTC\:I,BSEC,ETZPC,GIC,TAMP\:I,DMA\:I,PWR,SPI2\:I,I2S2\:I,IPCC\:I,TIM3\:I,VREFBUF\:I,SAI4\:I,HSEM\:I,RNG1,DMA1\:I,MDMA_A7NS\:I
+CortexA7S.IPs=BSEC\:I,ETZPC\:I,GIC\:I,RCC,PWR\:I,RNG1\:I,RTC,DDR,HSEM,TAMP,MDMA_A7S\:I
+CortexM4.IPs=IPCC,HSEM,RCC,NVIC\:I,ETZPC,FREERTOS\:I,DMA,PWR,SYS\:I,TIM4\:I,TIM14\:I,TIM16\:I,TIM17\:I,SPI5\:I,UART4\:I,UART5\:I,USART2\:I,ADC1\:I,ADC2\:I,USART3\:I,DAC1\:I,WWDG1\:I,LPTIM1\:I,LPTIM2\:I,LPTIM3\:I,LPTIM4\:I,LPTIM5\:I,DMA2\:I
+DDR.ADDRMAP1=0x00070707
+DDR.ADDRMAP3=0x1F000000
+DDR.ADDRMAP5=0x06060606
+DDR.ADDRMAP6=0x0F060606
+DDR.DDR_Frequency=533.0
+DDR.DFITMG0=0x02060105
+DDR.IPParameters=DDR_Frequency,RL,addrmap_col_b9,addrmap_col_b10,addrmap_col_b11,addrmap_bank_b0,addrmap_bank_b1,addrmap_bank_b2,addrmap_row_b0,addrmap_row_b1,addrmap_row_b2_10,addrmap_row_b11,addrmap_row_b12,addrmap_row_b13,addrmap_row_b14,addrmap_row_b15,MSTR,DFITMG0,SCHED,ADDRMAP1,ADDRMAP3,ADDRMAP5,ADDRMAP6
+DDR.MSTR=0x00041401
+DDR.RL=8
+DDR.SCHED=0x00000C01
+DDR.addrmap_bank_b0=7
+DDR.addrmap_bank_b1=7
+DDR.addrmap_bank_b2=7
+DDR.addrmap_col_b10=31
+DDR.addrmap_col_b11=31
+DDR.addrmap_col_b9=31
+DDR.addrmap_row_b0=6
+DDR.addrmap_row_b1=6
+DDR.addrmap_row_b11=6
+DDR.addrmap_row_b12=6
+DDR.addrmap_row_b13=6
+DDR.addrmap_row_b14=6
+DDR.addrmap_row_b15=15
+DDR.addrmap_row_b2_10=6
+DDR_A0.GPIOParameters=GPIO_Label
+DDR_A0.GPIO_Label=DDR_A0 [MT41K256M16TW_A0]
+DDR_A0.Locked=true
+DDR_A0.Mode=DDR3
+DDR_A0.Signal=DDR_A0
+DDR_A1.GPIOParameters=GPIO_Label
+DDR_A1.GPIO_Label=DDR_A1 [MT41K256M16TW_A1]
+DDR_A1.Locked=true
+DDR_A1.Mode=DDR3
+DDR_A1.Signal=DDR_A1
+DDR_A10.GPIOParameters=GPIO_Label
+DDR_A10.GPIO_Label=DDR_A10 [MT41K256M16TW_A10]
+DDR_A10.Locked=true
+DDR_A10.Mode=DDR3
+DDR_A10.Signal=DDR_A10
+DDR_A11.GPIOParameters=GPIO_Label
+DDR_A11.GPIO_Label=DDR_A11 [MT41K256M16TW_A11]
+DDR_A11.Locked=true
+DDR_A11.Mode=DDR3
+DDR_A11.Signal=DDR_A11
+DDR_A12.GPIOParameters=GPIO_Label
+DDR_A12.GPIO_Label=DDR_A12 [MT41K256M16TW_A12]
+DDR_A12.Locked=true
+DDR_A12.Mode=4Gb_16bits
+DDR_A12.Signal=DDR_A12
+DDR_A13.GPIOParameters=GPIO_Label
+DDR_A13.GPIO_Label=DDR_A13 [MT41K256M16TW_A13]
+DDR_A13.Locked=true
+DDR_A13.Mode=4Gb_16bits
+DDR_A13.Signal=DDR_A13
+DDR_A14.GPIOParameters=GPIO_Label
+DDR_A14.GPIO_Label=DDR_A14 [MT41K256M16TW_A14]
+DDR_A14.Locked=true
+DDR_A14.Mode=4Gb_16bits
+DDR_A14.Signal=DDR_A14
+DDR_A2.GPIOParameters=GPIO_Label
+DDR_A2.GPIO_Label=DDR_A2 [MT41K256M16TW_A2]
+DDR_A2.Locked=true
+DDR_A2.Mode=DDR3
+DDR_A2.Signal=DDR_A2
+DDR_A3.GPIOParameters=GPIO_Label
+DDR_A3.GPIO_Label=DDR_A3 [MT41K256M16TW_A3]
+DDR_A3.Locked=true
+DDR_A3.Mode=DDR3
+DDR_A3.Signal=DDR_A3
+DDR_A4.GPIOParameters=GPIO_Label
+DDR_A4.GPIO_Label=DDR_A4 [MT41K256M16TW_A4]
+DDR_A4.Locked=true
+DDR_A4.Mode=DDR3
+DDR_A4.Signal=DDR_A4
+DDR_A5.GPIOParameters=GPIO_Label
+DDR_A5.GPIO_Label=DDR_A5 [MT41K256M16TW_A5]
+DDR_A5.Locked=true
+DDR_A5.Mode=DDR3
+DDR_A5.Signal=DDR_A5
+DDR_A6.GPIOParameters=GPIO_Label
+DDR_A6.GPIO_Label=DDR_A6 [MT41K256M16TW_A6]
+DDR_A6.Locked=true
+DDR_A6.Mode=DDR3
+DDR_A6.Signal=DDR_A6
+DDR_A7.GPIOParameters=GPIO_Label
+DDR_A7.GPIO_Label=DDR_A7 [MT41K256M16TW_A7]
+DDR_A7.Locked=true
+DDR_A7.Mode=DDR3
+DDR_A7.Signal=DDR_A7
+DDR_A8.GPIOParameters=GPIO_Label
+DDR_A8.GPIO_Label=DDR_A8 [MT41K256M16TW_A8]
+DDR_A8.Locked=true
+DDR_A8.Mode=DDR3
+DDR_A8.Signal=DDR_A8
+DDR_A9.GPIOParameters=GPIO_Label
+DDR_A9.GPIO_Label=DDR_A9 [MT41K256M16TW_A9]
+DDR_A9.Locked=true
+DDR_A9.Mode=DDR3
+DDR_A9.Signal=DDR_A9
+DDR_ATO.GPIOParameters=GPIO_Label
+DDR_ATO.GPIO_Label=DDR_ATO
+DDR_ATO.Locked=true
+DDR_ATO.Mode=DDR3
+DDR_ATO.Signal=DDR_ATO
+DDR_BA0.GPIOParameters=GPIO_Label
+DDR_BA0.GPIO_Label=DDR_BA0 [MT41K256M16TW_BA0]
+DDR_BA0.Locked=true
+DDR_BA0.Mode=DDR3
+DDR_BA0.Signal=DDR_BA0
+DDR_BA1.GPIOParameters=GPIO_Label
+DDR_BA1.GPIO_Label=DDR_BA1 [MT41K256M16TW_BA1]
+DDR_BA1.Locked=true
+DDR_BA1.Mode=DDR3
+DDR_BA1.Signal=DDR_BA1
+DDR_BA2.GPIOParameters=GPIO_Label
+DDR_BA2.GPIO_Label=DDR_BA2 [MT41K256M16TW_BA2]
+DDR_BA2.Locked=true
+DDR_BA2.Mode=DDR3
+DDR_BA2.Signal=DDR_BA2
+DDR_CASN.GPIOParameters=GPIO_Label
+DDR_CASN.GPIO_Label=DDR_CASN [MT41K256M16TW_CAS\#]
+DDR_CASN.Locked=true
+DDR_CASN.Mode=DDR3
+DDR_CASN.Signal=DDR_CASN
+DDR_CKE.GPIOParameters=GPIO_Label
+DDR_CKE.GPIO_Label=DDR_CKE [MT41K256M16TW_CKE]
+DDR_CKE.Locked=true
+DDR_CKE.Mode=DDR3
+DDR_CKE.Signal=DDR_CKE
+DDR_CLKN.GPIOParameters=GPIO_Label
+DDR_CLKN.GPIO_Label=DDR_CLK_N [MT41K256M16TW_CK\#]
+DDR_CLKN.Locked=true
+DDR_CLKN.Mode=DDR3
+DDR_CLKN.Signal=DDR_CLKN
+DDR_CLKP.GPIOParameters=GPIO_Label
+DDR_CLKP.GPIO_Label=DDR_CLK_P [MT41K256M16TW_CK]
+DDR_CLKP.Locked=true
+DDR_CLKP.Mode=DDR3
+DDR_CLKP.Signal=DDR_CLKP
+DDR_CSN.GPIOParameters=GPIO_Label
+DDR_CSN.GPIO_Label=DDR_CSN [MT41K256M16TW_CS\#]
+DDR_CSN.Locked=true
+DDR_CSN.Mode=DDR3
+DDR_CSN.Signal=DDR_CSN
+DDR_DQ0.GPIOParameters=GPIO_Label
+DDR_DQ0.GPIO_Label=DDR_DQ0 [MT41K256M16TW_DQU5]
+DDR_DQ0.Locked=true
+DDR_DQ0.Mode=DDR3
+DDR_DQ0.Signal=DDR_DQ0
+DDR_DQ1.GPIOParameters=GPIO_Label
+DDR_DQ1.GPIO_Label=DDR_DQ1 [MT41K256M16TW_DQU1]
+DDR_DQ1.Locked=true
+DDR_DQ1.Mode=DDR3
+DDR_DQ1.Signal=DDR_DQ1
+DDR_DQ10.GPIOParameters=GPIO_Label
+DDR_DQ10.GPIO_Label=DDR_DQ10 [MT41K256M16TW_DQL6]
+DDR_DQ10.Locked=true
+DDR_DQ10.Mode=DDR3
+DDR_DQ10.Signal=DDR_DQ10
+DDR_DQ11.GPIOParameters=GPIO_Label
+DDR_DQ11.GPIO_Label=DDR_DQ11 [MT41K256M16TW_DQL1]
+DDR_DQ11.Locked=true
+DDR_DQ11.Mode=DDR3
+DDR_DQ11.Signal=DDR_DQ11
+DDR_DQ12.GPIOParameters=GPIO_Label
+DDR_DQ12.GPIO_Label=DDR_DQ12 [MT41K256M16TW_DQL5]
+DDR_DQ12.Locked=true
+DDR_DQ12.Mode=DDR3
+DDR_DQ12.Signal=DDR_DQ12
+DDR_DQ13.GPIOParameters=GPIO_Label
+DDR_DQ13.GPIO_Label=DDR_DQ13 [MT41K256M16TW_DQL4]
+DDR_DQ13.Locked=true
+DDR_DQ13.Mode=DDR3
+DDR_DQ13.Signal=DDR_DQ13
+DDR_DQ14.GPIOParameters=GPIO_Label
+DDR_DQ14.GPIO_Label=DDR_DQ14 [MT41K256M16TW_DQL7]
+DDR_DQ14.Locked=true
+DDR_DQ14.Mode=DDR3
+DDR_DQ14.Signal=DDR_DQ14
+DDR_DQ15.GPIOParameters=GPIO_Label
+DDR_DQ15.GPIO_Label=DDR_DQ15 [MT41K256M16TW_DQL3]
+DDR_DQ15.Locked=true
+DDR_DQ15.Mode=DDR3
+DDR_DQ15.Signal=DDR_DQ15
+DDR_DQ2.GPIOParameters=GPIO_Label
+DDR_DQ2.GPIO_Label=DDR_DQ2 [MT41K256M16TW_DQU4]
+DDR_DQ2.Locked=true
+DDR_DQ2.Mode=DDR3
+DDR_DQ2.Signal=DDR_DQ2
+DDR_DQ3.GPIOParameters=GPIO_Label
+DDR_DQ3.GPIO_Label=DDR_DQ3 [MT41K256M16TW_DQU3]
+DDR_DQ3.Locked=true
+DDR_DQ3.Mode=DDR3
+DDR_DQ3.Signal=DDR_DQ3
+DDR_DQ4.GPIOParameters=GPIO_Label
+DDR_DQ4.GPIO_Label=DDR_DQ4 [MT41K256M16TW_DQU6]
+DDR_DQ4.Locked=true
+DDR_DQ4.Mode=DDR3
+DDR_DQ4.Signal=DDR_DQ4
+DDR_DQ5.GPIOParameters=GPIO_Label
+DDR_DQ5.GPIO_Label=DDR_DQ5 [MT41K256M16TW_DQU2]
+DDR_DQ5.Locked=true
+DDR_DQ5.Mode=DDR3
+DDR_DQ5.Signal=DDR_DQ5
+DDR_DQ6.GPIOParameters=GPIO_Label
+DDR_DQ6.GPIO_Label=DDR_DQ6 [MT41K256M16TW_DQU0]
+DDR_DQ6.Locked=true
+DDR_DQ6.Mode=DDR3
+DDR_DQ6.Signal=DDR_DQ6
+DDR_DQ7.GPIOParameters=GPIO_Label
+DDR_DQ7.GPIO_Label=DDR_DQ7 [MT41K256M16TW_DQU7]
+DDR_DQ7.Locked=true
+DDR_DQ7.Mode=DDR3
+DDR_DQ7.Signal=DDR_DQ7
+DDR_DQ8.GPIOParameters=GPIO_Label
+DDR_DQ8.GPIO_Label=DDR_DQ8 [MT41K256M16TW_DQL2]
+DDR_DQ8.Locked=true
+DDR_DQ8.Mode=DDR3
+DDR_DQ8.Signal=DDR_DQ8
+DDR_DQ9.GPIOParameters=GPIO_Label
+DDR_DQ9.GPIO_Label=DDR_DQ9 [MT41K256M16TW_DQL0]
+DDR_DQ9.Locked=true
+DDR_DQ9.Mode=DDR3
+DDR_DQ9.Signal=DDR_DQ9
+DDR_DQM0.GPIOParameters=GPIO_Label
+DDR_DQM0.GPIO_Label=DDR_DQM0 [MT41K256M16TW_DMU]
+DDR_DQM0.Locked=true
+DDR_DQM0.Mode=DDR3
+DDR_DQM0.Signal=DDR_DQM0
+DDR_DQM1.GPIOParameters=GPIO_Label
+DDR_DQM1.GPIO_Label=DDR_DQM1 [MT41K256M16TW_DML]
+DDR_DQM1.Locked=true
+DDR_DQM1.Mode=DDR3
+DDR_DQM1.Signal=DDR_DQM1
+DDR_DQS0N.GPIOParameters=GPIO_Label
+DDR_DQS0N.GPIO_Label=DDR_DQS0_N [MT41K256M16TW_DQSU\#]
+DDR_DQS0N.Locked=true
+DDR_DQS0N.Mode=DDR3
+DDR_DQS0N.Signal=DDR_DQS0N
+DDR_DQS0P.GPIOParameters=GPIO_Label
+DDR_DQS0P.GPIO_Label=DDR_DQS0_P [MT41K256M16TW_DQSU]
+DDR_DQS0P.Locked=true
+DDR_DQS0P.Mode=DDR3
+DDR_DQS0P.Signal=DDR_DQS0P
+DDR_DQS1N.GPIOParameters=GPIO_Label
+DDR_DQS1N.GPIO_Label=DDR_DQS1_N [MT41K256M16TW_DQSL\#]
+DDR_DQS1N.Locked=true
+DDR_DQS1N.Mode=DDR3
+DDR_DQS1N.Signal=DDR_DQS1N
+DDR_DQS1P.GPIOParameters=GPIO_Label
+DDR_DQS1P.GPIO_Label=DDR_DQS1_P [MT41K256M16TW_DQSL]
+DDR_DQS1P.Locked=true
+DDR_DQS1P.Mode=DDR3
+DDR_DQS1P.Signal=DDR_DQS1P
+DDR_DTO0.GPIOParameters=GPIO_Label
+DDR_DTO0.GPIO_Label=DDR_DTO0
+DDR_DTO0.Locked=true
+DDR_DTO0.Mode=DDR3
+DDR_DTO0.Signal=DDR_DTO0
+DDR_DTO1.GPIOParameters=GPIO_Label
+DDR_DTO1.GPIO_Label=DDR_DTO1
+DDR_DTO1.Locked=true
+DDR_DTO1.Mode=DDR3
+DDR_DTO1.Signal=DDR_DTO1
+DDR_ODT.GPIOParameters=GPIO_Label
+DDR_ODT.GPIO_Label=DDR_ODT [MT41K256M16TW_ODT]
+DDR_ODT.Locked=true
+DDR_ODT.Mode=DDR3
+DDR_ODT.Signal=DDR_ODT
+DDR_RASN.GPIOParameters=GPIO_Label
+DDR_RASN.GPIO_Label=DDR_RASN [MT41K256M16TW_RAS\#]
+DDR_RASN.Locked=true
+DDR_RASN.Mode=DDR3
+DDR_RASN.Signal=DDR_RASN
+DDR_RESETN.GPIOParameters=GPIO_Label
+DDR_RESETN.GPIO_Label=DDR_RESETN [MT41K256M16TW_RESET\#]
+DDR_RESETN.Locked=true
+DDR_RESETN.Mode=DDR3
+DDR_RESETN.Signal=DDR_RESETN
+DDR_VREF.GPIOParameters=GPIO_Label
+DDR_VREF.GPIO_Label=VREF_DDR
+DDR_VREF.Locked=true
+DDR_VREF.Mode=DDR3
+DDR_VREF.Signal=DDR_VREF
+DDR_WEN.GPIOParameters=GPIO_Label
+DDR_WEN.GPIO_Label=DDR_WEN_P [MT41K256M16TW_WE\#]
+DDR_WEN.Locked=true
+DDR_WEN.Mode=DDR3
+DDR_WEN.Signal=DDR_WEN
+DDR_ZQ.GPIOParameters=GPIO_Label
+DDR_ZQ.GPIO_Label=DDR_ZQ
+DDR_ZQ.Locked=true
+DDR_ZQ.Mode=DDR3
+DDR_ZQ.Signal=DDR_ZQ
+File.Version=6
+GIC.IPCC_RX0_IRQn=true\:false\:High level
+GIC.IPCC_TX0_IRQn=true\:false\:High level
+GIC.PMUIRQ0_IRQn=true\:false\:High level
+GIC.PMUIRQ1_IRQn=true\:false\:High level
+GIC.RCC_IRQn=true\:false\:High level
+GIC.RTC_WKUP_ALARM_IRQn=true\:false\:High level
+GIC.WAKEUP_PIN_IRQn=true\:false\:High level
+GPIO.groupedBy=Expand Peripherals
+KeepUserPlacement=false
+Mcu.Context0=BootROM
+Mcu.Context1=BootLoader
+Mcu.Context2=CortexA7S
+Mcu.Context3=CortexA7NS
+Mcu.Context4=CortexM4
+Mcu.ContextNb=5
+Mcu.Family=STM32MP1
+Mcu.IP0=ADC2
+Mcu.IP1=BSEC
+Mcu.IP10=LPTIM4
+Mcu.IP11=LPTIM5
+Mcu.IP12=NVIC
+Mcu.IP13=PWR
+Mcu.IP14=RCC
+Mcu.IP15=RTC
+Mcu.IP16=SPI5
+Mcu.IP17=SYS
+Mcu.IP18=TAMP
+Mcu.IP19=TIM4
+Mcu.IP2=DAC1
+Mcu.IP20=TIM14
+Mcu.IP21=TIM16
+Mcu.IP22=TIM17
+Mcu.IP23=UART4
+Mcu.IP24=USART3
+Mcu.IP25=VREFBUF
+Mcu.IP26=WWDG1
+Mcu.IP3=DDR
+Mcu.IP4=GIC
+Mcu.IP5=HSEM
+Mcu.IP6=IPCC
+Mcu.IP7=LPTIM1
+Mcu.IP8=LPTIM2
+Mcu.IP9=LPTIM3
+Mcu.IPNb=27
+Mcu.Name=STM32MP157AACx
+Mcu.Package=TFBGA361
+Mcu.Pin0=PH5
+Mcu.Pin1=PF2
+Mcu.Pin10=DDR_DQ3
+Mcu.Pin100=VP_TAMP_VS_TAMP_Activate
+Mcu.Pin101=VP_TIM4_VS_ClockSourceINT
+Mcu.Pin102=VP_TIM14_VS_ClockSourceINT
+Mcu.Pin103=VP_TIM16_VS_ClockSourceINT
+Mcu.Pin104=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin105=VP_VREFBUF_VS_VREFBUF
+Mcu.Pin106=VP_WWDG1_VS_WWDG
+Mcu.Pin107=VP_DMA_VS_DMA1_A7NS
+Mcu.Pin108=VP_DMA_VS_DMA2_M4
+Mcu.Pin109=VP_MDMA_VS_MDMA_A7NS_8
+Mcu.Pin11=DDR_DQ0
+Mcu.Pin12=DDR_A13
+Mcu.Pin13=DDR_DQ1
+Mcu.Pin14=DDR_A9
+Mcu.Pin15=DDR_DQ7
+Mcu.Pin16=DDR_DQS0P
+Mcu.Pin17=DDR_DQS0N
+Mcu.Pin18=PZ6
+Mcu.Pin19=DDR_A5
+Mcu.Pin2=PH4
+Mcu.Pin20=DDR_DQ2
+Mcu.Pin21=DDR_DQ6
+Mcu.Pin22=DDR_DQM0
+Mcu.Pin23=PZ7
+Mcu.Pin24=DDR_A2
+Mcu.Pin25=DDR_DQ4
+Mcu.Pin26=DDR_DQ5
+Mcu.Pin27=PC13
+Mcu.Pin28=DDR_DTO0
+Mcu.Pin29=DDR_A3
+Mcu.Pin3=PD0
+Mcu.Pin30=DDR_ZQ
+Mcu.Pin31=PC15-OSC32_OUT
+Mcu.Pin32=PC14-OSC32_IN
+Mcu.Pin33=DDR_A0
+Mcu.Pin34=DDR_DTO1
+Mcu.Pin35=DDR_ODT
+Mcu.Pin36=DDR_BA0
+Mcu.Pin37=DDR_WEN
+Mcu.Pin38=DDR_BA2
+Mcu.Pin39=DDR_CSN
+Mcu.Pin4=PC6
+Mcu.Pin40=PA13
+Mcu.Pin41=DDR_CASN
+Mcu.Pin42=DDR_RASN
+Mcu.Pin43=DDR_CLKP
+Mcu.Pin44=DDR_CLKN
+Mcu.Pin45=PH0-OSC_IN
+Mcu.Pin46=PI11
+Mcu.Pin47=DDR_A1
+Mcu.Pin48=DDR_A12
+Mcu.Pin49=DDR_A11
+Mcu.Pin5=PA15
+Mcu.Pin50=DDR_A14
+Mcu.Pin51=DDR_A10
+Mcu.Pin52=PA14
+Mcu.Pin53=DDR_CKE
+Mcu.Pin54=DDR_DQ8
+Mcu.Pin55=DDR_DQ10
+Mcu.Pin56=DDR_DQ13
+Mcu.Pin57=DDR_BA1
+Mcu.Pin58=DDR_DQ9
+Mcu.Pin59=DDR_DQS1P
+Mcu.Pin6=PB7
+Mcu.Pin60=DDR_DQS1N
+Mcu.Pin61=PA4
+Mcu.Pin62=DDR_A4
+Mcu.Pin63=DDR_DQM1
+Mcu.Pin64=PG1
+Mcu.Pin65=PH7
+Mcu.Pin66=DDR_A6
+Mcu.Pin67=DDR_DQ11
+Mcu.Pin68=DDR_DQ14
+Mcu.Pin69=DDR_DQ12
+Mcu.Pin7=PE4
+Mcu.Pin70=PB10
+Mcu.Pin71=PG11
+Mcu.Pin72=PG9
+Mcu.Pin73=PB2
+Mcu.Pin74=PA10
+Mcu.Pin75=DDR_ATO
+Mcu.Pin76=DDR_A8
+Mcu.Pin77=DDR_DQ15
+Mcu.Pin78=PF9
+Mcu.Pin79=PD13
+Mcu.Pin8=DDR_RESETN
+Mcu.Pin80=PA0
+Mcu.Pin81=PF7
+Mcu.Pin82=PF14
+Mcu.Pin83=PB12
+Mcu.Pin84=PA6
+Mcu.Pin85=PD11
+Mcu.Pin86=DDR_VREF
+Mcu.Pin87=VP_BSEC_VS_BSEC
+Mcu.Pin88=VP_DDR_DDR3
+Mcu.Pin89=VP_DDR_DDR_16_bits
+Mcu.Pin9=DDR_A7
+Mcu.Pin90=VP_DDR_DDR3_16_4Gb
+Mcu.Pin91=VP_HSEM_VS_HSEM
+Mcu.Pin92=VP_IPCC_VS_IPCC
+Mcu.Pin93=VP_LPTIM1_VS_LPTIM_counterModeInternalClock
+Mcu.Pin94=VP_LPTIM2_VS_LPTIM_counterModeInternalClock
+Mcu.Pin95=VP_LPTIM3_VS_LPTIM_counterModeInternalClock
+Mcu.Pin96=VP_LPTIM4_VS_LPTIM_counterModeInternalClock
+Mcu.Pin97=VP_LPTIM5_VS_LPTIM_counterModeInternalClock
+Mcu.Pin98=VP_RTC_VS_RTC_Activate
+Mcu.Pin99=VP_SYS_VS_Systick
+Mcu.PinsNb=110
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32MP157AACx
+MxCube.Version=5.6.1
+MxDb.Version=DB.5.0.60
+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.IPCC_RX1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.IPCC_TX1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.LPTIM1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.LPTIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.LPTIM3_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.LPTIM4_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.LPTIM5_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+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
+NVIC.WWDG1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+PA0.Locked=true
+PA0.Mode=WakeUp1
+PA0.Signal=PWR_WKUP1
+PA10.GPIOParameters=GPIO_Label
+PA10.GPIO_Label=HDMI_NRST [SiI9022ACNU_RESET\#]
+PA10.Locked=true
+PA10.Signal=GPIO_Output
+PA13.GPIOParameters=GPIO_Label
+PA13.GPIO_Label=PA13 [LD6_RED]
+PA13.Locked=true
+PA13.Signal=GPIO_Output
+PA14.GPIOParameters=GPIO_Label
+PA14.GPIO_Label=PA14 [SW-PUSH-TS-02H-Blue]
+PA14.Locked=true
+PA14.Signal=GPIO_Input
+PA15.GPIOParameters=GPIO_Label
+PA15.GPIO_Label=BL_CTRL [STLD40DPUR_EN]
+PA15.Locked=true
+PA15.Signal=GPIO_Output
+PA4.Signal=COMP_DAC11_group
+PA6.GPIOParameters=GPIO_Label
+PA6.GPIO_Label=ETH_MDINT [RTL8211F_INT]
+PA6.Locked=true
+PA6.Signal=GPIO_Input
+PB10.Locked=true
+PB10.Mode=Asynchronous
+PB10.Signal=USART3_TX
+PB12.Locked=true
+PB12.Mode=Asynchronous
+PB12.Signal=USART3_RX
+PB2.GPIOParameters=GPIO_Label
+PB2.GPIO_Label=STLINK_TX [STM32F103CBT6_PA2]
+PB2.Locked=true
+PB2.Mode=Asynchronous
+PB2.Signal=UART4_RX
+PB7.GPIOParameters=GPIO_Label
+PB7.GPIO_Label=uSD_DETECT [PJS008-2003-1]
+PB7.Locked=true
+PB7.Signal=GPIO_Input
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=PMIC_WAKEUP [STPMU1A_WAKEUP]
+PC13.Locked=true
+PC13.Signal=GPIO_Output
+PC14-OSC32_IN.Locked=true
+PC14-OSC32_IN.Mode=LSE-External-Oscillator
+PC14-OSC32_IN.Signal=RCC_OSC32_IN
+PC15-OSC32_OUT.Locked=true
+PC15-OSC32_OUT.Mode=LSE-External-Oscillator
+PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
+PC6.GPIOParameters=GPIO_Label
+PC6.GPIO_Label=TE [FH26W-25S_TE]
+PC6.Locked=true
+PC6.Signal=GPIO_Output
+PD0.GPIOParameters=GPIO_Label
+PD0.GPIO_Label=WL_HOST_WAKE [LBEE5KL1DX_WL_HOST_WAKE]
+PD0.Locked=true
+PD0.Signal=GPIO_Input
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=LED_B [LD8_BLUE]
+PD11.Locked=true
+PD11.Signal=GPIO_Output
+PD13.Signal=S_TIM4_CH2
+PE4.GPIOParameters=GPIO_Label
+PE4.GPIO_Label=RSTN [FH26W-25S_RSTN]
+PE4.Locked=true
+PE4.Signal=GPIO_Output
+PF14.Locked=true
+PF14.Mode=IN6-Single-Ended
+PF14.Signal=ADC2_INP6
+PF2.GPIOParameters=GPIO_Label
+PF2.GPIO_Label=INT [FH26W-25S_INT]
+PF2.Locked=true
+PF2.Signal=GPIO_Input
+PF7.Locked=true
+PF7.Mode=TX_Only_Simplex_Unidirect_Master
+PF7.Signal=SPI5_SCK
+PF9.Mode=TX_Only_Simplex_Unidirect_Master
+PF9.Signal=SPI5_MOSI
+PG1.GPIOParameters=GPIO_Label
+PG1.GPIO_Label=HDMI_INT [SiI9022ACNU_INT]
+PG1.Locked=true
+PG1.Signal=GPIO_Input
+PG11.GPIOParameters=GPIO_Label
+PG11.GPIO_Label=STLINK_RX [STM32F103CBT6_PA3]
+PG11.Locked=true
+PG11.Mode=Asynchronous
+PG11.Signal=UART4_TX
+PG9.GPIOParameters=GPIO_Label
+PG9.GPIO_Label=AUDIO_RST [CS42L51-CNZ_RESET]
+PG9.Locked=true
+PG9.Signal=GPIO_Output
+PH0-OSC_IN.Locked=true
+PH0-OSC_IN.Mode=HSE-DIG-External-Clock-Source
+PH0-OSC_IN.Signal=RCC_OSC_IN
+PH4.GPIOParameters=GPIO_Label
+PH4.GPIO_Label=WL_REG_ON [LBEE5KL1DX_WL_REG_ON]
+PH4.Locked=true
+PH4.Signal=GPIO_Output
+PH5.GPIOParameters=GPIO_Label
+PH5.GPIO_Label=BT_HOST_WAKE [LBEE5KL1DX_BT_HOST_WAKE]
+PH5.Locked=true
+PH5.Signal=GPIO_Input
+PH7.GPIOParameters=GPIO_Label
+PH7.GPIO_Label=LED_Y [LD7_ORANGE]
+PH7.Locked=true
+PH7.Signal=GPIO_Output
+PI11.GPIOParameters=GPIO_Label
+PI11.GPIO_Label=STUSB1600_IRQOUTn [STUSB1600_ALERT\#]
+PI11.Locked=true
+PI11.Signal=GPIO_Input
+PZ6.GPIOParameters=GPIO_Label
+PZ6.GPIO_Label=BT_REG_ON [LBEE5KL1DX_BT_REG_ON]
+PZ6.Locked=true
+PZ6.Signal=GPIO_Output
+PZ7.GPIOParameters=GPIO_Label
+PZ7.GPIO_Label=BT_DEV_WAKE [LBEE5KL1DX_BT_DEV_WAKE]
+PZ7.Locked=true
+PZ7.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+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=STM32MP157AACx
+ProjectManager.DeviceTreeLocation=D\:\\3_work\\GitRepositories\\rt-thread\\bsp\\stm32\\stm32mp157a-st-discovery\\board\\CubeMX_Config\\STM32MP157-DK1\\CA7\\DeviceTree\\
+ProjectManager.FirmwarePackage=STM32Cube FW_MP1 V1.2.0
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x200
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=true
+ProjectManager.LibraryCopy=0
+ProjectManager.MainLocation=Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=STM32MP157-DK1.ioc
+ProjectManager.ProjectName=STM32MP157-DK1
+ProjectManager.StackSize=0x400
+ProjectManager.TargetToolchain=EWARM V8.32
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_IPCC_Init-IPCC-false-HAL-true,4-MX_SPI5_Init-SPI5-false-HAL-true,5-MX_TIM4_Init-TIM4-false-HAL-true,6-MX_TIM14_Init-TIM14-false-HAL-true,7-MX_TIM16_Init-TIM16-false-HAL-true,8-MX_TIM17_Init-TIM17-false-HAL-true,9-MX_UART4_Init-UART4-false-HAL-true,10-MX_ADC2_Init-ADC2-false-HAL-true,11-MX_DAC1_Init-DAC1-false-HAL-true,12-MX_LPTIM1_Init-LPTIM1-false-HAL-true,13-MX_LPTIM2_Init-LPTIM2-false-HAL-true,14-MX_LPTIM3_Init-LPTIM3-false-HAL-true,15-MX_LPTIM4_Init-LPTIM4-false-HAL-true,16-MX_LPTIM5_Init-LPTIM5-false-HAL-true,17-MX_USART3_UART_Init-USART3-false-HAL-true,18-MX_WWDG1_Init-WWDG1-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true
+RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_PER
+RCC.ADCFreq_Value=24000000
+RCC.AHB1234Freq_Value=208877929.6875
+RCC.APB1DIV=RCC_APB1_DIV2
+RCC.APB1Freq_Value=104438964.84375
+RCC.APB2DIV=RCC_APB2_DIV2
+RCC.APB2Freq_Value=104438964.84375
+RCC.APB3DIV=RCC_APB3_DIV2
+RCC.APB3Freq_Value=104438964.84375
+RCC.APB4DIV=RCC_APB4_DIV2
+RCC.APB4Freq_Value=133250000
+RCC.APB5DIV=RCC_APB5_DIV4
+RCC.APB5DIVClockFreq_Value=66625000
+RCC.AXICLKFreq_VALUE=266500000
+RCC.AXICLKSource=RCC_AXISSOURCE_PLL2
+RCC.AXIDIVFreq_Value=266500000
+RCC.CECFreq_Value=32768
+RCC.CKPERCLKFreq_VALUE=24000000
+RCC.CKPERCLKSource=RCC_CKPERCLKSOURCE_HSE
+RCC.CSI_VALUE=4000000
+RCC.CortexFreq_Value=208877929.6875
+RCC.DACCLKFreq_VALUE=32000
+RCC.DDRCFreq_Value=533000000
+RCC.DDRPERFMFreq_Value=533000000
+RCC.DDRPHYFreq_Value=533000000
+RCC.DFSDFAFreq_Value=74250000
+RCC.DFSDMFreq_Value=208877929.6875
+RCC.DIVM1=3
+RCC.DIVM2=3
+RCC.DIVM3=2
+RCC.DIVM4=4
+RCC.DIVN1=81
+RCC.DIVN2=66
+RCC.DIVN3=34
+RCC.DIVN4=99
+RCC.DIVP1Freq_Value=650000000
+RCC.DIVP2Freq_Value=266500000
+RCC.DIVP3Freq_Value=208877929.6875
+RCC.DIVP4=6
+RCC.DIVP4Freq_Value=99000000
+RCC.DIVQ1Freq_Value=325000000
+RCC.DIVQ2=1
+RCC.DIVQ2Freq_Value=533000000
+RCC.DIVQ3=17
+RCC.DIVQ3Freq_Value=24573874.08088235
+RCC.DIVQ4=8
+RCC.DIVQ4Freq_Value=74250000
+RCC.DIVR1Freq_Value=325000000
+RCC.DIVR2=1
+RCC.DIVR2Freq_Value=533000000
+RCC.DIVR3=37
+RCC.DIVR3Freq_Value=11290698.902027028
+RCC.DIVR4=8
+RCC.DIVR4Freq_Value=74250000
+RCC.DSIFreq_Value=60000000
+RCC.DSIPixelFreq_Value=74250000
+RCC.DSITXEscFreq_Value=15000000
+RCC.DSI_VALUE=60000000
+RCC.ETHFreq_Value=99000000
+RCC.FCLKFreq_Value=196000000
+RCC.FDCANFreq_Value=24000000
+RCC.FMCCLockSelection=RCC_FMCCLKSOURCE_ACLK
+RCC.FMCFreq_Value=266500000
+RCC.FamilyName=M
+RCC.HSE_VALUE=24000000
+RCC.HSIDivClkFreq_Value=64000000
+RCC.HSI_VALUE=64000000
+RCC.Hclk5DIVFreq_Value=266500000
+RCC.Hclk6DIVFreq_Value=266500000
+RCC.I2C12CLockSelection=RCC_I2C12CLKSOURCE_HSI
+RCC.I2C12Freq_Value=64000000
+RCC.I2C35CLockSelection=RCC_I2C35CLKSOURCE_PCLK1
+RCC.I2C35Freq_Value=104438964.84375
+RCC.I2C46CLockSelection=RCC_I2C46CLKSOURCE_HSI
+RCC.I2C46Freq_Value=64000000
+RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHB1234Freq_Value,APB1DIV,APB1Freq_Value,APB2DIV,APB2Freq_Value,APB3DIV,APB3Freq_Value,APB4DIV,APB4Freq_Value,APB5DIV,APB5DIVClockFreq_Value,AXICLKFreq_VALUE,AXICLKSource,AXIDIVFreq_Value,CECFreq_Value,CKPERCLKFreq_VALUE,CKPERCLKSource,CSI_VALUE,CortexFreq_Value,DACCLKFreq_VALUE,DDRCFreq_Value,DDRPERFMFreq_Value,DDRPHYFreq_Value,DFSDFAFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVM4,DIVN1,DIVN2,DIVN3,DIVN4,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVP4,DIVP4Freq_Value,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVQ4,DIVQ4Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,DIVR4,DIVR4Freq_Value,DSIFreq_Value,DSIPixelFreq_Value,DSITXEscFreq_Value,DSI_VALUE,ETHFreq_Value,FCLKFreq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HSE_VALUE,HSIDivClkFreq_Value,HSI_VALUE,Hclk5DIVFreq_Value,Hclk6DIVFreq_Value,I2C12CLockSelection,I2C12Freq_Value,I2C35CLockSelection,I2C35Freq_Value,I2C46CLockSelection,I2C46Freq_Value,LPTIM1CLockSelection,LPTIM1Freq_Value,LPTIM23CLockSelection,LPTIM23Freq_Value,LPTIM45CLockSelection,LPTIM45Freq_Value,LSI_VALUE,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,MCUCLKFreq_VALUE,MCUCLKSource,MCUClockFreq_Value,MCUDIVCLKFreq_Value,MPUCLKFreq_VALUE,MPUCLKSource,PLL12Source,PLL1FRACV,PLL1UserDefinedConfig,PLL2FRACV,PLL3FRACV,PLL3Source,PLL4FRACV,PLL4PDSIFreq_Value,PLL4Source,PLLDSIFreq_Value,PLLDSIVCOFreq_Value,PUBLFreq_Value,QSPICLockSelection,QSPIFreq_Value,RCC_RTC_Clock_Source_FROM_HSE,RNG1CLockSelection,RNG1Freq_Value,RNG2Freq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI2CLockSelection,SAI2Freq_Value,SAI3Freq_Value,SAI4Freq_Value,SDMMC12CLockSelection,SDMMC12Freq_Value,SDMMC3CLockSelection,SDMMC3Freq_Value,SPDIFRXFreq_Value,SPI1CLockSelection,SPI1Freq_Value,SPI23CLockSelection,SPI23Freq_Value,SPI45CLockSelection,SPI45Freq_Value,SPI6CLockSelection,SPI6Freq_Value,STGENCLockSelection,STGENFreq_Value,Tim1OutputFreq_Value,Tim2OutputFreq_Value,UART78CLockSelection,UART78Freq_Value,USART1CLockSelection,USART1Freq_Value,USART24CLockSelection,USART24Freq_Value,USART35CLockSelection,USART35Freq_Value,USART6CLockSelection,USART6Freq_Value,USBOCLKSource,USBOHSFreq_Value,USBPHYCLKSource,USBPHYFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCO4OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInput4Freq_Value
+RCC.LPTIM1CLockSelection=RCC_LPTIM1CLKSOURCE_PCLK1
+RCC.LPTIM1Freq_Value=104438964.84375
+RCC.LPTIM23CLockSelection=RCC_LPTIM23CLKSOURCE_PCLK3
+RCC.LPTIM23Freq_Value=104438964.84375
+RCC.LPTIM45CLockSelection=RCC_LPTIM45CLKSOURCE_PCLK3
+RCC.LPTIM45Freq_Value=104438964.84375
+RCC.LSI_VALUE=32000
+RCC.LTDCFreq_Value=74250000
+RCC.MCO1PinFreq_Value=64000000
+RCC.MCO2PinFreq_Value=650000000
+RCC.MCUCLKFreq_VALUE=208877929.6875
+RCC.MCUCLKSource=RCC_MCUSSOURCE_PLL3
+RCC.MCUClockFreq_Value=208877929.6875
+RCC.MCUDIVCLKFreq_Value=208877929.6875
+RCC.MPUCLKFreq_VALUE=650000000
+RCC.MPUCLKSource=RCC_MPUSOURCE_PLL1
+RCC.PLL12Source=RCC_PLL12SOURCE_HSE
+RCC.PLL1FRACV=0x800
+RCC.PLL1UserDefinedConfig=false
+RCC.PLL2FRACV=0x1400
+RCC.PLL3FRACV=6660
+RCC.PLL3Source=RCC_PLL3SOURCE_HSE
+RCC.PLL4FRACV=0
+RCC.PLL4PDSIFreq_Value=99000000
+RCC.PLL4Source=RCC_PLL4SOURCE_HSE
+RCC.PLLDSIFreq_Value=480000000
+RCC.PLLDSIVCOFreq_Value=960000000
+RCC.PUBLFreq_Value=533000000
+RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_ACLK
+RCC.QSPIFreq_Value=266500000
+RCC.RCC_RTC_Clock_Source_FROM_HSE=24
+RCC.RNG1CLockSelection=RCC_RNG1CLKSOURCE_LSI
+RCC.RNG1Freq_Value=32000
+RCC.RNG2Freq_Value=4000000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
+RCC.SAI1Freq_Value=74250000
+RCC.SAI2CLockSelection=RCC_SAI2CLKSOURCE_PLL3_Q
+RCC.SAI2Freq_Value=24573874.08088235
+RCC.SAI3Freq_Value=74250000
+RCC.SAI4Freq_Value=74250000
+RCC.SDMMC12CLockSelection=RCC_SDMMC12CLKSOURCE_PLL4
+RCC.SDMMC12Freq_Value=99000000
+RCC.SDMMC3CLockSelection=RCC_SDMMC3CLKSOURCE_HCLK2
+RCC.SDMMC3Freq_Value=208877929.6875
+RCC.SPDIFRXFreq_Value=99000000
+RCC.SPI1CLockSelection=RCC_SPI1CLKSOURCE_PLL3_Q
+RCC.SPI1Freq_Value=24573874.08088235
+RCC.SPI23CLockSelection=RCC_SPI23CLKSOURCE_PLL3_Q
+RCC.SPI23Freq_Value=24573874.08088235
+RCC.SPI45CLockSelection=RCC_SPI45CLKSOURCE_PCLK2
+RCC.SPI45Freq_Value=104438964.84375
+RCC.SPI6CLockSelection=RCC_SPI6CLKSOURCE_PCLK5
+RCC.SPI6Freq_Value=66625000
+RCC.STGENCLockSelection=RCC_STGENCLKSOURCE_HSE
+RCC.STGENFreq_Value=24000000
+RCC.Tim1OutputFreq_Value=208877929.6875
+RCC.Tim2OutputFreq_Value=208877929.6875
+RCC.UART78CLockSelection=RCC_UART78CLKSOURCE_PCLK1
+RCC.UART78Freq_Value=104438964.84375
+RCC.USART1CLockSelection=RCC_USART1CLKSOURCE_PCLK5
+RCC.USART1Freq_Value=66625000
+RCC.USART24CLockSelection=RCC_UART24CLKSOURCE_HSI
+RCC.USART24Freq_Value=64000000
+RCC.USART35CLockSelection=RCC_UART35CLKSOURCE_PCLK1
+RCC.USART35Freq_Value=104438964.84375
+RCC.USART6CLockSelection=RCC_USART6CLKSOURCE_PCLK2
+RCC.USART6Freq_Value=104438964.84375
+RCC.USBOCLKSource=RCC_USBOCLKSOURCE_PHY
+RCC.USBOHSFreq_Value=48000000
+RCC.USBPHYCLKSource=RCC_USBPHYCLKSOURCE_HSE
+RCC.USBPHYFreq_Value=24000000
+RCC.VCO1OutputFreq_Value=1300000000
+RCC.VCO2OutputFreq_Value=1066000000
+RCC.VCO3OutputFreq_Value=417755859.375
+RCC.VCO4OutputFreq_Value=594000000
+RCC.VCOInput1Freq_Value=8000000
+RCC.VCOInput2Freq_Value=8000000
+RCC.VCOInput3Freq_Value=12000000
+RCC.VCOInput4Freq_Value=6000000
+SH.COMP_DAC11_group.0=DAC1_OUT1,DAC_OUT1
+SH.COMP_DAC11_group.ConfNb=1
+SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
+SH.S_TIM4_CH2.ConfNb=1
+SPI5.CalculateBaudRate=26.10974 MBits/s
+SPI5.Direction=SPI_DIRECTION_2LINES_TXONLY
+SPI5.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI5.Mode=SPI_MODE_MASTER
+SPI5.VirtualType=VM_MASTER
+TIM4.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
+TIM4.IPParameters=Channel-PWM Generation2 CH2
+USART3.IPParameters=VirtualMode-Asynchronous
+USART3.VirtualMode-Asynchronous=VM_ASYNC
+VP_BSEC_VS_BSEC.Mode=BSEC_Activate
+VP_BSEC_VS_BSEC.Signal=BSEC_VS_BSEC
+VP_DDR_DDR3.Mode=DDR3
+VP_DDR_DDR3.Signal=DDR_DDR3
+VP_DDR_DDR3_16_4Gb.Mode=4Gb_16bits
+VP_DDR_DDR3_16_4Gb.Signal=DDR_DDR3_16_4Gb
+VP_DDR_DDR_16_bits.Mode=16bits
+VP_DDR_DDR_16_bits.Signal=DDR_DDR_16_bits
+VP_DMA_VS_DMA1_A7NS.Mode=CortexA7NS
+VP_DMA_VS_DMA1_A7NS.Signal=DMA_VS_DMA1_A7NS
+VP_DMA_VS_DMA2_M4.Mode=CortexM4
+VP_DMA_VS_DMA2_M4.Signal=DMA_VS_DMA2_M4
+VP_HSEM_VS_HSEM.Mode=HSEM_Activate
+VP_HSEM_VS_HSEM.Signal=HSEM_VS_HSEM
+VP_IPCC_VS_IPCC.Mode=IPCC_Activate
+VP_IPCC_VS_IPCC.Signal=IPCC_VS_IPCC
+VP_LPTIM1_VS_LPTIM_counterModeInternalClock.Mode=Counts__internal_clock_event_00
+VP_LPTIM1_VS_LPTIM_counterModeInternalClock.Signal=LPTIM1_VS_LPTIM_counterModeInternalClock
+VP_LPTIM2_VS_LPTIM_counterModeInternalClock.Mode=Counts__internal_clock_event_00
+VP_LPTIM2_VS_LPTIM_counterModeInternalClock.Signal=LPTIM2_VS_LPTIM_counterModeInternalClock
+VP_LPTIM3_VS_LPTIM_counterModeInternalClock.Mode=Counts__internal_clock_event_00
+VP_LPTIM3_VS_LPTIM_counterModeInternalClock.Signal=LPTIM3_VS_LPTIM_counterModeInternalClock
+VP_LPTIM4_VS_LPTIM_counterModeInternalClock.Mode=Counts__internal_clock_event_00
+VP_LPTIM4_VS_LPTIM_counterModeInternalClock.Signal=LPTIM4_VS_LPTIM_counterModeInternalClock
+VP_LPTIM5_VS_LPTIM_counterModeInternalClock.Mode=Counts__internal_clock_event_00
+VP_LPTIM5_VS_LPTIM_counterModeInternalClock.Signal=LPTIM5_VS_LPTIM_counterModeInternalClock
+VP_MDMA_VS_MDMA_A7NS_8.Mode=8\:8
+VP_MDMA_VS_MDMA_A7NS_8.Signal=MDMA_VS_MDMA_A7NS_8
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TAMP_VS_TAMP_Activate.Mode=TAMP_Enabled
+VP_TAMP_VS_TAMP_Activate.Signal=TAMP_VS_TAMP_Activate
+VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT
+VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT
+VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TIM4_VS_ClockSourceINT.Mode=Internal
+VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
+VP_VREFBUF_VS_VREFBUF.Mode=VREFBUF_Activate
+VP_VREFBUF_VS_VREFBUF.Signal=VREFBUF_VS_VREFBUF
+VP_WWDG1_VS_WWDG.Mode=WWDG_Activate
+VP_WWDG1_VS_WWDG.Signal=WWDG1_VS_WWDG
+WWDG1.IPParameters=Prescaler
+WWDG1.Prescaler=WWDG_PRESCALER_8
+board=STM32MP157A-DK1
+boardIOC=true
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig b/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bdcc20f611724c7d41dc404ffcd27affc70bda71
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig
@@ -0,0 +1,177 @@
+menu "Hardware Drivers Config"
+
+config SOC_STM32MP157A
+ bool
+ select SOC_SERIES_STM32MP1
+ select RT_USING_COMPONENTS_INIT
+ select RT_USING_USER_MAIN
+ default y
+
+menu "Onboard Peripheral Drivers"
+
+ config BSP_USING_STLINK_TO_USART
+ bool "Enable STLINK TO USART (uart4)"
+ select BSP_USING_UART
+ select BSP_USING_UART4
+ default y
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+ config BSP_USING_GPIO
+ bool "Enable GPIO"
+ select RT_USING_PIN
+ default y
+
+ config BSP_USING_WWDG
+ bool "Enable WWDG"
+ select RT_USING_WWDG
+ default n
+
+ menuconfig BSP_USING_UART
+ bool "Enable UART"
+ select RT_USING_SERIAL
+ default y
+ if BSP_USING_UART
+ config BSP_USING_UART3
+ bool "Enable UART3"
+ default y
+
+ config BSP_UART3_RX_USING_DMA
+ bool "Enable UART3 RX DMA"
+ depends on BSP_USING_UART4 && RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_UART3_TX_USING_DMA
+ bool "Enable UART3 TX DMA"
+ depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART4
+ bool "Enable UART4"
+ default y
+
+ config BSP_UART4_RX_USING_DMA
+ bool "Enable UART4 RX DMA"
+ depends on BSP_USING_UART4 && RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_UART4_TX_USING_DMA
+ bool "Enable UART4 TX DMA"
+ depends on BSP_USING_UART4 && RT_SERIAL_USING_DMA
+ default n
+
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM14
+ bool "Enable TIM14"
+ default n
+
+ config BSP_USING_TIM16
+ bool "Enable TIM16"
+ default n
+
+ config BSP_USING_TIM17
+ bool "Enable TIM17"
+ default n
+
+ endif
+ menuconfig BSP_USING_LPTIM
+ bool "Enable lptimer"
+ default n
+ select RT_USING_LPTIMER
+ if BSP_USING_LPTIM
+ config BSP_USING_LPTIM1
+ bool "Enable LPTIM1"
+ default n
+ endif
+
+ menuconfig BSP_USING_PWM
+ bool "Enable pwm"
+ default n
+ select RT_USING_PWM
+ if BSP_USING_PWM
+ menuconfig BSP_USING_PWM4
+ bool "Enable timer4 output pwm"
+ default n
+ if BSP_USING_PWM4
+ config BSP_USING_PWM4_CH2
+ bool "Enable PWM4 channel2"
+ default n
+ endif
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_DAC
+ bool "Enable DAC"
+ default n
+ select RT_USING_DAC
+ if BSP_USING_DAC
+ config BSP_USING_DAC1
+ bool "Enable DAC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_I2C1
+ bool "Enable I2C1 BUS (software simulation)"
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ default n
+ if BSP_USING_I2C1
+ comment "Notice: PD7 --> 55; PG15 --> 111"
+ config BSP_I2C1_SCL_PIN
+ int "I2C1 scl pin number"
+ range 1 176
+ default 55
+ config BSP_I2C1_SDA_PIN
+ int "I2C1 sda pin number"
+ range 1 176
+ default 111
+
+ endif
+
+ menuconfig BSP_USING_SPI
+ bool "Enable SPI BUS"
+ select RT_USING_SPI
+ default n
+ if BSP_USING_SPI
+ config BSP_USING_SPI5
+ bool "Enable SPI5 BUS"
+ default n
+
+ config BSP_SPI5_TX_USING_DMA
+ bool "Enable SPI5 TX DMA"
+ depends on BSP_USING_SPI5
+ default n
+
+ config BSP_SPI5_RX_USING_DMA
+ bool "Enable SPI5 RX DMA"
+ depends on BSP_USING_SPI5
+ select BSP_SPI5_TX_USING_DMA
+ default n
+ endif
+
+ source "../libraries/HAL_Drivers/Kconfig"
+
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/SConscript b/bsp/stm32/stm32mp157a-st-ev1/board/SConscript
new file mode 100644
index 0000000000000000000000000000000000000000..2d4657da929d2c3ba32d73646cb69dd611c16f43
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/SConscript
@@ -0,0 +1,47 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+CubeMX_Config/Common/System/system_stm32mp1xx.c
+CubeMX_Config/CM4/Src/stm32mp1xx_hal_msp.c
+''')
+
+if GetDepend(['BSP_USING_ADC']):
+ src += Glob('ports/drv_hard_i2c.c')
+ src += Glob('ports/stpmic.c')
+
+if GetDepend(['BSP_USING_DAC']):
+ src += Glob('ports/drv_hard_i2c.c')
+ src += Glob('ports/stpmic.c')
+
+if GetDepend(['BSP_USING_WWDG']):
+ src += Glob('ports/drv_wwdg.c')
+
+if GetDepend(['BSP_USING_LPTIM']):
+ src += Glob('ports/drv_lptim.c')
+
+path = [cwd]
+path += [cwd + '/CubeMX_Config/CM4/Inc']
+path += [cwd + '/ports']
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/gcc/startup_stm32mp15xx.s']
+elif rtconfig.CROSS_TOOL == 'keil':
+ src += [startup_path_prefix + '/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/arm/startup_stm32mp15xx.s']
+elif rtconfig.CROSS_TOOL == 'iar':
+ src += [startup_path_prefix + '/STM32MPxx_HAL/CMSIS/Device/ST/STM32MP1xx/Source/Templates/iar/startup_stm32mp15xx.s']
+
+CPPDEFINES = ['CORE_CM4', 'STM32MP157Axx', 'USE_HAL_DRIVER']
+
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+Return('group')
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/board.c b/bsp/stm32/stm32mp157a-st-ev1/board/board.c
new file mode 100644
index 0000000000000000000000000000000000000000..0a7bda208aae2553ef8b8e6108facdd15a4fab48
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/board.c
@@ -0,0 +1,189 @@
+/*
+* 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
+* 2019-04-09 WillianChan add stm32f469-st-disco bsp
+* 2020-06-20 thread-liu add stm32mp157-dk1 bsp
+*/
+
+#include "board.h"
+
+/**
+* @brief System Clock Configuration
+* @retval None
+*/
+void SystemClock_Config(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+
+ /**Configure LSE Drive Capability
+ */
+ HAL_PWR_EnableBkUpAccess();
+ __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMHIGH);
+
+ /**Initializes the CPU, AHB and APB busses clocks
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE
+ |RCC_OSCILLATORTYPE_LSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DIG;
+ RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSICalibrationValue = 16;
+ RCC_OscInitStruct.HSIDivValue = RCC_HSI_DIV1;
+
+ /**PLL1 Config
+ */
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLL12SOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 3;
+ RCC_OscInitStruct.PLL.PLLN = 81;
+ RCC_OscInitStruct.PLL.PLLP = 1;
+ RCC_OscInitStruct.PLL.PLLQ = 1;
+ RCC_OscInitStruct.PLL.PLLR = 1;
+ RCC_OscInitStruct.PLL.PLLFRACV = 0x800;
+ RCC_OscInitStruct.PLL.PLLMODE = RCC_PLL_FRACTIONAL;
+ RCC_OscInitStruct.PLL.RPDFN_DIS = RCC_RPDFN_DIS_DISABLED;
+ RCC_OscInitStruct.PLL.TPDFN_DIS = RCC_TPDFN_DIS_DISABLED;
+
+ /**PLL2 Config
+ */
+ RCC_OscInitStruct.PLL2.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL2.PLLSource = RCC_PLL12SOURCE_HSE;
+ RCC_OscInitStruct.PLL2.PLLM = 3;
+ RCC_OscInitStruct.PLL2.PLLN = 66;
+ RCC_OscInitStruct.PLL2.PLLP = 2;
+ RCC_OscInitStruct.PLL2.PLLQ = 1;
+ RCC_OscInitStruct.PLL2.PLLR = 1;
+ RCC_OscInitStruct.PLL2.PLLFRACV = 0x1400;
+ RCC_OscInitStruct.PLL2.PLLMODE = RCC_PLL_FRACTIONAL;
+ RCC_OscInitStruct.PLL2.RPDFN_DIS = RCC_RPDFN_DIS_DISABLED;
+ RCC_OscInitStruct.PLL2.TPDFN_DIS = RCC_TPDFN_DIS_DISABLED;
+
+ /**PLL3 Config
+ */
+ RCC_OscInitStruct.PLL3.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL3.PLLSource = RCC_PLL3SOURCE_HSE;
+ RCC_OscInitStruct.PLL3.PLLM = 2;
+ RCC_OscInitStruct.PLL3.PLLN = 34;
+ RCC_OscInitStruct.PLL3.PLLP = 2;
+ RCC_OscInitStruct.PLL3.PLLQ = 17;
+ RCC_OscInitStruct.PLL3.PLLR = 37;
+ RCC_OscInitStruct.PLL3.PLLRGE = RCC_PLL3IFRANGE_1;
+ RCC_OscInitStruct.PLL3.PLLFRACV = 0x1A04;
+ RCC_OscInitStruct.PLL3.PLLMODE = RCC_PLL_FRACTIONAL;
+ RCC_OscInitStruct.PLL3.RPDFN_DIS = RCC_RPDFN_DIS_DISABLED;
+ RCC_OscInitStruct.PLL3.TPDFN_DIS = RCC_TPDFN_DIS_DISABLED;
+
+ /**PLL4 Config
+ */
+ RCC_OscInitStruct.PLL4.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL4.PLLSource = RCC_PLL4SOURCE_HSE;
+ RCC_OscInitStruct.PLL4.PLLM = 4;
+ RCC_OscInitStruct.PLL4.PLLN = 99;
+ RCC_OscInitStruct.PLL4.PLLP = 6;
+ RCC_OscInitStruct.PLL4.PLLQ = 8;
+ RCC_OscInitStruct.PLL4.PLLR = 8;
+ RCC_OscInitStruct.PLL4.PLLRGE = RCC_PLL4IFRANGE_0;
+ RCC_OscInitStruct.PLL4.PLLFRACV = 0;
+ RCC_OscInitStruct.PLL4.PLLMODE = RCC_PLL_INTEGER;
+ RCC_OscInitStruct.PLL4.RPDFN_DIS = RCC_RPDFN_DIS_DISABLED;
+ RCC_OscInitStruct.PLL4.TPDFN_DIS = RCC_TPDFN_DIS_DISABLED;
+
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /**RCC Clock Config
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_ACLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
+ |RCC_CLOCKTYPE_PCLK3|RCC_CLOCKTYPE_PCLK4
+ |RCC_CLOCKTYPE_PCLK5|RCC_CLOCKTYPE_MPU;
+ RCC_ClkInitStruct.MPUInit.MPU_Clock = RCC_MPUSOURCE_PLL1;
+ RCC_ClkInitStruct.MPUInit.MPU_Div = RCC_MPU_DIV2;
+ RCC_ClkInitStruct.AXISSInit.AXI_Clock = RCC_AXISSOURCE_PLL2;
+ RCC_ClkInitStruct.AXISSInit.AXI_Div = RCC_AXI_DIV1;
+ RCC_ClkInitStruct.MCUInit.MCU_Clock = RCC_MCUSSOURCE_PLL3;
+ RCC_ClkInitStruct.MCUInit.MCU_Div = RCC_MCU_DIV1;
+ RCC_ClkInitStruct.APB4_Div = RCC_APB4_DIV2;
+ RCC_ClkInitStruct.APB5_Div = RCC_APB5_DIV4;
+ RCC_ClkInitStruct.APB1_Div = RCC_APB1_DIV2;
+ RCC_ClkInitStruct.APB2_Div = RCC_APB2_DIV2;
+ RCC_ClkInitStruct.APB3_Div = RCC_APB3_DIV2;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /**Set the HSE division factor for RTC clock
+ */
+ __HAL_RCC_RTC_HSEDIV(24);
+}
+
+
+/**
+* @brief Peripherals Common Clock Configuration
+* @retval None
+*/
+void PeriphCommonClock_Config(void) {
+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+
+ /** Initializes the common periph clock
+ */
+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_CKPER;
+ PeriphClkInit.CkperClockSelection = RCC_CKPERCLKSOURCE_HSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
+ Error_Handler();
+ }
+}
+
+extern void rt_hw_systick_init(void);
+extern int rt_hw_usart_init(void);
+void rt_hw_board_init()
+{
+ /* HAL_Init() function is called at the beginning of the program */
+ HAL_Init();
+
+ /* enable interrupt */
+ __set_PRIMASK(0);
+ /* Configure the system clock */
+ if (IS_ENGINEERING_BOOT_MODE()) {
+ /* Configure the system clock */
+ SystemClock_Config();
+ }
+ /* disable interrupt */
+ __set_PRIMASK(1);
+
+ rt_hw_systick_init();
+
+ /* Heap initialization */
+#if defined(RT_USING_HEAP)
+ rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
+#endif
+
+ /* Pin driver initialization is open by default */
+#ifdef RT_USING_PIN
+ rt_hw_pin_init();
+#endif
+
+ /* USART driver initialization is open by default */
+#ifdef RT_USING_SERIAL
+ rt_hw_usart_init();
+#endif
+
+ /* Set the shell console output device */
+#ifdef RT_USING_CONSOLE
+ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+#endif
+
+ /* Board underlying hardware initialization */
+#ifdef RT_USING_COMPONENTS_INIT
+ rt_components_board_init();
+#endif
+}
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/board.h b/bsp/stm32/stm32mp157a-st-ev1/board/board.h
new file mode 100644
index 0000000000000000000000000000000000000000..b23b83ee30489012ee501e9208203ae609857164
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/board.h
@@ -0,0 +1,54 @@
+/*
+ * 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
+ * 2019-04-09 WillianChan add stm32f469-st-disco bsp
+ */
+
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#include
+#include "stm32mp1xx.h"
+#include "stm32mp1xx_hal.h"
+#include "drv_common.h"
+#include "drv_gpio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define STM32_FLASH_START_ADRESS ((uint32_t)0x10000000)
+#define STM32_FLASH_SIZE (256 * 1024)
+#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE))
+
+#define STM32_SRAM_SIZE (128)
+#define STM32_SRAM_END ((uint32_t)0x10040000 + (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 (0x10040000 + 64 * 1024)
+#endif
+
+#define HEAP_END STM32_SRAM_END
+
+void SystemClock_Config(void);
+
+extern void _Error_Handler(char *s, int num);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.icf b/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.icf
new file mode 100644
index 0000000000000000000000000000000000000000..9aa4aad24e577a197f903f38d13c2c70a73ade12
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.icf
@@ -0,0 +1,36 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__ = 0x00000000;
+/*-Memory Regions-*/
+define symbol __ICFEDIT_region_ROM_start__ = 0x10000000;
+define symbol __ICFEDIT_region_ROM_end__ = 0x1003FFFF;
+define symbol __ICFEDIT_region_RAM_start__ = 0x10050000;
+define symbol __ICFEDIT_region_RAM_end__ = 0x1005FFFF;
+
+/*-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 };
+
+/* Create region for OPENAMP */
+/* !!! These 4 lines can be commented if OPENAMP is not used !!!*/
+define symbol __OPENAMP_region_start__ = 0x10040000;
+define symbol __OPENAMP_region_size__ = 0x8000;
+export symbol __OPENAMP_region_start__;
+export symbol __OPENAMP_region_size__;
+
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+
+place in ROM_region { readonly };
+place in RAM_region { readwrite, last block CSTACK};
\ No newline at end of file
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.lds b/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.lds
new file mode 100644
index 0000000000000000000000000000000000000000..b2ae4c15ec7ac235203b49dd4c4c4cc813285593
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/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 = 0x10000000, LENGTH = 256k /* 256KB flash */
+ RAM (rw) : ORIGIN = 0x10040000, LENGTH = 128k /* 128K 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/stm32mp157a-st-ev1/board/linker_scripts/link.sct b/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.sct
new file mode 100644
index 0000000000000000000000000000000000000000..40d9679d172d016b0e15d7fd83ba6b37e3af90e5
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/linker_scripts/link.sct
@@ -0,0 +1,27 @@
+; *************************************************************
+; *** Scatter-Loading Description ***
+; *************************************************************
+
+LR_VECTORS 0x00000000 0x00000400 { ; load region size_region
+ .isr_vector +0 {
+ startup*.o (RESET, +First)
+ }
+}
+
+LR_IROM1 0x10000000 0x00040000 { ; load region size_region
+ ER_IROM1 0x10000000 0x00040000 { ; load address = execution address
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ .ANY (+XO)
+ }
+ RW_IRAM1 0x10050000 0x00010000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+
+
+;; ***** Create region for OPENAMP *****
+;; *** These 4 lines can be commented if OPENAMP is not used *****
+; .resource_table +0 ALIGN 4 { ; resource table
+; *(.resource_table)
+; } __OpenAMP_SHMEM__ 0x10040000 EMPTY 0x8000 {} ; Shared Memory area used by OpenAMP
+}
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.c b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.c
new file mode 100644
index 0000000000000000000000000000000000000000..f4bc430a110b0c8d62e09c066bf7d562c985e0dc
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.c
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-06-18 thread-liu the first version
+ */
+
+#include
+#include "drv_hard_i2c.h"
+
+//#define DRV_DEBUG
+#define LOG_TAG "drv.hardi2c"
+#include
+
+I2C_HandleTypeDef hI2c4;
+
+int32_t BSP_I2C4_Init(void)
+{
+ int32_t status = RT_EOK;
+
+ if (HAL_I2C_GetState(&hI2c4) == HAL_I2C_STATE_RESET)
+ {
+ if (MX_I2C4_Init(&hI2c4) != HAL_OK)
+ {
+ status = -RT_EBUSY;
+ }
+ /* Init the I2C Msp */
+ if (HAL_I2C_Init(&hI2c4) != HAL_OK)
+ {
+ LOG_D("I2C4 Init Error!\n");
+ status = -RT_EBUSY;
+ }
+ }
+ return status;
+}
+
+int32_t BSP_I2C4_DeInit(void)
+{
+ int32_t status = RT_EOK;
+
+ HAL_I2C_MspDeInit(&hI2c4);
+
+ /* Init the I2C */
+ if (HAL_I2C_DeInit(&hI2c4) != HAL_OK)
+ {
+ status = -RT_EEMPTY;
+ }
+
+ return status;
+}
+
+HAL_StatusTypeDef MX_I2C4_Init(I2C_HandleTypeDef *hI2c)
+{
+ hI2c4.Instance = I2C4;
+ hI2c->Init.Timing = I2C4_TIMING;
+ hI2c->Init.OwnAddress1 = STPMU1_I2C_ADDRESS;
+ hI2c->Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hI2c->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hI2c->Init.OwnAddress2 = 0;
+ hI2c->Init.OwnAddress2Masks = I2C_OA2_NOMASK;
+ hI2c->Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hI2c->Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+
+ return HAL_I2C_Init(hI2c);
+}
+
+int32_t BSP_I2C4_WriteReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length)
+{
+ return I2C4_WriteReg(DevAddr, Reg, I2C_MEMADD_SIZE_8BIT, pData, Length);
+}
+
+int32_t BSP_I2C4_ReadReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length)
+{
+ return I2C4_ReadReg(DevAddr, Reg, I2C_MEMADD_SIZE_8BIT, pData, Length);
+}
+
+int32_t BSP_I2C4_WriteReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length)
+{
+ return I2C4_WriteReg(DevAddr, Reg, I2C_MEMADD_SIZE_16BIT, pData, Length);
+}
+
+int32_t BSP_I2C4_ReadReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length)
+{
+ return I2C4_ReadReg(DevAddr, Reg, I2C_MEMADD_SIZE_16BIT, pData, Length);
+}
+
+int32_t BSP_I2C4_IsReady(uint16_t DevAddr, uint32_t Trials)
+{
+ int32_t status = RT_EOK;
+
+ if(HAL_I2C_IsDeviceReady(&hI2c4, DevAddr, Trials, 1000) != HAL_OK)
+ {
+ status = -RT_EBUSY;
+ }
+
+ return status;
+}
+
+static int32_t I2C4_WriteReg(uint16_t DevAddr, uint16_t Reg, uint16_t MemAddSize, uint8_t *pData, uint16_t Length)
+{
+ int32_t status = -RT_EIO;
+
+ if(HAL_I2C_Mem_Write(&hI2c4, DevAddr, Reg, MemAddSize, pData, Length, 10000) == HAL_OK)
+ {
+ status = RT_EOK;
+ }
+
+ return status;
+}
+
+static int32_t I2C4_ReadReg(uint16_t DevAddr, uint16_t Reg, uint16_t MemAddSize, uint8_t *pData, uint16_t Length)
+{
+ int32_t status = -RT_EIO;
+
+ if (HAL_I2C_Mem_Read(&hI2c4, DevAddr, Reg, MemAddSize, pData, Length, 10000) == HAL_OK)
+ {
+ status = RT_EOK;
+ }
+
+ return status;
+}
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.h b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.h
new file mode 100644
index 0000000000000000000000000000000000000000..e3ec157d0c23817e77cd2beebf31170b4e60f4d5
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_hard_i2c.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-06-18 thread-liu the first version
+ */
+
+#ifndef __DRV_HARD_I2C_H__
+#define __DRV_HARD_I2C_H__
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32mp1xx_hal.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define STPMU1_I2C_ADDRESS ((0x33 & 0x7F) << 1)
+
+#ifndef I2C_SPEED
+#define I2C_SPEED ((uint32_t)100000)
+#endif /* I2C_SPEED */
+
+#ifndef I2C4_TIMING
+#define I2C4_TIMING ((uint32_t)0x10805E89)
+#endif
+
+static int32_t I2C4_WriteReg(uint16_t DevAddr, uint16_t MemAddSize, uint16_t Reg, uint8_t *pData, uint16_t Length);
+static int32_t I2C4_ReadReg(uint16_t DevAddr, uint16_t MemAddSize, uint16_t Reg, uint8_t *pData, uint16_t Length);
+
+int32_t BSP_I2C4_Init(void);
+int32_t BSP_I2C4_DeInit(void);
+int32_t BSP_I2C4_WriteReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
+int32_t BSP_I2C4_ReadReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
+int32_t BSP_I2C4_WriteReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
+int32_t BSP_I2C4_ReadReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
+int32_t BSP_I2C4_IsReady(uint16_t DevAddr, uint32_t Trials);
+
+HAL_StatusTypeDef MX_I2C4_Init(I2C_HandleTypeDef *hI2c);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_lptim.c b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_lptim.c
new file mode 100644
index 0000000000000000000000000000000000000000..2b8d63b0ae8a5a1a3f158e6748c89df010b04f0a
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_lptim.c
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-06-19 thread-liu first version
+ */
+
+#include
+
+#ifdef BSP_USING_LPTIM
+#include "drv_config.h"
+#include
+#include
+
+//#define DRV_DEBUG
+#define LOG_TAG "drv.lptimer"
+#include
+
+LPTIM_HandleTypeDef hlptim1;
+
+void LPTIM1_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_LPTIM_IRQHandler(&hlptim1);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim)
+{
+ if(hlptim->Instance == LPTIM1)
+ {
+ rt_kprintf("hello rt-thread!\n");
+ }
+}
+
+static int lptim_control(uint8_t pre_value)
+{
+ if(pre_value > 7)
+ {
+ pre_value = 7;
+ }
+ hlptim1.Instance->CFGR &= ~(7 << 9); /* clear PRESC[2:0] */
+ hlptim1.Instance->CFGR |= pre_value << 9; /* set PRESC[2:0] */
+
+ return RT_EOK;
+}
+
+/**
+ * This function initialize the lptim
+ */
+static int lptim_init(void)
+{
+ hlptim1.Instance = LPTIM1;
+ hlptim1.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
+ hlptim1.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
+ hlptim1.Init.UltraLowPowerClock.Polarity = LPTIM_CLOCKPOLARITY_RISING;
+ hlptim1.Init.UltraLowPowerClock.SampleTime = LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION;
+ hlptim1.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
+ hlptim1.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
+ hlptim1.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
+ hlptim1.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
+ hlptim1.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO;
+ hlptim1.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO;
+ if (HAL_LPTIM_Init(&hlptim1) != HAL_OK)
+ {
+ LOG_D("LPTIM Init Error!\n");
+ return -RT_ERROR;
+ }
+ /* ### Start counting in interrupt mode ############################# */
+ if (HAL_LPTIM_Counter_Start_IT(&hlptim1, 5000) != HAL_OK)
+ {
+ LOG_D("LPTIM Start Counting Error!\n");
+ return -RT_ERROR;
+ }
+
+ return RT_EOK;
+}
+
+static int lptim_deinit()
+{
+ if (HAL_LPTIM_DeInit(&hlptim1) != HAL_OK)
+ {
+ LOG_D("LPTIM Deinit Error!\n");
+ return -RT_ERROR;
+ }
+
+ return RT_EOK;
+}
+
+static int lptim_sample(int argc, char *argv[])
+{
+ if (argc > 1)
+ {
+ if (!strcmp(argv[1], "run"))
+ {
+ lptim_init();
+ }
+ else if (!strcmp(argv[1], "stop"))
+ {
+ lptim_deinit();
+ }
+ else if (!strcmp(argv[1], "set"))
+ {
+ if (argc > 2)
+ {
+ lptim_control(atoi(argv[2]));
+ }
+ }
+ }
+ else
+ {
+ rt_kprintf("Usage:\n");
+ rt_kprintf("lptim_sample run - open lptim, shell will printf 'hello rt-thread'\n");
+ rt_kprintf("lptim_sample set - set the lptim prescaler, lptim_sample set [0 - 7]\n");
+ }
+
+ return RT_EOK;
+}
+MSH_CMD_EXPORT(lptim_sample, low power timer sample);
+
+#endif
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_wwdg.c b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_wwdg.c
new file mode 100644
index 0000000000000000000000000000000000000000..58c5c3f3032823984e2feb5e7b43ec2452e14367
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/drv_wwdg.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-06-18 thread-liu the first version
+ */
+
+#include
+
+#if defined(BSP_USING_WWDG)
+#include "drv_config.h"
+#include
+#include
+
+//#define DRV_DEBUG
+#define LOG_TAG "drv.wwg"
+#include
+
+#define LED5_PIN GET_PIN(A, 14)
+
+WWDG_HandleTypeDef hwwdg1;
+
+void WWDG1_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_WWDG_IRQHandler(&hwwdg1);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg)
+{
+ static unsigned char led_value = 0x00;
+
+ led_value = !led_value;
+
+ if(hwwdg->Instance==WWDG1)
+ {
+ HAL_WWDG_Refresh(&hwwdg1);
+ rt_pin_write(LED5_PIN, led_value);
+ }
+}
+
+static void wwdg_init()
+{
+ rt_pin_mode(LED5_PIN, PIN_MODE_OUTPUT);
+
+ hwwdg1.Instance = WWDG1;
+ hwwdg1.Init.Prescaler = WWDG_PRESCALER_8;
+ hwwdg1.Init.Window = 0X5F;
+ hwwdg1.Init.Counter = 0x7F;
+ hwwdg1.Init.EWIMode = WWDG_EWI_ENABLE;
+
+ if (HAL_WWDG_Init(&hwwdg1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+static void wwdg_control(uint8_t pre_value)
+{
+ if(pre_value > 7)
+ {
+ pre_value = 7;
+ }
+ hwwdg1.Instance->CFR &= ~(7 << 11); /* clear WDGTB[2:0] */
+ hwwdg1.Instance->CFR |= pre_value << 11; /* set WDGTB[2:0] */
+}
+
+static int wwdg_sample(int argc, char *argv[])
+{
+ if (argc > 1)
+ {
+ if (!strcmp(argv[1], "run"))
+ {
+ wwdg_init();
+ }
+ else if (!strcmp(argv[1], "set"))
+ {
+ if (argc > 2)
+ {
+ wwdg_control(atoi(argv[2]));
+ }
+ }
+ }
+ else
+ {
+ rt_kprintf("Usage:\n");
+ rt_kprintf("wwdg_sample run - open wwdg, when feed wwdg in wwdg irq, the LD5 will blink\n");
+ rt_kprintf("wwdg_sample set - set the wwdg prescaler, wwdg_sample set [0 - 7]\n");
+ }
+
+ return RT_EOK;
+}
+MSH_CMD_EXPORT(wwdg_sample, window watch dog sample);
+
+#endif
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.c b/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.c
new file mode 100644
index 0000000000000000000000000000000000000000..42a252e679e9b25a7a5251723d57bd266166a2f5
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.c
@@ -0,0 +1,1225 @@
+/**
+ ******************************************************************************
+ * @file stpmic.c
+ * @author MCD Application Team
+ * @brief This sample code provides hardware semaphore using HSEM for
+ * synchronization and mutual exclusion between heterogeneous processors
+ * and those not operating under a single, shared operating system.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2019 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
+ *
+ ******************************************************************************
+ */
+
+#include
+#include
+#include
+#include "drv_hard_i2c.h"
+
+/* Definition of PMIC <=> stm32mp1 Signals */
+#define PMIC_INTn_PIN GPIO_PIN_0
+#define PMIC_INTn_PORT GPIOA
+#define PMIC_INTn_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
+#define PMIC_INTn_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#define BSP_PMIC_PWRCTRL_PIN_Assert() HAL_GPIO_WritePin(PMIC_PWRCTRL_PORT, PMIC_PWRCTRL_PIN, GPIO_PIN_RESET);
+#define BSP_PMIC_PWRCTRL_PIN_Pull() HAL_GPIO_WritePin(PMIC_PWRCTRL_PORT, PMIC_PWRCTRL_PIN, GPIO_PIN_SET);
+
+/**
+ * @}
+ */
+
+ /** @defgroup STM32MP15XX_EVAL_STPMU_Private_Defines Private Defines
+ * @{
+ */
+/* Private typedef -----------------------------------------------------------*/
+typedef struct {
+ PMIC_RegulId_TypeDef id;
+ uint16_t *voltage_table;
+ uint8_t voltage_table_size;
+ uint8_t control_reg;
+ uint8_t low_power_reg;
+ uint8_t rank ;
+ uint8_t nvm_info ;
+} regul_struct;
+
+/* Private define ------------------------------------------------------------*/
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+/* Those define should reflect NVM_USER section
+ * For ES Eval Configuration this is specified as
+ * 0xF7,
+ 0x92,
+ 0xC0,
+ 0x02,
+ 0xFA,
+ 0x30,
+ 0x00,
+ 0x33,
+ * */
+#define NVM_SECTOR3_REGISTER_0 0xF7
+#define NVM_SECTOR3_REGISTER_1 0x92
+#define NVM_SECTOR3_REGISTER_2 0xC0
+#define NVM_SECTOR3_REGISTER_3 0x02
+#define NVM_SECTOR3_REGISTER_4 0xFA
+#define NVM_SECTOR3_REGISTER_5 0x30
+#define NVM_SECTOR3_REGISTER_6 0x00
+#define NVM_SECTOR3_REGISTER_7 0x33
+
+/* nvm_vinok_hyst: VINOK hysteresis voltage
+ 00: 200mV
+ 01: 300mV
+ 10: 400mV
+ 11: 500mV
+ *
+ * nvm_vinok: VINOK threshold voltage
+ 00: 3.1v
+ 01: 3.3v
+ 10: 3.5v
+ 11: 4.5v
+ Otp_ldo4_forced :
+ 0: LDO4 ranks following OTP_RANK_LDO4<1:0>
+ if VBUS_OTG or SWOUT is turn ON condition
+ 1: LDO4 follows normal ranking procedure
+
+ nvm_longkeypress:
+ 0: Turn OFF on long key press inactive
+ 1: Turn OFF on long key press active
+
+ nvm_autoturnon:
+ 0: PMIC doesnt start automatically on VIN rising
+ 1: PMIC starts automatically on VIN rising
+
+ nvm_cc_keepoff :
+ 0: short circuit does not turn OFF PMIC
+ 1: short circuit turn OFF PMIC and keep it OFF till CC_flag is reset
+
+ *
+ */
+#define OTP_VINOK_HYST ((NVM_SECTOR3_REGISTER_0 & 0xC0) >> 6) // nvm_vinok_hyst
+#define OTP_VINOK ((NVM_SECTOR3_REGISTER_0 & 0x30) >> 4) // nvm_vinok
+#define OTP_LDO4_FORCED ((NVM_SECTOR3_REGISTER_0 & 0x08) >> 3) // Otp_ldo4_forced
+#define OTP_LONGKEYPRESSED ((NVM_SECTOR3_REGISTER_0 & 0x04) >> 2) // nvm_longkeypress
+#define OTP_AUTOTURNON ((NVM_SECTOR3_REGISTER_0 & 0x02) >> 1) // nvm_autoturnon
+#define OTP_CC_KEEPOFF ((NVM_SECTOR3_REGISTER_0 & 0x01)) // nvm_cc_keepoff
+
+/*
+ * nvm_rank_buck4:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_buck3:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_buck2:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_buck1:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ *
+ */
+#define OTP_RANK_BUCK4 ((NVM_SECTOR3_REGISTER_1 & 0xC0) >> 6) // nvm_rank_buck4
+#define OTP_RANK_BUCK3 ((NVM_SECTOR3_REGISTER_1 & 0x30) >> 4) // nvm_rank_buck3
+#define OTP_RANK_BUCK2 ((NVM_SECTOR3_REGISTER_1 & 0x0C) >> 2) // nvm_rank_buck2
+#define OTP_RANK_BUCK1 ((NVM_SECTOR3_REGISTER_1 & 0x03)) // nvm_rank_buck1
+
+
+/*
+ * nvm_rank_ldo4:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_ldo3:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_ldo2:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ nvm_rank_ldo1:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ *
+ */
+#define OTP_RANK_LDO4 ((NVM_SECTOR3_REGISTER_2 & 0xC0) >> 6) // nvm_rank_ldo4
+#define OTP_RANK_LDO3 ((NVM_SECTOR3_REGISTER_2 & 0x30) >> 4) // nvm_rank_ldo3
+#define OTP_RANK_LDO2 ((NVM_SECTOR3_REGISTER_2 & 0x0C) >> 2) // nvm_rank_ldo2
+#define OTP_RANK_LDO1 ((NVM_SECTOR3_REGISTER_2 & 0x03)) // nvm_rank_ldo1
+
+/*
+ * nvm_clamp_output_buck: Clamp output value to 1.3V max
+ 0: output_buck4<5:0> not clamped
+ 1: output_buck4<5:0> to b011100(1.3V)
+
+ nvm_bypass_mode_ldo3: LDO3 forced bypass mode
+ 0: LDO3 not in bypass mode
+ 1: LDO3 in bypass mode
+
+ nvm_rank_vrefddr:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+
+ nvm_rank_ldo6:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+
+nvm_rank_ldo5:
+ 00: rank0
+ 01: rank1
+ 10: rank2
+ 11: rank3
+ *
+ */
+#define OTP_CLAMP_OUTPUT_BUCK4 ((NVM_SECTOR3_REGISTER_3 & 0x80) >> 7) // nvm_clamp_output_buck4
+#define OTP_BYPASS_MODE_LDO3 ((NVM_SECTOR3_REGISTER_3 & 0x40) >> 6) // nvm_bypass_mode_ldo3
+#define OTP_RANK_VREFDDR ((NVM_SECTOR3_REGISTER_3 & 0x30) >> 4) // nvm_rank_vrefddr
+#define OTP_RANK_LDO6 ((NVM_SECTOR3_REGISTER_3 & 0x0C) >> 2) // nvm_rank_ldo6
+#define OTP_RANK_LDO5 ((NVM_SECTOR3_REGISTER_3 & 0x03)) // nvm_rank_ldo5
+
+/*
+ * nvm_output_buck4: Buck4 default output selection
+ 00: 1.15V
+ 01: 1.2V
+ 10: 1.8V
+ 11: 3.3V
+ nvm_output_buck3: Buck3 default output selection
+ 00: 1.2V
+ 01: 1.8V
+ 10: 3.0V
+ 11: 3.3V
+ nvm_output_buck2: Buck2 default output selection
+ 00: 1.1V
+ 01: 1.2V
+ 10: 1.35V
+ 11: 1.5V
+ nvm_output_buck1: Buck1 default output selection
+ 00: 1.1V
+ 01: 1.15V
+ 10: 1.2V
+ 11: 1.25V
+ *
+ */
+#define OTP_OUTPUT_BUCK4 ((NVM_SECTOR3_REGISTER_4 & 0xC0) >> 6) // nvm_output_buck4
+#define OTP_OUTPUT_BUCK3 ((NVM_SECTOR3_REGISTER_4 & 0x30) >> 4) // nvm_output_buck3
+#define OTP_OUTPUT_BUCK2 ((NVM_SECTOR3_REGISTER_4 & 0x0C) >> 2) // nvm_output_buck2
+#define OTP_OUTPUT_BUCK1 ((NVM_SECTOR3_REGISTER_4 & 0x03)) // nvm_output_buck1
+
+/*
+ * [7] OTP_SWOFF_BY_BOOST_OVP:
+ 0 -> SWOUT will not turnoff bu boost OVP
+ 1 -> SWOUT will be turnoff by BOOST OVP
+
+ [6] reserved
+
+ [5:4] nvm_output_ldo3: LDO3 default output selection
+ 00: 1.8V
+ 01: 2.5V
+ 10: 3.3V
+ 11: output_buck2<4:0>/2 (VTT termination for DDR3 x32, Analog divider implemented in Analog)
+
+ [3:2] nvm_output_ldo2: LDO2 default output selection
+ 00: 1.8V
+ 01: 2.5V
+ 10: 2.9V
+ 11: 3.3V
+
+ [1:0] nvm_output_ldo1: LDO1 default output selection
+ 00: 1.8V
+ 01: 2.5V
+ 10: 2.9V
+ 11: 3.3V
+
+ *
+ */
+#define OTP_SWOFF_BY_BOOST_OVP ((NVM_SECTOR3_REGISTER_5 & 0x80) >> 7) // OTP_SWOFF_BY_BOOST_OVP
+#define OTP_OUTPUT_LDO3 ((NVM_SECTOR3_REGISTER_5 & 0x30) >> 4) // nvm_output_ldo3
+#define OTP_OUTPUT_LDO2 ((NVM_SECTOR3_REGISTER_5 & 0x0C) >> 2) // nvm_output_ldo2
+#define OTP_OUTPUT_LDO1 ((NVM_SECTOR3_REGISTER_5 & 0x03)) // nvm_output_ldo1
+
+/*
+ * [7:4] reserved
+ *
+ [3:2] nvm_output_ldo6: LDO6 default output selection
+ 00: 1.0V
+ 01: 1.2V
+ 10: 1.8V
+ 11: 3.3V
+
+ [1:0] nvm_output_ldo5: LDO5 default output selection
+ 00: 1.8V
+ 01: 2.5V
+ 10: 2.9V
+ 11 : 3.3V
+ *
+ */
+
+#define OTP_OUTPUT_LDO6 ((NVM_SECTOR3_REGISTER_6 & 0x0C) >> 2) // nvm_output_ldo6
+#define OTP_OUTPUT_LDO5 ((NVM_SECTOR3_REGISTER_6 & 0x03)) // nvm_output_ldo5
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* I2C handler declaration */
+I2C_HandleTypeDef I2cHandle;
+extern I2C_HandleTypeDef hI2c4;
+
+uint16_t buck1_voltage_table[] = {
+ 600,
+ 625,
+ 650,
+ 675,
+ 700,
+ 725,
+ 750,
+ 775,
+ 800,
+ 825,
+ 850,
+ 875,
+ 900,
+ 925,
+ 950,
+ 975,
+ 1000,
+ 1025,
+ 1050,
+ 1075,
+ 1100,
+ 1125,
+ 1150,
+ 1175,
+ 1200,
+ 1225,
+ 1250,
+ 1275,
+ 1300,
+ 1325,
+ 1350,
+ 1350,// 31 1,35stm32mp15xx_eval_stpmu1.c
+};
+
+uint16_t buck2_voltage_table[] = {
+ 1000, // 1
+ 1000, //
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1050, // 1,05
+ 1050, // 1,05
+ 1100, // 1,1
+ 1100, // 1,1
+ 1150, // 1,15
+ 1150, // 1,15
+ 1200, // 1,2
+ 1200, // 1,2
+ 1250, // 1,25
+ 1250, // 1,25
+ 1300, // 1,3
+ 1300, // 1,3
+ 1350, // 1,35
+ 1350, // 1,35
+ 1400, // 1,4
+ 1400, // 1,4
+ 1450, // 1,45
+ 1450, // 1,45
+ 1500, // 1,5
+};
+
+uint16_t buck3_voltage_table[] = {
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1000, // 1
+ 1100, // 1,1
+ 1100, // 1,1
+ 1100, // 1,1
+ 1100, // 1,1
+ 1200, // 1,2
+ 1200, // 1,2
+ 1200, // 1,2
+ 1200, // 1,2
+ 1300, // 1,3
+ 1300, // 1,3
+ 1300, // 1,3
+ 1300, // 1,3
+ 1400, // 1,4
+ 1400, // 1,4
+ 1400, // 1,4
+ 1400, // 1,4
+ 1500, // 1,5
+ 1600, // 1,6
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+ 3400, // 3,4
+};
+
+uint16_t buck4_voltage_table[] = {
+ 600,
+ 625,
+ 650,
+ 675,
+ 700,
+ 725,
+ 750,
+ 775,
+ 800,
+ 825,
+ 850,
+ 875,
+ 900,
+ 925,
+ 950,
+ 975,
+ 1000,
+ 1025,
+ 1050,
+ 1075,
+ 1100,
+ 1125,
+ 1150,
+ 1175,
+ 1200,
+ 1225,
+ 1250,
+ 1275,
+ 1300,
+ 1300,
+ 1350,
+ 1350,// 31 1,35
+ 1400,// 32 1,40
+ 1400,// 33 1,40
+ 1450,// 34 1,45
+ 1450,// 35 1,45
+ 1500,// 36 1,5
+ 1600,// 37 1,6
+ 1700,// 38 1,7
+ 1800,// 39 1,8
+ 1900,// 40 1,9
+ 2000,// 41 2,0
+ 2100,// 42 2,1
+ 2200,// 43 2,2
+ 2300,// 44 2,3
+ 2400,// 45 2,4
+ 2500,// 46 2,5
+ 2600,// 47 2,6
+ 2700,// 48 2,7
+ 2800,// 49 2,8
+ 2900,// 50 2,9
+ 3000,// 51 3,0
+ 3100,// 52 3,1
+ 3200,// 53 3,2
+ 3300,// 54 3,3
+ 3400,// 55 3,4
+ 3500,// 56 3,5
+ 3600,// 57 3,6
+ 3700,// 58 3,7
+ 3800,// 59 3,8
+ 3900,// 60 3,9
+};
+
+uint16_t ldo1_voltage_table[] = {
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+};
+
+uint16_t ldo2_voltage_table[] = {
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+};
+
+uint16_t ldo3_voltage_table[] = {
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+ 3300, // 3,3
+ 3300, // 3,3
+ 3300, // 3,3
+ 3300, // 3,3
+ 3300, // 3,3
+ 3300, // 3,3
+ 0xFFFF, // VREFDDR
+};
+
+
+uint16_t ldo5_voltage_table[] = {
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+ 3400, // 3,4
+ 3500, // 3,5
+ 3600, // 3,6
+ 3700, // 3,7
+ 3800, // 3,8
+ 3900, // 3,9
+};
+
+uint16_t ldo6_voltage_table[] = {
+ 900, // 0,9
+ 1000, // 1,0
+ 1100, // 1,1
+ 1200, // 1,2
+ 1300, // 1,3
+ 1400, // 1,4
+ 1500, // 1,5
+ 1600, // 1,6
+ 1700, // 1,7
+ 1800, // 1,8
+ 1900, // 1,9
+ 2000, // 2
+ 2100, // 2,1
+ 2200, // 2,2
+ 2300, // 2,3
+ 2400, // 2,4
+ 2500, // 2,5
+ 2600, // 2,6
+ 2700, // 2,7
+ 2800, // 2,8
+ 2900, // 2,9
+ 3000, // 3
+ 3100, // 3,1
+ 3200, // 3,2
+ 3300, // 3,3
+};
+
+
+uint16_t ldo4_voltage_table[] = {
+ 3300, // 3,3
+};
+
+uint16_t vref_ddr_voltage_table[] = {
+ 3300, // 3,3
+};
+
+/*
+ Table of Regulators in PMIC SoC
+*/
+
+
+
+regul_struct regulators_table[] = {
+ {
+ .id = STPMU1_BUCK1,
+ .voltage_table = buck1_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(buck1_voltage_table),
+ .control_reg = BUCK1_CONTROL_REG,
+ .low_power_reg = BUCK1_PWRCTRL_REG,
+ .rank = OTP_RANK_BUCK1,
+ },
+ {
+ .id = STPMU1_BUCK2,
+ .voltage_table = buck2_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(buck2_voltage_table),
+ .control_reg = BUCK2_CONTROL_REG,
+ .low_power_reg = BUCK2_PWRCTRL_REG,
+ .rank = OTP_RANK_BUCK2,
+ },
+ {
+ .id = STPMU1_BUCK3,
+ .voltage_table = buck3_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(buck3_voltage_table),
+ .control_reg = BUCK3_CONTROL_REG,
+ .low_power_reg = BUCK3_PWRCTRL_REG,
+ .rank = OTP_RANK_BUCK3,
+ },
+ {
+ .id = STPMU1_BUCK4,
+ .voltage_table = buck4_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(buck4_voltage_table),
+ .control_reg = BUCK4_CONTROL_REG,
+ .low_power_reg = BUCK4_PWRCTRL_REG,
+ .rank = OTP_RANK_BUCK4,
+ },
+ {
+ .id = STPMU1_LDO1,
+ .voltage_table = ldo1_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(ldo1_voltage_table),
+ .control_reg = LDO1_CONTROL_REG,
+ .low_power_reg = LDO1_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO1,
+ },
+ {
+ .id = STPMU1_LDO2,
+ .voltage_table = ldo2_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(ldo2_voltage_table),
+ .control_reg = LDO2_CONTROL_REG,
+ .low_power_reg = LDO2_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO2,
+ },
+
+ {
+ .id = STPMU1_LDO3,
+ .voltage_table = ldo3_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(ldo3_voltage_table),
+ .control_reg = LDO3_CONTROL_REG,
+ .low_power_reg = LDO3_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO3,
+ },
+ {
+ .id = STPMU1_LDO4,
+ .voltage_table = ldo4_voltage_table,
+ .voltage_table_size = ARRAY_SIZE(ldo4_voltage_table),
+ .control_reg = LDO4_CONTROL_REG,
+ .low_power_reg = LDO4_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO4,
+ },
+ {
+ .id = STPMU1_LDO5,
+ .voltage_table = ldo5_voltage_table ,
+ .voltage_table_size = ARRAY_SIZE(ldo5_voltage_table),
+ .control_reg = LDO5_CONTROL_REG,
+ .low_power_reg = LDO5_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO5,
+ },
+ {
+ .id = STPMU1_LDO6,
+ .voltage_table = ldo6_voltage_table ,
+ .voltage_table_size = ARRAY_SIZE(ldo6_voltage_table),
+ .control_reg = LDO6_CONTROL_REG,
+ .low_power_reg = LDO6_PWRCTRL_REG,
+ .rank = OTP_RANK_LDO6,
+ },
+ {
+ .id = STPMU1_VREFDDR,
+ .voltage_table = vref_ddr_voltage_table ,
+ .voltage_table_size = ARRAY_SIZE(vref_ddr_voltage_table),
+ .control_reg = VREF_DDR_CONTROL_REG,
+ .low_power_reg = VREF_DDR_PWRCTRL_REG,
+ .rank = OTP_RANK_VREFDDR,
+ },
+};
+
+#define MAX_REGUL ARRAY_SIZE(regulators_table)
+
+
+/* Private function prototypes -----------------------------------------------*/
+void STPMU1_IrqHandler(void);
+void STPMU1_INTn_Callback(PMIC_IRQn IRQn);
+static void My_Error_Handler(void);
+static regul_struct *STPMU1_Get_Regulator_Data(PMIC_RegulId_TypeDef id);
+static uint8_t STPMU1_Voltage_Find_Index(PMIC_RegulId_TypeDef id, uint16_t milivolts);
+
+/* Private functions ---------------------------------------------------------*/
+
+static regul_struct *STPMU1_Get_Regulator_Data(PMIC_RegulId_TypeDef id)
+{
+ uint8_t i ;
+
+ for (i = 0 ; i < MAX_REGUL ; i++ )
+ {
+ if (id == regulators_table[i].id)
+ return ®ulators_table[i];
+ }
+ /* id not found */
+ My_Error_Handler();
+ return NULL;
+}
+
+static uint8_t STPMU1_Voltage_Find_Index(PMIC_RegulId_TypeDef id, uint16_t milivolts)
+{
+ regul_struct *regul = STPMU1_Get_Regulator_Data(id);
+ uint8_t i;
+ for ( i = 0 ; i < regul->voltage_table_size ; i++)
+ {
+ if ( regul->voltage_table[i] == milivolts ) {
+ //printf("idx:%d for %dmV\n\r", (int)i, (int)milivolts);
+ return i;
+ }
+ }
+ /* voltage not found */
+ My_Error_Handler();
+ return 0;
+}
+
+void STPMU1_Enable_Interrupt(PMIC_IRQn IRQn)
+{
+ uint8_t irq_reg , irq_reg_value ;
+
+ if (IRQn >= IRQ_NR)
+ return ;
+
+ /* IRQ register is IRQ Number divided by 8 */
+ irq_reg = IRQn >> 3 ;
+
+ /* value to be set in IRQ register corresponds to BIT(7-N) where N is the Interrupt id modulo 8 */
+ irq_reg_value = 1 << ( 7 - ( IRQn%8 ) );
+
+ /* Clear previous event stored in latch */
+ STPMU1_Register_Write(ITCLEARLATCH1_REG+irq_reg, irq_reg_value );
+
+ /* Clear relevant mask to enable interrupt */
+ STPMU1_Register_Write(ITCLEARMASK1_REG+irq_reg, irq_reg_value );
+
+}
+
+extern void STPMU1_Disable_Interrupt(PMIC_IRQn IRQn)
+{
+ uint8_t irq_reg , irq_reg_value ;
+
+ if (IRQn >= IRQ_NR)
+ return ;
+
+ /* IRQ register is IRQ Number divided by 8 */
+ irq_reg = IRQn >> 3 ;
+
+ /* value to be set in IRQ register corresponds to BIT(7-N) where N is the Interrupt id modulo 8 */
+ irq_reg_value = 1 << ( 7 - ( IRQn%8 ) );
+
+ /* Clear previous event stored in latch */
+ STPMU1_Register_Write(ITCLEARLATCH1_REG+irq_reg, irq_reg_value );
+
+ /* Set relevant mask to disable interrupt */
+ STPMU1_Register_Write(ITSETMASK1_REG+irq_reg, irq_reg_value );
+}
+
+
+void STPMU1_IrqHandler(void)
+{
+ uint8_t irq_reg,mask,latch_events,i;
+
+ for (irq_reg = 0 ; irq_reg < STM32_PMIC_NUM_IRQ_REGS ; irq_reg++)
+ {
+ /* Get latch events & active mask from register */
+ mask = STPMU1_Register_Read(ITMASK1_REG+irq_reg);
+ latch_events = STPMU1_Register_Read(ITLATCH1_REG+irq_reg) & ~mask ;
+
+ /* Go through all bits for each register */
+ for (i = 0 ; i < 8 ; i++ )
+ {
+ if ( latch_events & ( 1 << i ) )
+ {
+ /* Callback with parameter computes as "PMIC Interrupt" enum */
+ STPMU1_INTn_Callback( (PMIC_IRQn )(irq_reg*8 + (7-i)));
+ }
+ }
+ /* Clear events in appropriate register for the event with mask set */
+ STPMU1_Register_Write(ITCLEARLATCH1_REG+irq_reg, latch_events );
+ }
+}
+
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+static void My_Error_Handler(void)
+{
+ while(1)
+ {
+ HAL_Delay(500);
+ }
+}
+
+
+void STPMU1_Sw_Reset(void)
+{
+ /* Write 1 in bit 0 of MAIN_CONTROL Register */
+ STPMU1_Register_Update(MAIN_CONTROL_REG, SET , SOFTWARE_SWITCH_OFF_ENABLED );
+}
+
+void STPMU1_Regulator_Enable(PMIC_RegulId_TypeDef id)
+{
+ regul_struct *regul = STPMU1_Get_Regulator_Data(id);
+
+ STPMU1_Register_Update(regul->control_reg,BIT(0),BIT(0));
+}
+
+void STPMU1_Regulator_Disable(PMIC_RegulId_TypeDef id)
+{
+ regul_struct *regul = STPMU1_Get_Regulator_Data(id);
+
+ STPMU1_Register_Update(regul->control_reg,0,BIT(0));
+}
+
+uint8_t STPMU1_Is_Regulator_Enabled(PMIC_RegulId_TypeDef id)
+{
+ uint8_t val ;
+
+ regul_struct *regul = STPMU1_Get_Regulator_Data(id);
+
+ val = STPMU1_Register_Read(regul->control_reg);
+
+ return (val&0x1);
+}
+
+void STPMU1_Regulator_Voltage_Set(PMIC_RegulId_TypeDef id,uint16_t milivolts)
+{
+ uint8_t voltage_index = STPMU1_Voltage_Find_Index(id,milivolts);
+ regul_struct *regul = STPMU1_Get_Regulator_Data(id);
+ STPMU1_Register_Update(regul->control_reg, voltage_index<<2 , 0xFC );
+}
+
+/* register direct access */
+uint8_t STPMU1_Register_Read(uint8_t register_id)
+{
+ uint32_t status = RT_EOK;
+ uint8_t Value = 0;
+
+ status = BSP_I2C4_ReadReg(STPMU1_I2C_ADDRESS, (uint16_t)register_id, &Value, 1);
+
+ /* Check the communication status */
+ if(status != RT_EOK)
+ {
+ My_Error_Handler();
+ }
+ return Value;
+}
+
+void STPMU1_Register_Write(uint8_t register_id, uint8_t value)
+{
+ uint32_t status = RT_EOK;
+
+ status = BSP_I2C4_WriteReg(STPMU1_I2C_ADDRESS, (uint16_t)register_id, &value, 1);
+
+ /* Check the communication status */
+ if(status != RT_EOK)
+ {
+ My_Error_Handler();
+ }
+
+ /* verify register content */
+ if ((register_id!=WATCHDOG_CONTROL_REG) && (register_id<=0x40))
+ {
+ uint8_t readval = STPMU1_Register_Read(register_id);
+ if (readval != value)
+ {
+ My_Error_Handler();
+ }
+ }
+}
+
+void STPMU1_Register_Update(uint8_t register_id, uint8_t value, uint8_t mask)
+{
+ uint8_t initial_value ;
+
+ initial_value = STPMU1_Register_Read(register_id);
+
+ /* Clear bits to update */
+ initial_value &= ~mask;
+
+ /* Update appropriate bits*/
+ initial_value |= ( value & mask );
+
+ /* Send new value on I2C Bus */
+ STPMU1_Register_Write(register_id, initial_value);
+
+ return ;
+}
+
+/*
+ *
+ * PMIC init
+ * pmic provides power supply on this board
+ * it is configured to turn off some power supply in standby mode
+ *
+ */
+static uint32_t BSP_PMIC_MspInit(I2C_HandleTypeDef *hi2c)
+{
+ uint32_t status = RT_EOK;
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /*##-1- Configure the I2C clock source, GPIO and Interrupt #*/
+ BSP_I2C4_Init();
+
+ /*##-2- Configure PMIC GPIOs Interface ########################################*/
+
+ /* INTn - Interrupt Line - Active Low (Falling Edge) */
+ PMIC_INTn_CLK_ENABLE();
+ GPIO_InitStruct.Pin = PMIC_INTn_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
+ GPIO_InitStruct.Alternate = 0 ;
+ HAL_GPIO_Init(PMIC_INTn_PORT, &GPIO_InitStruct);
+
+ /* Enable and set INTn EXTI Interrupt */
+#if defined(CORE_CA7)
+ IRQ_SetPriority(EXTI0_IRQn, 0);
+ IRQ_Enable(EXTI0_IRQn);
+#elif defined(CORE_CM4)
+ HAL_NVIC_SetPriority(EXTI0_IRQn, 0x03, 0x00);
+ HAL_NVIC_EnableIRQ(EXTI0_IRQn);
+#endif
+
+ return status;
+}
+
+static uint32_t BSP_PMIC_MspDeInit(I2C_HandleTypeDef *hi2c)
+{
+ uint32_t status = RT_EOK;
+ /*##-1- Reset I2C Clock / Disable peripherals and GPIO Clocks###############*/
+ status = BSP_I2C4_DeInit();
+
+ /*##-2- Disable PMIC clk ###########################################*/
+ PMIC_INTn_CLK_DISABLE();
+
+ /*##-3- Disable the NVIC for PMIC ##########################################*/
+#if defined(CORE_CA7)
+ IRQ_Disable(EXTI0_IRQn);
+#elif defined(CORE_CM4)
+ HAL_NVIC_DisableIRQ(EXTI0_IRQn);
+#endif
+ HAL_GPIO_DeInit(PMIC_INTn_PORT,PMIC_INTn_PIN);
+
+ return status;
+}
+
+uint32_t BSP_PMIC_Is_Device_Ready(void)
+{
+ int32_t status = RT_EOK;
+
+ /* Write the TxBuffer1 at @0, then read @0 when device ready */
+ if (BSP_I2C4_IsReady(STPMU1_I2C_ADDRESS, 1) != RT_EOK)
+ {
+ status = -RT_EBUSY;
+ }
+ return status ;
+}
+
+/* Use Xls I2C COnfiguration Tools with I2C Clock config + output clocks requirement */
+#define I2C_TIMING 0x10805E89
+
+uint32_t BSP_PMIC_Init(void)
+{
+ int32_t status = RT_EOK;
+ PMIC_IRQn irq;
+
+ /*##-1- Configure the I2C peripheral ######################################*/
+ BSP_PMIC_MspInit(&hI2c4);
+
+ status = BSP_PMIC_Is_Device_Ready();
+ if (status != RT_EOK )
+ {
+ return status;
+ }
+
+ if (STPMU1_Register_Read(VERSION_STATUS_REG) != 0x00)
+ {
+ status = -RT_EIO;
+ return status;
+ }
+
+ STPMU1_Enable_Interrupt(IT_PONKEY_R);
+ STPMU1_Enable_Interrupt(IT_PONKEY_F);
+ /* enable all irqs */
+ for (irq = IT_SWOUT_R; irq < IRQ_NR; irq++)
+ {
+ STPMU1_Enable_Interrupt(irq);
+ }
+
+ return RT_EOK;
+}
+
+uint32_t BSP_PMIC_DeInit(void)
+{
+ uint32_t status = RT_EOK;
+ if(HAL_I2C_GetState(&hI2c4) != HAL_I2C_STATE_RESET)
+ {
+ /* Deinit the I2C */
+ BSP_PMIC_MspDeInit(&hI2c4);
+ }
+ return status;
+}
+
+/*
+ *
+ * following are configurations for this board
+ * same configuration than linux
+ *
+ * BSP_PMIC_InitRegulators set the regulators for boot
+ * BSP_PMIC_PrepareLpStop set the low power registers for LPSTOP mode
+ * should be called by user before entering is CSTOP
+ * BSP_PMIC_PrepareLpStop set the low power registers for STANDBY mode
+ * should be called by user before entering is STANDBY
+ *
+ *
+ */
+/* following are configurations */
+uint32_t BSP_PMIC_InitRegulators(void)
+{
+ uint32_t status = RT_EOK;
+
+ STPMU1_Register_Write(MAIN_CONTROL_REG, 0x04);
+ STPMU1_Register_Write(VIN_CONTROL_REG, 0xc0);
+ STPMU1_Register_Write(USB_CONTROL_REG, 0x30);
+
+ STPMU1_Register_Write(MASK_RESET_BUCK_REG, 0x04);
+ STPMU1_Register_Write(MASK_RESET_LDO_REG, 0x00);
+ STPMU1_Register_Write(MASK_RANK_BUCK_REG, 0x00);
+ STPMU1_Register_Write(MASK_RANK_LDO_REG, 0x00);
+ STPMU1_Register_Write(BUCK_PULL_DOWN_REG, 0x00);
+ STPMU1_Register_Write(LDO14_PULL_DOWN_REG, 0x00);
+ STPMU1_Register_Write(LDO56_PULL_DOWN_REG, 0x00);
+ STPMU1_Register_Write(BUCK_ICC_TURNOFF_REG, 0x30);
+ STPMU1_Register_Write(LDO_ICC_TURNOFF_REG, 0x3b);
+
+ /* vddcore */
+ STPMU1_Regulator_Voltage_Set(STPMU1_BUCK1, 1200);
+ STPMU1_Regulator_Enable(STPMU1_BUCK1);
+
+ /* vddddr */
+ STPMU1_Regulator_Voltage_Set(STPMU1_BUCK2, 1350);
+ STPMU1_Regulator_Enable(STPMU1_BUCK2);
+
+ /* vdd */
+ STPMU1_Regulator_Voltage_Set(STPMU1_BUCK3, 3300);
+ STPMU1_Regulator_Enable(STPMU1_BUCK3);
+
+ /* 3v3 */
+ STPMU1_Regulator_Voltage_Set(STPMU1_BUCK4, 3300);
+ STPMU1_Regulator_Enable(STPMU1_BUCK4);
+
+ /* vdda */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO1, 2900);
+ STPMU1_Regulator_Enable(STPMU1_LDO1);
+
+ /* 2v8 */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO2, 2800);
+ STPMU1_Regulator_Enable(STPMU1_LDO2);
+
+ /* vtt_ddr lod3 mode buck2/2 */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO3, 0xFFFF);
+ STPMU1_Regulator_Enable(STPMU1_LDO3);
+
+ /* vdd_usb */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO4, 3300);
+ STPMU1_Regulator_Enable(STPMU1_LDO4);
+
+ /* vdd_sd */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO5, 2900);
+ STPMU1_Regulator_Enable(STPMU1_LDO5);
+
+ /* 1v8 */
+ STPMU1_Regulator_Voltage_Set(STPMU1_LDO6, 1800);
+ STPMU1_Regulator_Enable(STPMU1_LDO6);
+
+ STPMU1_Regulator_Enable(STPMU1_VREFDDR);
+
+ return status;
+}
+
+uint32_t BSP_PMIC_SwitchOff(void)
+{
+ uint32_t status = RT_EOK;
+
+ STPMU1_Register_Write(MAIN_CONTROL_REG, 0x01);
+ return status;
+}
+
+__weak void BSP_PMIC_INTn_Callback(PMIC_IRQn IRQn)
+{
+ switch (IRQn)
+ {
+ case IT_PONKEY_F:
+ rt_kprintf("IT_PONKEY_F");
+ break;
+
+ case IT_PONKEY_R:
+ rt_kprintf("IT_PONKEY_R");
+ break;
+
+ case IT_WAKEUP_F:
+ rt_kprintf("IT_WAKEUP_F");
+ break;
+
+ case IT_WAKEUP_R:
+ rt_kprintf("IT_WAKEUP_R");
+ break;
+
+ case IT_VBUS_OTG_F:
+ rt_kprintf("IT_VBUS_OTG_F");
+ break;
+
+ case IT_SWOUT_F:
+ rt_kprintf("IT_SWOUT_F");
+ break;
+
+ case IT_TWARN_R:
+ rt_kprintf("IT_TWARN_R");
+ break;
+
+ case IT_TWARN_F:
+ rt_kprintf("IT_TWARN_F");
+ break;
+
+ default:
+ rt_kprintf("%d",IRQn);
+ break;
+ }
+ rt_kprintf(" Interrupt received\n\r");
+}
+
+void STPMU1_INTn_Callback(PMIC_IRQn IRQn)
+{
+ BSP_PMIC_INTn_Callback(IRQn);
+}
+
+void BSP_PMIC_INTn_IRQHandler(void)
+{
+ HAL_GPIO_EXTI_IRQHandler(PMIC_INTn_PIN);
+
+ STPMU1_IrqHandler();
+}
+
+void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hI2c4)
+{
+ while(1);
+}
diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.h b/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.h
new file mode 100644
index 0000000000000000000000000000000000000000..4b5e47b892e70fddd92476e75aa0999b27759813
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/board/ports/stpmic.h
@@ -0,0 +1,315 @@
+/**
+ ******************************************************************************
+ * @file stm32mp15xx__stpmic1.h
+ * @author MCD Application Team
+ * @brief stpmu driver functions used for ST internal validation
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2019 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
+ *
+ *
+ ******************************************************************************
+ */
+
+#ifndef __STPMIC_H__
+#define __STPMIC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32mp1xx_hal.h"
+
+/* Exported types ------------------------------------------------------------*/
+typedef enum
+{
+ STPMU1_BUCK1=1,
+ STPMU1_BUCK2,
+ STPMU1_BUCK3,
+ STPMU1_BUCK4,
+ STPMU1_LDO1,
+ STPMU1_LDO2,
+ STPMU1_LDO3,
+ STPMU1_LDO4,
+ STPMU1_LDO5,
+ STPMU1_LDO6,
+ STPMU1_VREFDDR,
+}PMIC_RegulId_TypeDef;
+
+/* IRQ definitions */
+typedef enum {
+
+/* Interrupt Register 1 (0x50 for latch) */
+IT_SWOUT_R,
+IT_SWOUT_F,
+IT_VBUS_OTG_R,
+IT_VBUS_OTG_F,
+IT_WAKEUP_R,
+IT_WAKEUP_F,
+IT_PONKEY_R,
+IT_PONKEY_F,
+
+/* Interrupt Register 2 (0x51 for latch) */
+IT_OVP_BOOST,
+IT_OCP_BOOST,
+IT_OCP_SWOUT,
+IT_OCP_OTG,
+IT_CURLIM_BUCK4,
+IT_CURLIM_BUCK3,
+IT_CURLIM_BUCK2,
+IT_CURLIM_BUCK1,
+
+/* Interrupt Register 3 (0x52 for latch) */
+IT_SHORT_SWOUT,
+IT_SHORT_SWOTG,
+IT_CURLIM_LDO6,
+IT_CURLIM_LDO5,
+IT_CURLIM_LDO4,
+IT_CURLIM_LDO3,
+IT_CURLIM_LDO2,
+IT_CURLIM_LDO1,
+
+/* Interrupt Register 3 (0x52 for latch) */
+IT_SWIN_R,
+IT_SWIN_F,
+IT_RESERVED_1,
+IT_RESERVED_2,
+IT_VINLOW_R,
+IT_VINLOW_F,
+IT_TWARN_R,
+IT_TWARN_F,
+
+IRQ_NR,
+} PMIC_IRQn;
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32MP15XX_EVAL_STPMU_Exported_Constants Exported Constants
+ * @{
+ */
+
+/* Exported constants --------------------------------------------------------*/
+#define BIT(_x) (1<<(_x))
+#define STM32_PMIC_NUM_IRQ_REGS 4
+
+#define TURN_ON_REG 0x1
+#define TURN_OFF_REG 0x2
+#define ICC_LDO_TURN_OFF_REG 0x3
+#define ICC_BUCK_TURN_OFF_REG 0x4
+#define RESET_STATUS_REG 0x5
+#define VERSION_STATUS_REG 0x6
+#define MAIN_CONTROL_REG 0x10
+#define PADS_PULL_REG 0x11
+#define BUCK_PULL_DOWN_REG 0x12
+#define LDO14_PULL_DOWN_REG 0x13
+#define LDO56_PULL_DOWN_REG 0x14
+#define VIN_CONTROL_REG 0x15
+#define PONKEY_TIMER_REG 0x16
+#define MASK_RANK_BUCK_REG 0x17
+#define MASK_RESET_BUCK_REG 0x18
+#define MASK_RANK_LDO_REG 0x19
+#define MASK_RESET_LDO_REG 0x1A
+#define WATCHDOG_CONTROL_REG 0x1B
+#define WATCHDOG_TIMER_REG 0x1C
+#define BUCK_ICC_TURNOFF_REG 0x1D
+#define LDO_ICC_TURNOFF_REG 0x1E
+#define BUCK_APM_CONTROL_REG 0x1F
+#define BUCK1_CONTROL_REG 0x20
+#define BUCK2_CONTROL_REG 0x21
+#define BUCK3_CONTROL_REG 0x22
+#define BUCK4_CONTROL_REG 0x23
+#define VREF_DDR_CONTROL_REG 0x24
+#define LDO1_CONTROL_REG 0x25
+#define LDO2_CONTROL_REG 0x26
+#define LDO3_CONTROL_REG 0x27
+#define LDO4_CONTROL_REG 0x28
+#define LDO5_CONTROL_REG 0x29
+#define LDO6_CONTROL_REG 0x2A
+#define BUCK1_PWRCTRL_REG 0x30
+#define BUCK2_PWRCTRL_REG 0x31
+#define BUCK3_PWRCTRL_REG 0x32
+#define BUCK4_PWRCTRL_REG 0x33
+#define VREF_DDR_PWRCTRL_REG 0x34
+#define LDO1_PWRCTRL_REG 0x35
+#define LDO2_PWRCTRL_REG 0x36
+#define LDO3_PWRCTRL_REG 0x37
+#define LDO4_PWRCTRL_REG 0x38
+#define LDO5_PWRCTRL_REG 0x39
+#define LDO6_PWRCTRL_REG 0x3A
+#define FREQUENCY_SPREADING_REG 0x3B
+#define USB_CONTROL_REG 0x40
+#define ITLATCH1_REG 0x50
+#define ITLATCH2_REG 0x51
+#define ITLATCH3_REG 0x52
+#define ITLATCH4_REG 0x53
+#define ITSETLATCH1_REG 0x60
+#define ITSETLATCH2_REG 0x61
+#define ITSETLATCH3_REG 0x62
+#define ITSETLATCH4_REG 0x63
+#define ITCLEARLATCH1_REG 0x70
+#define ITCLEARLATCH2_REG 0x71
+#define ITCLEARLATCH3_REG 0x72
+#define ITCLEARLATCH4_REG 0x73
+#define ITMASK1_REG 0x80
+#define ITMASK2_REG 0x81
+#define ITMASK3_REG 0x82
+#define ITMASK4_REG 0x83
+#define ITSETMASK1_REG 0x90
+#define ITSETMASK2_REG 0x91
+#define ITSETMASK3_REG 0x92
+#define ITSETMASK4_REG 0x93
+#define ITCLEARMASK1_REG 0xA0
+#define ITCLEARMASK2_REG 0xA1
+#define ITCLEARMASK3_REG 0xA2
+#define ITCLEARMASK4_REG 0xA3
+#define ITSOURCE1_REG 0xB0
+#define ITSOURCE2_REG 0xB1
+#define ITSOURCE3_REG 0xB2
+#define ITSOURCE4_REG 0xB3
+#define LDO_VOLTAGE_MASK 0x7C
+#define BUCK_VOLTAGE_MASK 0xFC
+#define LDO_BUCK_VOLTAGE_SHIFT 2
+
+#define LDO_ENABLE_MASK 0x01
+#define BUCK_ENABLE_MASK 0x01
+#define BUCK_HPLP_ENABLE_MASK 0x02
+#define LDO_HPLP_ENABLE_MASK 0x02
+#define LDO_BUCK_HPLP_SHIFT 1
+
+#define LDO_BUCK_RANK_MASK 0x01
+#define LDO_BUCK_RESET_MASK 0x01
+#define LDO_BUCK_PULL_DOWN_MASK 0x03
+
+
+/* Main PMIC Control Register
+ * MAIN_CONTROL_REG
+ * Address : 0x10
+ * */
+#define ICC_EVENT_ENABLED BIT(4)
+#define PWRCTRL_POLARITY_HIGH BIT(3)
+#define PWRCTRL_PIN_VALID BIT(2)
+#define RESTART_REQUEST_ENABLED BIT(1)
+#define SOFTWARE_SWITCH_OFF_ENABLED BIT(0)
+
+/* Main PMIC PADS Control Register
+ * PADS_PULL_REG
+ * Address : 0x11
+ * */
+#define WAKEUP_DETECTOR_DISABLED BIT(4)
+#define PWRCTRL_PD_ACTIVE BIT(3)
+#define PWRCTRL_PU_ACTIVE BIT(2)
+#define WAKEUP_PD_ACTIVE BIT(1)
+#define PONKEY_PU_ACTIVE BIT(0)
+
+
+/* Main PMIC VINLOW Control Register
+ * VIN_CONTROL_REGC DMSC
+ * Address : 0x15
+ * */
+#define SWIN_DETECTOR_ENABLED BIT(7)
+#define SWOUT_DETECTOR_ENABLED BIT(6)
+#define VINLOW_HYST_MASK 0x3
+#define VINLOW_HYST_SHIFT 4
+#define VINLOW_THRESHOLD_MASK 0x7
+#define VINLOW_THRESHOLD_SHIFT 1
+#define VINLOW_ENABLED 0x01
+#define VINLOW_CTRL_REG_MASK 0xFF
+
+
+/* USB Control Register
+ * Address : 0x40
+ * */
+#define BOOST_OVP_DISABLED BIT(7)
+#define VBUS_OTG_DETECTION_DISABLED BIT(6)
+// Discharge not implemented
+#define OCP_LIMIT_HIGH BIT(3)
+#define SWIN_SWOUT_ENABLED BIT(2)
+#define USBSW_OTG_SWITCH_ENABLED BIT(1)
+
+
+/* IRQ masks */
+/* Interrupt Mask for Register 1 (0x50 for latch) */
+#define IT_SWOUT_R_MASK BIT(7)
+#define IT_SWOUT_F_MASK BIT(6)
+#define IT_VBUS_OTG_R_MASK BIT(5)
+#define IT_VBUS_OTG_F_MASK BIT(4)
+#define IT_WAKEUP_R_MASK BIT(3)
+#define IT_WAKEUP_F_MASK BIT(2)
+#define IT_PONKEY_R_MASK BIT(1)
+#define IT_PONKEY_F_MASK BIT(0)
+
+/* Interrupt Mask for Register 2 (0x51 for latch) */
+#define IT_OVP_BOOST_MASK BIT(7)
+#define IT_OCP_BOOST_MASK BIT(6)
+#define IT_OCP_SWOUT_MASK BIT(5)
+#define IT_OCP_OTG_MASK BIT(4)
+#define IT_CURLIM_BUCK4_MASK BIT(3)
+#define IT_CURLIM_BUCK3_MASK BIT(2)
+#define IT_CURLIM_BUCK2_MASK BIT(1)
+#define IT_CURLIM_BUCK1_MASK BIT(0)
+
+/* Interrupt Mask for Register 3 (0x52 for latch) */
+#define IT_SHORT_SWOUT_MASK BIT(7)
+#define IT_SHORT_SWOTG_MASK BIT(6)
+#define IT_CURLIM_LDO6_MASK BIT(5)
+#define IT_CURLIM_LDO5_MASK BIT(4)
+#define IT_CURLIM_LDO4_MASK BIT(3)
+#define IT_CURLIM_LDO3_MASK BIT(2)
+#define IT_CURLIM_LDO2_MASK BIT(1)
+#define IT_CURLIM_LDO1_MASK BIT(0)
+
+/* Interrupt Mask for Register 4 (0x53 for latch) */
+#define IT_SWIN_R_MASK BIT(7)
+#define IT_SWIN_F_MASK BIT(6)
+/* Reserved 1 */
+/* Reserved 2 */
+#define IT_VINLOW_R_MASK BIT(3)
+#define IT_VINLOW_F_MASK BIT(2)
+#define IT_TWARN_R_MASK BIT(1)
+#define IT_TWARN_F_MASK BIT(0)
+
+#define PMIC_VERSION_ID 0x10
+
+#define NVM_SECTOR3_REGISTER_7 0x33
+//#define STPMU1_I2C_ADDRESS ((NVM_SECTOR3_REGISTER_7 & 0x7F) << 1 )
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32MP15XX_EVAL_STPMU_Exported_Functions Exported Functions
+ * @{
+ */
+
+/* Exported functions --------------------------------------------------------*/
+uint8_t STPMU1_Register_Read(uint8_t register_id);
+void STPMU1_Register_Write(uint8_t register_id, uint8_t value);
+void STPMU1_Register_Update(uint8_t register_id, uint8_t value, uint8_t mask);
+void STPMU1_Enable_Interrupt(PMIC_IRQn IRQn);
+void STPMU1_Disable_Interrupt(PMIC_IRQn IRQn);
+void STPMU1_Regulator_Enable(PMIC_RegulId_TypeDef id);
+void STPMU1_Regulator_Disable(PMIC_RegulId_TypeDef id);
+uint8_t STPMU1_Is_Regulator_Enabled(PMIC_RegulId_TypeDef id);
+void STPMU1_Regulator_Voltage_Set(PMIC_RegulId_TypeDef id,uint16_t milivolts);
+uint32_t BSP_PMIC_Init(void);
+uint32_t BSP_PMIC_DeInit(void);
+uint32_t BSP_PMIC_Is_Device_Ready(void);
+uint32_t BSP_PMIC_InitRegulators (void);
+__weak void BSP_PMIC_INTn_Callback(PMIC_IRQn IRQn);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/bsp/stm32/stm32mp157a-st-ev1/figures/board.png b/bsp/stm32/stm32mp157a-st-ev1/figures/board.png
new file mode 100644
index 0000000000000000000000000000000000000000..887ef13d1123c10b32d9005144117ea5e6648bd8
Binary files /dev/null and b/bsp/stm32/stm32mp157a-st-ev1/figures/board.png differ
diff --git a/bsp/stm32/stm32mp157a-st-ev1/figures/boot.png b/bsp/stm32/stm32mp157a-st-ev1/figures/boot.png
new file mode 100644
index 0000000000000000000000000000000000000000..17fcb76fc68b090dc6cf613040cb85d5d8dcabf6
Binary files /dev/null and b/bsp/stm32/stm32mp157a-st-ev1/figures/boot.png differ
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.ewd b/bsp/stm32/stm32mp157a-st-ev1/project.ewd
new file mode 100644
index 0000000000000000000000000000000000000000..ee078b5a148c08e8d546bf45c90310053d9ae3cf
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.ewd
@@ -0,0 +1,2966 @@
+
+
+ 3
+
+ rt-thread
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 31
+ 1
+ 1
+
+ CInput
+ 1
+
+
+ CEndian
+ 1
+
+
+ CProcessor
+ 1
+
+
+ OCVariant
+ 0
+
+
+ MacOverride
+ 0
+
+
+ MacFile
+
+
+
+ MemOverride
+ 0
+
+
+ MemFile
+ $TOOLKIT_DIR$\CONFIG\debugger\ST\STM32MP157A_M4.ddf
+
+
+ RunToEnable
+ 1
+
+
+ RunToName
+ entry
+
+
+ CExtraOptionsCheck
+ 0
+
+
+ CExtraOptions
+
+
+
+ CFpuProcessor
+ 1
+
+
+ OCDDFArgumentProducer
+
+
+
+ OCDownloadSuppressDownload
+ 0
+
+
+ OCDownloadVerifyAll
+ 0
+
+
+ OCProductVersion
+ 8.11.3.13977
+
+
+ OCDynDriverList
+ STLINK_ID
+
+
+ OCLastSavedByProductVersion
+ 8.40.1.21529
+
+
+ UseFlashLoader
+ 0
+
+
+ CLowLevel
+ 1
+
+
+ OCBE8Slave
+ 1
+
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
+
+ OCDeviceConfigMacroFile
+ 1
+
+
+ OCDebuggerExtraOption
+ 1
+
+
+ OCAllMTBOptions
+ 1
+
+
+ OCMulticoreNrOfCores
+ 1
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
+
+ OCDownloadExtraImage
+ 1
+
+
+ OCAttachSlave
+ 0
+
+
+ MassEraseBeforeFlashing
+ 0
+
+
+ OCMulticoreNrOfCoresSlave
+ 1
+
+
+ OCMulticoreAMPConfigType
+ 0
+
+
+ OCMulticoreSessionFile
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+ OCSimDriverInfo
+ 1
+
+
+ OCSimEnablePSP
+ 0
+
+
+ OCSimPspOverrideConfig
+ 0
+
+
+ OCSimPspConfigFile
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ CCadiMemory
+ 1
+
+
+ Fast Model
+
+
+
+ CCADILogFileCheck
+ 0
+
+
+ CCADILogFileEditB
+ $PROJ_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ CMSISDAPResetList
+ 1
+ 10
+
+
+ CMSISDAPHWResetDuration
+ 300
+
+
+ CMSISDAPHWResetDelay
+ 200
+
+
+ CMSISDAPDoLogfile
+ 0
+
+
+ CMSISDAPLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CMSISDAPInterfaceRadio
+ 0
+
+
+ CMSISDAPInterfaceCmdLine
+ 0
+
+
+ CMSISDAPMultiTargetEnable
+ 0
+
+
+ CMSISDAPMultiTarget
+ 0
+
+
+ CMSISDAPJtagSpeedList
+ 0
+ 0
+
+
+ CMSISDAPBreakpointRadio
+ 0
+
+
+ CMSISDAPRestoreBreakpointsCheck
+ 0
+
+
+ CMSISDAPUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchSFERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ CMSISDAPMultiCPUEnable
+ 0
+
+
+ CMSISDAPMultiCPUNumber
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+ CCCMSISDAPUsbSerialNo
+
+
+
+ CCCMSISDAPUsbSerialNoSelect
+ 0
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ TCPIP
+ aaa.bbb.ccc.ddd
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCJTagBreakpointRadio
+ 0
+
+
+ CCJTagDoUpdateBreakpoints
+ 0
+
+
+ CCJTagUpdateBreakpoints
+ _call_main
+
+
+
+
+ IJET_ID
+ 2
+
+ 8
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ IjetResetList
+ 1
+ 10
+
+
+ IjetHWResetDuration
+ 300
+
+
+ IjetHWResetDelay
+ 200
+
+
+ IjetPowerFromProbe
+ 1
+
+
+ IjetPowerRadio
+ 0
+
+
+ IjetDoLogfile
+ 0
+
+
+ IjetLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ IjetInterfaceRadio
+ 0
+
+
+ IjetInterfaceCmdLine
+ 0
+
+
+ IjetMultiTargetEnable
+ 0
+
+
+ IjetMultiTarget
+ 0
+
+
+ IjetScanChainNonARMDevices
+ 0
+
+
+ IjetIRLength
+ 0
+
+
+ IjetJtagSpeedList
+ 0
+ 0
+
+
+ IjetProtocolRadio
+ 0
+
+
+ IjetSwoPin
+ 0
+
+
+ IjetCpuClockEdit
+
+
+
+ IjetSwoPrescalerList
+ 1
+ 0
+
+
+ IjetBreakpointRadio
+ 0
+
+
+ IjetRestoreBreakpointsCheck
+ 0
+
+
+ IjetUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchSFERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ IjetProbeConfigRadio
+ 0
+
+
+ IjetMultiCPUEnable
+ 0
+
+
+ IjetMultiCPUNumber
+ 0
+
+
+ IjetSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+ IjetPreferETB
+ 1
+
+
+ IjetTraceSettingsList
+ 0
+ 0
+
+
+ IjetTraceSizeList
+ 0
+ 4
+
+
+ FlashBoardPathSlave
+ 0
+
+
+ CCIjetUsbSerialNo
+
+
+
+ CCIjetUsbSerialNoSelect
+ 0
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+ JLinkSpeed
+ 1000
+
+
+ CCJLinkDoLogfile
+ 0
+
+
+ CCJLinkLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCJLinkHWResetDelay
+ 0
+
+
+ OCDriverInfo
+ 1
+
+
+ JLinkInitialSpeed
+ 1000
+
+
+ CCDoJlinkMultiTarget
+ 0
+
+
+ CCScanChainNonARMDevices
+ 0
+
+
+ CCJLinkMultiTarget
+ 0
+
+
+ CCJLinkIRLength
+ 0
+
+
+ CCJLinkCommRadio
+ 0
+
+
+ CCJLinkTCPIP
+ aaa.bbb.ccc.ddd
+
+
+ CCJLinkSpeedRadioV2
+ 0
+
+
+ CCUSBDevice
+ 1
+ 1
+
+
+ CCRDICatchReset
+ 0
+
+
+ CCRDICatchUndef
+ 0
+
+
+ CCRDICatchSWI
+ 0
+
+
+ CCRDICatchData
+ 0
+
+
+ CCRDICatchPrefetch
+ 0
+
+
+ CCRDICatchIRQ
+ 0
+
+
+ CCRDICatchFIQ
+ 0
+
+
+ CCJLinkBreakpointRadio
+ 0
+
+
+ CCJLinkDoUpdateBreakpoints
+ 0
+
+
+ CCJLinkUpdateBreakpoints
+ _call_main
+
+
+ CCJLinkInterfaceRadio
+ 1
+
+
+ CCJLinkResetList
+ 6
+ 7
+
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchSFERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 168.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+ OCJLinkTraceSource
+ 0
+
+
+ OCJLinkTraceSourceDummy
+ 0
+
+
+ OCJLinkDeviceName
+ 1
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ LmiftdiSpeed
+ 500
+
+
+ CCLmiftdiDoLogfile
+ 0
+
+
+ CCLmiftdiLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+
+
+ STLINK_ID
+ 2
+
+ 6
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ CCSTLinkInterfaceRadio
+ 1
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 3
+ 1
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCSTLinkDoUpdateBreakpoints
+ 0
+
+
+ CCSTLinkUpdateBreakpoints
+ _call_main
+
+
+ CCSTLinkCatchCORERESET
+ 0
+
+
+ CCSTLinkCatchMMERR
+ 0
+
+
+ CCSTLinkCatchNOCPERR
+ 0
+
+
+ CCSTLinkCatchCHRERR
+ 0
+
+
+ CCSTLinkCatchSTATERR
+ 0
+
+
+ CCSTLinkCatchBUSERR
+ 0
+
+
+ CCSTLinkCatchINTERR
+ 0
+
+
+ CCSTLinkCatchSFERR
+ 0
+
+
+ CCSTLinkCatchHARDERR
+ 0
+
+
+ CCSTLinkCatchDummy
+ 0
+
+
+ CCSTLinkUsbSerialNo
+
+
+
+ CCSTLinkUsbSerialNoSelect
+ 0
+
+
+ CCSTLinkJtagSpeedList
+ 2
+ 0
+
+
+ CCSTLinkDAPNumber
+
+
+
+ CCSTLinkDebugAccessPortRadio
+ 0
+
+
+ CCSTLinkUseServerSelect
+ 0
+
+
+ CCSTLinkProbeList
+ 0
+ 1
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ CThirdPartyDriverDll
+ ###Uninitialized###
+
+
+ CThirdPartyLogFileCheck
+ 0
+
+
+ CThirdPartyLogFileEditB
+ $PROJ_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ CCMSPFetResetList
+ 0
+ 0
+
+
+ CCMSPFetInterfaceRadio
+ 0
+
+
+ CCMSPFetInterfaceCmdLine
+ 0
+
+
+ CCMSPFetTargetVccTypeDefault
+ 0
+
+
+ CCMSPFetTargetVoltage
+ ###Uninitialized###
+
+
+ CCMSPFetVCCDefault
+ 1
+
+
+ CCMSPFetTargetSettlingtime
+ 0
+
+
+ CCMSPFetRadioJtagSpeedType
+ 1
+
+
+ CCMSPFetConnection
+ 0
+ 0
+
+
+ CCMSPFetUsbComPort
+ Automatic
+
+
+ CCMSPFetAllowAccessToBSL
+ 0
+
+
+ CCMSPFetDoLogfile
+ 0
+
+
+ CCMSPFetLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCMSPFetRadioEraseFlash
+ 1
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ TIPackageOverride
+ 0
+
+
+ TIPackage
+
+
+
+ BoardFile
+
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCXds100BreakpointRadio
+ 0
+
+
+ CCXds100DoUpdateBreakpoints
+ 0
+
+
+ CCXds100UpdateBreakpoints
+ _call_main
+
+
+ CCXds100CatchReset
+ 0
+
+
+ CCXds100CatchUndef
+ 0
+
+
+ CCXds100CatchSWI
+ 0
+
+
+ CCXds100CatchData
+ 0
+
+
+ CCXds100CatchPrefetch
+ 0
+
+
+ CCXds100CatchIRQ
+ 0
+
+
+ CCXds100CatchFIQ
+ 0
+
+
+ CCXds100CatchCORERESET
+ 0
+
+
+ CCXds100CatchMMERR
+ 0
+
+
+ CCXds100CatchNOCPERR
+ 0
+
+
+ CCXds100CatchCHRERR
+ 0
+
+
+ CCXds100CatchSTATERR
+ 0
+
+
+ CCXds100CatchBUSERR
+ 0
+
+
+ CCXds100CatchINTERR
+ 0
+
+
+ CCXds100CatchSFERR
+ 0
+
+
+ CCXds100CatchHARDERR
+ 0
+
+
+ CCXds100CatchDummy
+ 0
+
+
+ CCXds100CpuClockEdit
+
+
+
+ CCXds100SwoClockAuto
+ 0
+
+
+ CCXds100SwoClockEdit
+ 1000
+
+
+ CCXds100HWResetDelay
+ 0
+
+
+ CCXds100ResetList
+ 0
+ 0
+
+
+ CCXds100UsbSerialNo
+
+
+
+ CCXds100UsbSerialNoSelect
+ 0
+
+
+ CCXds100JtagSpeedList
+ 0
+ 0
+
+
+ CCXds100InterfaceRadio
+ 2
+
+
+ CCXds100InterfaceCmdLine
+ 0
+
+
+ CCXds100ProbeList
+ 0
+ 2
+
+
+ CCXds100SWOPortRadio
+ 0
+
+
+ CCXds100SWOPort
+ 1
+
+
+ CCXDSTargetVccEnable
+ 0
+
+
+ CCXDSTargetVoltage
+ ###Uninitialized###
+
+
+ OCXDSDigitalStatesConfigFile
+ 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\RemedyRtosViewer\RemedyRtosViewer.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 31
+ 1
+ 0
+
+ CInput
+ 1
+
+
+ CEndian
+ 1
+
+
+ CProcessor
+ 1
+
+
+ OCVariant
+ 0
+
+
+ MacOverride
+ 0
+
+
+ MacFile
+
+
+
+ MemOverride
+ 0
+
+
+ MemFile
+
+
+
+ RunToEnable
+ 1
+
+
+ RunToName
+ main
+
+
+ CExtraOptionsCheck
+ 0
+
+
+ CExtraOptions
+
+
+
+ CFpuProcessor
+ 1
+
+
+ OCDDFArgumentProducer
+
+
+
+ OCDownloadSuppressDownload
+ 0
+
+
+ OCDownloadVerifyAll
+ 0
+
+
+ OCProductVersion
+ 8.11.3.13977
+
+
+ OCDynDriverList
+ ARMSIM_ID
+
+
+ OCLastSavedByProductVersion
+
+
+
+ UseFlashLoader
+ 1
+
+
+ CLowLevel
+ 1
+
+
+ OCBE8Slave
+ 1
+
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
+
+ OCDeviceConfigMacroFile
+ 1
+
+
+ OCDebuggerExtraOption
+ 1
+
+
+ OCAllMTBOptions
+ 1
+
+
+ OCMulticoreNrOfCores
+
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
+
+ OCDownloadExtraImage
+ 1
+
+
+ OCAttachSlave
+ 0
+
+
+ MassEraseBeforeFlashing
+ 0
+
+
+ OCMulticoreNrOfCoresSlave
+ 1
+
+
+ OCMulticoreAMPConfigType
+ 0
+
+
+ OCMulticoreSessionFile
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+ OCSimDriverInfo
+ 1
+
+
+ OCSimEnablePSP
+ 0
+
+
+ OCSimPspOverrideConfig
+ 0
+
+
+ OCSimPspConfigFile
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+ CCadiMemory
+ 1
+
+
+ Fast Model
+
+
+
+ CCADILogFileCheck
+ 0
+
+
+ CCADILogFileEditB
+ $PROJ_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ CMSISDAPResetList
+ 1
+ 10
+
+
+ CMSISDAPHWResetDuration
+ 300
+
+
+ CMSISDAPHWResetDelay
+ 200
+
+
+ CMSISDAPDoLogfile
+ 0
+
+
+ CMSISDAPLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CMSISDAPInterfaceRadio
+ 0
+
+
+ CMSISDAPInterfaceCmdLine
+ 0
+
+
+ CMSISDAPMultiTargetEnable
+ 0
+
+
+ CMSISDAPMultiTarget
+ 0
+
+
+ CMSISDAPJtagSpeedList
+ 0
+ 0
+
+
+ CMSISDAPBreakpointRadio
+ 0
+
+
+ CMSISDAPRestoreBreakpointsCheck
+ 0
+
+
+ CMSISDAPUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchSFERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ CMSISDAPMultiCPUEnable
+ 0
+
+
+ CMSISDAPMultiCPUNumber
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+ CCCMSISDAPUsbSerialNo
+
+
+
+ CCCMSISDAPUsbSerialNoSelect
+ 0
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ TCPIP
+ aaa.bbb.ccc.ddd
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCJTagBreakpointRadio
+ 0
+
+
+ CCJTagDoUpdateBreakpoints
+ 0
+
+
+ CCJTagUpdateBreakpoints
+ _call_main
+
+
+
+
+ IJET_ID
+ 2
+
+ 8
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ IjetResetList
+ 1
+ 10
+
+
+ IjetHWResetDuration
+ 300
+
+
+ IjetHWResetDelay
+ 200
+
+
+ IjetPowerFromProbe
+ 1
+
+
+ IjetPowerRadio
+ 0
+
+
+ IjetDoLogfile
+ 0
+
+
+ IjetLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ IjetInterfaceRadio
+ 0
+
+
+ IjetInterfaceCmdLine
+ 0
+
+
+ IjetMultiTargetEnable
+ 0
+
+
+ IjetMultiTarget
+ 0
+
+
+ IjetScanChainNonARMDevices
+ 0
+
+
+ IjetIRLength
+ 0
+
+
+ IjetJtagSpeedList
+ 0
+ 0
+
+
+ IjetProtocolRadio
+ 0
+
+
+ IjetSwoPin
+ 0
+
+
+ IjetCpuClockEdit
+
+
+
+ IjetSwoPrescalerList
+ 1
+ 0
+
+
+ IjetBreakpointRadio
+ 0
+
+
+ IjetRestoreBreakpointsCheck
+ 0
+
+
+ IjetUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchSFERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ IjetProbeConfigRadio
+ 0
+
+
+ IjetMultiCPUEnable
+ 0
+
+
+ IjetMultiCPUNumber
+ 0
+
+
+ IjetSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+ IjetPreferETB
+ 1
+
+
+ IjetTraceSettingsList
+ 0
+ 0
+
+
+ IjetTraceSizeList
+ 0
+ 4
+
+
+ FlashBoardPathSlave
+ 0
+
+
+ CCIjetUsbSerialNo
+
+
+
+ CCIjetUsbSerialNoSelect
+ 0
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+ JLinkSpeed
+ 1000
+
+
+ CCJLinkDoLogfile
+ 0
+
+
+ CCJLinkLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCJLinkHWResetDelay
+ 0
+
+
+ OCDriverInfo
+ 1
+
+
+ JLinkInitialSpeed
+ 1000
+
+
+ CCDoJlinkMultiTarget
+ 0
+
+
+ CCScanChainNonARMDevices
+ 0
+
+
+ CCJLinkMultiTarget
+ 0
+
+
+ CCJLinkIRLength
+ 0
+
+
+ CCJLinkCommRadio
+ 0
+
+
+ CCJLinkTCPIP
+ aaa.bbb.ccc.ddd
+
+
+ CCJLinkSpeedRadioV2
+ 0
+
+
+ CCUSBDevice
+ 1
+ 1
+
+
+ CCRDICatchReset
+ 0
+
+
+ CCRDICatchUndef
+ 0
+
+
+ CCRDICatchSWI
+ 0
+
+
+ CCRDICatchData
+ 0
+
+
+ CCRDICatchPrefetch
+ 0
+
+
+ CCRDICatchIRQ
+ 0
+
+
+ CCRDICatchFIQ
+ 0
+
+
+ CCJLinkBreakpointRadio
+ 0
+
+
+ CCJLinkDoUpdateBreakpoints
+ 0
+
+
+ CCJLinkUpdateBreakpoints
+ _call_main
+
+
+ CCJLinkInterfaceRadio
+ 0
+
+
+ CCJLinkResetList
+ 6
+ 5
+
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchSFERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+ OCJLinkTraceSource
+ 0
+
+
+ OCJLinkTraceSourceDummy
+ 0
+
+
+ OCJLinkDeviceName
+ 1
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 2
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ LmiftdiSpeed
+ 500
+
+
+ CCLmiftdiDoLogfile
+ 0
+
+
+ CCLmiftdiLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+
+
+ STLINK_ID
+ 2
+
+ 6
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 3
+ 0
+
+
+ CCCpuClockEdit
+
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCSTLinkDoUpdateBreakpoints
+ 0
+
+
+ CCSTLinkUpdateBreakpoints
+ _call_main
+
+
+ CCSTLinkCatchCORERESET
+ 0
+
+
+ CCSTLinkCatchMMERR
+ 0
+
+
+ CCSTLinkCatchNOCPERR
+ 0
+
+
+ CCSTLinkCatchCHRERR
+ 0
+
+
+ CCSTLinkCatchSTATERR
+ 0
+
+
+ CCSTLinkCatchBUSERR
+ 0
+
+
+ CCSTLinkCatchINTERR
+ 0
+
+
+ CCSTLinkCatchSFERR
+ 0
+
+
+ CCSTLinkCatchHARDERR
+ 0
+
+
+ CCSTLinkCatchDummy
+ 0
+
+
+ CCSTLinkUsbSerialNo
+
+
+
+ CCSTLinkUsbSerialNoSelect
+ 0
+
+
+ CCSTLinkJtagSpeedList
+ 2
+ 0
+
+
+ CCSTLinkDAPNumber
+
+
+
+ CCSTLinkDebugAccessPortRadio
+ 0
+
+
+ CCSTLinkUseServerSelect
+ 0
+
+
+ CCSTLinkProbeList
+ 0
+ 1
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+ CThirdPartyDriverDll
+ ###Uninitialized###
+
+
+ CThirdPartyLogFileCheck
+ 0
+
+
+ CThirdPartyLogFileEditB
+ $PROJ_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ CCMSPFetResetList
+ 0
+ 0
+
+
+ CCMSPFetInterfaceRadio
+ 0
+
+
+ CCMSPFetInterfaceCmdLine
+ 0
+
+
+ CCMSPFetTargetVccTypeDefault
+ 0
+
+
+ CCMSPFetTargetVoltage
+ ###Uninitialized###
+
+
+ CCMSPFetVCCDefault
+ 1
+
+
+ CCMSPFetTargetSettlingtime
+ 0
+
+
+ CCMSPFetRadioJtagSpeedType
+ 1
+
+
+ CCMSPFetConnection
+ 0
+ 0
+
+
+ CCMSPFetUsbComPort
+ Automatic
+
+
+ CCMSPFetAllowAccessToBSL
+ 0
+
+
+ CCMSPFetDoLogfile
+ 0
+
+
+ CCMSPFetLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCMSPFetRadioEraseFlash
+ 1
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+ OCDriverInfo
+ 1
+
+
+ TIPackageOverride
+ 0
+
+
+ TIPackage
+
+
+
+ BoardFile
+
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCXds100BreakpointRadio
+ 0
+
+
+ CCXds100DoUpdateBreakpoints
+ 0
+
+
+ CCXds100UpdateBreakpoints
+ _call_main
+
+
+ CCXds100CatchReset
+ 0
+
+
+ CCXds100CatchUndef
+ 0
+
+
+ CCXds100CatchSWI
+ 0
+
+
+ CCXds100CatchData
+ 0
+
+
+ CCXds100CatchPrefetch
+ 0
+
+
+ CCXds100CatchIRQ
+ 0
+
+
+ CCXds100CatchFIQ
+ 0
+
+
+ CCXds100CatchCORERESET
+ 0
+
+
+ CCXds100CatchMMERR
+ 0
+
+
+ CCXds100CatchNOCPERR
+ 0
+
+
+ CCXds100CatchCHRERR
+ 0
+
+
+ CCXds100CatchSTATERR
+ 0
+
+
+ CCXds100CatchBUSERR
+ 0
+
+
+ CCXds100CatchINTERR
+ 0
+
+
+ CCXds100CatchSFERR
+ 0
+
+
+ CCXds100CatchHARDERR
+ 0
+
+
+ CCXds100CatchDummy
+ 0
+
+
+ CCXds100CpuClockEdit
+
+
+
+ CCXds100SwoClockAuto
+ 0
+
+
+ CCXds100SwoClockEdit
+ 1000
+
+
+ CCXds100HWResetDelay
+ 0
+
+
+ CCXds100ResetList
+ 0
+ 0
+
+
+ CCXds100UsbSerialNo
+
+
+
+ CCXds100UsbSerialNoSelect
+ 0
+
+
+ CCXds100JtagSpeedList
+ 0
+ 0
+
+
+ CCXds100InterfaceRadio
+ 2
+
+
+ CCXds100InterfaceCmdLine
+ 0
+
+
+ CCXds100ProbeList
+ 0
+ 2
+
+
+ CCXds100SWOPortRadio
+ 0
+
+
+ CCXds100SWOPort
+ 1
+
+
+ CCXDSTargetVccEnable
+ 0
+
+
+ CCXDSTargetVoltage
+ ###Uninitialized###
+
+
+ OCXDSDigitalStatesConfigFile
+ 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\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\RemedyRtosViewer\RemedyRtosViewer.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.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\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.ewp b/bsp/stm32/stm32mp157a-st-ev1/project.ewp
new file mode 100644
index 0000000000000000000000000000000000000000..d84c668843b8d45f46e300d2868ae7ecbba06dbf
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.ewp
@@ -0,0 +1,2563 @@
+
+
+ 3
+
+ rt-thread
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 31
+ 1
+ 1
+
+ ExePath
+ build\iar\Exe
+
+
+ ObjPath
+ build\iar\Obj
+
+
+ ListPath
+ build\iar\List
+
+
+ GEndianMode
+ 0
+
+
+ Input description
+ Automatic choice of formatter, without multibyte support.
+
+
+ Output description
+ Automatic choice of formatter, without multibyte support.
+
+
+ GOutputBinary
+ 0
+
+
+ OGCoreOrChip
+ 1
+
+
+ GRuntimeLibSelect
+ 0
+ 2
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 2
+
+
+ RTDescription
+ Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.
+
+
+ OGProductVersion
+ 6.30.6.53380
+
+
+ OGLastSavedByProductVersion
+ 8.40.1.21529
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ STM32MP157A_M4 ST STM32MP157A_M4
+
+
+ GenLowLevelInterface
+ 1
+
+
+ GEndianModeBE
+ 1
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
+
+
+ GBECoreSlave
+ 27
+ 39
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+ CoreVariant
+ 27
+ 39
+
+
+ GFPUDeviceSlave
+ STM32MP157A_M4 ST STM32MP157A_M4
+
+
+ FPU2
+ 0
+ 4
+
+
+ NrRegs
+ 0
+ 1
+
+
+ NEON
+ 0
+
+
+ GFPUCoreSlave2
+ 27
+ 39
+
+
+ OGCMSISPackSelectDevice
+
+
+ OgLibHeap
+ 0
+
+
+ OGLibAdditionalLocale
+ 0
+
+
+ OGPrintfVariant
+ 0
+ 0
+
+
+ OGPrintfMultibyteSupport
+ 0
+
+
+ OGScanfVariant
+ 0
+ 0
+
+
+ OGScanfMultibyteSupport
+ 0
+
+
+ GenLocaleTags
+
+
+
+ GenLocaleDisplayOnly
+
+
+
+ DSPExtension
+ 1
+
+
+ TrustZone
+ 0
+
+
+ TrustZoneModes
+ 0
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 35
+ 1
+ 1
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCDefines
+ RT_USING_DLIBC
+ _DLIB_FILE_DESCRIPTOR
+ CORE_CM4
+ NO_ATOMIC_64_SUPPORT
+ METAL_INTERNAL
+ METAL_MAX_DEVICE_REGIONS=2
+ VIRTIO_SLAVE_ONLY
+ STM32MP157Axx
+ __LOG_TRACE_IO_
+ USE_HAL_DRIVER
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+ Pa050
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 00000000
+
+
+ CCDebugInfo
+ 1
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+ $FILE_BNAME$.o
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\devfs
+ $PROJ_DIR$\..\..\..\components\finsh
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Core\Include
+ $PROJ_DIR$\..\..\..\components\drivers\include
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib
+ $PROJ_DIR$\board\ports\audio
+ $PROJ_DIR$\..\..\..\components\libc\compilers\common
+ $PROJ_DIR$\.
+ $PROJ_DIR$\board\CubeMX_Config\CM4\Inc
+ $PROJ_DIR$\..\..\..\components\dfs\include
+ $PROJ_DIR$\..\libraries\HAL_Drivers\config
+ $PROJ_DIR$\board
+ $PROJ_DIR$\..\libraries\HAL_Drivers
+ $PROJ_DIR$\board\ports
+ $PROJ_DIR$\applications
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Include
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat
+ $PROJ_DIR$\..\..\..\include
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Include
+ $PROJ_DIR$\board\ports\pmic
+ $PROJ_DIR$\..\..\..\libcpu\arm\common
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Inc
+ $PROJ_DIR$\..\..\..\components\drivers\audio
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 1
+
+
+ CCOptStrategy
+ 0
+ 0
+
+
+ CCOptLevelSlave
+ 1
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 0
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 0
+
+
+ CCGuardCalls
+ 1
+
+
+ CCEncSource
+ 0
+
+
+ CCEncOutput
+ 0
+
+
+ CCEncOutputBom
+ 1
+
+
+ CCEncInput
+ 0
+
+
+ IccExceptions2
+ 0
+
+
+ IccRTTI2
+ 0
+
+
+ OICompilerExtraOption
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 10
+ 1
+ 1
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 1
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+ $FILE_BNAME$.o
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+ OOCOutputFormat
+ 3
+ 3
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+ project.bin
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 1
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 23
+ 1
+ 1
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ RT-Thread-STM32MP1_CM4.elf
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 0
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 1
+
+
+ IlinkIcfFile
+ $PROJ_DIR$\board\linker_scripts\link.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 0
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+ __iar_program_start
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 1
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+ IlinkLogCallGraph
+ 0
+
+
+ IlinkIcfFile_AltDefault
+
+
+
+ IlinkEncInput
+ 0
+
+
+ IlinkEncOutput
+ 0
+
+
+ IlinkEncOutputBom
+ 1
+
+
+ IlinkHeapSelect
+ 1
+
+
+ IlinkLocaleSelect
+ 1
+
+
+ IlinkTrustzoneImportLibraryOut
+ template_import_lib.o
+
+
+ OILinkExtraOption
+ 1
+
+
+ IlinkRawBinaryFile2
+
+
+
+ IlinkRawBinarySymbol2
+
+
+
+ IlinkRawBinarySegment2
+
+
+
+ IlinkRawBinaryAlign2
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 31
+ 1
+ 0
+
+ ExePath
+ Release\Exe
+
+
+ ObjPath
+ Release\Obj
+
+
+ ListPath
+ Release\List
+
+
+ GEndianMode
+ 0
+
+
+ Input description
+
+
+
+ Output description
+
+
+
+ GOutputBinary
+ 0
+
+
+ OGCoreOrChip
+ 0
+
+
+ GRuntimeLibSelect
+ 0
+ 1
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 1
+
+
+ RTDescription
+
+
+
+ OGProductVersion
+ 6.30.6.53380
+
+
+ OGLastSavedByProductVersion
+ 8.11.3.13977
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ Default None
+
+
+ GenLowLevelInterface
+ 0
+
+
+ GEndianModeBE
+ 0
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+
+
+
+ GBECoreSlave
+ 27
+ 1
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+ CoreVariant
+ 27
+ 0
+
+
+ GFPUDeviceSlave
+ Default None
+
+
+ FPU2
+ 0
+ 0
+
+
+ NrRegs
+ 0
+ 0
+
+
+ NEON
+ 0
+
+
+ GFPUCoreSlave2
+ 27
+ 0
+
+
+ OGCMSISPackSelectDevice
+
+
+ OgLibHeap
+ 0
+
+
+ OGLibAdditionalLocale
+ 0
+
+
+ OGPrintfVariant
+ 0
+ 0
+
+
+ OGPrintfMultibyteSupport
+ 0
+
+
+ OGScanfVariant
+ 0
+ 0
+
+
+ OGScanfMultibyteSupport
+ 0
+
+
+ GenLocaleTags
+
+
+
+ GenLocaleDisplayOnly
+
+
+
+ DSPExtension
+ 0
+
+
+ TrustZone
+ 0
+
+
+ TrustZoneModes
+ 0
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 35
+ 1
+ 0
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCDefines
+ RT_USING_DLIBC
+ _DLIB_FILE_DESCRIPTOR
+ CORE_CM4
+ NO_ATOMIC_64_SUPPORT
+ METAL_INTERNAL
+ METAL_MAX_DEVICE_REGIONS=2
+ VIRTIO_SLAVE_ONLY
+ STM32MP157Axx
+ __LOG_TRACE_IO_
+ USE_HAL_DRIVER
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 11111110
+
+
+ CCDebugInfo
+ 0
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\devfs
+ $PROJ_DIR$\..\..\..\components\finsh
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Core\Include
+ $PROJ_DIR$\..\..\..\components\drivers\include
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib
+ $PROJ_DIR$\board\ports\audio
+ $PROJ_DIR$\..\..\..\components\libc\compilers\common
+ $PROJ_DIR$\.
+ $PROJ_DIR$\board\CubeMX_Config\CM4\Inc
+ $PROJ_DIR$\..\..\..\components\dfs\include
+ $PROJ_DIR$\..\libraries\HAL_Drivers\config
+ $PROJ_DIR$\board
+ $PROJ_DIR$\..\libraries\HAL_Drivers
+ $PROJ_DIR$\board\ports
+ $PROJ_DIR$\applications
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Include
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat
+ $PROJ_DIR$\..\..\..\include
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Include
+ $PROJ_DIR$\board\ports\pmic
+ $PROJ_DIR$\..\..\..\libcpu\arm\common
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Inc
+ $PROJ_DIR$\..\..\..\components\drivers\audio
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 3
+
+
+ CCOptStrategy
+ 0
+ 0
+
+
+ CCOptLevelSlave
+ 1
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 0
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 0
+
+
+ CCGuardCalls
+ 1
+
+
+ CCEncSource
+ 0
+
+
+ CCEncOutput
+ 0
+
+
+ CCEncOutputBom
+ 1
+
+
+ CCEncInput
+ 0
+
+
+ IccExceptions2
+ 0
+
+
+ IccRTTI2
+ 0
+
+
+ OICompilerExtraOption
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 10
+ 1
+ 0
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 0
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+ OOCOutputFormat
+ 3
+ 0
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 0
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 23
+ 1
+ 0
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ ###Unitialized###
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 0
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 0
+
+
+ IlinkIcfFile
+ lnk0t.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 0
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 1
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 1
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+ IlinkLogCallGraph
+ 0
+
+
+ IlinkIcfFile_AltDefault
+
+
+
+ IlinkEncInput
+ 0
+
+
+ IlinkEncOutput
+ 0
+
+
+ IlinkEncOutputBom
+ 1
+
+
+ IlinkHeapSelect
+ 1
+
+
+ IlinkLocaleSelect
+ 1
+
+
+ IlinkTrustzoneImportLibraryOut
+ ###Unitialized###
+
+
+ OILinkExtraOption
+ 1
+
+
+ IlinkRawBinaryFile2
+
+
+
+ IlinkRawBinarySymbol2
+
+
+
+ IlinkRawBinarySegment2
+
+
+
+ IlinkRawBinaryAlign2
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ cpu
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\components\drivers\audio\audio.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\audio\audio_pipe.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\completion.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c_core.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c_dev.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c
+
+
+
+ dlib
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\libc.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\rmtx.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\stdio.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c
+
+
+ $PROJ_DIR$\board\ports\dfsdm\drv_dfsdm.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\board\ports\pmic\drv_hard_i2c.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_sai.c
+
+
+ $PROJ_DIR$\board\ports\sdmmc\drv_sdmmc.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_soft_i2c.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_sound.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_wm8994.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Source\Templates\iar\startup_stm32mp15xx.s
+
+
+ $PROJ_DIR$\board\CubeMX_Config\CM4\Src\stm32mp1xx_hal_msp.c
+
+
+ $PROJ_DIR$\board\ports\pmic\stpmic.c
+
+
+ $PROJ_DIR$\board\CubeMX_Config\Common\System\system_stm32mp1xx.c
+
+
+
+ Filesystem
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\option\ccsbcs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\devfs\devfs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_file.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_fs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_posix.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\ff.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\poll.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\select.c
+
+
+
+ finsh
+
+ $PROJ_DIR$\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_compiler.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_error.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_heap.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_init.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_node.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_ops.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_parser.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_token.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_var.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_vm.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\msh_file.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\src\memheap.c
+
+
+ $PROJ_DIR$\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\src\signal.c
+
+
+ $PROJ_DIR$\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\src\timer.c
+
+
+
+ libc
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ STM32_HAL
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cortex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_crc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_crc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cryp.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cryp_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dfsdm.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dfsdm_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_exti.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_hsem.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_ipcc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_mdma.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rng.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sai.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sai_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sd.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_spi.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_ll_delayblock.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_ll_sdmmc.c
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.ewt b/bsp/stm32/stm32mp157a-st-ev1/project.ewt
new file mode 100644
index 0000000000000000000000000000000000000000..406b4bb345de511c57db0b1607787d4381e1ac2d
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.ewt
@@ -0,0 +1,2765 @@
+
+
+ 3
+
+ rt-thread
+
+ ARM
+
+ 1
+
+ C-STAT
+ 261
+
+ 261
+
+ 0
+
+ 1
+ 600
+ 1
+ 4
+ 0
+ 1
+ 100
+
+
+ 1.5.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RuntimeChecking
+ 0
+
+ 2
+ 1
+ 1
+
+ GenRtcDebugHeap
+ 0
+
+
+ GenRtcEnableBoundsChecking
+ 0
+
+
+ GenRtcCheckPtrsNonInstrMem
+ 1
+
+
+ GenRtcTrackPointerBounds
+ 1
+
+
+ GenRtcCheckAccesses
+ 1
+
+
+ GenRtcGenerateEntries
+ 0
+
+
+ GenRtcNrTrackedPointers
+ 1000
+
+
+ GenRtcIntOverflow
+ 0
+
+
+ GenRtcIncUnsigned
+ 0
+
+
+ GenRtcIntConversion
+ 0
+
+
+ GenRtcInclExplicit
+ 0
+
+
+ GenRtcIntShiftOverflow
+ 0
+
+
+ GenRtcInclUnsignedShiftOverflow
+ 0
+
+
+ GenRtcUnhandledCase
+ 0
+
+
+ GenRtcDivByZero
+ 0
+
+
+ GenRtcEnable
+ 0
+
+
+ GenRtcCheckPtrsNonInstrFunc
+ 1
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-STAT
+ 261
+
+ 261
+
+ 0
+
+ 1
+ 600
+ 1
+ 4
+ 0
+ 1
+ 100
+
+
+ 1.5.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RuntimeChecking
+ 0
+
+ 2
+ 1
+ 0
+
+ GenRtcDebugHeap
+ 0
+
+
+ GenRtcEnableBoundsChecking
+ 0
+
+
+ GenRtcCheckPtrsNonInstrMem
+ 1
+
+
+ GenRtcTrackPointerBounds
+ 1
+
+
+ GenRtcCheckAccesses
+ 1
+
+
+ GenRtcGenerateEntries
+ 0
+
+
+ GenRtcNrTrackedPointers
+ 1000
+
+
+ GenRtcIntOverflow
+ 0
+
+
+ GenRtcIncUnsigned
+ 0
+
+
+ GenRtcIntConversion
+ 0
+
+
+ GenRtcInclExplicit
+ 0
+
+
+ GenRtcIntShiftOverflow
+ 0
+
+
+ GenRtcInclUnsignedShiftOverflow
+ 0
+
+
+ GenRtcUnhandledCase
+ 0
+
+
+ GenRtcDivByZero
+ 0
+
+
+ GenRtcEnable
+ 0
+
+
+ GenRtcCheckPtrsNonInstrFunc
+ 1
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ cpu
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\components\drivers\audio\audio.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\audio\audio_pipe.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\completion.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c_core.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\i2c\i2c_dev.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c
+
+
+
+ dlib
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\libc.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\rmtx.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\stdio.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c
+
+
+ $PROJ_DIR$\board\ports\dfsdm\drv_dfsdm.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\board\ports\pmic\drv_hard_i2c.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_sai.c
+
+
+ $PROJ_DIR$\board\ports\sdmmc\drv_sdmmc.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_soft_i2c.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_sound.c
+
+
+ $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c
+
+
+ $PROJ_DIR$\board\ports\audio\drv_wm8994.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Source\Templates\iar\startup_stm32mp15xx.s
+
+
+ $PROJ_DIR$\board\CubeMX_Config\CM4\Src\stm32mp1xx_hal_msp.c
+
+
+ $PROJ_DIR$\board\ports\pmic\stpmic.c
+
+
+ $PROJ_DIR$\board\CubeMX_Config\Common\System\system_stm32mp1xx.c
+
+
+
+ Filesystem
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\option\ccsbcs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\devfs\devfs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_file.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_fs.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\dfs_posix.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\filesystems\elmfat\ff.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\poll.c
+
+
+ $PROJ_DIR$\..\..\..\components\dfs\src\select.c
+
+
+
+ finsh
+
+ $PROJ_DIR$\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_compiler.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_error.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_heap.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_init.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_node.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_ops.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_parser.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_token.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_var.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\finsh_vm.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\msh_file.c
+
+
+ $PROJ_DIR$\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\src\memheap.c
+
+
+ $PROJ_DIR$\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\src\signal.c
+
+
+ $PROJ_DIR$\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\src\timer.c
+
+
+
+ libc
+
+ $PROJ_DIR$\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ STM32_HAL
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cortex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_crc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_crc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cryp.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cryp_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dfsdm.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dfsdm_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_exti.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_hsem.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_ipcc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_mdma.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rng.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sai.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sai_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_sd.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_spi.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart_ex.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_ll_delayblock.c
+
+
+ $PROJ_DIR$\..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_ll_sdmmc.c
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.eww b/bsp/stm32/stm32mp157a-st-ev1/project.eww
new file mode 100644
index 0000000000000000000000000000000000000000..c2cb02eb1e89d73e24183274c1c886ddf74f9537
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.uvopt b/bsp/stm32/stm32mp157a-st-ev1/project.uvopt
new file mode 100644
index 0000000000000000000000000000000000000000..ed90c9e187e8063cc4d07cc09e28620f73aeac3f
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.uvopt
@@ -0,0 +1,167 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 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
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 11
+
+
+
+
+
+
+
+
+
+
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U -O207 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000
+
+
+ 0
+ JL2CM3
+ -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000
+
+
+ 0
+ UL2CM3
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)
+
+
+
+
+ 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
+
+
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.uvoptx b/bsp/stm32/stm32mp157a-st-ev1/project.uvoptx
new file mode 100644
index 0000000000000000000000000000000000000000..97c770bb6f99bc1dd58b3ce8e9d156467efc5063
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.uvoptx
@@ -0,0 +1,1172 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.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
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FC1000 -FD10020000
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U066BFF343339415043223048 -O206 -SF10000 -C0 -A2 -I0 -HNlocalhost -HP7184 -P1 -N00("") -D00(00000000) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD10050000 -FC1000 -FN0
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ Applications
+ 1
+ 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\backtrace.c
+ backtrace.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\showmem.c
+ showmem.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\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 3
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 3
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 3
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 3
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 3
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\drivers\src\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ board\CubeMX_Config\Common\System\system_stm32mp1xx.c
+ system_stm32mp1xx.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ board\CubeMX_Config\CM4\Src\stm32mp1xx_hal_msp.c
+ stm32mp1xx_hal_msp.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Source\Templates\arm\startup_stm32mp15xx.s
+ startup_stm32mp15xx.s
+ 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
+
+
+
+
+ finsh
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 5
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\cmd.c
+ cmd.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\finsh_compiler.c
+ finsh_compiler.c
+ 0
+ 0
+
+
+ 5
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_error.c
+ finsh_error.c
+ 0
+ 0
+
+
+ 5
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_heap.c
+ finsh_heap.c
+ 0
+ 0
+
+
+ 5
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_init.c
+ finsh_init.c
+ 0
+ 0
+
+
+ 5
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_node.c
+ finsh_node.c
+ 0
+ 0
+
+
+ 5
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_ops.c
+ finsh_ops.c
+ 0
+ 0
+
+
+ 5
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_parser.c
+ finsh_parser.c
+ 0
+ 0
+
+
+ 5
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_var.c
+ finsh_var.c
+ 0
+ 0
+
+
+ 5
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_vm.c
+ finsh_vm.c
+ 0
+ 0
+
+
+ 5
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\finsh\finsh_token.c
+ finsh_token.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 6
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 6
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 6
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 6
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 6
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 6
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 6
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\memheap.c
+ memheap.c
+ 0
+ 0
+
+
+ 6
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 6
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 6
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 6
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\signal.c
+ signal.c
+ 0
+ 0
+
+
+ 6
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 6
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+
+
+ libc
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\libc\compilers\armlibc\libc.c
+ libc.c
+ 0
+ 0
+
+
+ 7
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\libc\compilers\armlibc\mem_std.c
+ mem_std.c
+ 0
+ 0
+
+
+ 7
+ 52
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\libc\compilers\armlibc\stubs.c
+ stubs.c
+ 0
+ 0
+
+
+ 7
+ 53
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ STM32_HAL
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 54
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal.c
+ stm32mp1xx_hal.c
+ 0
+ 0
+
+
+ 8
+ 55
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_hsem.c
+ stm32mp1xx_hal_hsem.c
+ 0
+ 0
+
+
+ 8
+ 56
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_exti.c
+ stm32mp1xx_hal_exti.c
+ 0
+ 0
+
+
+ 8
+ 57
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_ipcc.c
+ stm32mp1xx_hal_ipcc.c
+ 0
+ 0
+
+
+ 8
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cortex.c
+ stm32mp1xx_hal_cortex.c
+ 0
+ 0
+
+
+ 8
+ 59
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma.c
+ stm32mp1xx_hal_dma.c
+ 0
+ 0
+
+
+ 8
+ 60
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma_ex.c
+ stm32mp1xx_hal_dma_ex.c
+ 0
+ 0
+
+
+ 8
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_mdma.c
+ stm32mp1xx_hal_mdma.c
+ 0
+ 0
+
+
+ 8
+ 62
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr.c
+ stm32mp1xx_hal_pwr.c
+ 0
+ 0
+
+
+ 8
+ 63
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr_ex.c
+ stm32mp1xx_hal_pwr_ex.c
+ 0
+ 0
+
+
+ 8
+ 64
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc.c
+ stm32mp1xx_hal_rcc.c
+ 0
+ 0
+
+
+ 8
+ 65
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc_ex.c
+ stm32mp1xx_hal_rcc_ex.c
+ 0
+ 0
+
+
+ 8
+ 66
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_gpio.c
+ stm32mp1xx_hal_gpio.c
+ 0
+ 0
+
+
+ 8
+ 67
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc.c
+ stm32mp1xx_hal_adc.c
+ 0
+ 0
+
+
+ 8
+ 68
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc_ex.c
+ stm32mp1xx_hal_adc_ex.c
+ 0
+ 0
+
+
+ 8
+ 69
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac.c
+ stm32mp1xx_hal_dac.c
+ 0
+ 0
+
+
+ 8
+ 70
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac_ex.c
+ stm32mp1xx_hal_dac_ex.c
+ 0
+ 0
+
+
+ 8
+ 71
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c.c
+ stm32mp1xx_hal_i2c.c
+ 0
+ 0
+
+
+ 8
+ 72
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c_ex.c
+ stm32mp1xx_hal_i2c_ex.c
+ 0
+ 0
+
+
+ 8
+ 73
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_spi.c
+ stm32mp1xx_hal_spi.c
+ 0
+ 0
+
+
+ 8
+ 74
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim.c
+ stm32mp1xx_hal_tim.c
+ 0
+ 0
+
+
+ 8
+ 75
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim_ex.c
+ stm32mp1xx_hal_tim_ex.c
+ 0
+ 0
+
+
+ 8
+ 76
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart.c
+ stm32mp1xx_hal_uart.c
+ 0
+ 0
+
+
+ 8
+ 77
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart_ex.c
+ stm32mp1xx_hal_uart_ex.c
+ 0
+ 0
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/project.uvprojx b/bsp/stm32/stm32mp157a-st-ev1/project.uvprojx
new file mode 100644
index 0000000000000000000000000000000000000000..2b8057d6dcca6d4f2879b2dc3bc05067d21079ec
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/project.uvprojx
@@ -0,0 +1,833 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::ARMCC
+ 0
+
+
+ STM32MP157AAAx:Cortex-M4
+ STMicroelectronics
+ Keil.STM32MP1xx_DFP.1.3.0
+ http://www.keil.com/pack/
+ IRAM(0x10020000,0x00020000) IRAM2(0x10040000,0x00020000) IROM(0x10000000,0x00020000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000)
+
+
+ UL2CM3(-S0 -C0 -P0 -FD10020000 -FC1000)
+ 0
+ $$Device:STM32MP157AAAx$Drivers\CMSIS\Device\ST\STM32MP1xx\Include\stm32mp157axx_cm4.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32MP157AAAx$SVD\STM32MP157x.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\build\keil\Obj\
+ rt-thread
+ 1
+ 0
+ 0
+ 1
+ 0
+ .\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
+ -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 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
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 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
+ 0x10020000
+ 0x20000
+
+
+ 1
+ 0x10000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x10000000
+ 0x40000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x10050000
+ 0x10000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ CORE_CM4, USE_HAL_DRIVER, STM32MP157Axx, RT_USING_ARM_LIBC
+
+ applications;.;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;board\CubeMX_Config\CM4\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\components\finsh;.;..\..\..\include;..\..\..\components\libc\compilers\armlibc;..\..\..\components\libc\compilers\common;..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Inc;..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Include;..\libraries\STM32MPxx_HAL\CMSIS\Core\Include;..\libraries\STM32MPxx_HAL\CMSIS\Include
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+
+ .\board\linker_scripts\link.sct
+
+
+
+
+
+
+
+
+
+
+ Applications
+
+
+ main.c
+ 1
+ applications\main.c
+
+
+
+
+ cpu
+
+
+ backtrace.c
+ 1
+ ..\..\..\libcpu\arm\common\backtrace.c
+
+
+ div0.c
+ 1
+ ..\..\..\libcpu\arm\common\div0.c
+
+
+ showmem.c
+ 1
+ ..\..\..\libcpu\arm\common\showmem.c
+
+
+ cpuport.c
+ 1
+ ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ context_rvds.S
+ 2
+ ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
+
+
+ DeviceDrivers
+
+
+ pin.c
+ 1
+ ..\..\..\components\drivers\misc\pin.c
+
+
+ serial.c
+ 1
+ ..\..\..\components\drivers\serial\serial.c
+
+
+ completion.c
+ 1
+ ..\..\..\components\drivers\src\completion.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\src\dataqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\components\drivers\src\pipe.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\components\drivers\src\ringblk_buf.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\src\ringbuffer.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\components\drivers\src\waitqueue.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\components\drivers\src\workqueue.c
+
+
+
+
+ Drivers
+
+
+ board.c
+ 1
+ board\board.c
+
+
+ system_stm32mp1xx.c
+ 1
+ board\CubeMX_Config\Common\System\system_stm32mp1xx.c
+
+
+ stm32mp1xx_hal_msp.c
+ 1
+ board\CubeMX_Config\CM4\Src\stm32mp1xx_hal_msp.c
+
+
+ startup_stm32mp15xx.s
+ 2
+ ..\libraries\STM32MPxx_HAL\CMSIS\Device\ST\STM32MP1xx\Source\Templates\arm\startup_stm32mp15xx.s
+
+
+ drv_gpio.c
+ 1
+ ..\libraries\HAL_Drivers\drv_gpio.c
+
+
+ drv_usart.c
+ 1
+ ..\libraries\HAL_Drivers\drv_usart.c
+
+
+ drv_common.c
+ 1
+ ..\libraries\HAL_Drivers\drv_common.c
+
+
+
+
+ finsh
+
+
+ shell.c
+ 1
+ ..\..\..\components\finsh\shell.c
+
+
+ cmd.c
+ 1
+ ..\..\..\components\finsh\cmd.c
+
+
+ msh.c
+ 1
+ ..\..\..\components\finsh\msh.c
+
+
+ finsh_compiler.c
+ 1
+ ..\..\..\components\finsh\finsh_compiler.c
+
+
+ finsh_error.c
+ 1
+ ..\..\..\components\finsh\finsh_error.c
+
+
+ finsh_heap.c
+ 1
+ ..\..\..\components\finsh\finsh_heap.c
+
+
+ finsh_init.c
+ 1
+ ..\..\..\components\finsh\finsh_init.c
+
+
+ finsh_node.c
+ 1
+ ..\..\..\components\finsh\finsh_node.c
+
+
+ finsh_ops.c
+ 1
+ ..\..\..\components\finsh\finsh_ops.c
+
+
+ finsh_parser.c
+ 1
+ ..\..\..\components\finsh\finsh_parser.c
+
+
+ finsh_var.c
+ 1
+ ..\..\..\components\finsh\finsh_var.c
+
+
+ finsh_vm.c
+ 1
+ ..\..\..\components\finsh\finsh_vm.c
+
+
+ finsh_token.c
+ 1
+ ..\..\..\components\finsh\finsh_token.c
+
+
+
+
+ Kernel
+
+
+ clock.c
+ 1
+ ..\..\..\src\clock.c
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
+ device.c
+ 1
+ ..\..\..\src\device.c
+
+
+ idle.c
+ 1
+ ..\..\..\src\idle.c
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
+ irq.c
+ 1
+ ..\..\..\src\irq.c
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
+
+
+ memheap.c
+ 1
+ ..\..\..\src\memheap.c
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
+
+
+ object.c
+ 1
+ ..\..\..\src\object.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\src\scheduler.c
+
+
+ signal.c
+ 1
+ ..\..\..\src\signal.c
+
+
+ thread.c
+ 1
+ ..\..\..\src\thread.c
+
+
+ timer.c
+ 1
+ ..\..\..\src\timer.c
+
+
+
+
+ libc
+
+
+ libc.c
+ 1
+ ..\..\..\components\libc\compilers\armlibc\libc.c
+
+
+ mem_std.c
+ 1
+ ..\..\..\components\libc\compilers\armlibc\mem_std.c
+
+
+ stubs.c
+ 1
+ ..\..\..\components\libc\compilers\armlibc\stubs.c
+
+
+ time.c
+ 1
+ ..\..\..\components\libc\compilers\common\time.c
+
+
+
+
+ STM32_HAL
+
+
+ stm32mp1xx_hal.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal.c
+
+
+ stm32mp1xx_hal_hsem.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_hsem.c
+
+
+ stm32mp1xx_hal_exti.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_exti.c
+
+
+ stm32mp1xx_hal_ipcc.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_ipcc.c
+
+
+ stm32mp1xx_hal_cortex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_cortex.c
+
+
+ stm32mp1xx_hal_dma.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma.c
+
+
+ stm32mp1xx_hal_dma_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dma_ex.c
+
+
+ stm32mp1xx_hal_mdma.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_mdma.c
+
+
+ stm32mp1xx_hal_pwr.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr.c
+
+
+ stm32mp1xx_hal_pwr_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_pwr_ex.c
+
+
+ stm32mp1xx_hal_rcc.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc.c
+
+
+ stm32mp1xx_hal_rcc_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_rcc_ex.c
+
+
+ stm32mp1xx_hal_gpio.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_gpio.c
+
+
+ stm32mp1xx_hal_adc.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc.c
+
+
+ stm32mp1xx_hal_adc_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_adc_ex.c
+
+
+ stm32mp1xx_hal_dac.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac.c
+
+
+ stm32mp1xx_hal_dac_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_dac_ex.c
+
+
+ stm32mp1xx_hal_i2c.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c.c
+
+
+ stm32mp1xx_hal_i2c_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_i2c_ex.c
+
+
+ stm32mp1xx_hal_spi.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_spi.c
+
+
+ stm32mp1xx_hal_tim.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim.c
+
+
+ stm32mp1xx_hal_tim_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_tim_ex.c
+
+
+ stm32mp1xx_hal_uart.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart.c
+
+
+ stm32mp1xx_hal_uart_ex.c
+ 1
+ ..\libraries\STM32MPxx_HAL\STM32MP1xx_HAL_Driver\Src\stm32mp1xx_hal_uart_ex.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/rtconfig.h b/bsp/stm32/stm32mp157a-st-ev1/rtconfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..65772b7eac35fb971e9debba6ceea7ae99b836eb
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/rtconfig.h
@@ -0,0 +1,175 @@
+#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 100
+#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
+#define RT_USING_TIMER_SOFT
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+#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_MEMHEAP
+#define RT_USING_MEMHEAP_AS_HEAP
+#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 "uart4"
+#define RT_VER_NUM 0x40003
+#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_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_SERIAL_USING_DMA
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+
+/* Using USB */
+
+
+/* POSIX layer and C standard library */
+
+#define RT_USING_LIBC
+
+/* Network */
+
+/* Socket abstraction layer */
+
+
+/* Network interface device */
+
+
+/* light weight TCP/IP stack */
+
+
+/* AT commands */
+
+
+/* VBUS(Virtual Software BUS) */
+
+
+/* Utilities */
+
+
+/* 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 */
+
+
+/* peripheral libraries and drivers */
+
+
+/* miscellaneous packages */
+
+
+/* samples: kernel and components samples */
+
+#define SOC_FAMILY_STM32
+#define SOC_SERIES_STM32MP1
+
+/* Hardware Drivers Config */
+
+#define SOC_STM32MP157A
+
+/* Onboard Peripheral Drivers */
+
+#define BSP_USING_STLINK_TO_USART
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_GPIO
+#define BSP_USING_UART
+#define BSP_USING_UART4
+
+/* Board extended module Drivers */
+
+
+#endif
diff --git a/bsp/stm32/stm32mp157a-st-ev1/rtconfig.py b/bsp/stm32/stm32mp157a-st-ev1/rtconfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1cad1d512dc8b7682bbe8e0402812c9801a84e8
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/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=rtthread.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 rtthread.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/stm32mp157a-st-ev1/template.ewp b/bsp/stm32/stm32mp157a-st-ev1/template.ewp
new file mode 100644
index 0000000000000000000000000000000000000000..6d6c615d16e243dda5021ec03d0a6f2710564720
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/template.ewp
@@ -0,0 +1,2106 @@
+
+
+ 3
+
+ rt-thread
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 31
+ 1
+ 1
+
+ ExePath
+ build\iar\Exe
+
+
+ ObjPath
+ build\iar\Obj
+
+
+ ListPath
+ build\iar\List
+
+
+ GEndianMode
+ 0
+
+
+ Input description
+ Automatic choice of formatter, without multibyte support.
+
+
+ Output description
+ Automatic choice of formatter, without multibyte support.
+
+
+ GOutputBinary
+ 0
+
+
+ OGCoreOrChip
+ 1
+
+
+ GRuntimeLibSelect
+ 0
+ 2
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 2
+
+
+ RTDescription
+ Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.
+
+
+ OGProductVersion
+ 6.30.6.53380
+
+
+ OGLastSavedByProductVersion
+ 8.40.1.21529
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ STM32MP157A_M4 ST STM32MP157A_M4
+
+
+ GenLowLevelInterface
+ 1
+
+
+ GEndianModeBE
+ 1
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h
+
+
+ GBECoreSlave
+ 27
+ 39
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+ CoreVariant
+ 27
+ 39
+
+
+ GFPUDeviceSlave
+ STM32MP157A_M4 ST STM32MP157A_M4
+
+
+ FPU2
+ 0
+ 4
+
+
+ NrRegs
+ 0
+ 1
+
+
+ NEON
+ 0
+
+
+ GFPUCoreSlave2
+ 27
+ 39
+
+
+ OGCMSISPackSelectDevice
+
+
+ OgLibHeap
+ 0
+
+
+ OGLibAdditionalLocale
+ 0
+
+
+ OGPrintfVariant
+ 0
+ 0
+
+
+ OGPrintfMultibyteSupport
+ 0
+
+
+ OGScanfVariant
+ 0
+ 0
+
+
+ OGScanfMultibyteSupport
+ 0
+
+
+ GenLocaleTags
+
+
+
+ GenLocaleDisplayOnly
+
+
+
+ DSPExtension
+ 1
+
+
+ TrustZone
+ 0
+
+
+ TrustZoneModes
+ 0
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 35
+ 1
+ 1
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCDefines
+
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+ Pa050
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 00000000
+
+
+ CCDebugInfo
+ 1
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+ $FILE_BNAME$.o
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 1
+
+
+ CCOptStrategy
+ 0
+ 0
+
+
+ CCOptLevelSlave
+ 1
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 0
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 0
+
+
+ CCGuardCalls
+ 1
+
+
+ CCEncSource
+ 0
+
+
+ CCEncOutput
+ 0
+
+
+ CCEncOutputBom
+ 1
+
+
+ CCEncInput
+ 0
+
+
+ IccExceptions2
+ 0
+
+
+ IccRTTI2
+ 0
+
+
+ OICompilerExtraOption
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 10
+ 1
+ 1
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 1
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+ $FILE_BNAME$.o
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+ OOCOutputFormat
+ 3
+ 3
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+ template.bin
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 1
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 23
+ 1
+ 1
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ RT-Thread-STM32MP1_CM4.elf
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 0
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 1
+
+
+ IlinkIcfFile
+ $PROJ_DIR$\board\linker_scripts\link.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 0
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+ __iar_program_start
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 1
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+ IlinkLogCallGraph
+ 0
+
+
+ IlinkIcfFile_AltDefault
+
+
+
+ IlinkEncInput
+ 0
+
+
+ IlinkEncOutput
+ 0
+
+
+ IlinkEncOutputBom
+ 1
+
+
+ IlinkHeapSelect
+ 1
+
+
+ IlinkLocaleSelect
+ 1
+
+
+ IlinkTrustzoneImportLibraryOut
+ template_import_lib.o
+
+
+ OILinkExtraOption
+ 1
+
+
+ IlinkRawBinaryFile2
+
+
+
+ IlinkRawBinarySymbol2
+
+
+
+ IlinkRawBinarySegment2
+
+
+
+ IlinkRawBinaryAlign2
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 31
+ 1
+ 0
+
+ ExePath
+ Release\Exe
+
+
+ ObjPath
+ Release\Obj
+
+
+ ListPath
+ Release\List
+
+
+ GEndianMode
+ 0
+
+
+ Input description
+
+
+
+ Output description
+
+
+
+ GOutputBinary
+ 0
+
+
+ OGCoreOrChip
+ 0
+
+
+ GRuntimeLibSelect
+ 0
+ 1
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 1
+
+
+ RTDescription
+
+
+
+ OGProductVersion
+ 6.30.6.53380
+
+
+ OGLastSavedByProductVersion
+ 8.11.3.13977
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ Default None
+
+
+ GenLowLevelInterface
+ 0
+
+
+ GEndianModeBE
+ 0
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+
+
+
+ GBECoreSlave
+ 27
+ 1
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+ CoreVariant
+ 27
+ 0
+
+
+ GFPUDeviceSlave
+ Default None
+
+
+ FPU2
+ 0
+ 0
+
+
+ NrRegs
+ 0
+ 0
+
+
+ NEON
+ 0
+
+
+ GFPUCoreSlave2
+ 27
+ 0
+
+
+ OGCMSISPackSelectDevice
+
+
+ OgLibHeap
+ 0
+
+
+ OGLibAdditionalLocale
+ 0
+
+
+ OGPrintfVariant
+ 0
+ 0
+
+
+ OGPrintfMultibyteSupport
+ 0
+
+
+ OGScanfVariant
+ 0
+ 0
+
+
+ OGScanfMultibyteSupport
+ 0
+
+
+ GenLocaleTags
+
+
+
+ GenLocaleDisplayOnly
+
+
+
+ DSPExtension
+ 0
+
+
+ TrustZone
+ 0
+
+
+ TrustZoneModes
+ 0
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 35
+ 1
+ 0
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCDefines
+
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 11111110
+
+
+ CCDebugInfo
+ 0
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 3
+
+
+ CCOptStrategy
+ 0
+ 0
+
+
+ CCOptLevelSlave
+ 1
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 0
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 0
+
+
+ CCGuardCalls
+ 1
+
+
+ CCEncSource
+ 0
+
+
+ CCEncOutput
+ 0
+
+
+ CCEncOutputBom
+ 1
+
+
+ CCEncInput
+ 0
+
+
+ IccExceptions2
+ 0
+
+
+ IccRTTI2
+ 0
+
+
+ OICompilerExtraOption
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 10
+ 1
+ 0
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 0
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+ OOCOutputFormat
+ 3
+ 0
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 0
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 23
+ 1
+ 0
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ ###Unitialized###
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 0
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 0
+
+
+ IlinkIcfFile
+ lnk0t.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 0
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 1
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 1
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+ IlinkLogCallGraph
+ 0
+
+
+ IlinkIcfFile_AltDefault
+
+
+
+ IlinkEncInput
+ 0
+
+
+ IlinkEncOutput
+ 0
+
+
+ IlinkEncOutputBom
+ 1
+
+
+ IlinkHeapSelect
+ 1
+
+
+ IlinkLocaleSelect
+ 1
+
+
+ IlinkTrustzoneImportLibraryOut
+ ###Unitialized###
+
+
+ OILinkExtraOption
+ 1
+
+
+ IlinkRawBinaryFile2
+
+
+
+ IlinkRawBinarySymbol2
+
+
+
+ IlinkRawBinarySegment2
+
+
+
+ IlinkRawBinaryAlign2
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/template.eww b/bsp/stm32/stm32mp157a-st-ev1/template.eww
new file mode 100644
index 0000000000000000000000000000000000000000..c62178f07a5e15c70d24add2b6f369e079d7a335
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/template.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\template.ewp
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/template.uvopt b/bsp/stm32/stm32mp157a-st-ev1/template.uvopt
new file mode 100644
index 0000000000000000000000000000000000000000..ed90c9e187e8063cc4d07cc09e28620f73aeac3f
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/template.uvopt
@@ -0,0 +1,167 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 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
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 11
+
+
+
+
+
+
+
+
+
+
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U -O207 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000
+
+
+ 0
+ JL2CM3
+ -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000
+
+
+ 0
+ UL2CM3
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)
+
+
+
+
+ 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
+
+
+
+
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/template.uvoptx b/bsp/stm32/stm32mp157a-st-ev1/template.uvoptx
new file mode 100644
index 0000000000000000000000000000000000000000..e3a94d45ec46ef7c2eca71b4f388ff96197a76b7
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/template.uvoptx
@@ -0,0 +1,192 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.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
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FC1000 -FD10020000
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U066BFF343339415043223048 -O206 -SF10000 -C0 -A2 -I0 -HNlocalhost -HP7184 -P1 -N00("") -D00(00000000) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD10050000 -FC1000 -FN0
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ Source Group 1
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/bsp/stm32/stm32mp157a-st-ev1/template.uvprojx b/bsp/stm32/stm32mp157a-st-ev1/template.uvprojx
new file mode 100644
index 0000000000000000000000000000000000000000..67a2556f75a9ada9f3a9d9abfad201342a29d444
--- /dev/null
+++ b/bsp/stm32/stm32mp157a-st-ev1/template.uvprojx
@@ -0,0 +1,411 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::ARMCC
+ 0
+
+
+ STM32MP157AAAx:Cortex-M4
+ STMicroelectronics
+ Keil.STM32MP1xx_DFP.1.3.0
+ http://www.keil.com/pack/
+ IRAM(0x10020000,0x00020000) IRAM2(0x10040000,0x00020000) IROM(0x10000000,0x00020000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000)
+
+
+ UL2CM3(-S0 -C0 -P0 -FD10020000 -FC1000)
+ 0
+ $$Device:STM32MP157AAAx$Drivers\CMSIS\Device\ST\STM32MP1xx\Include\stm32mp157axx_cm4.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32MP157AAAx$SVD\STM32MP157x.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\build\keil\Obj\
+ rt-thread
+ 1
+ 0
+ 0
+ 1
+ 0
+ .\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
+ -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 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
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 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
+ 0x10020000
+ 0x20000
+
+
+ 1
+ 0x10000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x10000000
+ 0x40000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x10050000
+ 0x10000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+
+ .\board\linker_scripts\link.sct
+
+
+
+
+
+
+
+
+
+
+ Source Group 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+