Description
Establish the local CMake toolchain for the ARM Cortex-M7 and write the low-level board enablement and initialization code for the STMicroelectronics STM32F767ZI-Nucleo-144 board.
This sets up the isolated foundation for the Network-Connected Environmental Station use-case, localizes all build settings to prevent merge conflicts, and aligns with the clean, decoupled board framework.
Checklist
1. Toolchain & Local Infrastructure
2. Directory Structure & SDK Setup
3. Low-Level Startup & Hardware Abstraction
4. Board Initialization & Console Redirect
5. Ethernet PHY Initialization
Description
Establish the local CMake toolchain for the ARM Cortex-M7 and write the low-level board enablement and initialization code for the STMicroelectronics STM32F767ZI-Nucleo-144 board.
This sets up the isolated foundation for the Network-Connected Environmental Station use-case, localizes all build settings to prevent merge conflicts, and aligns with the clean, decoupled board framework.
Checklist
1. Toolchain & Local Infrastructure
STMicroelectronics/STM32F767ZI-Nucleo/cmake/.STMicroelectronics/STM32F767ZI-Nucleo/cmake/(arm-gcc-cortex-toolchain.cmakeandutilities.cmake) copied and customized from MXChip to achieve 100% target isolation.STMicroelectronics/STM32F767ZI-Nucleo/cmake/arm-gcc-cortex-m7.cmakeconfiguring compiler options specifically for the Cortex-M7 double-precision FPU (-mfloat-abi=hard -mfpu=fpv5-d16).FindCMSIS.cmakeandFindSTM32HAL.cmakeinside the board'scmake/folder, configured specifically to discover STM32F7 headers and HAL sources.2. Directory Structure & SDK Setup
STMicroelectronics/STM32F767ZI-Nucleo/(conforming to the<Vendor>/<Board>repository convention).Drivers/CMSISandDrivers/STM32F7xx_HAL_Driver) from the officialSTMicroelectronics/STM32CubeF7repository intoSTMicroelectronics/STM32F767ZI-Nucleo/lib/stm32cubef7/.3. Low-Level Startup & Hardware Abstraction
startup/files:STM32F767ZITx_FLASH.lddefining Flash and SRAM boundaries.startup_stm32f767xx.sdefining the hardware vector table and redirecting toSystemInit.tx_initialize_low_level.Sfor Cortex-M7.system_stm32f7xx.cto define standard clock-system parameters.4. Board Initialization & Console Redirect
board_init.candboard_init.hto:SystemClock_Config) to run at the maximum 216 MHz utilizing the ST-LINK 8 MHz oscillator bypass.console.candconsole.hto initialize the virtual COM port UART (USART3 on pins PD8/PD9) and redirectprintfoutputs throughnanoprintf.5. Ethernet PHY Initialization