search for: nonisr_only

Displaying 4 results from an estimated 4 matches for "nonisr_only".

2009 Aug 25
2
[LLVMdev] ISRs for PIC16 [was [llvm]r79631 ...]
...-class platform we can probably consider it to be a design flaw if the programmer doesn't know whether a function pointer will be dereferenced from interrupt context or not. This suggests that for any function whose address is taken, there could be a required annotation such as ISR_ONLY or NONISR_ONLY. The compiler could use this to do the right thing without any heroic static analysis or dynamic binding. John
2009 Aug 25
0
[LLVMdev] ISRs for PIC16 [was [llvm]r79631 ...]
...der it to be a design > flaw if > the programmer doesn't know whether a function pointer will be > dereferenced from interrupt context or not. This suggests that for > any > function whose address is taken, there could be a required > annotation such > as ISR_ONLY or NONISR_ONLY. The compiler could use this to do the > right > thing without any heroic static analysis or dynamic binding. > That could work as well; however, for the PIC16, I'd still be tempted to go with a descriptor table for function pointers. Otherwise, a function pointer would need to...
2009 Aug 25
0
[LLVMdev] ISRs for PIC16 [was [llvm]r79631 ...]
Hi Ali, Thanks for bringing this up. You're definitely under very tight design constraints from the hardware. I can certainly sympathize. I think two design elements are being conflated here, and it would be worthwhile splitting them out. For correctness, you need to make sure any routines called from an ISR don't clobber equivalent routines called from mainline code. For
2009 Aug 24
3
[LLVMdev] ISRs for PIC16 [was [llvm]r79631 ...]
Up front I apologize for the lengthy email. Since our patch was not accepted, Chris asked us to follow up with this issue on llvm-dev. For the sake of completeness, let me give a bit of background and the problems that we are facing. I tried to capture as much as possible here so Please do give us feedback. Don't take your stack for granted.... PIC16 has very poor pointer handling, hence