No description
  • C 99.6%
  • Assembly 0.4%
Find a file
2026-03-24 21:37:39 +09:00
flight_controller_mx copy 2026-03-09 19:40:39 +09:00
src fix bug 2026-03-15 15:25:05 +09:00
.gitignore fix bug 2026-03-15 15:25:05 +09:00
arm-none-eabi-gcc.cmake copy 2026-03-09 19:40:39 +09:00
CMakeLists.txt Fix readme, cmakelists 2026-03-24 21:37:39 +09:00
CMakePresets.json copy 2026-03-09 19:40:39 +09:00
LICENSE Initial commit 2026-03-08 14:46:05 +00:00
README.md Fix readme, cmakelists 2026-03-24 21:37:39 +09:00

Require

arm-non-eabi-gcc
arm-non-eabi-newlib
cmake
ninja-build
stlink-tools

How to build

cmake --preset Release
cmake --build build

How to flash

cmake --build build --target flash

What is morb

onboard 통신 middleware입니다. application 간의 통신은 모두 morb를 통합니다. topics.h에 hardware 또는 module마다 자신의 topic이 정의되어 있습니다. 자신의 topic에 주기적으로 publish하여 다른 application이 자신의 데이터를 가져갈 수 있게 합니다. 원하는 topic을 subscribe하여, callback함수를 통해 데이터를 받을 수 있습니다.

Hierarchy of Project

drivers :

하드웨어에 대한 드라이버들이 있습니다.

lib :

하드웨어 독립적인 라이브러리들이 있습니다.

platform :

stm32f411ceu6 HAL driver가 들어있습니다. 보드의 페리페럴을 초기화합니다.

middleware :

subscribe/publish 방식의 통신 미들웨어가 있습니다.

hardware (application) :

drivers를 사용하여 하드웨어와 직접 통신하는 코드들이 있습니다.

modules (application) :

자세추정, 자세제어 코드등이 있습니다. 하드웨어와 직접 통신하지 않습니다. 센서 데이터들은 hardware계층에서 publish한 topic을 subscribe하여 사용합니다.

main.c (application) :

platform, hardware, modules 를 초기화하고, 루프를 호출합니다.


Hardware Specification

stm32f411ceu6 icm20602 neom8n hmc5883l rp3 5010-750kv bldc motor mg90s servo motors dc-dc step down module nrf24l01plus (for telemetry) two lipo battery (one for mcu, the other for actuators)