Tactile Switch Hardware Interrupt
Posted by
Shashank on March 19, 2013
Hello all,
I am new to this forum and RTOS too. I am looking for a code to generate a tactile switch interrupt on PIC32MX360F512L. I am using PIC32 starter kit. I tried to call the ISR void __ISR(_CHANGE_NOTICE_VECTOR, ipl2) ChangeNotice_Handler(void) from a task but it gave me error "/pic32mx/include/sys/appio.h:(.vector_26+0x0): undefined reference to `ChangeNotice_Handler' ". I tired to search the interrupt in the RTOS files but could not get it. Can somebody help with this?
Thanks in advance...
RE: Tactile Switch Hardware Interrupt
Posted by
Dave on March 19, 2013
The page linked below has a section "Interrupt service routines" that tells you how to write an interrupt that uses FreeRTOS
http://www.freertos.org/port_PIC32_MIPS_MK4.html
RE: Tactile Switch Hardware Interrupt
Posted by
Shashank on March 19, 2013
Thanks a lot for the quick reply!!!
I tried to implement in the similar manner; creating .S file and .c file containing the void __ISR(_CHANGE_NOTICE_VECTOR, ipl2) ChangeNotice_Handler(void); but it still gives me the same error "/pic32mx/include/sys/appio.h:(.vector_26+0x0): undefined reference to `ChangeNotice_Handler' "
Where do you think am going wrong? I checked the appio.h file and it has nothing in it regarding it....
RE: Tactile Switch Hardware Interrupt
Posted by
Richard on March 19, 2013
I don't think your problem is in any way FreeRTOS related. It sounds like you have a simple build problem, or linking problem to be more precise.
If you are calling ChangeNotice_Handler in your code then the code you are building must somewhere define a function called ChangeNotice_Handler, but evidently (from the error message) it doesn't. That would be the case whether you included FreeRTOS in your build or not because ChangeNotice_Handler is definitely not a FreeRTOS function.
Regards.
RE: Tactile Switch Hardware Interrupt
Posted by
Shashank on March 20, 2013
Hey thanks Richard for the reply!!
I did the code according to the procedure mentioned on the page http://www.freertos.org/port_PIC32_MIPS_MK4.html but could not make it run. So I looked through the examples given and found that .setnomips16 and .set noreorder was mentioned in every .S file. I modified my code accordingly and it worked though I do not understand what these line mean. My .S files looks something like this :
.setnomips16
.set noreorder
.extern vSW1InterruptHandler
.globalChangeNotice_Handler
.setnoreorder
.set noat
.entChangeNotice_Handler
Thanking you.