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.

CMSIS VS Hardware Abstraction Layer by method of Texas Instruments

dear All,

I have used TI TMS320 MCUs for years. TI provides header and source files for accessing hardware. TI Implements a hardware abstraction layer to do that as you probably know.

I am new to ARM-Based MCUs. ARM micro-controllers come with CMSIS, an standard for hardware abstraction layer.

I want to know your opinion; which method do you prefer?

I am very convenient with the TIs one. This is simple and understandable.

regards,

Ras

  • Hello Ras

    Old question, multiple forms asked again: Depends on the task, a hammer does not work where a needle is required and vice-versa. It is first necessary to identify the application and most optimal approach to implement it from multi-vendor platform, long term development and cross platform dependency.
  • hi Amit,
    probably I misunderstand you!
    I am speaking about methods of implementing hardware abstraction layer.
    TI has its own method. ARM-Based MCUs provide with CMSIS, a standard one.
    regards,
    Ras
  • Hello Ras,

    ARM based MCU's do not provide CMSIS as part of the vendor's software capability. CMSIS is a standard by the ARM (mbed being another one), that allows users to move between vendor devices (very ideal thinking). However it is a vendor choice to provide one or not. For a long time we have seen, a new method being proposed claiming superiority of everything else, never to kick of the the ground, and being superseeded by another method the following year.

    So in a short answer: evaluate the requirements to identify the approach. There is nothing called superior method, but the most appropriate method based on requirements.
  • hi Amit,

    While MCUs differ in peripherals how does ARM provide header and source files for all vendors? and how we can move between them?

    regards,
    Ras
  • Hello Ras

    ARM does not provide the header files. The header files are provided by the vendor. Since we do not provide the CMSIS header files, the closest is to look on Git. I have seen someone posting CMSIS header files for TM4C12x device but TI cannot confirm the authenticity of the external source. We mostly provide the TivaWare software library (approach-1 in your first post) as a more reliable method to program the device.
  • To be more precise, ARM provides only headers and functionality (code) for the common part of the Cortex M, e.g. the SysTick Timer and the NVIC. The specific headers and code are provided by the vendor (if at all) - that what really makes up MCU.

    The TI TivaWare (actually acquired as StellarisWare from/with LM) predates ARM's CMSIS effort and is located in ROM - not really the best premises (for TI) to switch to full CMSIS compatibility. And usually, stability and Flash space requirements are a strong argument.

    The most convincing and usable part of CMSIS (besides the core peripheral code) is the DSP lib.

  • a question,
    can anybody develop a project completely without cmsis?
    may the method be rational?
  • ... can anybody develop a project completely without cmsis?

    Of course, StellarisWare/TivaWare examples are completely without cmsis. But I guess it is not what you mean. And again - of course you can. You have all required information in datasheets/reference manuals, so you can skip any library and (re-) write anything on your own.

    may the method be rational?

    Skipping any existing and proven code would be at least a great waste of resources and time - not rational in a commercial sense.

  • ok,
    thank you,
    another question,
    i read in a book that cmsis adds some overhead to program. how much large can be it? and should i to customize the provided files for a specific project?
  • Hello Ras

    You will not to build a sample project to figure that out. The sample project must be of reasonable complexity.
  • Amit Ashara said:
    Hello Ras

    The sample project must be of reasonable complexity.

    Hi Amit,

    Excuse me.

    I don't understand.

  • f. m. said:

     of course you can. You have all required information in datasheets/reference manuals, so you can skip any library and (re-) write anything on your own.

    The core of the micro controller is ARM. So Can a vendor provide non-CMSIS for?

    I think at least the files for the cortex core of the mcu are of cmsis?

  • Ras Sharif50 said:

    The core of the micro controller is ARM. So Can a vendor provide non-CMSIS for?

    I think at least the files for the cortex core of the mcu are of cmsis?

    Cortex M silicons had been out for some years when ARM finally came up with CMSIS, an initiative to harmonize/synchronize development for the platform.

    Think LM (Luminary Micro) StellarisWare or Atmel ASF (Application Software Framework) as examples for non-CMSIS libraries.

    The former (now part of TI, and named "TivaWare") is reluctant to embrace CMSIS because of the non-CMSIS library integrated into ROM, and the latter because the ASF supplies an indentical Framework to other (non-ARM) MCU families from Atmel as well.

  • Ras Sharif50 said:

    Hi Amit,

    Excuse me.

    I don't understand.

    IMHO Amit means you need a reasonable complex application to notice a considerable difference between a highly MCU-tailored (spaghetti code) application, and a portable, library-based one.
    Function calls definitely generate "overhead", but the "loss" is mostly insignificant, especially compared to the time required for rewriting anything ...

  • Hello f.m.

    Nicely summed up.
  • thank you Amit and f. m. for contribution.

    the cmsis was not explicit for me.
    Now I am becoming familiar to the subject.

    The bellowing links are helpful for introducing cmsis:

    www.keil.com/.../using_pg.html
    www.keil.com/.../templates_pg.html

    regards,
    Ras
  • thank you Amit and f. m. for the helpful contribution.
    the cmsis has been become explicit for me.

    for other people read the post I should to refer them to the bellowing pages were helper for me:
    www.keil.com/.../index.html
    www.keil.com/.../templates_pg.html

    regards,
    Ras
  • Hello Ras,

    And the following application note would be an equally useful resource.

    www.ti.com/.../spma041g.pdf
  • please any one close the post as "Verified answer" because i can't see the button.