From f5b5b2db0483d8dff58e4906e3f91360de9e1add Mon Sep 17 00:00:00 2001
From: "Yuhui.Zheng" <10982575+yuhui-zheng@users.noreply.github.com>
Date: Fri, 24 Jan 2020 07:53:14 +0000
Subject: [PATCH] Cleaning up LPC51U68 projects: - user playable settings are
all in FreeRTOSConfig.h. - removed reference to IntQueue.h in main_full.c -
readme.txt wording.
---
.../CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project | 2 +-
.../CORTEX_M0+_LPC51U68_Keil.uvoptx | 6 ++---
.../IAR_specific/LPC51U68_256.FLM | Bin 12752 -> 0 bytes
.../Keil_specific/LPC51U68_256.FLM | Bin 12752 -> 0 bytes
.../Keil_specific/compiler_attributes.h | 7 +++++-
.../app/FreeRTOSConfig.h | 22 +++++++++++++++---
.../app/main.c | 6 -----
.../app/main_full.c | 14 -----------
.../readme.txt | 13 +++++++----
9 files changed, 37 insertions(+), 33 deletions(-)
delete mode 100644 FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/IAR_specific/LPC51U68_256.FLM
delete mode 100644 FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/Keil_specific/LPC51U68_256.FLM
diff --git a/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project b/FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/.project
index 226716e4f9..e99970c6e1 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 aa150c6009..15f146c566 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 517f0be2ee5e8bca7712c491be70c8b83b3b811f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 12752
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
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 517f0be2ee5e8bca7712c491be70c8b83b3b811f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 12752
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
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 5167987c96..3a030396e9 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 e2551e7bcd..f4402eddf5 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 07dd94bc70..820ebfdec8 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 286d1be6d1..2f6b882d44 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 fb06ed3a54..7c2280d192 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/