Ivan has been a Researcher with the National Research Council of Italy, Institute of Electronics, Computer and Telecommunication Engineering (CNR-IEIIT), since 1996 and has been adjunct professor of real-time operating systems at Politecnico di Torino, Turin, Italy, for a decade. He has coauthored two books on real-time operating systems and embedded software development, and serves as a Technical Referee for primary international conferences and journals. His research interests include real-time operating system design and implementation, industrial communication systems and protocols, and formal methods for vulnerability and dependability analysis of distributed systems.

Cortex-M Exception Handling (Part 2)

Ivan Cibrario Bertolotti February 1, 20169 comments

The first part of this article described the conditions for an exception request to be accepted by a Cortex-M processor, mainly concerning the relationship of its priority with respect to the current execution priority. This part will describe instead what happens after an exception request is accepted and becomes active.

PROCESSOR OPERATION AND PRIVILEGE MODE

Before discussing in detail the sequence of actions that occurs within the processor after an exception request...


Cortex-M Exception Handling (Part 1)

Ivan Cibrario Bertolotti November 28, 20152 comments

This article describes how Cortex-M processors handle interrupts and, more generally, exceptions, a concept that plays a central role in the design and implementation of most embedded systems. The main reason of discussing this topic in detail is that, in the past few years, the degree of sophistication (and complexity) of microcontrollers in handling interrupts steadily increased, bringing them on a par with general-purpose processors.


Re: what is CAN bus-off state ?

Reply posted 2 years ago (10/19/2020)
The short answer is yes, especially if you would like to build/certify a CAN-based product.  I would recommend two things:  1) Check if your company or academic...
Please take this with a grain of salt because I'm not an expert on the Spartan.  I did in on the Zynq though.  You can use the DCM to generate a clock at the...
Hello,just my two cents: what about doing the opposite?  Most function generators accept an external clock reference (often, at 10MHz).  In my opinion it would...

Re: Communication protocol implementation

Reply posted 5 years ago (04/04/2017)
Hello,to my opinion, one of the best references about protocol stack *implementation* in general (not specifically related to CAN) is still part IV of the book...

Re: uart0 is not working

Reply posted 5 years ago (02/20/2017)
As a followup to the reply by maruthi.hr, let me describe the LPC2378 clock tree in some more detail (for what concerns the UART0 clock).  Have a look at Fig....

Re: uart0 is not working

Reply posted 5 years ago (02/20/2017)
Hello,I just had a quick look at your code, so take what I'm saying with a grain of salt.  One thing I don't see is how you set the PCLKSEL0 register.  It sets...
That's exactly my point... if FatFs works better or worse depending on whether or not you introduce manual delays it indicates that something is seriously wrong...
Hello,I concur with Tim about a possible timing issue.  This is because, in a correctly integrated FatFs system (that is, with a hardware/RTOS adaptation layer...

Re: Cortex M4 Interrupt states

Reply posted 6 years ago (01/16/2017)
If the stack frame is set up correctly, it should work because it would mimick exactly the normal exception exit sequence, except for the target PC.I did it myself...

Re: Cortex M4 Interrupt states

Reply posted 6 years ago (01/14/2017)
It just came into my mind that a similar question (returning to an arbitrary thread-mode address from an ISR) was asked a couple of years ago for the Cortex-M3...

Re: Cortex M4 Interrupt states

Reply posted 6 years ago (01/14/2017)
Hello,no problem, thanks for the extra information, it's hard to reason about these things without having a fairly complete picture.  I have a couple of (hopefully...

Re: Cortex M4 Interrupt states

Reply posted 6 years ago (01/14/2017)
Many operating systems do not support execution of unprivileged code (in this case thread-mode code) from within an interrupt handler at all.  Microkernel-based...

Re: Cortex M4 Interrupt states

Reply posted 6 years ago (01/12/2017)
Hello,as far as I know, the behavior you are observing is normal.  There is an exception whose handling has not been completed, but the processor is currently executing...
I would just like to point out that the debate around event-driven programming has been going on for more than 20 years.It is an interesting approach for sure....
This is a very interesting observation, although I would not say it is a mixed metaphor.  The C language, like most others, has been designed so that keywords...
In my opinion, there are two aspects worth considering in this question.The first one is about the basic mechanisms available at the language level to define variables...

Re: Vector CAN Flash Error?

Reply posted 6 years ago (09/22/2016)
Unfortunately, I am not an expert on the specific tool you are using.  However, with similar tools, this kind of error is generally due to poor cabling and/or...

Re: what is CAN bus-off state ?

Reply posted 6 years ago (09/01/2016)
Hi Gill,the analogy between CAN error handling and interrupt handling escaped me at first, but it is indeed quite interesting.  It highlights a nice analogy between...

Re: what is CAN bus-off state ?

Reply posted 6 years ago (09/01/2016)
In order to monitor bus health (and also their own health), CAN controllers must keep two counters, called transmit and receive error counter.  They start at zero...

Re: Free and Open Source Software for Embedded Systems

Reply posted 6 years ago (05/05/2016)
Operating Systems: RTEMS
Hello everybody,just my tiny contribution to the discussion, on a side topic actually.  Concerning the use of some areas of C++ (most notably exception handling...
Hello, I'd like tol add my two cents to the discussion.Another point probably worth mentioning is that the code may be hard to port from one project to another,...

Use this form to contact Ivan Cibrario Bertolotti

Before you can contact a member of the *Related Sites:

  • You must be logged in (register here)
  • You must confirm you email address