Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard.
Dependents: denki-yohou_b TestY201 Network-RTOS NTPClient_HelloWorld ... more
Deprecated
This is the mbed 2 rtos library. mbed OS 5 integrates the mbed library with mbed-rtos. With this, we have provided thread safety for all mbed APIs. If you'd like to learn about using mbed OS 5, please see the docs.
Diff: rtx/TARGET_CORTEX_M/TARGET_M3/TOOLCHAIN_ARM/HAL_CM3.c
- Revision:
- 112:53ace74b190c
- Parent:
- 49:77c8e4604045
--- a/rtx/TARGET_CORTEX_M/TARGET_M3/TOOLCHAIN_ARM/HAL_CM3.c Tue May 03 00:15:52 2016 +0100 +++ b/rtx/TARGET_CORTEX_M/TARGET_M3/TOOLCHAIN_ARM/HAL_CM3.c Thu May 05 20:45:13 2016 +0100 @@ -1,12 +1,12 @@ /*---------------------------------------------------------------------------- - * RL-ARM - RTX + * CMSIS-RTOS - RTX *---------------------------------------------------------------------------- * Name: HAL_CM3.C * Purpose: Hardware Abstraction Layer for Cortex-M3 - * Rev.: V4.60 + * Rev.: V4.70 *---------------------------------------------------------------------------- * - * Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH + * Copyright (c) 1999-2009 KEIL, 2009-2013 ARM Germany GmbH * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -33,7 +33,7 @@ *---------------------------------------------------------------------------*/ #include "rt_TypeDef.h" -#include "RTX_Conf.h" +#include "RTX_Config.h" #include "rt_System.h" #include "rt_HAL_CM.h" #include "rt_Task.h" @@ -99,7 +99,7 @@ /*--------------------------- _free_box -------------------------------------*/ -__asm int _free_box (void *box_mem, void *box) { +__asm U32 _free_box (void *box_mem, void *box) { /* Function wrapper for Unprivileged/Privileged mode. */ LDR R12,=__cpp(rt_free_box) MRS R3,IPSR @@ -124,6 +124,11 @@ IMPORT SVC_Table IMPORT rt_stk_check +#ifdef IFX_XMC4XXX + EXPORT SVC_Handler_Veneer +SVC_Handler_Veneer +#endif + MRS R0,PSP ; Read PSP LDR R1,[R0,#24] ; Read Saved PC from Stack LDRB R1,[R1,#-2] ; Load SVC Number @@ -157,7 +162,12 @@ SVC_Exit MVN LR,#:NOT:0xFFFFFFFD ; set EXC_RETURN value +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else BX LR +#endif /*------------------- User SVC ------------------------------*/ @@ -188,6 +198,11 @@ __asm void PendSV_Handler (void) { PRESERVE8 +#ifdef IFX_XMC4XXX + EXPORT PendSV_Handler_Veneer +PendSV_Handler_Veneer +#endif + BL __cpp(rt_pop_req) Sys_Switch @@ -212,7 +227,12 @@ Sys_Exit MVN LR,#:NOT:0xFFFFFFFD ; set EXC_RETURN value +#ifdef IFX_XMC4XXX + PUSH {LR} + POP {PC} +#else BX LR ; Return to Thread Mode +#endif ALIGN } @@ -223,6 +243,11 @@ __asm void SysTick_Handler (void) { PRESERVE8 +#ifdef IFX_XMC4XXX + EXPORT SysTick_Handler_Veneer +SysTick_Handler_Veneer +#endif + BL __cpp(rt_systick) B Sys_Switch