Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ STM32 Π² ΡΡΠ΅Π΄Π΅ Eclipse ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠΈΡΡΠ΅ΠΌ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ STM32CubeIDE, Eclipse ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ GCC, OpenOCD ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ Makefile.
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ Π½ΡΠ°Π½ΡΠ°Ρ : ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΠ Π΄ΠΎ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (Π½Π° 2026 Π³ΠΎΠ΄), ΠΎΠ±ΠΎΠΉΠ΄ΡΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΌΠΈΠ³ΡΠΈΡΡΡΡΠΈΠΌ Ρ Π΄ΡΡΠ³ΠΈΡ IDE.
1. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ: ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎ Eclipse
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ Eclipse Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅Π· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΡΠ΅Π΄Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ. Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΠ:
- π¦ Java JDK 17+ β Eclipse ΡΡΠ΅Π±ΡΠ΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Java (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅ΡΠ΅Π·
java -version) - π§ GNU Arm Embedded Toolchain β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ ARM Cortex-M (Π²Π΅ΡΡΠΈΡ 12.2.Rel1 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅)
- π OpenOCD β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΡΠ΅ΡΠ΅Π·
ST-LinkΠΈΠ»ΠΈJ-Link - π STM32CubeMX β Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, Π½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ GNU Arm Toolchain Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΡΡ ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ°ΠΌ Π² PATH. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Windows ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ C:\Program Files (x86)\GNU Arm Embedded Toolchain\12.2 rel1\bin. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
arm-none-eabi-gcc --version
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Windows, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ MinGW ΠΈΠ»ΠΈ WSL Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡmake. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉmakeΠΈΠ· Git Bash ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
- ST-Link
- J-Link
- ΠΡΡΠ³ΠΎΠΉ (ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ )
- ΠΡΡ Π½Π΅ Π²ΡΠ±ΡΠ°Π»
2. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Eclipse ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ STM32
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ Eclipse IDE for C/C++ Developers Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°. ΠΠ°ΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π΅ ΡΡΠ°ΡΡΠ΅ 2023-12, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ:
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Eclipse ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ (workspace).
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²
Help β Eclipse Marketplace. - ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ GNU ARM Eclipse (Π°Π²ΡΠΎΡ Liviu Ionescu).
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Embedded Systems Register Viewer Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Eclipse. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ: GNU ARM ΠΈ OpenOCD. ΠΡΠ»ΠΈ ΠΈΡ
Π½Π΅Ρ β ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠ³ ΠΎΡΠΈΠ±ΠΎΠΊ (Window β Show View β Error Log).
Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ GNU ARM Eclipse|ΠΠΈΠ΄Π΅Π½ ΠΏΡΠ½ΠΊΡ GNU ARM Π² ΠΌΠ΅Π½Ρ|ΠΠΎΡΡΡΠΏΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ OpenOCD|ΠΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Error Log-->
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ STM32
ΠΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ: Ρ Π½ΡΠ»Ρ ΠΈΠ»ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ΄Π°, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² STM32CubeMX. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°.
Π‘ΠΏΠΎΡΠΎΠ± 1: Π ΡΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠ±Π΅ΡΠΈΡΠ΅ File β New β C Project. Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ:
- Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
STM32_BlinkLED). - ΠΡΠ±Π΅ΡΠΈΡΠ΅ Cross ARM GCC Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ.
- Π ΡΠ°Π·Π΄Π΅Π»Π΅
ConfigurationsΠ΄ΠΎΠ±Π°Π²ΡΡΠ΅ Debug ΠΈ Release.
Π‘ΠΏΠΎΡΠΎΠ± 2: ΠΠΌΠΏΠΎΡΡ ΠΈΠ· STM32CubeMX
ΠΡΠ»ΠΈ Π²Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ΄ Π² CubeMX:
- ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ°ΠΊ
Makefile(Π½Π΅Eclipse!). - Π Eclipse Π²ΡΠ±Π΅ΡΠΈΡΠ΅
File β Import β Existing Projects into Workspace. - Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΠΈΠΌΠΏΠΎΡΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΈΠ· CubeMX ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΡΠ°ΠΉΠ»Π΅MakefileΡΠΊΠ°Π·Π°Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊarm-none-eabi-gcc. Π§Π°ΡΡΠΎ CubeMX ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (Right-click β Properties) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅:
- π§ Π
C/C++ Build β Settings β Tool SettingsΡΠΊΠ°Π·Π°Π½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. - π Π
Paths and SymbolsΠ΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΡΡΠΈ ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ STM32 (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎDrivers/CMSIS/IncludeΠΈDrivers/STM32Fxxx_HAL_Driver/Inc).
4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ°
ΠΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ GCC β Π·Π°Π»ΠΎΠ³ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² C/C++ Build β Settings.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
Π ΡΠ°Π·Π΄Π΅Π»Π΅ GCC C Compiler β Miscellaneous Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π°Π³ΠΈ (Π΄Π»Ρ STM32F4):
-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -std=gnu11
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ°
Π GCC C Linker β General ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32F407VGTx_FLASH.ld). Π Miscellaneous Π΄ΠΎΠ±Π°Π²ΡΡΠ΅:
-T"${ProjDirPath}/STM32F407VGTx_FLASH.ld" -Wl,-Map="${BuildArtifactFileBaseName}.map" --specs=nosys.specs
ΠΠ»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² (STM32F1, STM32H7) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ STM32H7 ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ:
-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -std=gnu11
| Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ STM32 | ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -mcpu |
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -mfpu |
ABI |
|---|---|---|---|
| STM32F1 | cortex-m3 |
β | soft |
| STM32F4 | cortex-m4 |
fpv4-sp-d16 |
hard |
| STM32H7 | cortex-m7 |
fpv5-d16 |
hard |
| STM32L4 | cortex-m4 |
fpv4-sp-d16 |
hard |
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π°Π³ -j4 Π² Build command (ΡΠ°Π·Π΄Π΅Π» C/C++ Build β Builder Settings). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 4 ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
5. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ OpenOCD Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
OpenOCD β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°ΠΌΠΈ ST-Link ΠΈ J-Link. ΠΠ³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π² Eclipse ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ IDE.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ STM32F4 Discovery ΠΈ ST-Link ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ:
source [find interface/stlink.cfg]
source [find target/stm32f4x.cfg]
Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ stm32f4_discovery.cfg Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
Π¨Π°Π³ 2: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π² Eclipse
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Run β Debug Configurations ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ GDB OpenOCD Debugging. ΠΠΊΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
- π Main: ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ (
*.elf). - π Debugger: Π²ΡΠ±Π΅ΡΠΈΡΠ΅
arm-none-eabi-gdb. - π Startup: ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ
openocd.exeΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ.
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ΅ΡΠ΅Π· J-Link ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³:
source [find interface/jlink.cfg]
source [find target/stm32f4x.cfg]
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Eclipse Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡError: libusb_claim_interface() failed, Π·Π°ΠΊΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ST-Link(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32CubeProgrammer ΠΈΠ»ΠΈ ST-Link Utility).
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ "Error
unable to find CMSIS-DAP device":
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ST-Link Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΠ΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. Π Π΅ΡΠ΅Π½ΠΈΡ:
1. ΠΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ST-Link Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° STMicroelectronics.
2. ΠΡΠΊΠ»ΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ CH340).
3. Π ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² Windows ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ST-Link ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ "ST-Link/V2-1" (Π° Π½Π΅ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠΏΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ).
6. ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ°
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΠ±ΡΠ°Π½, Π° OpenOCD Π½Π°ΡΡΡΠΎΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅. Π Eclipse ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Run β Debug Configurations:
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Debug β Π½Π°ΡΠ½ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°.
- ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΌΡΡΡΡ.
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π±Π΅Π· ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ STM32CubeProgrammer ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
st-flash write build/your_project.bin 0x08000000
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅:
- π¨ ΠΡΠΈΠ±ΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΡ.
- π ΠΠ°Π²ΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ
ST-LinkΡΠ΅ΡΠ΅Π· STM32CubeProgrammer. - β οΈ ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ: ΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ (
st-flash erase).
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅, ΡΡΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΊΠ°Π·Π°Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ 0x08000000 Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ 0x20000000 Π΄Π»Ρ RAM). ΠΡΠΈΠ±ΠΊΠ° Π² Π°Π΄ΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
7. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π² Eclipse ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
ΠΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
- π₯
Ctrl+Shift+Bβ ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. - π
F11β Π·Π°ΠΏΡΡΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. - π
Ctrl+Hβ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ°ΠΉΠ»Π°ΠΌ.
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠ΄Π°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ HAL_GPIO ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Window β Preferences β C/C++ β Code Style β Code Templates.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Git
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ EGit Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π±ΡΡΡΡΠΎ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠΈΠΌ Π²Π΅ΡΡΠΈΡΠΌ. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²
Window β Perspective β Open Perspective β Git. - ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅Π·
Team β Share Project.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π²ΡΠ΅Π³Π΄Π° ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π°ΠΏΠ΄Π΅ΠΉΡΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ HAL ΠΈΠ»ΠΈ CMSIS. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π²Π½ΠΎΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ»Π°Π΄ΠΈΡΡ.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Eclipse Π΄Π»Ρ STM32
ΠΠΎΡΠ΅ΠΌΡ Eclipse Π½Π΅ Π²ΠΈΠ΄ΠΈΡ arm-none-eabi-gcc?
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PATH. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅:
- ΠΠ΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ GNU Arm Toolchain (ΠΎΠ±ΡΡΠ½ΠΎ
C:\Program Files (x86)\GNU Arm Embedded Toolchain\...). - ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅
binΠ²PATHΡΠ΅ΡΠ΅Π· ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β Π‘ΠΈΡΡΠ΅ΠΌΠ° β ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. - ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Eclipse.
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ "undefined reference to `HAL_Init'"?
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ:
- ΠΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
HAL(ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΡΠΈ Π²Properties β C/C++ Build β Settings β Libraries). - ΠΠ΅ ΡΠΊΠ°Π·Π°Π½ ΡΠΊΡΠΈΠΏΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
- Π€Π°ΠΉΠ»Ρ
stm32f4xx_hal.cΠΈsystem_stm32f4xx.cΠ½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠ±ΠΎΡΠΊΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²ΡΠ΅ ΠΏΡΡΠΈ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ Drivers/STM32F4xx_HAL_Driver/Src ΠΈ Drivers/CMSIS/Device/ST/STM32F4xx/Source.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Eclipse Π΄Π»Ρ STM32 Π½Π° macOS?
ΠΠ°, Π½ΠΎ Π΅ΡΡΡ Π½ΡΠ°Π½ΡΡ:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ GNU Arm Toolchain ΡΠ΅ΡΠ΅Π·
brew install arm-none-eabi-gcc. - ΠΠ»Ρ
OpenOCDΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ ΠΈΠ·brew install openocd. - ΠΡΠ°ΠΉΠ²Π΅ΡΡ Π΄Π»Ρ
ST-LinkΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· STSW-LINK009 (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ USB).
ΠΠ° macOS ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ openocd Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ codesign).
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ· STM32CubeIDE Π² Eclipse?
ΠΠ΅ΡΠ΅Π½ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ:
- Π STM32CubeIDE ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ°ΠΊ
Makefile. - ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² Eclipse ΡΠ΅ΡΠ΅Π·
File β Import β Existing Projects. - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΡΠΈ ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ (ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ).
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ β CubeIDE ΠΈΠ½ΠΎΠ³Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΏΡΡΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ STM32CubeIDE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ GCC, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠ° Π²ΡΠ΅Ρ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ Eclipse Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ STM32?
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ Π²Π΅ΡΡΠΈΠΈ (Π½Π° 2026 Π³ΠΎΠ΄):
- Eclipse IDE 2023-12 β Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ.
- Eclipse Theia β Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½Π° Π²Π΅Π±-Π²Π΅ΡΡΠΈΡ (ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°).
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π²Π΅ΡΡΠΈΠΉ Π½ΠΎΠ²Π΅Π΅ 2026-03 β ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ GNU ARM Eclipse. ΠΠ»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Eclipse CDT (C/C++ Development Tooling).