halmcu provides a developing environment for microcontrollers by including low level hardware drivers, libraries, and examples for peripherals.
See online documentation at halmcu.readthedocs.io
- Download the GNU Arm Embedded Toolchain.
- Locate it where desired
- Add path to environment variable
- Then you can check that ARM GCC is in your path:
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Alternatively you can do it with package manager:
- MacOSX
$ brew install --cask gcc-arm-embedded
- Linux
$ sudo apt-get install -y gcc-arm-none-eabi
- Windows
- Download and run the installer
- Install Visual Studio Code
- Install Visual Studio Code Plugins
- Press
F1to display the command palette - At the command palette prompt, enter
gitcl, select the Git: Clone (Recursive) - When prompted for the Repository URL, enter
https://github.com/onkwon/libabov-example.git - And press
F1again. At the command palette prompt entertask, select the Tasks: Run Build Task
$ cd ${YOUR_PROJECT_DIR}
$ git submodule add https://github.com/onkwon/halmcu.git ${YOUR_THIRD_PARTY_DIR}/halmcuPlease refer to a build template.
Please refer to a custom build example.
- Add the sources under
${YOUR_THIRD_PARTY_DIR}/halmcu/drivers/*.cto your project - Add the sources under
${YOUR_THIRD_PARTY_DIR}/halmcu/devices/common/*.cto your project - Add the sources under
${YOUR_THIRD_PARTY_DIR}/halmcu/devices/${VENDOR}/${DEVICE}/*.cto your project - Add cpu architecture specific sources under
${YOUR_THIRD_PARTY_DIR}/halmcu/arch/${YOUR_ARCH}to your project - Add
${YOUR_THIRD_PARTY_DIR}/halmcu/includeto the include paths for your project - Add CMSIS include path to the include paths for your project
- Pass
DEVICE,ARCH, andHSEdefinitions to your compiler
- ✅ Supported
- ➖ Not supported
- ❌ Unavailable in device
Planned
| ABOV | STM32 | ||||
|---|---|---|---|---|---|
| Peripheral | A31G1x | A33G | F11 | F4 | F7 |
| ADC | ✅ | ✅ | |||
| CAN | ❌ | ||||
| CLK | ✅ | ✅ | |||
| CRC | ❌ | ||||
| DAC | ❌ | ||||
| DMA | ❌ | ||||
| ETH | ❌ | ||||
| FLASH | ✅ | ||||
| FSMC | ❌ | ||||
| GPIO | ✅ | ✅ | |||
| I2C | ✅ | ||||
| PWR | ✅ | ||||
| RTC | ❌ | ||||
| SDIO | ❌ | ||||
| SPI | ✅ | ✅ | |||
| Timer | ✅ | ✅ | |||
| UART | ✅ | ✅ | |||
| USB | ❌ | ||||
| WDT | ✅ | ✅ |
Footnotes
-
Only high-density devices are supported at the moment. ↩