This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Interrupts and system calls ?


Eric Doenges wrote:

Matthieu.GIRARDIN@fr.thalesgroup.com wrote:

Hi everybody !

Can someone describe me exactly what are the system calls allowed during (a
ISR or) a DSR ?
I know that I can only use the cpu registers during the ISR but what can I
do in my DSRs ?


According to the documentation, you may not call any routine that could
trigger the scheduler in an ISR. While not explicitly forbidden, I would
also avoid calling any functions where it is not 100% clear if they are
reentrant or not (i.e. things like malloc()). If you adhere to the eCos
philosophy of doing all the actual work in the DSR, chances are you
won't need to call any functions in the ISR.


In a DSR, you may call any function except those that could block.
I don't think there is a definitive list of what functions could block.
Use some common sense -


...

or look at the documentation - you have the 'Valid contexts' section for every
kernel API call. There is also a table for driver API calls -
http://sources.redhat.com/ecos/docs-2.0/ref/devapi-synchronization-levels.html


savin


-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]