Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CCS 8.2 and MSP432P4 SDK 2.20 build support #1

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,4 @@ doxygen*
*.jxbrowser-data/*
*/.launches/*
*/.settings/*
/.metadata/
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ ARM Development

### Code Composer Studio

The project requires TI's Code Composer Stuido Version 7 (ccsv7). This is necessary for
The project requires TI's Code Composer Stuido Version 8 (ccsv8). This is necessary for
the cross-compiler as well as TI's SimpleLink SDK.

* Download Code composer studio version 7.x [here](http://processors.wiki.ti.com/index.php/Download_CCS)
* Download Code composer studio version 8.x [here](http://processors.wiki.ti.com/index.php/Download_CCS)
* Ensure that Code Composer studio will be installed at ~/ti (or $HOME/ti or /home/<username>/ti) on linux, or C:/ti on Windows.
* Click the checkbox for SimpleLink MSP432
* Perform all other installation steps per TI's wiki as linked above
* On the "Getting Started" page, click the "Browse Examples" option to open the Resource Explorer. Alternatively, if the Resource Explorer is already open, navigate to that tab.
* Open the tree on the left side of the Resource Explorer titled "Software"
* Click the button that looks like a download button and download the MSP432 SDK v:1.60.00.12 "offline"
* Click the button that looks like a download button and download the MSP432 SDK v:2.20.00.12 "offline"

### FreeRTOS

Expand All @@ -28,11 +28,11 @@ Steps to start working:

* Clone the git repository to your favorite location

* Download ccsv7 with MSP432 and CC13xx libraries
* Download ccsv8 with MSP432 and CC13xx libraries
* /home/user/ti
* c:\ti

* Install MSP432 simplelink sdk v1.60.00.12 from resource explorer
* Install MSP432 simplelink sdk v2.20.00.12 from resource explorer

* Install FreeRTOSv10.0.0
* /home/user/FreeRTOSv10.0.0
Expand Down
9 changes: 5 additions & 4 deletions freertos_builds_MSP_EXP432P401R_release_gcc/.ccsproject
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<?ccsproject version="1.0"?>
<projectOptions>
<ccsVersion value="7.2.0"/>
<ccsVersion value="8.2.0"/>
<deviceVariant value="MSP432P401R"/>
<deviceFamily value="MSP432"/>
<deviceEndianness value="little"/>
<codegenToolVersion value="GNU_6.3.1:Linaro"/>
<codegenToolVersion value="GNU_7.2.1:Linaro"/>
<isElfFormat value="true"/>
<createSlaveProjects value=""/>
<ignoreDefaultDeviceSettings value="true"/>
<templateProperties value="id=freertos_builds_MSP_EXP432P401R_release_gcc.projectspec.freertos_builds_MSP_EXP432P401R_release_gcc,products=com.ti.SIMPLELINK_MSP432_SDK,buildProfile=release,"/>
<origin value="C:\ti\simplelink_msp432p4_sdk_1_60_00_12\kernel\freertos\builds\MSP_EXP432P401R\release\gcc\freertos_builds_MSP_EXP432P401R_release_gcc.projectspec"/>
<ignoreDefaultCCSSettings value="true"/>
<templateProperties value="id=freertos_builds_MSP_EXP432P401R_release_gcc.projectspec.freertos_builds_MSP_EXP432P401R_release_gcc,products=com.ti.SIMPLELINK_MSP432_SDK,buildProfile=release"/>
<origin value="E:\ti\simplelink_msp432p4_sdk_2_20_00_12\kernel\freertos\builds\MSP_EXP432P401R\release\gcc\freertos_builds_MSP_EXP432P401R_release_gcc.projectspec"/>
<filesToOpen value=""/>
</projectOptions>
173 changes: 88 additions & 85 deletions freertos_builds_MSP_EXP432P401R_release_gcc/.cproject

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions freertos_builds_MSP_EXP432P401R_release_gcc/.project
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@
<type>1</type>
<locationURI>FREERTOS_INSTALL_DIR/FreeRTOS/Source/queue.c</locationURI>
</link>
<link>
<name>freertos/stream_buffer.c</name>
<type>1</type>
<locationURI>FREERTOS_INSTALL_DIR/FreeRTOS/Source/stream_buffer.c</locationURI>
</link>
<link>
<name>freertos/tasks.c</name>
<type>1</type>
Expand Down
264 changes: 136 additions & 128 deletions freertos_builds_MSP_EXP432P401R_release_gcc/FreeRTOSConfig.h
Original file line number Diff line number Diff line change
@@ -1,71 +1,36 @@
/*
FreeRTOS V9.0.0 - Copyright (C) 2017 Real Time Engineers Ltd.
All rights reserved

VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

This file is part of the FreeRTOS distribution.

FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************

FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html

***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************

http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?

http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.

http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.

http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.

http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.

http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.

1 tab == 4 spaces!
*/
* FreeRTOS Kernel V10.0.0
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software. If you wish to use our Amazon
* FreeRTOS name, please do so in a fair use way that does not cause confusion.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* http://www.FreeRTOS.org
* http://aws.amazon.com/freertos
*
* 1 tab == 4 spaces!
*/


