- AIR32F103x / MH32F103Ax / MH2103Ax template project for GNU Arm Embedded Toolchain
- Supported programmers: J-Link, STLink, DAPLink/PyOCD
- Supported IDE: VSCode
| TYPE | AIR32F103CBT6 MH32F103ACBT6 MH2103ACBT6 |
AIR32F103CCT6 MH32F103ACCT6 MH2103ACCT6 |
AIR32F103RPT6 MH32F103ARPT6 MH2103ARPT6 |
|---|---|---|---|
| Flash | 128K | 256K | 256K |
| RAM | 32K | 64K | 96K |
| Pack | lqfp48 | lqfp48 | lqfp64 |
- AIR32F103, MH32F103A and MH2103A series
- Supplied by different vendors, but they are the same from the software aspect of view.
- The electrical characteristics might be different, be careful when replacing them in production.
- Unlock the hidden 97K RAM
- It's very likely the AIR32F103CBT6 you bought have 97K RAM - Hedley Rainnie's blog
- This also apply to AIR32F103CCT6 and AIR32F103RPT6.
- The hidden RAM can be unlocked by special registers, the hack has been integrated into startup_air32f10x.s. Thanks to @deividAlfa.
WIKI | Datasheet | Migrate From STM32 | Keil SDK And Demos
├── Build # Build results
├── Examples # Example code
│ ├── FreeRTOS # FreeRTOS examples
│ └── NonFreeRTOS # Non-FreeRTOS examples
├── Libraries
│ ├── AIR32F10xLib # AIR32F103 Peripheral library
│ │ ├── inc
│ │ ├── lib
│ │ └── src
│ ├── CMSIS
│ │ ├── Core # CMSIS Coretex M core files
│ │ └── DSP # CMSIS DSP library
│ ├── Debug # For delay and printf support
│ ├── DeviceSupport # gcc arm startup files
│ │ └── startup
│ │ └── arm-gcc
│ ├── FreeRTOS # FreeRTOS library
│ ├── Helix # Helix MP3 decoder library
│ └── LDScripts # Link scripts
├── Makefile
├── Misc
│ └── flash.jlink # JLink script
├── README.cn.md
├── README.md
├── rules.mk # Make rules
└── User # User application code
Download toolchains from Arm GNU Toolchain Downloads and uncompress
tar xvf gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz cd /opt/gcc-arm/ sudo mv ~/Backup/linux/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/ . sudo chown -R root:root gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/
Download JLink from J-Link / J-Trace Downloads and install it
# installation command for .deb
sudo dpkg -i JLink_Linux_V770a_x86_64.debThe default installation path is /opt/SEGGER
git clone https://github.com/IOsetting/hk32f030m-template.git
Edit Makefile, make sure ARM_TOOCHAIN and JLINKEXE point to the correct paths
##### Project ##### # Project name PROJECT ?= app # Result folder BUILD_DIR = Build ##### Options ##### # Enable printf float %f support, y:yes, n:no ENABLE_PRINTF_FLOAT ?= y # Build with FreeRTOS, y:yes, n:no USE_FREERTOS ?= n # Build with CMSIS DSP functions, y:yes, n:no USE_DSP ?= n # Build with Helix MP3 lib, y:yes, n:no USE_HELIX ?= n # Programmer, jlink, stlink, cmsis-dap, pyocd FLASH_PROGRM ?= stlink ##### Toolchains ####### ARM_TOOCHAIN ?= /opt/gcc-arm/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin # path to st-flash ST_FLASH ?= st-flash # path to JLinkExe JLINKEXE ?= /opt/SEGGER/JLink/JLinkExe JLINK_DEVICE ?= STM32F103CB # path to OpenOCD OPENOCD ?= openocd # path to PyOCD PYOCD_EXE ?= pyocd PYOCD_DEVICE ?= air32f103cb ##### Paths ############ # Link script for current chip LDSCRIPT = Libraries/LDScripts/air32f103cbt6.ld
# Clean make clean # Build make # Build verbosely V=1 make # Flash make flash
More examples can be found in Examples folder, copy and replace the files under User folder to try different examples.