61 lines
2.2 KiB
Plaintext
61 lines
2.2 KiB
Plaintext
How to introduce a new version of stm32cube:
|
|
============================================
|
|
|
|
Original STM32Cube tree structure has been modified to a minimum
|
|
structure for a better fit into Zephyr.
|
|
STM32Cube is divided into drivers and soc section, with:
|
|
|
|
drivers/
|
|
include/ contains Cube HAL/LL files from:
|
|
STM32Cube_FW_F1_VX.X.X/Drivers/STM32YYxx_HAL_Driver/Inc/*
|
|
src/ contains:
|
|
STM32Cube_FW_F1_VX.X.X/Drivers/STM32YYxx_HAL_Driver/Src/*
|
|
soc/ contains STM32 CMSIS files from
|
|
*STM32Cube_FW_F1_VX.X.X/Drivers/CMSIS/Device/ST/STM32F1xx/Include/*
|
|
*STM32Cube_FW_F1_VX.X.X/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c
|
|
|
|
One file needs to be renamed:
|
|
driver/include/stm32f1xx_hal_conf_template.h
|
|
into:
|
|
driver/include/stm32f1xx_hal_conf.h
|
|
|
|
If there are changes in the number of *.c files the Kconfig file in the
|
|
stm32cube directory and the CMakeLists.txt files in the stm32yyxx/ directories
|
|
will have to be updated. If *.c have been removed drivers that used them will
|
|
also have to be updated.
|
|
|
|
IMPORTANT:
|
|
----------
|
|
STM32Cube, as an external library, is not supposed to be modified.
|
|
In practice, it might be required to patch it.
|
|
When updating a STM32Cube package to a new version, please have a look
|
|
to the patch list in dedicated README file, to make sure you don't overwrite
|
|
some earlier modifications of the package.
|
|
In case of doubt, contact Zephyr code owner for stm32cube.
|
|
|
|
|
|
How to use STM32Cube:
|
|
=====================
|
|
In order to enjoy ST CMSIS definitions:
|
|
*CONFIG_HAS_STM32CUBE should be defined
|
|
*stm32yyxx.h should be included in soc.h
|
|
**E.g.: #include <stm32f1xx.h>
|
|
|
|
Additionally, in order to use STM32Cube LL (when needed):
|
|
*include stm32yyxx_ll_usart.h in soc.h
|
|
**E.g.: #include <stm32f1xx_ll_usart.h>
|
|
|
|
Drivers and applications that need functions from the STM32Cube HAL/LL C-files
|
|
will need to add the appropriate select entries in their Kconfig files.
|
|
For example when functions from stm32f4xx_hal_uart.c are used, the following
|
|
entry;
|
|
|
|
select USE_STM32_HAL_UART
|
|
|
|
should be added to the Kconfig file.
|
|
And if the driver for example needs functions from the LL I2C C-files, the
|
|
Kconfig file should include the following entry;
|
|
|
|
select USE_STM32_LL_I2C
|
|
|