Skip to content

Commit

Permalink
Remove hardware dependence in portmacros.h (#1112)
Browse files Browse the repository at this point in the history
* Remove hardware dependence in portmacros.h

The IAR MSP430X port `#include "msp430.h"` which pulls all the hardware
register definitions into anything which `#include "FreeRTOS.h"`.  This
removes that hardware dependency "leak" by removing the header file
and re-defining the `portDISABLE_INTERRUPTS()` and
`portENABLE_INTERRUPTS()` macros in terms of `__asm`.

* Code review suggestions

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
  • Loading branch information
3 people committed Aug 19, 2024
1 parent 49e8831 commit 2faa8bc
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
3 changes: 3 additions & 0 deletions portable/CCS/MSP430X/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
*
*/

/* Hardware includes. */
#include "msp430.h"

/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
Expand Down
9 changes: 3 additions & 6 deletions portable/CCS/MSP430X/portmacro.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@
*-----------------------------------------------------------
*/

/* Hardware includes. */
#include "msp430.h"

/* Type definitions. */
#define portCHAR char
#define portFLOAT float
Expand Down Expand Up @@ -75,8 +72,8 @@ typedef unsigned short UBaseType_t;
/*-----------------------------------------------------------*/

/* Interrupt control macros. */
#define portDISABLE_INTERRUPTS() _disable_interrupt(); _nop()
#define portENABLE_INTERRUPTS() _enable_interrupt(); _nop()
#define portDISABLE_INTERRUPTS() __asm volatile ( " DINT\n" " NOP" )
#define portENABLE_INTERRUPTS() __asm volatile ( " NOP\n" " EINT\n" " NOP" )
/*-----------------------------------------------------------*/

/* Critical section control macros. */
Expand Down Expand Up @@ -126,7 +123,7 @@ extern void vPortYield( void );
#define portBYTE_ALIGNMENT 2
#define portSTACK_GROWTH ( -1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portNOP() __no_operation()
#define portNOP() __asm volatile ( " NOP" )
/*-----------------------------------------------------------*/

/* Task function macros as described on the FreeRTOS.org WEB site. */
Expand Down
3 changes: 3 additions & 0 deletions portable/IAR/MSP430X/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
#include "FreeRTOS.h"
#include "task.h"

/* Hardware includes. */
#include "msp430.h"

/*-----------------------------------------------------------
* Implementation of functions defined in portable.h for the MSP430X port.
*----------------------------------------------------------*/
Expand Down
9 changes: 3 additions & 6 deletions portable/IAR/MSP430X/portmacro.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@
*-----------------------------------------------------------
*/

/* Hardware includes. */
#include "msp430.h"

/* Type definitions. */
#define portCHAR char
#define portFLOAT float
Expand Down Expand Up @@ -75,8 +72,8 @@ typedef unsigned short UBaseType_t;
/*-----------------------------------------------------------*/

/* Interrupt control macros. */
#define portDISABLE_INTERRUPTS() _DINT(); _NOP()
#define portENABLE_INTERRUPTS() _EINT(); _NOP()
#define portDISABLE_INTERRUPTS() __asm volatile ( "DINT\n" "NOP" )
#define portENABLE_INTERRUPTS() __asm volatile ( "NOP\n" "EINT\n" "NOP" )
/*-----------------------------------------------------------*/

/* Critical section control macros. */
Expand Down Expand Up @@ -126,7 +123,7 @@ extern void vPortYield( void );
#define portBYTE_ALIGNMENT 2
#define portSTACK_GROWTH ( -1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portNOP() __no_operation()
#define portNOP() __asm volatile ( "NOP" )
/*-----------------------------------------------------------*/

/* Task function macros as described on the FreeRTOS.org WEB site. */
Expand Down

0 comments on commit 2faa8bc

Please sign in to comment.