This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What does it mean to say "ARM Cortex-M processors are entirey C programmable"?

Hi,

Being new to the fascinating ARM world, I am going through various documentation and reading material.

I read that the ARM Cortex-M processors (or I think it applies to all the Cortex processors) are entirely C programmable. This means that assembly code is not required for start-up code and for ISRs.

I am curious to find out what prohibits the earlier ARM processors (or even other architectures) to write the start-up code in C? Are these any specific instructions? One which I found was the WFI (Wait For Interrupt) which can't have an equivalent in C. But that is not a start-up or ISR instruction.

Thanks for your support !

Gopal

Parents
  • Typically, the SVC handler is part of the embedded OS / RTOS. For users of embedded OS / RTOS they don't have to use assembly code. However, for people that actually create embedded OS / RTOS, they do need to do a bit of assembly code for SVC handler and context switching.

    The phase completely programmable in C is somewhat a marketing statement. Many development tools still use assembly code for the startup codes (it is possible to do it in C too). And there are certainly some cases where I think should use assembly (e.g. context switching in OS, or any code that directly manipulate stack like some of the fault exception handlers that need to extract exception stack frames).  However, for most general MCU applications, it is true that the software developers don't need to write their code in assembly languages.

    regards,

    Joseph

Reply
  • Typically, the SVC handler is part of the embedded OS / RTOS. For users of embedded OS / RTOS they don't have to use assembly code. However, for people that actually create embedded OS / RTOS, they do need to do a bit of assembly code for SVC handler and context switching.

    The phase completely programmable in C is somewhat a marketing statement. Many development tools still use assembly code for the startup codes (it is possible to do it in C too). And there are certainly some cases where I think should use assembly (e.g. context switching in OS, or any code that directly manipulate stack like some of the fault exception handlers that need to extract exception stack frames).  However, for most general MCU applications, it is true that the software developers don't need to write their code in assembly languages.

    regards,

    Joseph

Children
No data