Welcome to the Embedded Sharepoint! This documentation is designed to assist LHR - Solar teams in developing projects using STM32 devices.
- Simplified Development: Provides a unified interface for working with various STM32 devices.
- Modular Design: Easily integrate with different components and libraries.
- Comprehensive Documentation: Detailed guides and API references for every module.
In Powershell administrator:
winget install usbipd
In PowerShell administrator:
usbipd list
usbipd bind --busid <busid>
usbipd attach --wsl --busid <busid>
Note: Docker installs tools for development on Ubuntu 22.04.
Note: DO NOT install packages in the docker session. Changes will be lost. Update the Dockerfile instead!
Note: If USB devices are detected via lsusb but fail to open, try restarting the container with the device plugged in.
Install Dev Containers extension
Open repository folder in VS Code
F1 → "Dev Containers: Open Folder in Container..."
Ensure docker is running
sudo systemctl start docker
This script sets up a docker container for embedded development.
Usage:
./start.sh
Remove Docker Image:
docker rmi embedded-sharepoint-dev
A valid port of an STM requires three things:
- A directory under stm/stm32f4xx or stm/stm32l4xx must be generated with the generic name of the microcontroller. This is typically stm32 followed by four characters specifying the series and line (stm32f413, stm32l431, etc.)
- A linker script under the aforementioned directory. This can be autogenerated by STM32CubeMX or grabbed from the internet. The name should take the form of STM32*_FLASH.ld, and should include the full name of the processor (STM32F413RHTx_FLASH.ld, STM32L431CBTx_FLASH.ld, etc.)
- A startup assembly file including the vector table and some basic handlers (most important being Reset_Handler). This can be autogenerated by STM32CubeMX or grabbed from the internet. The name should take the form of startup_stm32 followed by the four characters specifying the series and line and then xx (startup_stm32f413xx.s, startup_stm32l431xx.s)
The Makefile will expect this exact naming structure, so please ensure you've set it up properly. If everything goes to plan, you should be able to build with PROJECT_TARGET set to the full name of the port.