- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello All,
In my code I am using two interupts. These interupts are calling functions to initialize themselves. Because both are using the same functions I am getting function re-entry warnings:
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: _CYINTSETPRIORITY/CYLIB
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: _CYINTSETVECTOR/CYLIB
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: CYSPCSTART/CYSPC
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: CYSPCLOCK/CYSPC
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: CYSPCUNLOCK/CYSPC
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: _CYSPCLOADROW/CYSPC
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: _CYSPCWRITEROW/CYSPC
CALLER1: VBUS_IRQ_INTERRUPT/VBUS_IRQ
CALLER2: TAKESAMPLE_IRQ_INTERRUPT/TAKESAMPLE_IRQ
Looking for solutions, it is suggested that I would make these function re-enterant. Is this a correct understanding or is there another way to initilize these interrupts?
Thanks
- Labels:
-
PSoC 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You will have to make tese routines reentrant. There is a different approach for the generated module's functions and your own routines (if you have got some) that are called from different places, within a handler and from main() directly or indirectly.
for the latter case you may use the keyword "reentrant" while the other references have to be kept in a file.
Left click on your project in the Workspace Explorer window, select Add New Item and choose "Keil Reentrancy File".
Here you name all the functions you want to be reentrant, one item per line, case sensitive, no parenthesis, no parameters.
Look here www.cypress.com/ and here www.cypress.com/
Happy coding
Bob