MCU Templates are a kind of a common project framework or software framework needed for developers to have an easy start in development with MCUs. MCU Templates are historical started within Fujitsu (the times Fujitsu was a semiconductor company) by request of well-known customers. MCU Templates offering everything required to start development of embedded software beginning with an empty main.c, but with everything else configured and with an already done MCU startup.
MCU Templates…
- … are base for standalone-examples.
- … are offering an out-of-the-box “empty” start for developers
- … helping to improve the daily work, as soon it offers a well-known base for development and a common denominator reproducing issues. Developers can also use MCU Templates to describe their issues on a minimal base.
- … are base for software examples
The MCU Template is a software framework offering an easy start with different toolchains but using the same source files. The developer can just double-click the IDE project file to have a ready to use empty project. Currently following toolchains are supported:
- ARM (Keil μVision)
- Atollic (Atollic TrueStudio)
- Eclipse
- emIDE
- iSYSTEM (iSYSTEM WinIDEA Open)
- IAR (IAR Embedded Workbench for ARM Cortex M)
- Makefile (GNU)
For all toolchains the MCU is already configured in case of startup file, flash loaders, linker settings, etc. The developer can directly start with “main.c” with his own program. Only the different flash sized are implemented as different targets or configurations which can be selected in the toolchain. There are two different types of targets: Debug and Release targets. The Debug targets are running in RAM while Release targets are running in FLASH.
Structure
The structure contains of following parts (sub-folders):
- Common
- Cmsis
- Doc
- Example
- Library
- Thirdparty
Common
In the common folder contains:
- The MCU headerfile (<mcuname>.h)
- The system files defined by CMSIS (system_<mcuseries>.h and system_<mcuseries>.c)
- The GPIO macros used for pin configuration
- The base type variable definition (base_types.h)
CMSIS
The CMSIS folder contains the SVD file and necessary includes for the CMSIS core if using GNU tool chains not implementing this in the tool chain.
Doc
The doc folder contains a doxyfile helping to create a doxygen documentation.
Example
The example folder contains all project files for different toolchains as well as the source folder where the main.c file is located and the developers code can be placed.
Library
As soon libraries will be used, these will be placed in the sub-folders lowlevel, middleware and highlevel inside of the library folder. The examples folder inside of the library folder contains ready to use examples for use with the included low level library. The MCU template does not include by default the low level library.
Thirdparty
As soon thirdparty libraries or code is used, this is put into this folder.
MCU Templates for Ambiq Micro Apollo 1
https://github.com/schreinerman/AmbiqMicroApollo1_McuTemplate
MCU Templates for Ambiq Micro Apollo 2
https://github.com/schreinerman/AmbiqMicroApollo2_McuTemplate