diff options
author | Forty-Bot <Forty-Bot@users.noreply.github.com> | 2023-12-23 00:09:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-23 00:09:55 +0300 |
commit | ec93432a5974b8edd9391758490c492266bf29df (patch) | |
tree | 80296bf80490b36936fd77c310f56fef66e8df60 | |
parent | 4e7ca2d704f0f21323016d6218b26af72155a144 (diff) |
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.
-rw-r--r-- | portable/GCC/MSP430F449/port.c | 8 | ||||
-rw-r--r-- | portable/GCC/MSP430F449/portmacro.h | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/portable/GCC/MSP430F449/port.c b/portable/GCC/MSP430F449/port.c index 0b41665ce..ca72b410b 100644 --- a/portable/GCC/MSP430F449/port.c +++ b/portable/GCC/MSP430F449/port.c @@ -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(); } diff --git a/portable/GCC/MSP430F449/portmacro.h b/portable/GCC/MSP430F449/portmacro.h index 445279f5c..f9470f096 100644 --- a/portable/GCC/MSP430F449/portmacro.h +++ b/portable/GCC/MSP430F449/portmacro.h @@ -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. */ |