Questions tagged [cmsis]

CMSIS is a vendor-independent hardware abstraction layer for the Cortex-M processor series.

The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series with the following components:

  • CMSIS-CORE: API for the processor core, peripherals and the instruction intrinsics.
  • CMSIS-Driver: Standard API for Ethernet, I2C, MCI, NAND Flash, NOR Flash, SPI, USART, USB etc.
  • CMSIS-DSP: SIMD optimized DSP Library for fix-point (q7, q15, q31) and single precision floating-point (32-bit) data types.
  • CMSIS-RTOS: Common API for Real-Time operating systems.
  • CMSIS-Pack: XML based package description of the user and device relevant parts of a file collection that includes source, header, and library files, documentation, Flash programming algorithms, source code templates, and example projects.
  • CMSIS-SVD: XML based description of the peripherals for debuggers.
  • CMSIS-DAP: A USB to Debug Access Port protocol and reference firmware implementation. Can be used by pyOCD.
183 questions
8
votes
1 answer

Is there any reason to declare something "volatile const" in C but only "volatile" in C++?

I was using a header file in my project that had the following define(s): #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus #define __I volatile /*!< Defines 'read only' permissions*/ #else #define __I …
SoftwareDev
  • 674
  • 1
  • 6
  • 14
6
votes
3 answers

Difference between FreeRTOS and CMSIS-RTX

What is the difference between FreeRTOS and CMSIS-RTOS? Can anyone explain how the two RTOSes are similar or different?
Bilal Qamar
  • 322
  • 1
  • 2
  • 9
6
votes
3 answers

Read-only memory-mapped registers defined with `volatile const` in C but only `volatile` in C++

While working on an embedded systems project using an Atmel SAM3X8E, I noticed the following bit of code in some of the CMSIS header files. #ifndef __cplusplus typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const…
JAB
  • 20,783
  • 6
  • 71
  • 80
5
votes
1 answer

STM32 bare metal USB implementation

UPDATE For anyone interested, here is a step-by-step instruction and explanation on how to build a bare metal USB-Stack, how to tackle such a project and what you need to know for each step: STM32USB@GitHub TLDR: I have a STM32G441 and want to…
CShark
  • 1,413
  • 15
  • 25
5
votes
2 answers

CMSIS and peripherals drivers

what types of codes are written in CMSIS files and peripheral drivers file. How can I distinguish them? any example would be more helpful. Thank you.
istiaq2379
  • 113
  • 3
  • 13
4
votes
2 answers

How do you use CMSIS without an IDE?

I am working with STM32F103C8T6 and would like to use CMSIS, which is essentially just register definitions and no code, to make my life easier while still staying at a low level. The problem is that I have no idea how to install the library for use…
nalzok
  • 14,965
  • 21
  • 72
  • 139
4
votes
1 answer

Should CMSIS libraries be included in version control?

Normally, I used to include device specific headers & sources provided by the chip vendor (ST) and CMSIS-Core headers in version control. There are not many of them and I didn't have a habit to update them. I use STM32 microcontrollers, but I don't…
Tagli
  • 2,412
  • 2
  • 11
  • 14
4
votes
1 answer

CMSIS DSP in STM32CubeIDE

I want to use the DSP functions that are present in CMSIS. I'm using STM32CubeIDE with my target board being the ST32F411RE Discovery. Using CMSIS DSP with Keil uVision is extremely simple, you just select thew pack you want and use it but it's not…
ChrisD91
  • 249
  • 3
  • 10
4
votes
0 answers

CMAKE - find_library find_path find_file all not working

So I have a library here /path/to/CMSIS/libarm_cortexM4lf_math.a I can't seem to find it using find_library with Cmake. Further more I can't find a simple text file with find_file or find_path. I've tried the following (and many iterations…
BLowe
  • 306
  • 1
  • 11
4
votes
2 answers

UART receive interrupt stops triggering after several hours of successful receive

I am using STM32f4 discovery board connected with xbee to receive temperature data from remote temperature sensor. Code used is CMIS UART example code. I will receive packet data, 1 byte at a time. In other words UART receive interrupt will be…
user2819759
  • 85
  • 1
  • 9
4
votes
1 answer

JTAG adapter ULINK-ME and openocd (on ArchLinux)

I installed Openocd from opfficial Arch Linux repositories today and am now trying to use it with my JTAG adapter ULINK-ME. I found out that ULINK-ME uses CMSIS-DAP debugging firmware. Openocd has CMSIS-DAP drivers and should therefore be able to…
71GA
  • 1,132
  • 6
  • 36
  • 69
3
votes
1 answer

How to cast unsigned integer to enum using CMSIS API

I am using CMSIS API in my C program for ARM Cortex-M CPU. CMSIS defines NVIC_DisableIRQ function as __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn); IRQn_Type is a typedef enum, like typedef enum IRQn { NonMaskableInt_IRQn =…
ilia
  • 1,082
  • 11
  • 19
3
votes
4 answers

How to run a periodic thread in high frequency(> 100kHz) in a Cortex-M3 microcontroller in an RTOS?

I'm implementing a high frequency(>100kHz) Data acquisition system with an STM32F107VC microcontroller. It uses the spi peripheral to communicate with a high frequency ADC chip. I have to use an RTOS. How can I do this? I have tried FreeRTOS but its…
3
votes
3 answers

On core_cm4.h why is there casting like ((uint32_t)(int32_t)IRQn)?

In the following code from core_cm4.h why is there a double cast ((uint32_t)(int32_t)IRQn)? For example in the following function: __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] =…
Realtime Rik
  • 1,632
  • 10
  • 22
3
votes
1 answer

Building OpenSSL Library on ARM Cortex M4 based STM32F4 controller in an RTOS environment

I am looking at the feasibility of developing an embedded bluetooth application with openSSL-FIPS support on STM32F407 microcontroller(which is ARM Cortex M4 based). The application doesn't run on generic OS like Linux, Windows or andriod but it…
Jinu
  • 69
  • 1
  • 6
1
2 3
12 13