Getting Started
This page: structure of this subsystem
components/driving_board folder contains 4 libraries:
- firmware
- motor
- parser
- simulink
Firmware contains the generated CubeMX code. Don't edit this after generating, it will be rewritten after you generate again.
NOTE: do make sure that after generating your code in CubeMX, you run the post generation script. You can set a post generation script in CubeMX itself. However, if you use Windows run: scripts/post_code_generation.bash, if you use Mac run: scripts/post_code_generation_mac.bash
The Simulink folder contains code generated by the control team, and it shouldn't be modified by embedded. This code is not used on the embedded side, but it provides a clear reference for the type of input we give to control algorithm and the output we receive from it.
In control.h, struct ExtY gives the external outputs and ExtU is the struct for external inputs.
src/driving_board contains main.c
This is the code that runs when we build and update to the board by pio. Main includes multiple threads for some tasks that need to run concurrently.
ERC-Protobufs/components/driving_board contains protobuffers for this subsystem
Protobuffers are used to send information to software and debugging board and receiving information from software.