From 64ac3ffbbbd7e31b31093b5d91effec7f9e8123b Mon Sep 17 00:00:00 2001 From: rtel Date: Sun, 22 Nov 2015 22:03:00 +0000 Subject: [PATCH] FreeRTOS Source files: + Updated all ARM Cortex-M0 ports to include an additional ISB instruction as the scheduler is started. Demo app files: + Fixex build issues in XMC1000 demos. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2395 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../Keil_Specific/system_XMC1100.h | 84 ++++++ .../Keil_Specific/system_XMC1200.h | 84 ++++++ .../Keil_Specific/system_XMC1300.h | 84 ++++++ .../RTOSDemo.ewd | 266 ++++++++++++++++-- .../RTOSDemo.ewp | 74 +++-- .../RTOSDemo.uvopt | 134 ++------- .../RTOSDemo.uvproj | 169 ++++++++++- .../settings/RTOSDemo.wsdt | 14 +- FreeRTOS/Source/portable/GCC/ARM_CM0/port.c | 1 + .../Source/portable/IAR/ARM_CM0/portasm.s | 1 + FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c | 1 + 11 files changed, 739 insertions(+), 173 deletions(-) create mode 100644 FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1100.h create mode 100644 FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1200.h create mode 100644 FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1300.h diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1100.h b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1100.h new file mode 100644 index 000000000..dbc29b020 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1100.h @@ -0,0 +1,84 @@ +/****************************************************************************** + * @file system_XMC1100.h + * @brief Device specific initialization for the XMC1300-Series according + * to CMSIS + * @version V1.2 + * @date 19 Jul 2013 + * + * @note + * Copyright (C) 2012-2013 Infineon Technologies AG. All rights reserved. + + * + * @par + * Infineon Technologies AG (Infineon) is supplying this software for use with + * Infineon’s microcontrollers. + * + * This file can be freely distributed within development tools that are + * supporting such microcontrollers. + * + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/* + * *************************** Change history ********************************* + * V1.1, 13 Dec 2012, PKB, Created this table, added extern and stdint + * V1.2, 19 Jul 2013, PKB, Added header guard, BootROM header, C++ support + */ +#ifndef SYSTEM_XMC1100_H +#define SYSTEM_XMC1100_H + +/******************************************************************************* + * HEADER FILES + *******************************************************************************/ + +#include + +/******************************************************************************* + * GLOBAL VARIABLES + *******************************************************************************/ + +extern uint32_t SystemCoreClock; + +/******************************************************************************* + * API PROTOTYPES + *******************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Initialize the system + * + */ +void SystemInit(void); + +/** + * @brief Initialize CPU settings + * + */ +void SystemCoreSetup(void); + +/** + * @brief Initialize clock + * + */ +void SystemCoreClockSetup(void); + +/** + * @brief Update SystemCoreClock variable + * + */ +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1200.h b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1200.h new file mode 100644 index 000000000..52fd7e551 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1200.h @@ -0,0 +1,84 @@ +/****************************************************************************** + * @file system_XMC1200.h + * @brief Device specific initialization for the XMC1300-Series according + * to CMSIS + * @version V1.2 + * @date 19 Jul 2013 + * + * @note + * Copyright (C) 2012-2013 Infineon Technologies AG. All rights reserved. + + * + * @par + * Infineon Technologies AG (Infineon) is supplying this software for use with + * Infineon’s microcontrollers. + * + * This file can be freely distributed within development tools that are + * supporting such microcontrollers. + * + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/* + * *************************** Change history ********************************* + * V1.1, 13 Dec 2012, PKB, Created this table, added extern and stdint + * V1.2, 19 Jul 2013, PKB, Added header guard, BootROM header, C++ support + */ +#ifndef SYSTEM_XMC1200_H +#define SYSTEM_XMC1200_H + +/******************************************************************************* + * HEADER FILES + *******************************************************************************/ + +#include + +/******************************************************************************* + * GLOBAL VARIABLES + *******************************************************************************/ + +extern uint32_t SystemCoreClock; + +/******************************************************************************* + * API PROTOTYPES + *******************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Initialize the system + * + */ +void SystemInit(void); + +/** + * @brief Initialize CPU settings + * + */ +void SystemCoreSetup(void); + +/** + * @brief Initialize clock + * + */ +void SystemCoreClockSetup(void); + +/** + * @brief Update SystemCoreClock variable + * + */ +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1300.h b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1300.h new file mode 100644 index 000000000..eaf710d37 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/Keil_Specific/system_XMC1300.h @@ -0,0 +1,84 @@ +/****************************************************************************** + * @file system_XMC1300.h + * @brief Device specific initialization for the XMC1300-Series according + * to CMSIS + * @version V1.2 + * @date 19 Jul 2013 + * + * @note + * Copyright (C) 2012-2013 Infineon Technologies AG. All rights reserved. + + * + * @par + * Infineon Technologies AG (Infineon) is supplying this software for use with + * Infineon’s microcontrollers. + * + * This file can be freely distributed within development tools that are + * supporting such microcontrollers. + * + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/* + * *************************** Change history ********************************* + * V1.1, 13 Dec 2012, PKB, Created this table, added extern and stdint + * V1.2, 19 Jul 2013, PKB, Added header guard, BootROM header, C++ support + */ +#ifndef SYSTEM_XMC1300_H +#define SYSTEM_XMC1300_H + +/******************************************************************************* + * HEADER FILES + *******************************************************************************/ + +#include + +/******************************************************************************* + * GLOBAL VARIABLES + *******************************************************************************/ + +extern uint32_t SystemCoreClock; + +/******************************************************************************* + * API PROTOTYPES + *******************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Initialize the system + * + */ +void SystemInit(void); + +/** + * @brief Initialize CPU settings + * + */ +void SystemCoreSetup(void); + +/** + * @brief Initialize clock + * + */ +void SystemCoreClockSetup(void); + +/** + * @brief Update SystemCoreClock variable + * + */ +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.ewd index 928e2735a..05534715b 100644 --- a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.ewd +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.ewd @@ -12,7 +12,7 @@ C-SPY 2 - 25 + 26 1 1 + + + + + + @@ -257,7 +281,7 @@ CMSISDAP_ID 2 - 0 + 2 1 1 + + + + + + @@ -472,7 +520,7 @@ IJET_ID 2 - 2 + 6 1 1 + + + + + @@ -1207,7 +1277,7 @@ @@ -1554,7 +1648,7 @@ CMSISDAP_ID 2 - 0 + 2 1 1 + + + + + + @@ -1769,7 +1887,7 @@ IJET_ID 2 - 2 + 6 1 1 + + + + + @@ -2504,7 +2644,7 @@ @@ -2851,7 +3015,7 @@ CMSISDAP_ID 2 - 0 + 2 1 1 + + + + + + @@ -3066,7 +3254,7 @@ IJET_ID 2 - 2 + 6 1 1 + + + + + @@ -3801,7 +4011,7 @@ @@ -607,6 +616,7 @@ + 0 @@ -966,7 +976,7 @@ @@ -1544,6 +1563,7 @@ + 0 @@ -1903,7 +1923,7 @@ @@ -2481,6 +2510,7 @@ + 0 diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvopt b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvopt index efd8fb8b6..338d3fa81 100644 --- a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvopt +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvopt @@ -13,6 +13,7 @@ *.txt; *.h; *.inc *.plm *.cpp + 0 @@ -31,6 +32,7 @@ 1 1 0 + 0 1 @@ -73,7 +75,7 @@ 1 0 - 0 + 1 255 @@ -98,16 +100,6 @@ datashts\arm\cortex_m0\r0p0\DUI0497A_CORTEX_M0_R0P0_GENERIC_UG.PDF - - SARMCM3.DLL - - DARMCM1.DLL - -pCM0 - SARMCM3.DLL - - TARMCM1.DLL - -pCM0 - 0 1 @@ -126,9 +118,11 @@ 0 1 1 + 1 + 1 0 0 - 7 + 6 @@ -179,6 +173,7 @@ 1 2 0x10001000 + 0 @@ -212,6 +207,7 @@ + 0 @@ -226,6 +222,7 @@ 1 1 0 + 0 1 @@ -293,16 +290,6 @@ datashts\arm\cortex_m0\r0p0\DUI0497A_CORTEX_M0_R0P0_GENERIC_UG.PDF - - SARMCM3.DLL - - DARMCM1.DLL - -pCM0 - SARMCM3.DLL - - TARMCM1.DLL - -pCM0 - 0 1 @@ -321,9 +308,11 @@ 0 1 1 + 1 + 1 0 0 - 7 + 6 @@ -408,6 +397,7 @@ 1 2 0x10001000 + 0 @@ -441,6 +431,7 @@ + 0 @@ -455,6 +446,7 @@ 1 1 0 + 0 1 @@ -495,9 +487,9 @@ 0 - 1 + 0 0 - 1 + 0 255 @@ -522,16 +514,6 @@ datashts\arm\cortex_m0\r0p0\DUI0497A_CORTEX_M0_R0P0_GENERIC_UG.PDF - - SARMCM3.DLL - - DARMCM1.DLL - -pCM0 - SARMCM3.DLL - - TARMCM1.DLL - -pCM0 - 0 1 @@ -550,9 +532,11 @@ 0 1 1 + 1 + 1 0 0 - 7 + 6 @@ -637,6 +621,7 @@ 1 2 0x10001000 + 0 @@ -670,12 +655,13 @@ + 0 System - 1 + 0 0 0 0 @@ -685,10 +671,7 @@ 2 0 0 - 0 0 - 120 - 132 0 .\Keil_Specific\startup_XMC1000.s startup_XMC1000.s @@ -701,10 +684,7 @@ 1 0 0 - 0 0 - 1 - 1 0 .\Keil_Specific\system_XMC1300.c system_XMC1300.c @@ -717,10 +697,7 @@ 1 0 0 - 0 0 - 0 - 0 0 .\Keil_Specific\system_XMC1100.c system_XMC1100.c @@ -733,10 +710,7 @@ 1 0 0 - 0 0 - 0 - 0 0 .\Keil_Specific\system_XMC1200.c system_XMC1200.c @@ -747,7 +721,7 @@ FreeRTOS source - 1 + 0 0 0 0 @@ -757,10 +731,7 @@ 1 1 0 - 0 0 - 0 - 0 0 ..\..\Source\timers.c timers.c @@ -773,10 +744,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\..\Source\list.c list.c @@ -789,10 +757,7 @@ 1 0 0 - 0 0 - 1028 - 1036 0 ..\..\Source\queue.c queue.c @@ -805,10 +770,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\..\Source\tasks.c tasks.c @@ -821,10 +783,7 @@ 1 0 0 - 0 0 - 253 - 261 0 ..\..\Source\portable\RVDS\ARM_CM0\port.c port.c @@ -837,10 +796,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\..\Source\portable\MemMang\heap_4.c heap_4.c @@ -861,10 +817,7 @@ 1 0 0 - 45 0 - 63 - 96 0 .\main.c main.c @@ -877,10 +830,7 @@ 1 0 0 - 0 0 - 0 - 0 0 .\main-blinky.c main-blinky.c @@ -893,10 +843,7 @@ 5 0 0 - 22 0 - 0 - 0 0 .\FreeRTOSConfig.h FreeRTOSConfig.h @@ -909,10 +856,7 @@ 1 0 0 - 0 0 - 0 - 0 0 .\main-full.c main-full.c @@ -925,10 +869,7 @@ 1 0 0 - 0 0 - 0 - 0 0 .\ParTest_XMC1200.c ParTest_XMC1200.c @@ -941,10 +882,7 @@ 2 0 0 - 0 0 - 0 - 0 0 .\Keil_Specific\RegTest_Keil.s RegTest_Keil.s @@ -957,10 +895,7 @@ 1 0 0 - 15 0 - 0 - 0 0 .\ParTest_XMC1100.c ParTest_XMC1100.c @@ -973,10 +908,7 @@ 1 0 0 - 15 0 - 0 - 0 0 .\ParTest_XMC1300.c ParTest_XMC1300.c @@ -997,10 +929,7 @@ 1 0 0 - 0 0 - 411 - 419 0 ..\Common\Minimal\dynamic.c dynamic.c @@ -1013,10 +942,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\Common\Minimal\recmutex.c recmutex.c @@ -1029,10 +955,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\Common\Minimal\blocktim.c blocktim.c @@ -1045,10 +968,7 @@ 1 0 0 - 0 0 - 0 - 0 0 ..\Common\Minimal\countsem.c countsem.c @@ -1061,10 +981,7 @@ 1 0 0 - 35 0 - 0 - 0 0 ..\Common\Minimal\QueueSet.c QueueSet.c @@ -1077,10 +994,7 @@ 1 0 0 - 47 0 - 0 - 0 0 ..\Common\Minimal\QueueOverwrite.c QueueOverwrite.c diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvproj b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvproj index cb4f71533..83ba7e3b1 100644 --- a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvproj +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/RTOSDemo.uvproj @@ -10,6 +10,7 @@ XMC1300 0x4 ARM-ADS + 5060020::V5.06 (build 20)::ARMCC XMC1302-200 @@ -30,6 +31,7 @@ SFD\Infineon\XMC1300\xmc1300.SFR + 0 0 @@ -71,6 +73,8 @@ 0 0 + 0 + 0 0 @@ -79,6 +83,8 @@ 0 0 + 0 + 0 0 @@ -97,6 +103,7 @@ 3 + 1 SARMCM3.DLL @@ -126,6 +133,7 @@ 1 1 0 + 1 1 @@ -137,9 +145,10 @@ 0 1 1 + 1 0 - 7 + 6 @@ -169,6 +178,10 @@ BIN\UL2CM3.DLL "" () + + + + 0 @@ -215,6 +228,7 @@ 0 0 0 + 0 3 3 0 @@ -347,11 +361,17 @@ 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 - ..\CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;..\Common\include + ..\CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;..\Common\include;.\CMSIS;.\Keil_Specific @@ -363,6 +383,7 @@ 0 0 0 + 0 @@ -379,6 +400,7 @@ 0 0x10001000 0x20000000 + @@ -421,6 +443,7 @@ 11 + 1 @@ -437,6 +460,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -466,6 +495,7 @@ 11 + 1 @@ -482,6 +512,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -571,6 +607,7 @@ 11 + 1 @@ -587,6 +624,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -621,6 +664,7 @@ 11 + 1 @@ -637,6 +681,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -695,6 +745,7 @@ XMC1200 0x4 ARM-ADS + 5060020::V5.06 (build 20)::ARMCC XMC1200-200 @@ -715,6 +766,7 @@ SFD\Infineon\XMC1200\xmc1200.SFR + 0 0 @@ -756,6 +808,8 @@ 0 0 + 0 + 0 0 @@ -764,6 +818,8 @@ 0 0 + 0 + 0 0 @@ -782,6 +838,7 @@ 3 + 1 SARMCM3.DLL @@ -811,6 +868,7 @@ 1 1 0 + 1 1 @@ -822,9 +880,10 @@ 0 1 1 + 1 0 - 7 + 6 @@ -854,6 +913,10 @@ Segger\JL2CM3.dll "" () + + + + 0 @@ -900,6 +963,7 @@ 1 0 0 + 0 3 3 0 @@ -1032,11 +1096,17 @@ 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 - .;..\Common\include;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;.\CMSIS + .;..\Common\include;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;.\CMSIS;.\Keil_Specific @@ -1048,6 +1118,7 @@ 0 0 0 + 0 @@ -1064,6 +1135,7 @@ 0 0x10001000 0x20000000 + .\Output\RTOSDemo.sct @@ -1101,6 +1173,7 @@ 11 + 1 @@ -1117,6 +1190,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1146,6 +1225,7 @@ 11 + 1 @@ -1162,6 +1242,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1256,6 +1342,7 @@ 11 + 1 @@ -1272,6 +1359,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1306,6 +1399,7 @@ 11 + 1 @@ -1322,6 +1416,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1351,6 +1451,7 @@ 11 + 1 @@ -1367,6 +1468,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1420,6 +1527,7 @@ XMC1100 0x4 ARM-ADS + 5060020::V5.06 (build 20)::ARMCC XMC1100-64 @@ -1440,6 +1548,7 @@ SFD\Infineon\XMC1100\xmc1100.SFR + 0 0 @@ -1481,6 +1590,8 @@ 0 0 + 0 + 0 0 @@ -1489,6 +1600,8 @@ 0 0 + 0 + 0 0 @@ -1507,6 +1620,7 @@ 3 + 1 SARMCM3.DLL @@ -1536,6 +1650,7 @@ 1 1 0 + 1 1 @@ -1547,9 +1662,10 @@ 0 1 1 + 1 0 - 7 + 6 @@ -1579,6 +1695,10 @@ Segger\JL2CM3.dll + + + + 0 @@ -1625,6 +1745,7 @@ 1 0 0 + 0 3 3 0 @@ -1757,11 +1878,17 @@ 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 - .;..\Common\include;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;.\CMSIS + .;..\Common\include;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM0;.\CMSIS;.\Keil_Specific @@ -1773,6 +1900,7 @@ 0 0 0 + 0 @@ -1789,6 +1917,7 @@ 0 0x10001000 0x20000000 + .\Output\RTOSDemo.sct @@ -1826,6 +1955,7 @@ 11 + 1 @@ -1842,6 +1972,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1876,6 +2012,7 @@ 11 + 1 @@ -1892,6 +2029,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -1981,6 +2124,7 @@ 11 + 1 @@ -1997,6 +2141,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 @@ -2036,6 +2186,7 @@ 11 + 1 @@ -2052,6 +2203,12 @@ 0 2 2 + 2 + 2 + 0 + 0 + 0 + 0 diff --git a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/settings/RTOSDemo.wsdt index 0c08a5408..4720a95ab 100644 --- a/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/settings/RTOSDemo.wsdt +++ b/FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/settings/RTOSDemo.wsdt @@ -3,7 +3,7 @@ - RTOSDemo/XMC1200 Boot Kit + RTOSDemo/XMC1300 Boot Kit @@ -25,7 +25,7 @@ - + TabID-23707-15152 @@ -33,11 +33,11 @@ Workspace - RTOSDemoRTOSDemo/System + RTOSDemo - 0 + 0 TabID-19002-15240 @@ -47,20 +47,20 @@ TabID-13685-21727Debug LogDebug-Log - 0 + 0 - TextEditor$WS_DIR$\main.c00000565553555300100000010000001 + TextEditor$WS_DIR$\main.c00000655553555300100000010000001 - iaridepm.enu1-2-2740435-2-2200200119048203666260119755601-2-21981682-2-216842001002381203666119048203666 + iaridepm.enu1-2-2742435-2-2200200119048203252260119756098-2-21981682-2-216842001002381203252119048203252 diff --git a/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c index 15803263e..73e90a5e2 100644 --- a/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c +++ b/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c @@ -183,6 +183,7 @@ void vPortStartFirstTask( void ) " msr psp, r0 \n" /* This is now the new top of stack to use in the task. */ " movs r0, #2 \n" /* Switch to the psp stack. */ " msr CONTROL, r0 \n" + " isb \n" " pop {r0-r5} \n" /* Pop the registers that are saved automatically. */ " mov lr, r5 \n" /* lr is now in r5. */ " cpsie i \n" /* The first task has its context and interrupts can be enabled. */ diff --git a/FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s b/FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s index aa4ee7668..3cabe4191 100644 --- a/FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s +++ b/FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s @@ -149,6 +149,7 @@ vPortStartFirstTask msr psp, r0 /* This is now the new top of stack to use in the task. */ movs r0, #2 /* Switch to the psp stack. */ msr CONTROL, r0 + isb pop {r0-r5} /* Pop the registers that are saved automatically. */ mov lr, r5 /* lr is now in r5. */ cpsie i /* The first task has its context and interrupts can be enabled. */ diff --git a/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c b/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c index c830b8898..20759f974 100644 --- a/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c +++ b/FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c @@ -181,6 +181,7 @@ __asm void prvPortStartFirstTask( void ) msr psp, r0 /* This is now the new top of stack to use in the task. */ movs r0, #2 /* Switch to the psp stack. */ msr CONTROL, r0 + isb pop {r0-r5} /* Pop the registers that are saved automatically. */ mov lr, r5 /* lr is now in r5. */ cpsie i /* The first task has its context and interrupts can be enabled. */ -- 2.39.5