/******************************************************************************
See http://www.freertos.org/a00110.html for an explanation of the
definitions contained in this file.
******************************************************************************/

#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
Expand All @@ -78,8 +43,7 @@
*
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
*
* See http://www.freertos.org/a00110.html.
* http://www.freertos.org/a00110.html
*----------------------------------------------------------*/

/*
Expand All @@ -92,66 +56,72 @@
#endif

/*
* This #ifdef guards against the driverlib.h file being included from IAR
* assembly files.
* This #ifdef guards the extern from IAR assembly files. This symbol will
* be resolved during linking. The application always includes driverlib.
*/
#ifndef __IAR_SYSTEMS_ASM__
#include <ti/devices/msp432p4xx/driverlib/cs.h>
extern uint32_t CS_getMCLK(void);
#endif

/*
* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
* standard names - can't be used with CCS due to limitations in the assemblers
* pre-processing.
*/
#ifndef __TI_COMPILER_VERSION__
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler
#endif
/* Constants related to the behaviour or the scheduler. */
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configUSE_PREEMPTION 1
#define configUSE_TIME_SLICING 0
#define configMAX_PRIORITIES ( 10UL )
#define configIDLE_SHOULD_YIELD 0
#define configUSE_16_BIT_TICKS 0 /* Only for 8 and 16-bit hardware. */

/* Constants used to specify if only static allocation is to be supported (in
which case a heap_n.c file is not required), only dynamic allocation is to be
supported, or if both static and dynamic allocation are supported. */
#define configSUPPORT_STATIC_ALLOCATION 0
#define configSUPPORT_DYNAMIC_ALLOCATION 1

/* Constants that describe the hardware and memory usage. */
#define configCPU_CLOCK_HZ CS_getMCLK()
#define configMINIMAL_STACK_SIZE ( ( uint16_t) 256 )
#define configMAX_TASK_NAME_LEN ( 12 )

#define configUSE_PREEMPTION 1
#define configUSE_TIME_SLICING 0
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 0x8000 ) )
#define configMAX_TASK_NAME_LEN ( 12 )
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
#define configUSE_CO_ROUTINES 0

/* Default stack size for TI-POSIX threads (in words) */
#define configPOSIX_STACK_SIZE ( ( unsigned short ) 512 )

/* Constants that build features in or out. */
#define configUSE_MUTEXES 1
#define configUSE_TICKLESS_IDLE 1
#define configUSE_APPLICATION_TASK_TAG 1 /* Need by POSIX/pthread */
#define configUSE_CO_ROUTINES 0
#define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_QUEUE_SETS 0
#define configUSE_COUNTING_SEMAPHORES 1

#define configMAX_PRIORITIES ( 10UL )
#define configQUEUE_REGISTRY_SIZE 0
#define configUSE_TASK_NOTIFICATIONS 1

