delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/10/03/05:46:51

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: ahenric AT ccii DOT co DOT za (Arne)
Newsgroups: comp.os.msdos.djgpp
Subject: Hardware interrupt stack and task switching
Date: 3 Oct 2003 02:38:02 -0700
Organization: http://groups.google.com
Lines: 19
Message-ID: <e74abcbf.0310030138.7f4cf754@posting.google.com>
NNTP-Posting-Host: 196.30.62.5
X-Trace: posting.google.com 1065173883 27384 127.0.0.1 (3 Oct 2003 09:38:03 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: Fri, 3 Oct 2003 09:38:03 +0000 (UTC)
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hi,

I am trying to get uC/OS-II (the real-time kernel) to work under DOS.
I can do task level switching, but it seems like one cannot do task
switching from a hardware interrupt routine. What I have noticed is
that the stack pointer in the ISR is not the same as that from the
interrupted task. Now what I have read is that DOS sometimes allocates
stacks for HW ISRs, but that one can disable this with the STACKS=0,0
statement in config.sys. This unfortunately does not change anything
for me. So my question: is the DPMI host allocating stacks for each HW
ISR? If that is so, how can I do task switching from the ISR? Is it at
all possible?

I have hooked up my hardware interrupt with the function
_go32_dpmi_set_protected_mode_interrupt_vector(). Is there a better
way?

Thanks
Arne

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019