Build Guide
Build Prerequisites
Prior to building a firmware project, it is required to set up an environment so that the build process may find the necessary tools (compiler, linker, SDK etc.). Use the following steps to prepare your environment for building firmware projects for respective platform.
Clone Precision Converters Firmware repository with the –recursive flag:
git clone --recursive https://github.com/analogdevicesinc/precision-converters-firmware
If however you’ve already cloned the repository without the –recursive flag, you may initialize all the submodules in an existing cloned repo with:
git submodule update --recursive --init
Install STM32CubeIDE
Install STM32CubeMX
Building a project
Once the build enviornment is setup, follow the guide below to build your project and generate executable file (.bin/.hex)
Open the respective project directory by navigating into the “precision_converters_firmware/projects/” folder.
In the “STM32” folder present within the project directory, double click and open the .ioc file present within.
Click on the “Generate Code” option seen on the top right corner
Upon successful generation of drivers for the selected MCU, the autogenerated files would be seen in the same directory where the .ioc file was present. Double click and open the “.project” file seen in the list of files
After the project is loaded to the STM32CubeIDE, unfold the adxxxx_iio project seen in the project explorer, right click the “app” folder, select “Settings” under the “C/C++ Build” section on the left pane and un-check the “Exclude resources from build” checkbox. This would ensure that the project specific files are included by the build system
In order to choose STM32 platform in the firmware, select the “ACTIVE_PLATFORM” as “STM32_PLATFORM” in the app_config.h from the respective project. Alternately , add compiler flag “ACTIVE_PLATFORM=value of STM32_PLATFORM in app_config.h” for selecting stm32 platform.
Add compiler flags “-u _printf_float” to the project settings.
Exclude the generated file syscalls.c from the build process
- To generate the binary file, right click on the adxxxx_iio project seen in the project explorer and select “Properties”, select “Settings” under the “C/C++ Build” section on the left pane, select “MCU Post build outputs” under “Tool Settings” section and check the “Convert to binary file (-O binary)” checkbox.
Build the project by right-clicking on the adxxxx_iio project seen in the project explorer and select “Build Project”
Running a project
Once the firmware build is successful and binary file is generated, copy the generated binary into USB drive hosted by your MCU board (e.g. USB drive hosted by MCU board on windows). This will flash the binary file into MCU present on the controller board. Programming might vary based on the tools used for building a project. The ‘Project Build’ section above talks about this exception at the end of all build steps.