This repository hosted codes for low level hardware protocol & control algrithms implemented on the DJI RoboMaster 2018 Type A Control Board with a STM32F427 chip as its main MCU.
Note: since this repository contains git submodules, you will have to clone this repo with --recursive
tag to obtain all source codes:
git clone --recursive https://github.com/illini-robomaster/iRM_Embedded_2018.git
-
Applications - User Level Generic Libraries (as a git submodule)
-
Configs - Board Specific / Robot Specific configuration headers
-
Tasks - High level customized control logics built on top of our Generic Libraries
-
STM32F427xx.cmake - CMake Toolchain File
-
iRM_Embedded_2018.ioc - Hardware Pin Definitions for STM32CubeMX to generate driver level source codes
-
HAL / Driver Level Libs - Should NOT Be Modified By Hand
- Inc / Src - Header & source files for HAL libraries
- Middlewares - FreeRTOS, FatFS, and other 3rd party libraries
- Drivers - Low Level Drivers
-
CLion - recommanded for under experienced programmers
- CMake Integration
- Auto Completion
-
vim - recommended by Alvin. Mouse free editing experience helps achieve maximum productivity
- CMake Integration
- Auto Completion
-
atom / sublime text / VSCode / etc - suit yourself
- CMake Integration
- Auto Completion
-
Unix Based Environment - MacOS / Linux
-
Build Essentials
- Cmake 3.11.0 or higher
- ARM Toolchain
-
stlink - optional for single command flashing
-
OpenOCD - optional for debug purposes
-
ST-Link-V2 / ST-Link-V2.1 Program Uploader
- How to install ARM Toolchain
- How to compile the code
- How to flash binary files onto the micro controller
- How to use gdb with on chip debugger
- How to generate documentations
- run the following commands in your terminal
cd <path to iRM_Embedded_2018> && doxygen Doxyfile
- open
iRM_Embedded_2018/html/index.html
in a browser - under
Modules
you should seeBSP Library
andUser Library