Add RP2040 support (#341)

* Add RP2040 support

* remove spurious tab/spaces comments

* add .cmake to ignored kernel checks

* Apply suggestions from code review

Co-authored-by: Paul Bartell <paul.bartell@gmail.com>

* license and end of file newline fixes

* Rename LICENSE.TXT to LICENSE.md

Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
diff --git a/include/stack_macros.h b/include/stack_macros.h
index ed9e7c5..39a26f9 100644
--- a/include/stack_macros.h
+++ b/include/stack_macros.h
@@ -45,13 +45,21 @@
 

 /*-----------------------------------------------------------*/

 

+/*

+ * portSTACK_LIMIT_PADDING is a number of extra words to consider to be in

+ * use on the stack.

+ */

+#ifndef portSTACK_LIMIT_PADDING

+    #define portSTACK_LIMIT_PADDING 0

+#endif

+

 #if ( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) )

 

 /* Only the current stack state is to be checked. */

     #define taskCHECK_FOR_STACK_OVERFLOW()                                                            \

     {                                                                                                 \

         /* Is the currently saved stack pointer within the stack limit? */                            \

-        if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack )                                     \

+        if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack + portSTACK_LIMIT_PADDING)            \

         {                                                                                             \

             vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \

         }                                                                                             \

@@ -67,7 +75,7 @@
     {                                                                                                 \

                                                                                                       \

         /* Is the currently saved stack pointer within the stack limit? */                            \

-        if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack )                                \

+        if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack - portSTACK_LIMIT_PADDING)       \

         {                                                                                             \

             vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \

         }                                                                                             \