/* Constants provided for debugging. */
/* Constants that define which hook (callback) functions should be used. */
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configUSE_MALLOC_FAILED_HOOK 1

/* Constants provided for debugging and optimisation assistance. */
#define configCHECK_FOR_STACK_OVERFLOW 2
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
#define configQUEUE_REGISTRY_SIZE 0

#define configUSE_TICKLESS_IDLE 1

/*
* Minimum number of full tick periods of idle time required to run Power
* sleep policy function.
*/
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 5

/* Timer related defines. */
/* Software timer definitions. */
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY 5
#define configTIMER_QUEUE_LENGTH 20
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
#define configTIMER_TASK_PRIORITY (5)
#define configTIMER_QUEUE_LENGTH (20)
#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2)

#define configENABLE_BACKWARD_COMPATIBILITY 0

/* Needed for POSIX/pthread. */
#define configUSE_APPLICATION_TASK_TAG 1

#if defined(__TI_COMPILER_VERSION__)
#include <ti/posix/freertos/PTLS.h>
#define traceTASK_DELETE( pxTCB ) PTLS_taskDeleteHook( pxTCB )
Expand Down Expand Up @@ -184,39 +154,77 @@
#define configUSE_NEWLIB_REENTRANT 1
#endif

/*
* Priority 7 (shifted 5 since only the top 3 bits are implemented).
* Priority 7 is the lowest priority.
*/
#define configKERNEL_INTERRUPT_PRIORITY ( 7 << 5 )

/*
* Priority 1 (shifted 5 since only the top 3 bits are implemented).
* Priority 1 is the second highest priority.
* Priority 0 is the highest priority.
*/
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 1 << 5 )

/*
* Use the Cortex-M3 optimised task selection rather than the generic C code
* version.
*/
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1

/*
* Set the following definitions to 1 to include the API function, or zero
* to exclude the API function.
* to exclude the API function. NOTE: Setting an INCLUDE_ parameter to 0 is only
* necessary if the linker does not automatically remove functions that are not
* referenced anyway.
*/
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_uxTaskGetStackHighWaterMark 0
#define INCLUDE_xTaskGetSchedulerState 1
#define INCLUDE_xTaskGetIdleTaskHandle 0
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xTaskResumeFromISR 0
#define INCLUDE_xTaskGetCurrentTaskHandle 1
#define INCLUDE_xTaskGetSchedulerState 0
#define INCLUDE_xSemaphoreGetMutexHolder 0
#define INCLUDE_xTimerPendFunctionCall 0

/* Cortex-M3/4 interrupt priority configuration follows...................... */

/* Use the system definition, if there is one. */
#ifdef __NVIC_PRIO_BITS
#define configPRIO_BITS __NVIC_PRIO_BITS
#else
#define configPRIO_BITS 3 /* 8 priority levels */
#endif

/* The lowest interrupt priority that can be used in a call to a "set priority"
function. */
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x07

/*
* The highest interrupt priority that can be used by any interrupt service
* routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
* INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
* PRIORITY THAN THIS! (higher priorities are lower numeric values.
*/
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1

/*
* Priority 7 (shifted 5 since only the top 3 bits are implemented).
* Priority 7 is the lowest priority.
*/
#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))

/*
* Priority 1 (shifted 5 since only the top 3 bits are implemented).
* Priority 1 is the second highest priority.
* Priority 0 is the highest priority.
* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
* See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.
*/
#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))

/*
* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
* standard names - can't be used with CCS due to limitations in the assemblers
* pre-processing.
*/
#ifndef __TI_COMPILER_VERSION__
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler
#endif

/* The trace facility is turned on to make some functions available for use in
CLI commands. */
#define configUSE_TRACE_FACILITY 1

#endif /* FREERTOS_CONFIG_H */
11 changes: 10 additions & 1 deletion freertos_builds_MSP_EXP432P401R_release_gcc/README.html

Large diffs are not rendered by default.

Loading