Re: The idea of disabling interrupts



On Nov 29, 2:15 pm, Arlet Ottens <usene...@xxxxxxxxxx> wrote:
karthikbalaguru wrote:
If you're sharing between two tasks, it depends. Generally, if you
disable interrupts for a short period, and you don't call any OS/library
functions, it can be a useful method. Exactly how long you can disable
interrupts depends on your environment and real-time requirements.

Thx for the info. Interesting :):)

Thinking over this, i have a query -
Is it possible to do sharing of data(Critcal Section) wihtout diabling
of interrupts and also
without the use of these RTOS features like semaphore/Mutex/
MessageQueues/Pipes/Mailboxes ?

Sometimes you can use atomic instructions, if your CPU has them. For
instance, the ARM has the SWP instruction that can be used to solve some
concurrency problems.

The other possibility is to not use a preemptive RTOS. You can either
use a non-preemptive (cooperative) OS, or not use an OS at all. I've
implemented quite a few embedded systems that just had a polling loop,
and a bunch of ISRs. In some cases, the ISRs did the bulk of the work,
so there wouldn't be any concurrency issues, and the timing was guaranteed.

Thx for the info.
I thought of such a similar idea - The idea of using flags w.r.t
interrupts.
Enable a flagA and manipulate the part A
(shared data) in task code and as flagA is enabled, manipulate the
part B
in the ISR. And vice versa for part B(Shared Data).
Though this replaces the idea of disabling interrupts,
this is time consuming.

Karthik Balaguru
.



Relevant Pages

  • Re: The idea of disabling interrupts
    ... disable interrupts for a short period, and you don't call any OS/library ... the ARM has the SWP instruction that can be used to solve some concurrency problems. ... In some cases, the ISRs did the bulk of the work, so there wouldn't be any concurrency issues, and the timing was guaranteed. ...
    (comp.arch.embedded)
  • Re: Can an RTOS guarantee that interrupt latency will never exceed a predefined maximum?
    ... Not unless the user isn't allowed to disable interrupts or ... critical sections where interrupts are disabled, ... measuring the execution time of ISRs and critical sections. ...
    (comp.arch.embedded)
  • Re: [PATCH] Documentation: Make fujitsu/frv/kernel-ABI.txt 80 columns wide
    ... -The internal FRV kernel ABI is not quite the same as the userspace ABI. ... -most of them do not have any scratch registers, thus requiring at least one general purpose ... +single-stepping will blithely go on stepping into things like interrupts. ... -to read and once to write), we don't actually disable interrupts at all if we don't have to. ...
    (Linux-Kernel)
  • Re: VMI Interface Proposal Documentation for I386, Part 4
    ... For one, the X server wants to disable interrupts temporarily during probing of dot clocks to get accurate timings, and also to avoid the kernel interrupting during a sensitive VGA register access. ... Several other userspace programs, including CMOS time sync utilities do this as well. ... The code you show above can be made to work in a virtual machine, and you can allow userspace to disable interrupts and still have a perfectly fine solution -- if you restrict the enabling and disabling of interrupts in userspace to the cli and sti instructions. ...
    (Linux-Kernel)
  • Re: Problem with /boot/loader [A new patch]
    ... I have a problem with loader. ... After boot I install the new ... the problem was interrupts being disabled when they should have been enabled. ... disable interrupts just like hardware interrupts do. ...
    (freebsd-stable)