mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 11:09:01 +01:00 
			
		
		
		
	Cleaning up LPC51U68 projects:
- user playable settings are all in FreeRTOSConfig.h. - removed reference to IntQueue.h in main_full.c - readme.txt wording.
This commit is contained in:
		
							parent
							
								
									2415dc26b0
								
							
						
					
					
						commit
						f5b5b2db04
					
				@ -38,7 +38,7 @@
 | 
			
		||||
		<link>
 | 
			
		||||
			<name>Demo_tasks/IntQueue.c</name>
 | 
			
		||||
			<type>1</type>
 | 
			
		||||
			<locationURI>PARENT-1-PROJECT_LOC/Common/Minimal/IntQueue.c</locationURI>
 | 
			
		||||
			<location>C:/Users/yuhzheng/Documents/freertos-code/FreeRTOS/Demo/Common/Minimal/IntQueue.c</location>
 | 
			
		||||
		</link>
 | 
			
		||||
		<link>
 | 
			
		||||
			<name>Demo_tasks/blocktim.c</name>
 | 
			
		||||
 | 
			
		||||
@ -162,7 +162,7 @@
 | 
			
		||||
      <DebugFlag>
 | 
			
		||||
        <trace>0</trace>
 | 
			
		||||
        <periodic>1</periodic>
 | 
			
		||||
        <aLwin>1</aLwin>
 | 
			
		||||
        <aLwin>0</aLwin>
 | 
			
		||||
        <aCover>0</aCover>
 | 
			
		||||
        <aSer1>0</aSer1>
 | 
			
		||||
        <aSer2>0</aSer2>
 | 
			
		||||
@ -210,7 +210,7 @@
 | 
			
		||||
 | 
			
		||||
  <Group>
 | 
			
		||||
    <GroupName>Application_Code</GroupName>
 | 
			
		||||
    <tvExp>0</tvExp>
 | 
			
		||||
    <tvExp>1</tvExp>
 | 
			
		||||
    <tvExpOptDlg>0</tvExpOptDlg>
 | 
			
		||||
    <cbSel>0</cbSel>
 | 
			
		||||
    <RteFlg>0</RteFlg>
 | 
			
		||||
@ -854,7 +854,7 @@
 | 
			
		||||
 | 
			
		||||
  <Group>
 | 
			
		||||
    <GroupName>startup</GroupName>
 | 
			
		||||
    <tvExp>0</tvExp>
 | 
			
		||||
    <tvExp>1</tvExp>
 | 
			
		||||
    <tvExpOptDlg>0</tvExpOptDlg>
 | 
			
		||||
    <cbSel>0</cbSel>
 | 
			
		||||
    <RteFlg>0</RteFlg>
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
@ -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 <stdint.h>
 | 
			
		||||
@ -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 )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
@ -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 );
 | 
			
		||||
 | 
			
		||||
@ -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/
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user