Forums

IAP and Keil RTX

Started by Unknown March 25, 2009
Hello,

I am trying to use the ARM flash in order to store application data. According to the manual all interrupts must be disabled prior calling the IAP functions. Does anyone have called the IAP function in a RTX task ? The RTX uses interrupts in order to work.

Regards,
Andre

An Engineer's Guide to the LPC2100 Series

You need to use SWI functions (modify RTXs SWI table, this is all very well
documented) to disable and enable interrupts.
Depending on the complexity of your system you may be able to get away with
simply using the RTX functions tsk_lock and tsk_unlock.

~ Paul Claessen

From: l... [mailto:l...] On Behalf Of
AndrMoutinho
Sent: Wednesday, March 25, 2009 4:09 PM
To: l...
Subject: [lpc2000] IAP and Keil RTX

Hello,

I am trying to use the ARM flash in order to store application data.
According to the manual all interrupts must be disabled prior calling the
IAP functions. Does anyone have called the IAP function in a RTX task ? The
RTX uses interrupts in order to work.

Regards,
Andre



To clarify: you dont WANT RTX to run, while youre writing to flash!!

Also: what I mentioned about task_lock(): that only stops the OS system
timer (preventing pre-empting tasks and scheduling new ones, as well as user
timers going off). So you would STILL have to make sure nothing else can
interrupt.
So its much easier to use SWI functions to disable/enable interrupts

~ Paul Claessen

From: l... [mailto:l...] On Behalf Of
Paul Claessen
Sent: Wednesday, March 25, 2009 5:00 PM
To: l...
Subject: RE: [lpc2000] IAP and Keil RTX

You need to use SWI functions (modify RTXs SWI table, this is all very well
documented) to disable and enable interrupts.
Depending on the complexity of your system you may be able to get away with
simply using the RTX functions tsk_lock and tsk_unlock.

~ Paul Claessen

From: l...
[mailto:l... ] On
Behalf Of
AndrMoutinho
Sent: Wednesday, March 25, 2009 4:09 PM
To: l...
Subject: [lpc2000] IAP and Keil RTX

Hello,

I am trying to use the ARM flash in order to store application data.
According to the manual all interrupts must be disabled prior calling the
IAP functions. Does anyone have called the IAP function in a RTX task ? The
RTX uses interrupts in order to work.

Regards,
Andre





Hello,

I have done this and it I think that it worked:


unsigned long ints;

ints = VICIntEnable;
VICIntEnClr = 0xffffffff;

(call IAP functions here)

VICIntEnable = ints;




tsk_lock/tsk_unlock did not work.

Thanks
Andre

-----Mensagem original-----
De: l... [mailto:l...] Em nome de Paul Claessen
Enviada em: quarta-feira, 25 de mar de 2009 18:00
Para: l...
Assunto: RE: [lpc2000] IAP and Keil RTX

You need to use SWI functions (modify RTX's SWI table, this is all very well
documented) to disable and enable interrupts.
Depending on the complexity of your system you may be able to get away with
simply using the RTX functions tsk_lock and tsk_unlock.

~ Paul Claessen

From: lpc2000@yahoogroups .com [mailto:lpc2000@yahoogroups .com] On Behalf Of
AndrMoutinho
Sent: Wednesday, March 25, 2009 4:09 PM
To: lpc2000@yahoogroups .com
Subject: [lpc2000] IAP and Keil RTX

Hello,

I am trying to use the ARM flash in order to store application data.
According to the manual all interrupts must be disabled prior calling the
IAP functions. Does anyone have called the IAP function in a RTX task ? The
RTX uses interrupts in order to work.

Regards,
Andre