Invalid Function pointer error ( Solved )

Kiran C kiranc at tataelxsi.co.in
Tue Aug 21 07:03:05 UTC 2001


Hi,
    What does this macro do?
CPU_STRUCTURE_ALIGNMENT
I had two arrays declared with macro.
When I have only one such array declared everything works fine...
Bye,
Kiran
*************************************************
Hi,
    I  went through my code once again ..I found what causes the problem
..but could not solve it.
    I allocate memory for a data structure ,for this I use get buffer from
partition function.
    I have successfully created the partition...and I get RTEMS_SUCCESSFUL
when I get a buffer from that partition.
    I later changed this to a simple malloc.
    And it works with a malloc.
    I also had created parition of various sizes.But when did not create
them..that is I had only one partition for my timer data     structure,It
worked fine.
    While creating partitions I specify the start address as the address of
a Global  Array
    rtems_unsigned8 Partition[4096] CPU_STRUCTURE_ALIGNMENT;
    I have configured my system to these values
#define CONFIGURE_EXECUTIVE_RAM_SIZE (1024*512)
#define CONFIGURE_MAXIMUM_SEMAPHORES 20
#define CONFIGURE_MAXIMUM_TASKS  20
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES     10
#define CONFIGURE_MAXIMUM_TIMERS              10
#define CONFIGURE_MICROSECONDS_PER_TICK  10486
#define CONFIGURE_INIT_TASK_STACK_SIZE (1024*1024)
I tried increasing the size of the global Partition array ..but no change.
What is the difference between using malloc and a partition?(one is dynamic
and the other is statically allocated)
rgds,
Kiran
----- Original Message -----
From: Kiran C <kiranc at tataelxsi.co.in>
To: RTEMS <rtems-users at OARcorp.com>
Sent: Monday, August 20, 2001 5:00 PM
Subject: Invalid Function pointer error


> Hi,
>     I have a strange problem using RTEMS.I have  implemented a linked list
> Timer.
>     ie.A timer list is maintained.every time I call rtems_clock_get ..
>     get the time diffrence ..ie the elapsed time..and I call the callback
> function for the timer(ie the software timer I implemented).
>     The above mentioned code works  well..but as time passes ..say almost
> after 26 sec
>     I get the follwing error in the psim
> --------------------------------------------------
> cpu 1, cia 0xfff00700: double interrupt - MSR[RI] bit clear when
attempting
> to deliver interrupt, cia=0xfff00700, msr=0x1040; srr0=0x0(cia),
> srr1=0x8b042(msr); trap-vector=0x700, trap-msr=0x1040
> ./o-optimize/tca.exe: Caught signal -1 at address 0xfff00700
> ----------------------------------------------------
> I tried debuggung this..what I found was that the callback function
pointer
> is now 0x0.
> But earlier it had a valid pointer..and the call back function was
> called.What could be wrong?
> I tried running the same code in pc386 ,then I came across ,Exception
> 13,What does that mean.(I was running it in VMWare)
> But it ran longer than in psim.
> Has it got any thing to do with how much RAM ,STACK SIZE et al is
allocated
> for each task?
> Hoe you can help me..
> Kiran
>







More information about the users mailing list