From 29c9a63c418f0b395d951e32cf72a92ddc934f06 Mon Sep 17 00:00:00 2001 From: Richard Barry Date: Fri, 13 Jan 2012 16:41:42 +0000 Subject: [PATCH] Add a few lines to the RX ports that allow the vector to be installed when the FreeRTOS code is built as a library. --- Source/portable/Renesas/RX200/port.c | 8 ++++++++ Source/portable/Renesas/RX200/port_asm.src | 1 + Source/portable/Renesas/RX600/port.c | 8 ++++++++ Source/portable/Renesas/RX600/port_asm.src | 1 + 4 files changed, 18 insertions(+) diff --git a/Source/portable/Renesas/RX200/port.c b/Source/portable/Renesas/RX200/port.c index d49a61a47..bfb6cc3f6 100644 --- a/Source/portable/Renesas/RX200/port.c +++ b/Source/portable/Renesas/RX200/port.c @@ -73,6 +73,14 @@ PSW is set with U and I set, and PM and IPL clear. */ /*-----------------------------------------------------------*/ +/* The following lines are to ensure vSoftwareInterruptEntry can be referenced, + and therefore installed in the vector table, when the FreeRTOS code is built +as a library. */ +extern portBASE_TYPE vSoftwareInterruptEntry; +const portBASE_TYPE * p_vSoftwareInterruptEntry = &vSoftwareInterruptEntry; + +/*-----------------------------------------------------------*/ + /* * Function to start the first task executing - written in asm code as direct * access to registers is required. diff --git a/Source/portable/Renesas/RX200/port_asm.src b/Source/portable/Renesas/RX200/port_asm.src index 3214abdf6..e8c566406 100644 --- a/Source/portable/Renesas/RX200/port_asm.src +++ b/Source/portable/Renesas/RX200/port_asm.src @@ -51,6 +51,7 @@ ; licensing and training services. ;*/ .GLB _vSoftwareInterruptISR + .GLB _vSoftwareInterruptEntry .SECTION P,CODE diff --git a/Source/portable/Renesas/RX600/port.c b/Source/portable/Renesas/RX600/port.c index c84776d6b..b48617517 100644 --- a/Source/portable/Renesas/RX600/port.c +++ b/Source/portable/Renesas/RX600/port.c @@ -74,6 +74,14 @@ PSW is set with U and I set, and PM and IPL clear. */ /*-----------------------------------------------------------*/ +/* The following lines are to ensure vSoftwareInterruptEntry can be referenced, + and therefore installed in the vector table, when the FreeRTOS code is built +as a library. */ +extern portBASE_TYPE vSoftwareInterruptEntry; +const portBASE_TYPE * p_vSoftwareInterruptEntry = &vSoftwareInterruptEntry; + +/*-----------------------------------------------------------*/ + /* * Function to start the first task executing - written in asm code as direct * access to registers is required. diff --git a/Source/portable/Renesas/RX600/port_asm.src b/Source/portable/Renesas/RX600/port_asm.src index 3214abdf6..e8c566406 100644 --- a/Source/portable/Renesas/RX600/port_asm.src +++ b/Source/portable/Renesas/RX600/port_asm.src @@ -51,6 +51,7 @@ ; licensing and training services. ;*/ .GLB _vSoftwareInterruptISR + .GLB _vSoftwareInterruptEntry .SECTION P,CODE