| 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 |
| |