This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MCU-PLUS-SDK-AM243X: Missing CMSIS device and system files

Part Number: MCU-PLUS-SDK-AM243X

Hello,

I checked out the MCU+ SDK CMSIS repository on your GitHub (https://github.com/TexasInstruments/mcupsdk-cmsis/tree/main). It seems like, that only the CMSIS core header files by ARM CMSIS V5 are included here, but the device and system specific header files are missing. Will these be added in the future?

Reference:

  • Hi Philipp,

    CMSIS repo for MCU+ SDK is a stripped-down version of the ARM CMSIS5 software layer taking mostly the math functions using ARM intrinsics, from the original repository. This is used mostly in certain application examples and benchmark examples.

    Please refer to the makefile for the source files included in this stripped-down version.

    For the original CMSIS repo, click here.

    Best regards,

    Ming

  • Hello Ming,

    thanks for the reply. Will the device specific header files be added in the future?

    Best regards,

    Philipp Finke

  • Hi Philipp,

    The CMSIS library is the ARM standard library. It is for R5F cores. All our AM2x devices uses the R5F cores, so not need to have device specific header files.

    Best regards,

    Ming

  • Hello Ming,

    sure R5 cores do not support CMSIS. But what about the M4 core of the AM2x SoCs?

  • Hi Philipp,

    I know the CMSIS originally does not support Cortex-R5F. What we did was took the CMSIS-DSP source code and re-compiled it using the TI CLANG. This method may not take the full architectural advantage of the R5F core, but it at least uses the FPU for all the floating-point operations.

    As of the M4 core in the AM243x, it is mainly designed for the safety purpose (with it located in the MCU domain). We would like to focus the real time control on the R5F cores. Of course, you can use the existing CMSIS for M4 core.

    As of the M4 core in the AM263x, it was designed for the system services and security purpose, so you cannot use it for any real-time control or computation.

    Best regards,

    Ming

  • Hey Ming,

    I think there's a misunderstanding of what I'm supposed to say.

    I'm not talking about the CMSIS-DSP sources, but the missing device header file for the Cortex-M4 core. This file normally contains information about the presence of a MPU and FPU, the core revision, number of NVIC priority bits and so on as preprocessor definitions as well as an enumeration that lists all IRQs. After this, the core header file (i.e. core_cm4.h in case of Cortex-M4) is included. These information are also used to correctly configure the instrinsics in cmsis_compiler.h. This file is also not written by hand, but ARM offers a generator tool for this purpose as far as I know.

    We have code in our company that must be portable across different vendors that use these instrinsics, so have to rely on a properly defined device header file.

    Checkout https://github.com/STMicroelectronics/cmsis_device_f4/blob/master/Include/stm32f429xx.h for an example on how it is intended by ARM to be defined. Also checkout the official CMSIS documentation about this topic (https://www.keil.com/pack/doc/CMSIS/Core/html/templates_pg.html).

    Best regards

    Philipp

  • Hi Philipp,

    The CMSIS-DSP included in the MCU+ SDK is used for optimized math functions for R5F cores. The CMSIS for STM is served as a common HAL/SW abstraction across all STM devices, including the CMSIS-RTOS, CMSIS-Driver etc. We are taking a different approach which is called MCU+ SDK. We treat CMSIS-DSP as a math function library at the source code level. Therefore, we have no plan to provide the core header files. 

    If you want to use it as is to the M4 core, then all you need to do is to change the makefile for M4 core.

    Best regards,

    Ming