feat(bsp): add STM32F767ZI-Nucleo board enablement verified by ThreadX demo#13
Conversation
d37941d to
82621d0
Compare
fdesbiens
left a comment
There was a problem hiding this comment.
A good start!
Please see the comments below. In particular, we must figure out the actual license for the ST code included. We should then create a NOTICE.md file at the root of the app listing the licenses applicable to the third-party code in this sample.
You can also start working on a README.md explaining what this sample / demo does and how to build / deploy the code on the target board.
| @@ -0,0 +1,204 @@ | |||
| /* | |||
| * Copyright (c) 2026-present Eclipse ThreadX contributors | |||
There was a problem hiding this comment.
For the upcoming Q2 release, I must correct all copyright statements that add "-present" to the current year. This is a mistake I made in the Q1 release.
Please perform a search and replace and ensure that the statement in all the files you produced is:
Copyright (c) 2026 Eclipse ThreadX contributors
Of course, if files have been generated by vendor tooling, you should respect the existing notices and add our own only if you modified the file.
| Write-Host "[OK] CMSIS Device files copied" | ||
| Write-Host "" | ||
|
|
||
| # 3. Reuse existing CMSIS Include headers from disk (AZ3166) |
There was a problem hiding this comment.
The F767 relies on a Cortex-M7 MCU. Why would you use older code from the AZ3166, which relies on an M4?
The AZ3166 is a special case where we cannot touch the dependencies since we do not have the source code for the WiFi driver.
If you want up-to-date CMSIS for the F767, where will you find it?
| @@ -0,0 +1,84 @@ | |||
| # Copyright (c) 2026-present Eclipse ThreadX contributors | |||
There was a problem hiding this comment.
We also should have shell scripts for Linux.
Use Ubuntu 24.04 as your base for those.
Pull Request Description
Overview
This pull request establishes a fully isolated, portable, and self-contained Board Support Package (BSP) for the STMicroelectronics STM32F767ZI-Nucleo-144 board under the
STMicroelectronics/STM32F767ZI-Nucleo/directory.Following a modular design strategy, all build configurations, compiler flags, and target-specific drivers are completely localized. This isolates the platform from other targets, carries zero risk of namespace or library conflicts, and keeps the root workspace clean.
To verify the integration, a 4-thread real-time kernel multitasking application is implemented and fully validated.
Key Features
Isolated CMake Compilation Toolchain:
arm-gcc-cortex-m7.cmake) with double-precision hardware Floating Point Unit (FPU) optimizations.FindCMSIS.cmake,FindSTM32HAL.cmake) linking the official, lightweight ST peripheral drivers.scripts/build.ps1) supporting parallel jobs.Boot & Memory Configuration:
STM32F767ZITx_FLASH.ld) defining boundary zones for Flash (2MB) and SRAM (320KB).tx_initialize_low_level.S) mapping the ThreadX RTOS kernel to run at a system clock frequency of216 MHz.startup_stm32f767xx.s) and clock configs.Peripheral Driver Adaptations:
PD8/PD9) to redirect standard Cprintfoutputs directly to the ST-LINK Virtual COM port.4-Thread Verification RTOS Demo:
2 Hzto verify core RTOS scheduler clock ticks.PC13) with debouncing and triggers the Blue LED (LD2).