brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
stm32cubemxUse when Codex needs to operate STM32CubeMX from the command line to validate or load .ioc files, generate STM32CubeMX projects, create Keil/MDK-ARM project files, run Keil UV4 command-line builds, inspect CubeMX/Keil logs, or diagnose STM32CubeMX generation and STM32 HAL project build failures.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this skill to turn .ioc validation into an actual STM32CubeMX and Keil build check, not just text parsing.
.ioc file. If the user only has a desired STM32 configuration, first create or obtain the .ioc using the relevant STM32 configuration skill or local tooling.python "$env:USERPROFILE\.codex\skills\stm32cubemx\scripts\cubemx_generate_build.py" --ioc "D:\path\project.ioc" --build-keil --clean-keil-output
python "$env:USERPROFILE\.codex\skills\stm32cubemx\scripts\cubemx_generate_build.py" --ioc "D:\path\project.ioc" --cubemx "D:\STM32CubeMX" --uv4 "C:\Keil_v5\UV4\UV4.exe" --build-keil
0 Error(s), 0 Warning(s).Use STM32CubeMX quiet script mode for real validation:
config load "<absolute .ioc path>"
project name <project_name>
project toolchain "MDK-ARM"
project path "<output root>"
project generate
exit
Run it on Windows as:
& "<CubeMX>\jre\bin\java.exe" -jar "<CubeMX>\STM32CubeMX.exe" -q "<script file>"
Treat config load followed by OK, project generate followed by OK, and generated Core/Src/main.c as the baseline CubeMX success criteria.
Use UV4.exe -b <project.uvprojx> -j0 -o <log> for build verification. In this environment ARMCC V5 builds the CubeMX project reliably with Keil's default parallel setting.
Set TEMP and TMP to a writable folder before running Keil. ARMCC can fail with cannot open embedded assembler output file "C:\WINDOWS\TEMP\..." when the process cannot write to the default temp directory. This is an environment problem, not an .ioc problem.
The bundled script handles this by creating a local keil_temp folder and overriding TEMP/TMP for the build subprocess.
.ioc, inspect the CubeMX log around config load first.project generate.C:\WINDOWS\TEMP, rerun with a writable temp directory.I/O error writing file ... .o, retry with --jobs 0 --clean-keil-output and a writable local TEMP/TMP.config load or block project generate.Keep validation artifacts near the .ioc unless the user requests a different destination:
<ioc folder>/cubemx_project/<project_name>/
<ioc folder>/cubemx_verify_script.txt
<ioc folder>/cubemx_generate.log
<ioc folder>/keil_build.log