Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Why is it necessary to disable interrupts when loading transmit data into transmit bu

Status
Not open for further replies.

jani12

Advanced Member level 4
Full Member level 1
Joined
Oct 30, 2014
Messages
108
Helped
0
Reputation
0
Reaction score
1
Trophy points
1,298
Activity points
2,536
Our application is Advanced Drive Assist Systems(ADAS). Our Electronic Control Unit(ECU) contains Two Renesas RH850 / U2A16 Microcontrollers. Our Embedded Software Design is based on ETAS Autosar version 4.x RTOS. Two Renesas Microcontrollers communicate with each other over Renesas High Speed Serial Interface (RHSIF). Communication is full duplex. Each microcontroller has differential pair for transmit and differential pair for receive. One microcontroller is Master. Other microcontroller is Slave.

Basically, our embedded software organization is Application Software and Low-Level Software. Low-Level Software running in each microcontroller provides separate transmit (Tx) and receive (Rx) Buffers for the message data for RHSIF bus connected to the Microcontrollers. Application software provides low level software with number of bytes and transmit data to load in the transmit buffer. Low-Level SW checks the transmit status to ensure a transmission is not in progress before copying the data to transmit buffer..

The requirement from the Application SW is: Low-Level SW shall execute the data copy as an atomic operation (no interruption) so that an interrupt delay cannot result in partially updated data being transmitted.

Why atomic operation? Why not finish updating transmit buffer after interrupts are serviced?
 

Hi,

It depend on
* how the data buffers are organized in software
* and how the the microcontroller (periferal) handles the data transfer.

A think it's a good idea to post the UART interface part of the software.

Klaus
 
  • Like
Reactions: jani12

    jani12

    Points: 2
    Helpful Answer Positive Rating
An 'interrupt delay' should be negligible, according to best practices there should not have any routine with significant latency from inside interrupt vector, but as said above whithout details on the code we can only guess.
 
  • Like
Reactions: jani12

    jani12

    Points: 2
    Helpful Answer Positive Rating
This is called 'the race condition' - it is the situation when data transfer can be interrupted and data will be corrupted because of that. If you are completly sure that you will prevent that, no point to disable the interrupt this time. To avoid that ring buffer or multiple buffers should be used depends of requirements.
 
  • Like
Reactions: jani12

    jani12

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top