Fix build with modern GCC (#933)

* GCC: MSP430F449: Add missing attributes

Apparently at some point in the past, GCC (or TI's GCC) used to define
these attributes. Define them ourselves so that we can compile the demo
application.

* GCC: MSP430F449: Make interrupts return void

If a return type of a function is not specified, it defaults to int. Set
the return type of interrupts to void to avoid warnings.

* GCC: MSP430F449: Define portPOINTER_SIZE_TYPE

portPOINTER_SIZE_TYPE defaults to uint32_t if undefined. Define it to
uint16_t, which is correct for this port.
This commit is contained in:
Forty-Bot 2023-12-22 16:09:55 -05:00 committed by GitHub
parent 4e7ca2d704
commit ec93432a59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View file

@ -296,8 +296,8 @@ static void prvSetupTimerInterrupt( void )
* the context is saved at the start of vPortYieldFromTick(). The tick
* count is incremented after the context is saved.
*/
interrupt( TIMERA0_VECTOR ) prvTickISR( void ) __attribute__( ( naked ) );
interrupt( TIMERA0_VECTOR ) prvTickISR( void )
interrupt( TIMERA0_VECTOR ) void prvTickISR( void ) __attribute__( ( naked ) );
interrupt( TIMERA0_VECTOR ) void prvTickISR( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
@ -320,8 +320,8 @@ static void prvSetupTimerInterrupt( void )
* tick count. We don't need to switch context, this can only be done by
* manual calls to taskYIELD();
*/
interrupt( TIMERA0_VECTOR ) prvTickISR( void );
interrupt( TIMERA0_VECTOR ) prvTickISR( void )
interrupt( TIMERA0_VECTOR ) void prvTickISR( void );
interrupt( TIMERA0_VECTOR ) void prvTickISR( void )
{
xTaskIncrementTick();
}

View file

@ -53,6 +53,7 @@
#define portSHORT int
#define portSTACK_TYPE uint16_t
#define portBASE_TYPE short
#define portPOINTER_SIZE_TYPE uint16_t
typedef portSTACK_TYPE StackType_t;
typedef short BaseType_t;
@ -118,6 +119,11 @@ extern void vPortYield( void ) __attribute__( ( naked ) );
#define portBYTE_ALIGNMENT 2
#define portSTACK_GROWTH ( -1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
/* GCC used to define these but doesn't any more */
#define interrupt(vector) __attribute__((__interrupt__(vector)))
#define wakeup __attribute__((__wakeup__))
/*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */