From: yuhzheng Date: Fri, 24 Jan 2020 07:53:14 +0000 (+0000) Subject: Cleaning up LPC51U68 projects: X-Git-Tag: V10.3.0~14 X-Git-Url: https://git.sur5r.net/?p=freertos;a=commitdiff_plain;h=d7f98d4e7a422a2e0d2bab85f10d92b288b714b5 Cleaning up LPC51U68 projects: - user playable settings are all in FreeRTOSConfig.h. - removed reference to IntQueue.h in main_full.c - readme.txt wording. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2809 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project index 226716e4f..e99970c6e 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project @@ -38,7 +38,7 @@ Demo_tasks/IntQueue.c 1 - PARENT-1-PROJECT_LOC/Common/Minimal/IntQueue.c + C:/Users/yuhzheng/Documents/freertos-code/FreeRTOS/Demo/Common/Minimal/IntQueue.c Demo_tasks/blocktim.c diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/CORTEX_M0+_LPC51U68_Keil.uvoptx b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/CORTEX_M0+_LPC51U68_Keil.uvoptx index aa150c600..15f146c56 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/CORTEX_M0+_LPC51U68_Keil.uvoptx +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/CORTEX_M0+_LPC51U68_Keil.uvoptx @@ -162,7 +162,7 @@ 0 1 - 1 + 0 0 0 0 @@ -210,7 +210,7 @@ Application_Code - 0 + 1 0 0 0 @@ -854,7 +854,7 @@ startup - 0 + 1 0 0 0 diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/IAR_specific/LPC51U68_256.FLM b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/IAR_specific/LPC51U68_256.FLM deleted file mode 100644 index 517f0be2e..000000000 Binary files a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/IAR_specific/LPC51U68_256.FLM and /dev/null differ diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/LPC51U68_256.FLM b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/LPC51U68_256.FLM deleted file mode 100644 index 517f0be2e..000000000 Binary files a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/LPC51U68_256.FLM and /dev/null differ diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/compiler_attributes.h b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/compiler_attributes.h index 5167987c9..3a030396e 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/compiler_attributes.h +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/compiler_attributes.h @@ -29,4 +29,9 @@ todo: this is commented out intentionally, as it doesn't seem to work. Clean up is needed*/ -#define COMPILER_ATTRIBUTE_PLACE_IN_2ND_MEMORY_BANK //__attribute__((section("m_data_start"))) + +/* Attribute to place the second FreeRTOS heap in another memory bank, if present. + This is defined as empty, as the linker file (LPC51U68_flash.scf) provided only + one bank as heap. Could still have two FreeRTOS heap regions, as long as they fit. +*/ +#define COMPILER_ATTRIBUTE_PLACE_IN_2ND_MEMORY_BANK diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/FreeRTOSConfig.h index e2551e7bc..f4402eddf 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/FreeRTOSConfig.h @@ -41,6 +41,22 @@ * See http://www.freertos.org/a00110.html *----------------------------------------------------------*/ +/* Demo related settings. */ + +/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to + * 0 -- to run the more comprehensive test and demo application, + * 1 -- to run the simple blinky demo. + */ +#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1 + +/* When mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0, + * set mainNO_TASK_NO_CHECK to + * 0 -- to include all predefined test tasks and checks, + * 1 -- to exclude all predefined test tasks and checks. + * When set to 1 (with few tasks in system), user could observe + * fewer tick interrupts thus reduce overall MCU power consumption. */ +#define mainNO_TASK_NO_CHECK 0 + /* Prevent C code being included by the IAR assembler. */ #ifndef __IASMARM__ #include @@ -52,8 +68,8 @@ #define configUSE_TICK_HOOK 1 #define configCPU_CLOCK_HZ ( SystemCoreClock ) #define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 5 ) -#define configMAX_TASK_NAME_LEN ( 5 ) +#define configMAX_PRIORITIES 5 +#define configMAX_TASK_NAME_LEN 8 #define configUSE_TRACE_FACILITY 1 #define configUSE_16_BIT_TICKS 0 #define configIDLE_SHOULD_YIELD 1 @@ -80,7 +96,7 @@ /* Software timer definitions. */ #define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( 2 ) +#define configTIMER_TASK_PRIORITY 2 #define configTIMER_QUEUE_LENGTH 2 #define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE ) diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main.c b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main.c index 07dd94bc7..820ebfdec 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main.c +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main.c @@ -48,12 +48,6 @@ #include "compiler_attributes.h" -/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to - * 0 -- to run the more comprehensive test and demo application, - * 1 -- to run the simple blinky demo. - */ -#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0 - /*-----------------------------------------------------------*/ typedef enum LED_STATE { LED_RED_BLINK_ON = 1, diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main_full.c b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main_full.c index 286d1be6d..2f6b882d4 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main_full.c +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/app/main_full.c @@ -83,8 +83,6 @@ #include "blocktim.h" #include "countsem.h" #include "recmutex.h" -#include "IntQueue.h" - /* The period after which the check timer will expire provided no errors have been reported by any of the standard demo tasks. ms are converted to the @@ -99,12 +97,6 @@ in ticks using the portTICK_PERIOD_MS constant. */ /* A block time of zero simply means "don't block". */ #define mainDONT_BLOCK ( 0UL ) -/* Set mainNO_TASK_NO_CHECK to - * 0 -- to include all predefined test tasks and checks, - * 1 -- to exclude all predefined test tasks and checks. - * When set to 1 (with few tasks in system), user could observe how tickless - * idle could minimize tick interrupt. */ -#define mainNO_TASK_NO_CHECK ( 1 ) /*-----------------------------------------------------------*/ /* @@ -155,7 +147,6 @@ TimerHandle_t xCheckTimer = NULL; #if ( mainNO_TASK_NO_CHECK == 0 ) /* Create the standard demo tasks, including the interrupt nesting test tasks. */ - vStartInterruptQueueTasks(); vCreateBlockTimeTasks(); vStartCountingSemaphoreTasks(); vStartRecursiveMutexTasks(); @@ -222,11 +213,6 @@ unsigned long ulErrorFound = pdFALSE; /* Check all the demo and test tasks to ensure that they are all still running, and that none have detected an error. */ - if( xAreIntQueueTasksStillRunning() != pdPASS ) - { - ulErrorFound |= ( 0x01UL << 0UL ); - } - if( xAreBlockTimeTestTasksStillRunning() != pdPASS ) { ulErrorFound |= ( 0x01UL << 1UL ); diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/readme.txt b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/readme.txt index fb06ed3a5..7c2280d19 100644 --- a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/readme.txt +++ b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/readme.txt @@ -1,6 +1,9 @@ -This directory contains projects for GCC/IAR/Keil compilers. The targeted MCU is NXP LPC51U68, which is CM0+. +This directory contains three projects for LPCXpresso board for LPC51U68. -todo: -- clean up IAR compiler warnings. (Though the warnings are in vendor's driver code, see if we can clean it up. ) -- finalize Keil linker script.(Two heap blocks shall be placed in intended RAM banks. Currently, both goes to a same RAM bank.) -- GCC project folder directory name is not consistent with the other two. +MCUXpresso IDE (GCC compiler) -- .cproject and .project. +IAR for ARM IDE (IAR compiler) -- CORTEX_M0+_LPC51U68_IAR.* +Keil uVision (ARM Keil compiler) -- CORTEX_M0+_LPC51U68_Keil.* + +Known facts: +- IAR compiler shows Pa082 warning with SDK provided system_LPC51U68.c and fsl_usart.c. Since the warnings are legitimate, they are not ignored. + Refer to https://www.iar.com/support/tech-notes/compiler/warningpa082-undefined-behavior-the-order-of-volatile-accesses-is-undefined-in-this-statement/