[VxW] taskStackAllot() routine

VxWorks

    Sponsored Links

    Next

  • 1. shell task restart in vxworks
    Hi , I am using MCF5475 freescale controller with Vxworks 6.4. I have configured a EDGE port interrupt ( IRQ7)and it is configured as level sensitive unsing intconnect() I have a single task and it is waiting on semTake(). I have a sengive inside a ISR and few words to read from external Shared memory device inside this ISR. It takes 3 micro sec to excutes the ISR. Every thing works fine when I excutes my code. After some time may be 30 min or 1 hour, i see system task mainly 1. tnettask 2. miibus monitor 3. terror task getting stopeed. The problem speed up it i try to excute the shell commmand i or W on terminal window. I see tshell0 task getting restarted. and few other system task getting stop. Still my task is running. This may happen after 20 to 30 times continous printing the task detail by excuting shell command. If I comment the ISR part, every thing works fine. I dont know what wrong with ISR or what is the excat problem. Any help to solve this will be appreciated. Regards Rahul Kumar
  • 2. A question about C++ programming in VxWorks5.5.
    Hi,everyone. I encountered a strange question recently, it is: I programmed with C++ in VxWorks5.5/Vmware. when i spawn the tasks exceed a certain number(total 26tasks contain system tasks), the VxWorks will die ,and even Vmware will not response to user's input. I donot know why ,will anybody help me? thanks!
  • 3. PCI autoconfig failed on vxWorks6.6
    Hi,all. Now I am working on vxworks6.6 based on mpc8548e.I connect 21154 pci-pci bridge to pci1 and connect another video pci chip to pci 2.If I enable pci2, I can find only video pci chip using pciDeviceShow(), and video pci chip is auto configured correctly.When I disable pci2,I can find only 21154 pci-pci bridge chip,and it BAR is auto configured wrong! Below is part information from pciConfigTopoShow(): [0,0,0] type=PROCESSOR status=0x20b0 ( CAP 66MHZ FBTB DEVSEL=0 MSTR_ABORT_RCV ) command=0x0006 ( MEM_ENABLE MASTER_ENABLE ) bar0 in 32-bit mem space @ 0x40000000 bar1 in prefetchable 32-bit mem space @ 0x00000000 bar2 in 64-bit mem space @ 0x00000000 bar4 in 64-bit mem space @ 0x00000000 [0,18,0] type=P2P BRIDGE to [1,0,0] base/limit: mem= 0x40000000/0x3fffffff preMem=0x0000000060000000/0x00000000600fffff I/O= 0x00000000/0x00000fff status=0x02b0 ( CAP 66MHZ FBTB DEVSEL=1 ) command=0x0007 ( IO_ENABLE MEM_ENABLE MASTER_ENABLE ) value = 0 = 0x0 above information show me that p2p bridge memory-mapped io base address is more than its limit address.But it should not be right! What's wrong with it? Hope any advice from you,thank you advance!
  • 4. wvEvent
    Hi, if any one has used wvEvent, please let me know , how to log the events using the API provided by vxWorks. Currently i am able to see the event logged using wvEvent() using system viewer manually. Thanks in advance. Meg
  • 5. spawning a task with a c++ memberfunction as entrypoint
    Hello, I am pretty new to VxWorks and realtime OSs and low level programming in generell. But I hope you don't mind answering my beginner questions anyway. I am working on a low level robot control system and my task is to restructure the whole application. We want to take advantage of object oriented design and rewrite most of the code in C++. Until now it is all plain C. But some question arise when I think about the new structure. What about the following scenario?: I hava a class with a bunch of public methods. Something like... class MyClass { public: void task1(); void task2(); void startTask1(); ... } Now I create an object of type MyClass want to call startTask1(). startTask1() shall spawn a new task with entrypoint task1(). Is that possible? I wonder how to pass the functionPointer correctly. regards, Alex

[VxW] taskStackAllot() routine

Postby Eckardt, Suzie » Fri, 30 Jul 2004 04:59:48 GMT

Can anyone tell me what the taskStackAllot() routine does, and under what
circumstances it is called?  In debugging a stack overflow on a user task, I
noticed that this routine was being called by sigqueue() and was carving out
a chunk of the stack, thereby reducing the size of the stack available to
the user task.

Thanks, Suzie

Suzie Eckardt
Argon Engineering Associates
 XXXX@XXXXX.COM  <mailto: XXXX@XXXXX.COM >


Re: [VxW] taskStackAllot() routine

Postby Denis Perelyubskiy » Sat, 31 Jul 2004 06:11:54 GMT



/*******************************************************************************
*
* taskStackAllot - allot memory from caller's stack
*
* This routine allots the specified amount of memory from the end of the
* caller's stack.  This is a non-blocking operation.  This routine is 
utilized
* by task create hooks to allocate any additional memory they need.  The 
memory
* cannot be added back to the stack.  It will be reclaimed as part of the
* reclamation of the task stack when the task is deleted.
*
* Note that a stack crash will overwrite the allotments made from this 
routine
* because all portions are carved from the end of the stack.
*
* This routine will return NULL if requested size exceeds available stack
* memory.
*
* RETURNS: pointer to block, or NULL if unsuccessful.
*
* NOMANUAL
*/

hth,

-d


Return to VxWorks

 

Who is online

Users browsing this forum: No registered users and 71 guest