...
- Core - the base 'user level' files, mostly autogenerated.
- Core/Inc - core include files
- Core/Src - core source files
- Core/Src/main.cpp - location of main function, does hardware initialization and then calls init from src/init.cpp. All autogenerated code until init is called. Core/Src/init.cpp - start of non-autogenerated code, runs the actual flight programNote that the autogenerated file is "main.c" and we rename to "main.cpp".
- Drivers - location of HAL and CMSIS code. Not written by us and included by STM32.
- Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h - this is the include file to use to get declarations for all of the HAL functions.
- lib - library level code, used by the flight program in init. Not autogenerated.
- lib/common/common.h - common return types used by libraries.
- lib/common/H3LIS100DL - high G accelerometer library.
- lib/common/LSM9DS1 - IMU library
- lib/common/MPL3115A2- primary altimeter library
- lib/common/MS5607 - secondary altimeter library
- lib/ringbuff - ring buffer implementation
- lib/queue - queue implementation
- lib/fs - filesystem implementation
- lib/sim - for future use, home of source files to simulate libraries
- lib/w25qxx - SPI flash library
- lib/TinyScheduler - non-preemptive scheduler implementation
- lib/common/sys - system functions, overwritten functions that implement functionality of libc and some syscalls. For now it contains definitions for our usesread and write so we can use printf and write out our UARTs without blocking.
- src - user level code that is the main part of the flight program. The file "init.cpp" is contained here and is called by the autogenerated "main.cpp". Other source files contain tasks to be used by the TinyScheduler scheduler and initialization functions that should be called at startup.
- include - function declarations for the source files in src.
- Makefile - the main Makefile for the whole project. Autogenerated and then modified by us to work with c++ and our libraries
- SPICA.ioc - used by STM32Cube, don't modify. Allows us to regenerate autogenerated code.
- startup_stm32f103xg.s - the entry point of the code. Contains the interrupt vector table, including the reset handler. Calls main after doing some initialization. Autogenerated and provided by STM32.
- STM32F103RGTx_FLASH.ld - the linker script used for linking the code. Provided to us by STM32, has not yet been modified but may need to be changed for performance benefits (i.e. move time sensitive functions to faster retrieval memory)