Re: VxWorks Interrupts



Most of the things kernel init sets up are internal and don't really
get exposed. There is one big comment that shows the internal mem
layout.

Might be a good project to try an dump that info after booting.
lc
jeanwelly wrote:
Thanks!
It make things clearer...
Where could find the memory map when VxWorks is running or booting...
Just like the information you mentioned when kernelInit...


LarryC 写道:

Hi:

At the end of usrInit in usrConfig.c, you'll see a call to
kernelInit....

kernelInit ((FUNCPTR) usrRoot, ROOT_STACK_SIZE,
(char *) MEM_POOL_START_ADRS,
sysMemTop (), ISR_STACK_SIZE, INT_LOCK_LEVEL);

That's where the ISR_STACK_SIZE is set for the kernel.

vxworks system memory partition is initialized by kernelInit() with
memory between
pMemPoolStart (3rd param) and pMemPoolEnd (4th param). The interrupt
stack of intStackSize (5th param) bytes is allocated starting at
pMemPoolStart. MEM_POOL_START_ADRS is generally set to the mem
location just after the bss of vxWorks.

Some of this gets changed for cpu's that don't have interrupt stacks,
and gets permuted for cpu's where the stack grows upwards toward higher
address.

Good luck,

lc

jeanwelly wrote:
LarryC,
Just follow your discussions...
In the VxWorks Programming Guide, it is said that whether use a
seperate interrupt stack is determined by the architecture. And, I
think the PPC is not using the stack of task, but the general stack at
the task level.
One question is: Where/when that general stack for interrupt was
allocated?

Thanks!
---
Jeanwelly



LarryC 写道:

That's sort of true. Generally, vxWorks support a separate stack for
ISRs, but that really is a function of the architeture also. On some
simple targets, the ISR shares the same stack as the task-level code.

"Context switch" is pretty general, but while it's true there is no
task-to-task context switch when an interrupt occurs, there is a finite
amount of time to save the status of the executing task before the
processing of the interrupt decode occurs.


lc
Maverick wrote:
What I read from the programmers guide ..it said that vxWorks has a
seprate Interrupt stack...and there is no context switch ....when an
interrupt occurs in vxWorks....

Ne Idea..

Thanks In Advance
Abhijit

.



Relevant Pages

  • Re: Interrupt context...
    ... > gone through most of the posts on interrupt in usenet. ... > kernel stack and ISR is executed. ... More may be saved depending on the architecture. ... Here the kernel have assembler code to save all general ...
    (comp.os.linux.development.system)
  • Re: VxWorks Interrupts
    ... Where could find the memory map when VxWorks is running or booting... ... Some of this gets changed for cpu's that don't have interrupt stacks, ... and gets permuted for cpu's where the stack grows upwards toward higher ...
    (comp.os.vxworks)
  • x86_64 kernel stack organization
    ... I could not find a document that described the x86_64 kernel stack ... Interrupt stack. ... Used for external hardware interrupts. ...
    (Linux-Kernel)
  • Re: Protection for kernel data structures
    ... priority over everthing else in VxWorks or they can be disabled (e,g. ... Which entity (interrupt ?) runs scheduler. ... protection then rather than writing a downloadable kernel module ... "Priority-based Premptive Scheduling" but they also provide a way to ...
    (comp.os.vxworks)
  • Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.52-01
    ... > running in user-space or kernel when an interrupt goes off then I would ... The per arch is actually easy, and I would write it, but I ... The idea is that an interrupt from user space will be the ONLY thing on ... the stack while an interrupt from the kernel will have kernel stack ...
    (Linux-Kernel)