JSAPI for STM32F0xx MCU  1.10
JSAPI for STM32F0XX MCU

https://imagecraft.com/technologies/jumpstart-api Copyright 2017-2018 ImageCraft Creations Inc. All Rights Reserved. You may only use JumpStart API (JSAPI) in your code if you have purchased a license for JumpStart C++ for Cortex.

JumpStart Application Programming Interface (JSAPI) is a middleware API from ImageCraft for accessing MCU peripherals. With JSAPI, it's simple to access the peripherals of the microcontroller without sacrificing the power specific to each vendor's hardware product.

You need to consult the device family reference manual and the device datasheets from the vendor to utilize the API. Device family reference manual: describes the MCU family's peripherals. Device datasheet: describes the specific MCU series' peripheral implementation, including the number of peripheral units, GPIO pin functions, actual alternate function codes, etc.

The easiest method to use JSAPI is to use the "New->Project->JSAPI Templates" wizard within the CodeBlocks IDE. This set up: 1) the include paths, 2) adds the MCU specific libjsapi_XXXX.a to the library list, and 3) includes a startup file that calls the JSAPI_Init() function and also includes JSAPI specific interrupt vector table. The first two items are in the Project Build Options dialog box.

If you are creating a project by hand and want to use JSAPI, then you should look at a JSAPI-wizard generated project and copy all the relevant bits out, as above.

JSAPI environment provides a set of objects, e.g. usart1, porta, i2c1, etc., that you can use to access the MCU features using simple to use, yet powerful API. It can even coexist with vendor's provided low level library if you need to manipulate low level I/O registers to access features not provided by JSAPI.

A use example:

#include <jsapi.h>
void main(void)
{
// these two instructions setup the system clock and the SYSTICK timer
jsapi_clock.SetSystemClock(16, 0, false, 84, 5);
// these are specific to the ST-Nucleo F411, and setup the usart2 for terminal I/O
usart2.SetPins(&porta, 2, 7, &porta, 3, 7);
usart2.MakeUSART(9600, 8, 1, FC_NONE);
// redirect printf
printf("Hello World\n");
...
}