Page 1 of 1

OSSignaSem() called from ISR

PostPosted: Mon Jan 27, 2003 11:04 am
by luben

Today was heavy day for me - whole morning I was fighting with the strange behaviour of < if > with conjuction of OS_Yield() , until I got the source of the problem (reported on the forum).

I'm currently on the track of some other problem, but I'm still not ready to report it - I receive strange behaviour in place, where everything should be more then clear..... Anyway, here is something other, that poped out while searching the main problem:

If I use OSSignalXYZ() into ISR and I forgot to set OSCALL_SIGNALEVENTS from ANYWAHERE, in my opinion SALVO should issue error messages.... but this is not true with the last SALVO version.

I signalled OSSignaSem(.......) into ISR without setting the OSCALL_SIGNALEVENTS (just forgot to do this) and there were no error messages. I think that is some kind of bug.


Re: OSSignaSem() called from ISR

PostPosted: Tue Jan 28, 2003 10:03 am
by aek
Hi Luben.

Salvo can't issue an error message -- PICC/PICC-18 will report if there is a problem with multiple call graphs.

The important thing to recall / remember / realize is that the purpose of the OSCALL_XYZ is twofold:

1) It controls how crtitical sections (and hence, interrupts) are handled in Salvo services, and

2) It controls the interrupt_level pragma properly to allow for multiple call graphs for OSFROM_ANYWHERE.

The rest (making sure that the callgraph requirements are met, using OSProtect()/OSUnprotect() where necessary) is up to the user ...

No Salvo changes to this stuff have been made ...