This article discuss the software options available for ARM based micro-controllers. The ecosystem by different silicon vendors consists of Software development tools to meet the requirement of editing, compiling , linking and debugging the application. Additionally they provide required libraries along with peripheral access APIs . Some of them go one step further by providing GUI based tool to generate C code for accessing device IPs.
2. STM32 Peripheral Driver Support
●
STM32 Snippets (Code Examples to access STM32 Peripherals)
STM32 Standard Peripheral Libraries (SPL) ( C Libraries to access STM32
Peripherals)
●
STM32Cube (Packages with drivers , collection of middleware such as
USB, TCP/IP, Graphics, Filesystem and RTOS)
–
HAL API (Hardware Abstraction Layer API)
–
LL API ( Low Layer API)
●
STM32CubeMx is a Graphical tool to configure STM32 microcontroller and
generate C code.
–
–
3. CMSIS
●
Any Industry standard for designing ARM micro-controller bare metal device
driver ?
–
Yes , It is called Cortex Microcontroller Software Interface Standard
–
CMSIS is a framework to integrate third-party software
●
Why CMSIS was needed?
–
To standardize software interfaces among all Cortex-M silicon vendor
products.
–
To provide a common approach for software interfaces among
peripheral access, RTOS,DSP and many other middleware
components
–
This helps in software reuse in migrating from one silicon version to
another and also from one vendor to another
–
●
●
4. CMSIS
●
To understand CMSIS better, Lets divide the embedded software to four
layers
–
Application Layer
–
Middleware Layer for USB , Graphics, Filesystem, RTOS etc
–
Device Peripherals Access Layer
–
Core Registers access layer
–
–
–
●
5. What is required to be CMSIS
compliant code ?
●
Following are some of the essential rules & conventions to be followed by CMSIS compliant
code :
–
Compliant with ANSI C (C99) and C++ (C++03).
–
Uses ANSI C standard data types defined in <stdint.h>.
–
Variables and parameters have a complete data type.Expressions for #define constants are
enclosed in parenthesis.
–
Additionally , CMSIS recommends following conventions for identifiers :
• CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
• CamelCase names to identify function names and interrupt functions.
• Namespace_ prefixes avoid clashes with user identifiers and provide functional groups (i.e.
for peripherals, RTOS, or DSP Library).
• The CMSIS is documented within the source files with:
• Comments that use the C or C++ style.
• Doxygen compliant function comments that provide:brief function overview.detailed
description of the function.detailed parameter explanation.detailed information about return
values.
6. Copyright@Embedkari
THANKS
If you found this information useful Please like
this video AND subscribe to
www.youtube.com/embedkari
Embedded Career Information :
www.facebook.com/embedkari
Website:www.embedkari.com
7. Copyright@Embedkari
THANKS
If you found this information useful Please like
this video AND subscribe to
www.youtube.com/embedkari
Embedded Career Information :
www.facebook.com/embedkari
Website:www.embedkari.com