diff --git a/Demo/MSP430X_MSP430F5438_CCS4/.cdtbuild b/Demo/MSP430X_MSP430F5438_CCS4/.cdtbuild index 1bc70d401..6c0345b31 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/.cdtbuild +++ b/Demo/MSP430X_MSP430F5438_CCS4/.cdtbuild @@ -19,7 +19,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -94,6 +94,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/MSP430X_MSP430F5438_CCS4/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Demo/MSP430X_MSP430F5438_CCS4/.settings/org.eclipse.cdt.managedbuilder.core.prefs index 42f0f270b..5271bb61e 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ b/Demo/MSP430X_MSP430F5438_CCS4/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -1,6 +1,9 @@ -#Sat Jan 01 13:05:50 GMT 2011 +#Sat Jan 01 17:38:25 GMT 2011 +com.ti.ccstudio.buildDefinitions.MSP430.Debug.1126147664/internalBuilder/enabled=false +com.ti.ccstudio.buildDefinitions.MSP430.Debug.1126147664/internalBuilder/ignoreErr=true com.ti.ccstudio.buildDefinitions.MSP430.Debug.1203657382/internalBuilder/enabled=false com.ti.ccstudio.buildDefinitions.MSP430.Debug.1203657382/internalBuilder/ignoreErr=true eclipse.preferences.version=1 environment/project=\r\n\r\n +environment/project/com.ti.ccstudio.buildDefinitions.MSP430.Debug.1126147664=\r\n\r\n environment/project/com.ti.ccstudio.buildDefinitions.MSP430.Debug.1203657382=\r\n\r\n diff --git a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/FreeRTOSConfig.h b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/FreeRTOSConfig.h index b66c9b28a..e547af8d6 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/FreeRTOSConfig.h +++ b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/FreeRTOSConfig.h @@ -80,7 +80,7 @@ #define configIDLE_SHOULD_YIELD 1 #define configUSE_MUTEXES 1 #define configQUEUE_REGISTRY_SIZE 5 -#define configGENERATE_RUN_TIME_STATS 0 +#define configGENERATE_RUN_TIME_STATS 1 #define configCHECK_FOR_STACK_OVERFLOW 2 #define configUSE_RECURSIVE_MUTEXES 0 #define configUSE_MALLOC_FAILED_HOOK 1 @@ -108,16 +108,12 @@ vApplicationSetupTimerInterrupt() generates the tick from timer A0, so in this case configTICK_INTERRUPT_VECTOR is set to TIMER0_A0_VECTOR. */ #define configTICK_INTERRUPT_VECTOR TIMER0_A0_VECTOR -/* Prevent the following definitions being included when FreeRTOSConfig.h -is included from an asm file. */ -#ifdef __ICC430__ - extern void vConfigureTimerForRunTimeStats( void ); - extern inline unsigned long ulGetRunTimeStatsTime( void ); - extern volatile unsigned long ulStatsOverflowCount; -#endif /* __ICCARM__ */ +extern void vConfigureTimerForRunTimeStats( void ); +extern unsigned long ulGetRunTimeStatsTime( void ); +extern volatile unsigned long ulStatsOverflowCount; -//#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats() -//#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeStatsTime() +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats() +#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeStatsTime() #endif /* FREERTOS_CONFIG_H */ diff --git a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/RunTimeStatsConfig.c b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/RunTimeStatsConfig.c index 94dd0f953..1978672e9 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/RunTimeStatsConfig.c +++ b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/RunTimeStatsConfig.c @@ -96,13 +96,13 @@ void vConfigureTimerForRunTimeStats( void ) /*-----------------------------------------------------------*/ #pragma vector=TIMER1_A0_VECTOR -static __interrupt void prvRunTimeStatsOverflowISR( void ) +interrupt void prvRunTimeStatsOverflowISR( void ) { ulStatsOverflowCount++; } /*-----------------------------------------------------------*/ -inline unsigned long ulGetRunTimeStatsTime( void ) +unsigned long ulGetRunTimeStatsTime( void ) { unsigned long ulReturn; diff --git a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/main.c b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/main.c index 3434e1789..d82e6a085 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/main.c +++ b/Demo/MSP430X_MSP430F5438_CCS4/Demo_Source/main.c @@ -243,6 +243,10 @@ typedef struct */ #error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above. +/* The linker script tests the FreeRTOS ports use of 20bit addresses by +locating all code in high memory. The following pragma ensures that main +remains in low memory. */ +#pragma CODE_SECTION(main,".main") void main( void ) { /* Configure the peripherals used by this demo application. This includes @@ -306,6 +310,7 @@ unsigned char ucLine = 1; First print out the number of bytes that remain in the FreeRTOS heap. This can be viewed in the terminal IO window within the IAR Embedded Workbench. */ printf( "%d bytes of heap space remain unallocated\n", ( int ) xPortGetFreeHeapSize() ); + fflush( stdout ); for( ;; ) { @@ -342,9 +347,9 @@ unsigned char ucLine = 1; embedded workbench. */ printf( "\nTask\t Abs Time\t %%Time\n*****************************************" ); fflush( stdout ); - //vTaskGetRunTimeStats( ( signed char * ) cBuffer ); - //printf( cBuffer ); - //fflush( stdout ); + vTaskGetRunTimeStats( ( signed char * ) cBuffer ); + printf( cBuffer ); + fflush( stdout ); /* Also print out a message to the LCD - in this case the diff --git a/Demo/MSP430X_MSP430F5438_CCS4/lnk_msp430f5438a.cmd b/Demo/MSP430X_MSP430F5438_CCS4/lnk_msp430f5438a.cmd index 449f775c5..fa1ff8a9f 100644 --- a/Demo/MSP430X_MSP430F5438_CCS4/lnk_msp430f5438a.cmd +++ b/Demo/MSP430X_MSP430F5438_CCS4/lnk_msp430f5438a.cmd @@ -106,7 +106,12 @@ SECTIONS .sysmem : {} > RAM /* DYNAMIC MEMORY ALLOCATION AREA */ .stack : {} > RAM (HIGH) /* SOFTWARE SYSTEM STACK */ - .text : {}>> FLASH | FLASH2 /* CODE */ +/* Modified to test the use of high memory. */ +/* Original line. */ +/* .text : {}>> FLASH | FLASH2 */ /* CODE */ +/* Modified line. */ + .text : {}>> FLASH2 /* CODE */ + .main : {} > FLASH .text:_isr : {} > FLASH /* ISR CODE SPACE */ .cinit : {} > FLASH /* INITIALIZATION TABLES */ //#ifdef (__LARGE_DATA_MODEL__)