* See http://www.freertos.org/a00110.html.\r
*----------------------------------------------------------*/\r
\r
-/*\r
- * The following #error directive is to remind users that a batch file must be\r
- * executed prior to this project being built. Once it has been executed\r
- * remove the #error line below.\r
- */\r
-#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
-\r
-\r
#include <stdint.h>\r
extern uint32_t SystemCoreClock;\r
\r
+/* The following definition allows the startup files that ship with the IDE\r
+to be used without modification when the chip used includes the PMU CM001\r
+errata. */\r
+#define WORKAROUND_PMU_CM001 1\r
+\r
#define configUSE_PREEMPTION 1\r
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1\r
#define configUSE_IDLE_HOOK 0\r
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!\r
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */\r
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )\r
- \r
+\r
/* Normal assert() semantics without relying on the provision of an assert.h\r
header file. */\r
-#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); } \r
- \r
+#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
+\r
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS\r
standard names. */\r
+#if WORKAROUND_PMU_CM001 == 1\r
+ #define xPortPendSVHandler PendSV_Handler_Veneer\r
+#else\r
+ #define xPortPendSVHandler PendSV_Handler\r
+#endif\r
#define vPortSVCHandler SVC_Handler\r
-#define xPortPendSVHandler PendSV_Handler\r
#define xPortSysTickHandler SysTick_Handler\r
\r
-\r
/* Demo application specific settings. */\r
#if UC_ID == 4502\r
/* Hardware includes. */\r