you need to look at your memory map (*.map) and see how much ram you are using. 6 timer blocks takes up 36 bytes of ram. Not very much. Each task takes at...
I have seen that the interrupt vectors are defined as PUBWEAK in avrx_iar_vect.s (for use with IAR compiler), but I don't understand what it means. Is there...
Pub weak are symbols that can be overriden by other symbols. So in the case of the interrupt vector table if you don't define an ISR, the pub weak will be...
Hi Pippo, IAR actually does explain this in the Manual Corrections and Updates ("manuals.htm" in doc directory). I had the same question when I was working on...
You have been very helpful, Steve. Thanks Pippo ... was ... to be ... by XLINK. ... with one or ... XLINK will ... it must ... part. ... that ... the ... ...
Hello everybody, I'm having some problems with my AVR90s8535. I try to run four tasks and the "manual" said 3-4 task should work fine. It won't work. Am I out...
Well, the difficulty with true multi-tasking systems is precisely that: Why doesn't it work? You probably have a stack issue, or, priorities set wrong or...
hi Now I am studying the avrx kernel downloaded from Mr. larry barello's website.I don't understand where the kernel set the SREG to interrupt when it is run....
Hi, I'm working on a "proper" message queue, where one or more producer processes put messages into a queue, and a single consumer process gets the messages as...
Woof! I think the existing message queue supports what you want because tasks don't *have* to wait for their message to be acknowledged. You would need some...
... tasks don't *have* to ... sort of mechanism to ... I had assumed that this was the way the message queues worked but it's nice to have it confirmed. I'm...
Acknowledging a message (setting a semaphore) is very quick. The only time cycles are consumed is if you block waiting for that acknowledgment. Even...
Malloc can be dragged into AvrX unawares by new additions to avr-libc. avr-libc has added standard IO facilities (can now add #include <stdio.h>). However...
Larry, ... Which sounds pretty much like what I have anyway, excepting needing more memory---my queue elements are 3 bytes each, so an n-length queue needs ...
Hi everyone, I'm having some problem with BasicTest3 and IAR Embedded Workbench 2.31C. Fisrt question. These are some of the first lines of the code (in...
Hi everyone I'm having some problem with starting cancelling timers. ... TimerControlBlock timer1; AvrXStartTimer(&timer1, 4); AvrXCancelTimer(&timer1); ...
I reviewed BasicTest3.c which exercises the timer subsystem and your particular test case (queueing/cancelling/queueing a single time on the queue) is not...
Hi Larry I post only these lines because my code is simply an exercise that start from BasicTest3.c. I noted that BasicTest3.c works in the same manner when...
Wow, it must have been a year since I last compiled and ran the test cases. Amazingly enough they did compile and run. Pippo: I am not seeing the problem you...
Hi Larry Currently I'm in holiday. When I come back at home I'll send you everything Bye Pippo ... test cases. Amazingly ... works for me under GCC. ... if it...
Hi again Larry, I come back from holiday 8(( I tried BasicTest3 under GCC and it works fine: therefore the problem is IAR related. I remember that I modified...
Yes, the file AvrX.inc needs to agree with avrx-ctoasm.inc The former defines offsets into the stack layout of the saved context and if you change registers...
Is it ok to call AvrXCancelTimer from within an interrupt timer. If not, how do I do it??? Seems to work most of the time, but eventually I lose a task that...
Although CancelTimer was never intended to be called from an interrupt routine it should work. There may be some subtle race condition that occurs inside timer...
Hi Larry I found the problem: in the newer version of IAR the calling convetions are changed, but there is an option to tell the compiler to use the previous...
Yes, the 'lost' task is actually hung on a timer that never seems to expire. This all came about when the need arose to have an interrupt driven serial IO...