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

Merge SMP feature to main #716

Merged

Commits on May 26, 2022

  1. Add vTaskYieldWithinAPI for taskYIELD_IF_USING_PREEMPTION

    * Add configNUM_CORES config for SMP
    * Add portGET_CORE_ID porting config and default return 0 to compatible
      with single core demos
    * Replace xYieldPending with xYieldPendings for multiple cores
    * Add vTaskYieldWithinAPI function for yield pending if the task is in
      criticial section. This check are enabled only when portCRITICAL_NESTING_IN_TCB
      is enabled
    * taskYIELD_IF_USING_PREEMPTION use vTaskYieldWithinAPI when
      configUSE_PREEMPTION is set to 1
    
    The following sections will be updated in other commits
    * taskYIELD_IF_USING_PREEMPTION usage in multiple cores
    * xYieldPendings usage in multiple cores
    chinglee-iot committed May 26, 2022
    Configuration menu
    Copy the full SHA
    fafd246 View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2022

  1. Configuration menu
    Copy the full SHA
    14c3b6e View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2022

  1. Add xTaskRunState and xIsIdle in TCB

    * Add xTaskRunState and xIsIdle in TCB
    * Use xTaskAttribute to replace the xIsIdle in SMP TCB
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    2b6d163 View commit details
    Browse the repository at this point in the history
  2. Add pxCurrentTCBs for multiple cores

    * Keep pxCurrentTCB for single core
    * Add pxCurrentTCBs for SMP
    * Add xTaskGetCurrentTaskHandle for SMP
    * Replace taskSELECT_HIGHEST_PRIORITY_TASK with temporary prvSelectHighestPriorityTask
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    c348779 View commit details
    Browse the repository at this point in the history
  3. Add SMP critical section functions

    * Update vTaskEnterCritical and vTaskExitCritical functions for SMP
    * Add vTaskEnterCriticalFromISR and vTaskExitCriticalFromISR for SMP
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    70bdf23 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cb5ab6d View commit details
    Browse the repository at this point in the history
  5. Add idle tasks for SMP

    * Add minimal idle task function declaration
    * Align to use 0x00 for null terminator
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    42f96a1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a0d7477 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a2c83bf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fb34396 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    16f266a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    b58d52d View commit details
    Browse the repository at this point in the history
  11. Merge vTaskSwitchContext from SMP

    * Add vTaskSwitchContextForCore APIs to switch context for specific core
    * vTaskSwitchContext will switch context for current core
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    8a3f046 View commit details
    Browse the repository at this point in the history
  12. Merge vTaskDelete from SMP

    * Add prvYeildCore for single core to reduce multicore macros
    * Add taskTASK_IS_RUNNING for single core
    * Add taskTASK_IS_YIELDING
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    826fe08 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    e364cf9 View commit details
    Browse the repository at this point in the history
  14. Set minimal idle task idle attribute

    * Set minimal idle task idle attribute in prvInitialiseNewTask
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    ae5ca2a View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a095cdc View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    e1d1104 View commit details
    Browse the repository at this point in the history
  17. Fix xTaskResumeAll in SMP

    * xTaskRusmeAll do nothing when scheduler not running in SMP
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    7718e91 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    0ef26d9 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    cc99f57 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    4a601d3 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    ea47a92 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    64f4195 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    f6faebb View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    5ccb164 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    431ff1d View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    28fc702 View commit details
    Browse the repository at this point in the history
  27. Fix task delete condition

    * Latest kernel move out the prvDeleteTask and the check condition should be
      TASK_IS_RUNNING
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    ae52352 View commit details
    Browse the repository at this point in the history
  28. Use critical section to protect more in SMP for vTaskDelete

    * The condition task is running is not thread safe in SMP
    * Once we add the task to termination the task is still running and may
      add it back to other list. Which cause memory corruption.
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    fdbd935 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    72228c3 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    893fdbe View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    39ec7ce View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    7dc3d54 View commit details
    Browse the repository at this point in the history
  33. Update for performance

    * Remove prvSelectHighestPriorityTask and vTaskSwitchContextForCore for
      -O0 performance in single core
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    fbbc597 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    2c5b814 View commit details
    Browse the repository at this point in the history
  35. Merge vTaskYieldWithinAPI from SMP

    Update vTaskYieldWithinAPI from SMP
    * xTaskDelayUntil
    * xTaskDelay
    * ulTaskGenericNotifyTake
    * xTaskGenericNotifyWait
    * event_groups.c
    * queue.c
    * timers.c
    
    Add critical section protection
    * xTaskGetSchedulerState
    
    Update state check macro
    * vTaskGetInfo
    * eTaskGetState
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    ac27308 View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    35c589e View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    453487c View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    fdaf435 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    411d555 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    b545877 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    120c2d8 View commit details
    Browse the repository at this point in the history
  42. Merge timer change from SMP branch

    * Split xTimerGenericCommand into xTimerGenericCommandFromTask and
      xTimerGenericCommandFromISR to remove the recursion path when called from ISRs.
    * Add portTIMER_CALLBACK_ATTRIBUTE for timer callback function
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    150d6ce View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    ad7644d View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    8e40e57 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    3fb87f5 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    6ac1757 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    a7503ba View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    182a9f8 View commit details
    Browse the repository at this point in the history
  49. Remove TODO log

    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    4df96ed View commit details
    Browse the repository at this point in the history
  50. Add suppport for ARM CM55 (FreeRTOS#494)

    * Add supposrt for ARM CM55
    
    * Fix file header
    
    * Remove duplicate code
    
    * Refactor portmacro.h
    
    1. portmacro.h is re-factored into 2 parts - portmacrocommon.h which is
       common to all ARMv8-M ports and portmacro.h which is different for
       different compiler and architecture. This enables us to provide
       Cortex-M55 ports without code duplication.
    2. Update copy_files.py so that it copies Cortex-M55 ports correctly -
       all files except portmacro.h are used from Cortex-M33 ports.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    91de74c View commit details
    Browse the repository at this point in the history
  51. add extra check for compiler time (FreeRTOS#499)

    minor change to add extra check for compiler time to prevent bad config
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    fd19dba View commit details
    Browse the repository at this point in the history
  52. Update feature_request.md (FreeRTOS#500)

    * Update feature_request.md
    
    * Remove trailing spaces
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    a4b73d1 View commit details
    Browse the repository at this point in the history
  53. Add callback overrides for stream buffer and message buffers (FreeRTO…

    …S#437)
    
    * Let each stream/message can use its own sbSEND_COMPLETED
    
    In FreeRTOS.h, set the default value of configUSE_SB_COMPLETED_CALLBACK
    to zero, and add additional space for the function pointer when
    the buffer created statically.
    
    In stream_buffer.c, modify the macro of sbSEND_COMPLETED which let
    the stream buffer to use its own implementation, and then add an
    pointer to the stream buffer's structure, and modify the
    implementation of the buffer creating and initializing
    
    Co-authored-by: eddie9712 <qw1562435@gmail.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    76911db View commit details
    Browse the repository at this point in the history
  54. Add configUSE_MUTEXES to function declarations in header (FreeRTOS#504)

    This commit adds the configUSE_MUTEXES guard to the function
    declarations in semphr.h which are only available when configUSE_MUTEXES
    is set to 1.
    
    It was reported here - https://forums.freertos.org/t/mutex-missing-reference-to-configuse-mutexes-on-the-online-documentation/15231
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    8d0804d View commit details
    Browse the repository at this point in the history
  55. RP2040: Remove incorrect assertion (FreeRTOS#508)

    After the xEventGroupWaitBits in vProtLockInternalSpinUnlockWithWait there was an assertion about
    pxYiledSpinLock being NULL, however when xEventGroupWaitBits returns, IRQs have been re-enabled
    and so it is no longer safe to assert on the state which is protected by IRQs being disabled.
    
    Co-authored-by: graham sanderson <graham.sanderson@raspeberryi.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    0394132 View commit details
    Browse the repository at this point in the history
  56. Ensure that xTaskGetCurrentTaskHandle is included (FreeRTOS#507)

    This commits adds a check that INCLUDE_xTaskGetCurrentTaskHandle is
    set to 1. A compile time error message is produced if it is not set to
    1. This is needed because stream_buffer.c uses xTaskGetCurrentTaskHandle.
    
    This was reported here - https://forums.freertos.org/t/xstreambufferreceive-include-xtaskgetcur/15283
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    d933591 View commit details
    Browse the repository at this point in the history
  57. RP2040: Allow FreeRTOS to be added to the parent CMake project post i…

    …nitialization of the Pico SDK (FreeRTOS#497)
    
    Co-authored-by: graham sanderson <graham.sanderson@raspeberryi.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    2b8c017 View commit details
    Browse the repository at this point in the history
  58. Update to TF-M version TF-Mv1.6.0 (FreeRTOS#517)

    Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
    Change-Id: I0c15564b342873f9bd7a8240822e770950a0563e
    xinyu-tfm authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    aa8325c View commit details
    Browse the repository at this point in the history
  59. Update submodule pointer of Community Supported Ports (FreeRTOS#486)

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    3 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    26b31e7 View commit details
    Browse the repository at this point in the history
  60. Add Cortex M7 r0p1 Errata 837070 workaround to CM4_MPU ports (FreeRTO…

    …S#513)
    
    * Clarify Cortex M7 r0p1 errata number in r0p1 specific port.
    
    * Add ARM Cortex M7 r0p0 / r0p1 Errata 837070 workaround to CM4 MPU ports.
    
    Optionally, enable the errata workaround by defining configTARGET_ARM_CM7_r0p0 or configTARGET_ARM_CM7_r0p1 in FreeRTOSConfig.h.
    
    * Add r0p1 errata support to IAR port as well
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Change macro name to configENABLE_ERRATA_837070_WORKAROUND
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    75cd3cd View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    e6b6c69 View commit details
    Browse the repository at this point in the history
  62. Posix: Removed unused signal set from port (FreeRTOS#528)

    Co-authored-by: Jakob Hasse <0xjakob@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    253909e View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    0d12faa View commit details
    Browse the repository at this point in the history
  64. add portDONT_DISCARD to pxCurrentTCB (FreeRTOS#479)

    This fixes link failures with LTO:
    
    /tmp/ccJbaKaD.ltrans0.ltrans.o: in function `pxCurrentTCBConst2':
    /root/project/FreeRTOS/portable/GCC/ARM_CM4F/port.c:249: undefined reference to `pxCurrentTCB'
    /usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: /tmp/ccJbaKaD.ltrans0.ltrans.o: in function `pxCurrentTCBConst':
    /root/project/FreeRTOS/portable/GCC/ARM_CM4F/port.c:443: undefined reference to `pxCurrentTCB'
    pattop authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    1a1cb40 View commit details
    Browse the repository at this point in the history
  65. Implement MicroBlazeV9 stack protection (FreeRTOS#523)

    * Implement stack protection for MicroBlaze (without MPU wrappers)
    uecasm authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    60d10cf View commit details
    Browse the repository at this point in the history
  66. Update codecov action to v3.1.0

    paulbartell authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    c1e4b26 View commit details
    Browse the repository at this point in the history
  67. Add vPortRemoveInterruptHandler API (FreeRTOS#533)

    * Add xPortRemoveInterruptHandler API
    
    This API is added to the MicroBlazeV9 port. It enables the application
    writer to remove an interrupt handler.
    
    This was originally contributed in this PR - FreeRTOS#523
    
    * Change API signature to return void
    
    This makes the API similar to vPortDisableInterrupt.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Gavin Lambert <uecasm@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    74ceb47 View commit details
    Browse the repository at this point in the history
  68. Fix NULL pointer dereference in vPortGetHeapStats

    When the heap is exhausted (no free block), start and end markers are
    the only blocks present in the free block list:
    
         +---------------+     +-----------> NULL
         |               |     |
         |               V     |
    + ----- +            + ----- +
    |   |   |            |   |   |
    |   |   |            |   |   |
    + ----- +            + ----- +
      xStart               pxEnd
    
    The code block which traverses the list of free blocks to calculate heap
    stats used a do..while loop that moved past the end marker when the heap
    had no free block resulting in a NULL pointer dereference. This commit
    changes the do..while loop to while loop thereby ensuring that we never
    move past the end marker.
    
    This was reported here - FreeRTOS#534
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    da0210b View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    74f54bb View commit details
    Browse the repository at this point in the history
  70. Block SIG_RESUME in the main thread of the Posix port so that sigwait…

    … works as expected (FreeRTOS#532)
    
    Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    3438785 View commit details
    Browse the repository at this point in the history
  71. Update History.txt (FreeRTOS#535)

    * Update History.txt
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    4bad786 View commit details
    Browse the repository at this point in the history
  72. Add .syntax unified to GCC assembly functions (FreeRTOS#538)

    This fixes the compilation issue with XC32 compiler.
    
    It was reported here - https://forums.freertos.org/t/xc32-v4-00-error-with-building-freertos-portasm-c/14357/4
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    6ac9bf2 View commit details
    Browse the repository at this point in the history
  73. Generalize Thread Local Storage (TLS) support (FreeRTOS#540)

    * Generalize Thread Local Storage (TLS) support
    
    FreeRTOS's Thread Local Storage (TLS) support used variables and
    functions from newlib, thereby making the TLS support specific to
    newlib. This commit generalizes the TLS support so that it can be used
    with other c-runtime libraries also. The default behavior for newlib
    support is still kept same for backward compatibility.
    
    The application writer would need to set configUSE_C_RUNTIME_TLS_SUPPORT
    to 1 in their FreeRTOSConfig.h and define the following macros to
    support TLS for a c-runtime library:
    
    1. configTLS_BLOCK_TYPE - Type used to define the TLS block in TCB.
    2. configINIT_TLS_BLOCK( xTLSBlock ) - Allocate and initialize memory
       block for the task's TLS Block.
    3. configSET_TLS_BLOCK( xTLSBlock ) - Switch C-Runtime's TLS Block to
       point to xTLSBlock.
    4. configDEINIT_TLS_BLOCK( xTLSBlock ) - Free up the memory allocated
       for the task's TLS Block.
    
    The following is an example to support TLS for picolibc:
    
     #define configUSE_C_RUNTIME_TLS_SUPPORT        1
     #define configTLS_BLOCK_TYPE                   void*
     #define configINIT_TLS_BLOCK( xTLSBlock )      _init_tls( xTLSBlock )
     #define configSET_TLS_BLOCK( xTLSBlock )       _set_tls( xTLSBlock )
     #define configDEINIT_TLS_BLOCK( xTLSBlock )
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    3e5adfb View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    b936cd4 View commit details
    Browse the repository at this point in the history
  75. Include string.h at the top of portable/GCC/ARM_CA9/port.c to prevent…

    … memset() generating a warning. (FreeRTOS#430)
    
    Co-authored-by: none <unknown>
    RichardBarry authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    01b99aa View commit details
    Browse the repository at this point in the history
  76. Move some of the complex pre-processor guards on prvWriteNameToBuffer…

    …() to compile time checks in FreeRTOS.h.
    
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    fbfffc4 View commit details
    Browse the repository at this point in the history
  77. Fix formatting of FreeRTOS.h

    paulbartell authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    3667d02 View commit details
    Browse the repository at this point in the history
  78. correct grammar in include/FreeRTOS.h

    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    9a6713e View commit details
    Browse the repository at this point in the history
  79. Fix warnings in posix port (FreeRTOS#544)

    Fixes warnings about unused parameters and variables when built with
    `-Wall -Wextra`.
    archigup authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    f2dc981 View commit details
    Browse the repository at this point in the history
  80. Add support for MISRA rule 20.7 (FreeRTOS#546)

    Misra rule 20.7 requires parenthesis to all parameter names
    in macro definitions.
    
    The issue was reported here : https://forums.freertos.org/t/misra-20-7-compatibility/15385
    moninom1 authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    c9d3b11 View commit details
    Browse the repository at this point in the history
  81. Add FreeRTOS config directory to include dirs (FreeRTOS#548)

    This allows the application write to set FREERTOS_CONFIG_FILE_DIRECTORY
    to whichever directory the FreeRTOSConfig.h file exists in.
    
    This was reported here - FreeRTOS#545
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    3e6dbc7 View commit details
    Browse the repository at this point in the history
  82. [Fix] Type for pointers operations (FreeRTOS#550)

    * fix type for pointers operations in some places: size_t -> portPOINTER_SIZE_TYPE
    
    * fix pointer arithmetics
    
    * fix xAddress type
    Octaviarius authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    d23da2e View commit details
    Browse the repository at this point in the history
  83. RISC-V: Add support for RV32E extension in GCC port (FreeRTOS#543)

    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    204f08c View commit details
    Browse the repository at this point in the history
  84. Added checks for index in ThreadLocalStorage APIs (FreeRTOS#552)

    Added checks for ( xIndex >= 0 ) in ThreadLocalStorage APIs
    AniruddhaKanhere authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    00ca174 View commit details
    Browse the repository at this point in the history
  85. Update of three badly terminated macro definitions (FreeRTOS#555)

    * Update of three badly terminated macro definitions
    - vTaskDelayUntil() to conform to usual pattern do { ... } while(0)
    - vTaskNotifyGiveFromISR() and
    - vTaskGenericNotifyGiveFromISR() to remove extra terminating semicolons
    - This PR addresses issues FreeRTOS#553 and FreeRTOS#554
    
    * Adjust formatting of task.h
    
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    274e304 View commit details
    Browse the repository at this point in the history
  86. M85 support (FreeRTOS#556)

    * Extend support to Arm Cortex-M85
    
    Signed-off-by: Gabor Toth <gabor.toth@arm.com>
    Change-Id: I679ba8e193638126b683b651513f08df445f9fe6
    
    * Add generated Cortex-M85 support files
    
    Signed-off-by: Gabor Toth <gabor.toth@arm.com>
    Change-Id: Ib329d88623c2936ffe3e9a24f5d6e07655e4e5c8
    
    * Extend Trusted Firmware M port
    
    Extend Trusted Firmware M port to Cortex-M23,
    Cortex-M55 and Cortex-M85.
    
    Signed-off-by: Gabor Toth <gabor.toth@arm.com>
    Change-Id: If8f1081acfd04e547b3227579e70e355a6adffe3
    
    * Re-run copy_files.py script
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gabor Toth <gabor.toth@arm.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>
    3 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    d76951b View commit details
    Browse the repository at this point in the history
  87. portable-RP2040: Fix typo in README.md (FreeRTOS#559)

    Replace "import" with "include" in cmake code sample.
    paulbartell authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    a3d4a1d View commit details
    Browse the repository at this point in the history
  88. Update CMakeLists.txt for Cortex-M55 and Cortex-M85 ports (FreeRTOS#560)

    * Annotate ports CMakeLists.txt with port details
    
    * CMake: Add Cortex-M55 and Cortex-M85 ports
    paulbartell authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    426b120 View commit details
    Browse the repository at this point in the history
  89. Use highest numbered MPU regions for kernel

    ARMv7-M allows overlapping MPU regions. When 2 MPU regions overlap, the
    MPU configuration of the higher numbered MPU region is applied. For
    example, if a memory area is covered by 2 MPU regions 0 and 1, the
    memory permissions for MPU region 1 are applied.
    
    We use 5 MPU regions for kernel code and kernel data protections and
    leave the remaining for the application writer. We were using lowest
    numbered MPU regions (0-4) for kernel protections and leaving the
    remaining for the application writer. The application writer could
    configure those higher numbered MPU regions to override kernel
    protections.
    
    This commit changes the code to use highest numbered MPU regions for
    kernel protections and leave the remaining for the application writer.
    This ensures that the application writer cannot override kernel
    protections.
    
    We thank the SecLab team at Northeastern University for reporting this
    issue.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    a17b7bb View commit details
    Browse the repository at this point in the history
  90. Make RAM regions non-executable

    This commit makes the privileged RAM and stack regions non-executable.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    b183388 View commit details
    Browse the repository at this point in the history
  91. Remove local stack variable form MPU wrappers

    It was possible for a third party that had already independently gained
    the ability to execute injected code to achieve further privilege
    escalation by branching directly inside a FreeRTOS MPU API wrapper
    function with a manually crafted stack frame. This commit removes the
    local stack variable `xRunningPrivileged` so that a manually crafted
    stack frame cannot be used for privilege escalation by branching
    directly inside a FreeRTOS MPU API wrapper.
    
    We thank Certibit Consulting, LLC, Huazhong University of Science and
    Technology and the SecLab team at Northeastern University for reporting
    this issue.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    6886921 View commit details
    Browse the repository at this point in the history
  92. Restrict unpriv task to invoke code with privilege

    It was possible for an unprivileged task to invoke any function with
    privilege by passing it as a parameter to MPU_xTaskCreate,
    MPU_xTaskCreateStatic, MPU_xTimerCreate, MPU_xTimerCreateStatic, or
    MPU_xTimerPendFunctionCall.
    
    This commit ensures that MPU_xTaskCreate and MPU_xTaskCreateStatic can
    only create unprivileged tasks. It also removes the following APIs:
    1. MPU_xTimerCreate
    2. MPU_xTimerCreateStatic
    3. MPU_xTimerPendFunctionCall
    
    We thank Huazhong University of Science and Technology for reporting
    this issue.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    54faa48 View commit details
    Browse the repository at this point in the history
  93. Update History.txt

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    160f731 View commit details
    Browse the repository at this point in the history
  94. Update History.txt as per the PR feedback

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    4c8f520 View commit details
    Browse the repository at this point in the history
  95. Update RISC-V IAR port to support vector mode. (FreeRTOS#458)

    * Update RISC-V IAR port to support vector mode.
    
    * uncrustify
    
    Co-authored-by: David Chalco <david@chalco.io>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
    4 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    b595adf View commit details
    Browse the repository at this point in the history
  96. Added better pointer declaration readability (FreeRTOS#567)

    * Add better pointer declaration readability
    
    I revised the declaration of single-line pointers by splitting it into
    multiple lines. Now, every pointer is declared (and initialized
    accordingly) on its own line. This refactoring should enhance
    readability and decrease the probability of error when a new pointer is
    added/removed or a current one has its initialization value modified.
    
    Signed-off-by: Cristian Cristea <cristiancristea00@gmail.com>
    
    * Remove unnecessary whitespace characters and lines
    
    It removes whitespace characters at the end of lines (empty or
    othwerwise) and clear lines at the end of the file (only one remains).
    It is an automatic operation done by git.
    
    Signed-off-by: Cristian Cristea <cristiancristea00@gmail.com>
    
    Signed-off-by: Cristian Cristea <cristiancristea00@gmail.com>
    cristiancristea00 authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    c5a1fee View commit details
    Browse the repository at this point in the history
  97. Update doc comments in task.h (FreeRTOS#570)

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    b939e2f View commit details
    Browse the repository at this point in the history
  98. Tickless idle fixes/improvement (#59)

    * Fix tickless idle when stopping systick on zero...
    
    ...and don't stop SysTick at all in the eAbortSleep case.
    
    Prior to this commit, if vPortSuppressTicksAndSleep() happens to stop
    the SysTick on zero, then after tickless idle ends, xTickCount advances
    one full tick more than the time that actually elapsed as measured by
    the SysTick.  See "bug 1" in this forum post:
    https://forums.freertos.org/t/ultasknotifytake-timeout-accuracy/9629/40
    
    SysTick
    -------
    The SysTick is the hardware timer that provides the OS tick interrupt
    in the official ports for Cortex M.  SysTick starts counting down from
    the value stored in its reload register.  When SysTick reaches zero, it
    requests an interrupt.  On the next SysTick clock cycle, it loads the
    counter again from the reload register.  To get periodic interrupts
    every N SysTick clock cycles, the reload register must be N - 1.
    
    Bug Example
    -----------
    - Idle task calls vPortSuppressTicksAndSleep(xExpectedIdleTime = 2).
      [Doesn't have to be "2" -- could be any number.]
    - vPortSuppressTicksAndSleep() stops SysTick, and the current-count
      register happens to stop on zero.
    - SysTick ISR executes, setting xPendedTicks = 1
    - vPortSuppressTicksAndSleep() masks interrupts and calls
      eTaskConfirmSleepModeStatus() which confirms the sleep operation. ***
    - vPortSuppressTicksAndSleep() configures SysTick for 1 full tick
      (xExpectedIdleTime - 1) plus the current-count register (which is 0)
    - One tick period elapses in sleep.
    - SysTick wakes CPU, ISR executes and increments xPendedTicks to 2.
    - vPortSuppressTicksAndSleep() calls vTaskStepTick(1), then returns.
    - Idle task resumes scheduler, which increments xTickCount twice (for
      xPendedTicks = 2)
    
    In the end, two ticks elapsed as measured by SysTick, but the code
    increments xTickCount three times.  The root cause is that the code
    assumes the SysTick current-count register always contains the number of
    SysTick counts remaining in the current tick period.  However, when the
    current-count register is zero, there are ulTimerCountsForOneTick
    counts remaining, not zero.  This error is not the kind of time slippage
    normally associated with tickless idle.
    
    *** Note that a recent commit FreeRTOS@e1b98f0
    results in eAbortSleep in this case, due to xPendedTicks != 0.  That
    commit does mostly resolve this bug without specifically mentioning
    it, and without this commit.  But that resolution allows the code in
    port.c not to directly address the special case of stopping SysTick on
    zero in any code or comments.  That commit also generates additional
    instances of eAbortSleep, and a second purpose of this commit is to
    optimize how vPortSuppressTicksAndSleep() behaves for eAbortSleep, as
    noted below.
    
    This commit also includes an optimization to avoid stopping the SysTick
    when eTaskConfirmSleepModeStatus() returns eAbortSleep.  This
    optimization belongs with this fix because the method of handling the
    SysTick being stopped on zero changes with this optimization.
    
    * Fix imminent tick rescheduled after tickless idle
    
    Prior to this commit, if something other than systick wakes the CPU from
    tickless idle, vPortSuppressTicksAndSleep() might cause xTickCount to
    increment once too many times.  See "bug 2" in this forum post:
    https://forums.freertos.org/t/ultasknotifytake-timeout-accuracy/9629/40
    
    SysTick
    -------
    The SysTick is the hardware timer that provides the OS tick interrupt
    in the official ports for Cortex M.  SysTick starts counting down from
    the value stored in its reload register.  When SysTick reaches zero, it
    requests an interrupt.  On the next SysTick clock cycle, it loads the
    counter again from the reload register.  To get periodic interrupts
    every N SysTick clock cycles, the reload register must be N - 1.
    
    Bug Example
    -----------
    - CPU is sleeping in vPortSuppressTicksAndSleep()
    - Something other than the SysTick wakes the CPU.
    - vPortSuppressTicksAndSleep() calculates the number of SysTick counts
      until the next tick.  The bug occurs only if this number is small.
    - vPortSuppressTicksAndSleep() puts this small number into the SysTick
      reload register, and starts SysTick.
    - vPortSuppressTicksAndSleep() calls vTaskStepTick()
    - While vTaskStepTick() executes, the SysTick expires.  The ISR pends
      because interrupts are masked, and SysTick starts a 2nd period still
      based on the small number of counts in its reload register.  This 2nd
      period is undesirable and is likely to cause the error noted below.
    - vPortSuppressTicksAndSleep() puts the normal tick duration into the
      SysTick's reload register.
    - vPortSuppressTicksAndSleep() unmasks interrupts before the SysTick
      starts a new period based on the new value in the reload register.
      [This is a race condition that can go either way, but for the bug
      to occur, the race must play out this way.]
    - The pending SysTick ISR executes and increments xPendedTicks.
    - The SysTick expires again, finishing the second very small period, and
      starts a new period this time based on the full tick duration.
    - The SysTick ISR increments xPendedTicks (or xTickCount) even though
      only a tiny fraction of a tick period has elapsed since the previous
      tick.
    
    The bug occurs when *two* consecutive small periods of the SysTick are
    both counted as ticks.  The root cause is a race caused by the small
    SysTick period.  If vPortSuppressTicksAndSleep() unmasks interrupts
    *after* the small period expires but *before* the SysTick starts a
    period based on the full tick period, then two small periods are
    counted as ticks when only one should be counted.
    
    The end result is xTickCount advancing nearly one full tick more than
    time actually elapsed as measured by the SysTick.  This is not the kind
    of time slippage normally associated with tickless idle.
    
    After this commit the code starts the SysTick and then immediately
    modifies the reload register to ensure the very short cycle (if any) is
    conducted only once.  This strategy requires special consideration for
    the build option that configures SysTick to use a divided clock.  To
    avoid waiting around for the SysTick to load value from the reload
    register, the new code temporarily configures the SysTick to use the
    undivided clock.  The resulting timing error is typical for tickless
    idle.  The error (commonly known as drift or slippage in kernel time)
    caused by this strategy is equivalent to one or two counts in
    ulStoppedTimerCompensation.
    
    This commit also updates comments and #define symbols related to the
    SysTick clock option.  The SysTick can optionally be clocked by a
    divided version of the CPU clock (commonly divide-by-8).  The new code
    in this commit adjusts these comments and symbols to make them clearer
    and more useful in configurations that use the divided clock.  The fix
    made in this commit requires the use of these symbols, as noted in the
    code comments.
    
    * Fix tickless idle with alternate systick clocking
    
    Prior to this commit, in configurations using the alternate SysTick
    clocking, vPortSuppressTicksAndSleep() might cause xTickCount to jump
    ahead as much as the entire expected idle time or fall behind as much
    as one full tick compared to time as measured by the SysTick.
    
    SysTick
    -------
    The SysTick is the hardware timer that provides the OS tick interrupt
    in the official ports for Cortex M. SysTick starts counting down from
    the value stored in its reload register. When SysTick reaches zero, it
    requests an interrupt. On the next SysTick clock cycle, it loads the
    counter again from the reload register. The SysTick has a configuration
    option to be clocked by an alternate clock besides the core clock.
    This alternate clock is MCU dependent.
    
    Scenarios Fixed
    ---------------
    The new code in this commit handles the following scenarios that were
    not handled correctly prior to this commit.
    
    1. Before the sleep, vPortSuppressTicksAndSleep() stops the SysTick on
    zero, long after SysTick reached zero.  Prior to this commit, this
    scenario caused xTickCount to jump ahead one full tick for the same
    reason documented here: FreeRTOS@0c7b04b
    
    2. After the sleep, vPortSuppressTicksAndSleep() stops the SysTick
    before it loads the counter from the reload register.  Prior to this
    commit, this scenario caused xTickCount to jump ahead by the entire
    expected idle time (xExpectedIdleTime) because the current-count
    register is zero before it loads from the reload register.
    
    3. Prior to return, vPortSuppressTicksAndSleep() attempts to start a
    short SysTick period when the current SysTick clock cycle has a lot of
    time remaining.  Prior to this commit, this scenario could cause
    xTickCount to fall behind by as much as nearly one full tick because the
    short SysTick cycle never started.
    
    Note that #3 is partially fixed by FreeRTOS@967acc9
    even though that commit addresses a different issue.  So this commit
    completes the partial fix.
    
    * Improve comments and name of preprocessor symbol
    
    Add a note in the code comments that SysTick requests an interrupt when
    decrementing from 1 to 0, so that's why stopping SysTick on zero is a
    special case.  Readers might unknowingly assume that SysTick requests
    an interrupt when wrapping from 0 back to the load-register value.
    
    Reconsider new "_SETTING" suffix since "_CONFIG" suffix seems more
    descriptive.  The code relies on *both* of these preprocessor symbols:
    
    portNVIC_SYSTICK_CLK_BIT
    portNVIC_SYSTICK_CLK_BIT_CONFIG  **new**
    
    A meaningful suffix is really helpful to distinguish the two symbols.
    
    * Revert introduction of 2nd name for NVIC register
    
    When I added portNVIC_ICSR_REG I didn't realize there was already a
    portNVIC_INT_CTRL_REG, which identifies the same register.  Not good
    to have both.  Note that portNVIC_INT_CTRL_REG is defined in portmacro.h
    and is already used in this file (port.c).
    
    * Replicate to other Cortex M ports
    
    Also set a new fiddle factor based on tests with a CM4F.  I used gcc,
    optimizing at -O1.  Users can fine-tune as needed.
    
    Also add configSYSTICK_CLOCK_HZ to the CM0 ports to be just like the
    other Cortex M ports.  This change allowed uniformity in the default
    tickless implementations across all Cortex M ports.  And CM0 is likely
    to benefit from configSYSTICK_CLOCK_HZ, especially considering new CM0
    devices with very fast CPU clock speeds.
    
    * Revert changes to IAR-CM0-portmacro.h
    
    portNVIC_INT_CTRL_REG was already defined in port.c.  No need to define
    it in portmacro.h.
    
    * Handle edge cases with slow SysTick clock
    
    Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
    Co-authored-by: abhidixi11 <44424462+abhidixi11@users.noreply.github.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
    5 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    5539028 View commit details
    Browse the repository at this point in the history
  99. Merge SMP commit 45dd83a

    * 45dd83a | 2022-06-09 | Fix RP2040 assertion due to yield spin lock info being wrongly shared between multiple cores (FreeRTOS#501)
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    9965dcd View commit details
    Browse the repository at this point in the history
  100. Merge SMP b87dfa3

    * b87dfa3 | 2022-06-04 | RP2040: Allow FreeRTOS to be added to the parent CMake project post initialization of the Pico SDK
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    8294974 View commit details
    Browse the repository at this point in the history
  101. Merge SMP 13f034e

    * 13f034e | 2022-06-24 | RP2040: Fix compiler warning and comment (FreeRTOS#509)
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    b9dfba3 View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    136385a View commit details
    Browse the repository at this point in the history
  103. Configuration menu
    Copy the full SHA
    04e97b1 View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    1a8af51 View commit details
    Browse the repository at this point in the history
  105. Configuration menu
    Copy the full SHA
    1b2b2a8 View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    56d1d75 View commit details
    Browse the repository at this point in the history
  107. Configuration menu
    Copy the full SHA
    9763a35 View commit details
    Browse the repository at this point in the history
  108. Configuration menu
    Copy the full SHA
    e0c1bf8 View commit details
    Browse the repository at this point in the history
  109. Configuration menu
    Copy the full SHA
    54faeaf View commit details
    Browse the repository at this point in the history
  110. First review - did not build yet

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    9636cdb View commit details
    Browse the repository at this point in the history
  111. Corresponding changes in FreeRTOS.h and task.h

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    96205d7 View commit details
    Browse the repository at this point in the history
  112. Fix the single core compilation

    * vTaskSwtichContextForCore rename vTaskSwitchContext
    * vTaskYieldWithinAPI for single core
    * pxCurrentTCBs for single core in xTaskIncrementTick
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    ea4048e View commit details
    Browse the repository at this point in the history
  113. Fix compilation warning

    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    b9e588c View commit details
    Browse the repository at this point in the history
  114. Update xTaskGetCurrentTaskHandleCPU API

    * Use BaseType_t instead of UBaseType_t
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    d2064c1 View commit details
    Browse the repository at this point in the history
  115. Make the list traverse loop more readable

    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    de64fa7 View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    3df1ad7 View commit details
    Browse the repository at this point in the history
  117. Configuration menu
    Copy the full SHA
    ab074f5 View commit details
    Browse the repository at this point in the history
  118. Updated ESP32 port-layer to ESP-IDF v4.4.2 (FreeRTOS#572)

    * Xtensa_ESP32: Added esp-idf v4.4.2 specific changes
    
    * Xtensa_ESP32: Updated SPDX license identifiers
    laukik-hase authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    3f9366f View commit details
    Browse the repository at this point in the history
  119. Add warning message to ensure min stack size (FreeRTOS#575)

    Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    ed83560 View commit details
    Browse the repository at this point in the history
  120. Removed the 'configASSERT( xInheritanceOccurred == pdFALSE )' asserti…

    …on from xQueueSemaphoreTake as the reasoning behind it is wrong; it can trigger on wrongly on highly-contested semaphores on multicore systems. See https://forums.freertos.org/t/15967 (FreeRTOS#576)
    
    Co-authored-by: Niklas Gürtler <niklas.guertler@tacterion.com>
    2 people authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    39723cb View commit details
    Browse the repository at this point in the history
  121. Update the NIOSII port to enable longer jumps (FreeRTOS#578)

    Update the NIOSII port so it works on systems with more RAM as
    per https://forums.freertos.org/t/nios-ii-r-nios2-call26-noat-linker-error/16028
    RichardBarry authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    189ffd6 View commit details
    Browse the repository at this point in the history
  122. Update Cortex-M55 and Cortex-M85 ports (FreeRTOS#579)

    These were missed when PR #59 was merged.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    1ad8899 View commit details
    Browse the repository at this point in the history
  123. Fix context switch when time slicing is off (FreeRTOS#568)

    * Fix context switch when time slicing is off
    
    When time slicing is off, context switch should only happen when a
    task with priority higher than the currently executing one is unblocked.
    Earlier the code was invoking a context switch even when a task with
    priority equal the currently executing task was unblocked. This commit
    fixes the code to only do a context switch when a higher priority
    task is unblocked.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    aggarg authored and chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    f209c6e View commit details
    Browse the repository at this point in the history
  124. Merge commit "Add support for retrieving a task's uxCoreAffinityMask

    with the vTaskGetInfo() API"
    
    * Merge commit 8128208
    chinglee-iot committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    15a7e2d View commit details
    Browse the repository at this point in the history
  125. Configuration menu
    Copy the full SHA
    c7ec4cc View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2022

  1. Use taskENTER/EXIT_CRITICAL_FROM_ISR (#38)

    * Enter critical section from is implemented differently for single core
      and smp. Use taskENTER/EXIT_CRITICAL_FROM_ISR in source.
    chinglee-iot committed Nov 15, 2022
    Configuration menu
    Copy the full SHA
    82b4cc2 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2022

  1. Configuration menu
    Copy the full SHA
    7c5fce8 View commit details
    Browse the repository at this point in the history
  2. Improve single core unit test coverage (#42)

    * prvCreateIldeTask use configNUM_CORES
    * First time yield in idle task in SMP only
    * prvCheckTasksWaitingTermination check pxTCB NULL pointer for SMP only.
      Single core won't have to check the pxTCB
    chinglee-iot committed Nov 23, 2022
    Configuration menu
    Copy the full SHA
    f257f6d View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2022

  1. Yield for task when core affinity changed (#41)

    * Yield for task when the task is linked to new allowed cores
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    chinglee-iot and aggarg committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    9090fcc View commit details
    Browse the repository at this point in the history
  2. Remove builtin clz in prvSelectHighestPriorityTask (#37)

    * Remove builtin clz in prvSelectHighestPriorityTask
    chinglee-iot committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    c9ba84d View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2022

  1. Move critical nesting count to port (#47)

    * Move the critical nesting management to port layer
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Move critical nesting in TCB macro to tasks.c
    
    * Add RP2040 support maintain critical nesting count in TCB
    
    * Fix formatting
    
    * RP2040 maintain critical nesting count in port
    
    * Fix constant type
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    chinglee-iot and aggarg committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    31a7e85 View commit details
    Browse the repository at this point in the history
  2. Rename config num cores (#48)

    * Rename configNUM_CORES to configNUMBER_OF_CORES
    chinglee-iot committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    89fa181 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2022

  1. Configuration menu
    Copy the full SHA
    3742ae8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2d90cf8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9396e37 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    21d9a61 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2023

  1. Configuration menu
    Copy the full SHA
    ef88897 View commit details
    Browse the repository at this point in the history
  2. Move xTaskIncrementTick critical section to port (#55)

    * Port should use taskENTER/EXIT_CRITICAL_FROM_ISR
    chinglee-iot committed Jan 6, 2023
    Configuration menu
    Copy the full SHA
    87aa631 View commit details
    Browse the repository at this point in the history
  3. Not preempt equal priority task in the following functions (#56)

    Not to preempt equal priority task in the following functions
    * vTaskResume
    * vTaskResumeFromISR
    * vTaskPrioritySet
    * vTaskCoreAffinitySet
    chinglee-iot committed Jan 6, 2023
    Configuration menu
    Copy the full SHA
    57d201c View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2023

  1. Remove implicit test (#49)

    * Remove taskTASK_IS_RUNNING implicit test
    * Remove portCHECK_IF_IN_ISR implicit test
    * Fix taskVALID_CORE_ID implicit test
    * Remove configASSERT implicit test
    chinglee-iot committed Jan 9, 2023
    Configuration menu
    Copy the full SHA
    8b13d4b View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2023

  1. Fix preempt equal priority task in xTaskIncrementTick (#58)

    * Not preempt equal priority when a task is removed from delay list.
      Process time sharing is handle in the logic below.
    * Remove the xPreemptEqualPriority parameter of prvYieldForTask
    chinglee-iot committed Jan 12, 2023
    Configuration menu
    Copy the full SHA
    c785ebf View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2023

  1. Remove prvSelectHighestPriorityTask call in vTaskSuspend (#59)

    * Every core starts with an idle task in SMP implementation and
      taskTASK_IS_RUNNING only return ture when the task is idle task before
      scheduler started. So prvSelectHighestPriorityTask won't be called in
      vTaskSuspend before scheduler started.
    * Update prvSelectHighestPriorityTask to ensure that this function is
      called only when scheduler started.
    chinglee-iot committed Jan 24, 2023
    Configuration menu
    Copy the full SHA
    161a2c7 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2023

  1. Adding portIDLE_TASK_TEST_MOCK in idle task function (#66)

    * Adding configIDLE_TASK_HOOK in idle task function
    chinglee-iot committed Feb 17, 2023
    Configuration menu
    Copy the full SHA
    b266846 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2023

  1. Add INFINITE_LOOP macro to test idle task function (#67)

    * Remove configIDLE_TASK_HOOK
    * Add INFINIT_LOOP. Unit test can redefine this macro to mock the
    function.
    chinglee-iot committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    b051d24 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2023

  1. portYield is not called when exit critical section from ISR (#60)

    * Reference SMP branch
    chinglee-iot committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    350c5c3 View commit details
    Browse the repository at this point in the history
  2. Fix list index is moved in prvSearchForNameWithinSingleList (#61)

    * index pointer should not be moved in SMP
    chinglee-iot committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    39d709e View commit details
    Browse the repository at this point in the history
  3. Yield for priority inherit and disinherit (#64)

    * Yield the core runs the task with prority changed when priority
      inheritance and disinheritance.
    chinglee-iot committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    d1c625e View commit details
    Browse the repository at this point in the history
  4. fix performance counting for SMP (#65)

    * performance counting: ulTaskSwitchedInTime and ulTotalRunTime must be (FreeRTOS#618)
    
    arrays, index is core number
    
    ---------
    
    Co-authored-by: Hardy Griech <ntbox@gmx.net>
    chinglee-iot and rgrr committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    6ce84d8 View commit details
    Browse the repository at this point in the history
  5. Remomve unreachable assert in prvCheckForRunStateChange (#68)

    * Previous assert already ensure this assert won't be triggered
    chinglee-iot committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    4fed100 View commit details
    Browse the repository at this point in the history
  6. Remove unreachable code in preYieldForTask (#69)

    * xLowestPriorityCore index can't be greater than configNUMBER_OF_CORES
    chinglee-iot committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    8c067d6 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2023

  1. Add first version of XCOREAI port (#63)

    * xTaskIncrementTick need to be called in critical section
    * Rename configNUM_CORES to configNUMBER_OF_CORES
    * Define portENTER/EXIT_CRITICAL_FROM_ISR for SMP
    * portSET/CLEAR_INTERRUPT_MASK_FROM_ISR is not used in SMP
    chinglee-iot committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    a286632 View commit details
    Browse the repository at this point in the history
  2. Fix configDEINIT_TLS_BLOCK (#73)

    configDEINIT_TLS_BLOCK() should deinit the TLS block of the task to being
    deleted instead of the currently running task.
    Dazza0 committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    3c31ea9 View commit details
    Browse the repository at this point in the history
  3. Sync with main branch (#71)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Configuration menu
    Copy the full SHA
    3578892 View commit details
    Browse the repository at this point in the history
  4. Smp dev merge main 20230410 (#74)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Configuration menu
    Copy the full SHA
    14cec43 View commit details
    Browse the repository at this point in the history
  5. Not yield for running task in prvYieldForTask (#72)

    * Raise priority of a running task should not alter other cores
    chinglee-iot committed Apr 18, 2023
    Configuration menu
    Copy the full SHA
    28387df View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2023

  1. Remove unreachable code in prvSelectHighestPriorityTask (#70)

    * Remove unreachable code in prvSelectHighestPriorityTask
    
    * Remove unreachable assert condition
    
    * Update comment
    chinglee-iot committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    23ce58e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9da6836 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2023

  1. Update XMOS AICORE conflict (#77)

    * Define portBASE_TYPE in XMOS AICORE porting
    
    * Update enter critical from ISR API
    chinglee-iot committed Apr 21, 2023
    Configuration menu
    Copy the full SHA
    2d281c7 View commit details
    Browse the repository at this point in the history
  2. Fix run time stats for SMP (#76)

    * Update get idle tasks stats
    
    * Fix get task stats
    
    * Fix missing configNUM_CORES
    chinglee-iot committed Apr 21, 2023
    Configuration menu
    Copy the full SHA
    e35fd38 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2023

  1. Update the uxSchedulerSuspended after prvCheckForRunStateChange (#62)

    * Update the uxSchedulerSuspended after the prvCheckForRunStateChange to
      prevent race condition in fromISR APIs
    chinglee-iot committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    096a582 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2023

  1. Fix SMP dev branch CI errors (#79)

    * Fix uncrustify
    
    * Update lexicon
    
    * Remove tailing space
    
    * Ignore XMOS AICORE header check
    chinglee-iot committed Apr 25, 2023
    Configuration menu
    Copy the full SHA
    37ebbd8 View commit details
    Browse the repository at this point in the history
  2. Fix ulTotalRunTime and ulTaskSwitchedInTime (#80)

    * SMP has multiple ulTotalRunTime and ulTaskSwitchedInTime
    chinglee-iot committed Apr 25, 2023
    Configuration menu
    Copy the full SHA
    87c9c23 View commit details
    Browse the repository at this point in the history
  3. Smp dev compelete merge main 20230424 (#78)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    * ARMv7M: Adjust implemented priority bit assertions (FreeRTOS#665)
    
    Adjust assertions related to the CMSIS __NVIC_PRIO_BITS and FreeRTOS
    configPRIO_BITS configuration macros such that these macros specify the
    minimum number of implemented priority bits supported by a config
    build rather than the exact number of implemented priority bits.
    
    Related to Qemu issue #1122
    
    * Format portmacro.h in arm CM0 ports
    
    * portable/ARM_CM0: Add xPortIsInsideInterrupt
    
    Add missing xPortIsInsideInterrupt function to Cortex-M0 port.
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Configuration menu
    Copy the full SHA
    b40b9e3 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2023

  1. Update coverity violation for SMP (#81)

    * Update coverity violation for SMP ( code surrounded by configNUMBER_OF_CORES > 1 ).
    * Single core and common code are still scanned by lint tool.
    chinglee-iot committed May 16, 2023
    Configuration menu
    Copy the full SHA
    c4a8d7a View commit details
    Browse the repository at this point in the history

Commits on May 17, 2023

  1. Smp dev merge main 0527 (#82)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    * ARMv7M: Adjust implemented priority bit assertions (FreeRTOS#665)
    
    Adjust assertions related to the CMSIS __NVIC_PRIO_BITS and FreeRTOS
    configPRIO_BITS configuration macros such that these macros specify the
    minimum number of implemented priority bits supported by a config
    build rather than the exact number of implemented priority bits.
    
    Related to Qemu issue #1122
    
    * Format portmacro.h in arm CM0 ports
    
    * portable/ARM_CM0: Add xPortIsInsideInterrupt
    
    Add missing xPortIsInsideInterrupt function to Cortex-M0 port.
    
    * tree-wide: Unify formatting of __cplusplus ifdefs
    
    * Paranthesize expression-like macro (FreeRTOS#668)
    
    * Updated tasks.c checks for scheduler suspension (FreeRTOS#670)
    
    This commit updates the checks for the variable uxSchedulerSuspended in
    tasks.c module to use a uniform format.
    
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    
    * Fix cast alignment warning (FreeRTOS#669)
    
    * Fix cast alignment warning
    
    Without this change, the code produces the following warning when
    compiled with `-Wcast-align` flag:
    
    ```
    cast increases required alignment of target type
    ```
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Align StackSize and StackAddress for macOS (FreeRTOS#674)
    
    * Armv8-M (except Cortex-M23) interrupt priority checking (FreeRTOS#673)
    
    * Armv8-M: Formatting changes
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Armv8-M: Add support for interrupt priority check
    
    FreeRTOS provides `FromISR` system calls which can be called directly
    from interrupt service routines. It is crucial that the priority of
    these ISRs is set to same or lower value (numerically higher) than that
    of `configMAX_SYSCALL_INTERRUPT_PRIORITY`. For more information refer
    to https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.
    
    Add a check to trigger an assert when an ISR with priority higher
    (numerically lower) than `configMAX_SYSCALL_INTERRUPT_PRIORITY` calls
    `FromISR` system calls if `configASSERT` macro is defined.
    
    In addition, add a config option
    `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` to disable interrupt
    priority check while running on QEMU. Based on the discussion
    https://gitlab.com/qemu-project/qemu/-/issues/1122, The interrupt
    priority bits in QEMU do not match the real hardware. Therefore the
    assert that checks the number of implemented bits and __NVIC_PRIO_BITS
    will always fail. The config option
     `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` should be defined in the
    `FreeRTOSConfig.h` for QEMU targets.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Use SHPR2 for calculating interrupt priority bits
    
    This removes the dependency on the secure software to mark the interrupt
    as non-secure.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Use the extended movx instruction instead of mov (FreeRTOS#676)
    
    The following is from the MSP430X instruction set -
    
    ```
    MOVX.W Move source word to destination word.
    
    The source operand is copied to the destination. The source operand is
    not affected. Both operands may be located in the full address space.
    ```
    
    The movx instruction allows both the operands to be located in the full
    address space and therefore, works with large data model as well.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Sudeep Mohanty <91244425+sudeep-mohanty@users.noreply.github.com>
    Co-authored-by: Monika Singh <108652024+moninom1@users.noreply.github.com>
    Configuration menu
    Copy the full SHA
    b184cb7 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2023

  1. Merge main to SMP branch (#86)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    * ARMv7M: Adjust implemented priority bit assertions (FreeRTOS#665)
    
    Adjust assertions related to the CMSIS __NVIC_PRIO_BITS and FreeRTOS
    configPRIO_BITS configuration macros such that these macros specify the
    minimum number of implemented priority bits supported by a config
    build rather than the exact number of implemented priority bits.
    
    Related to Qemu issue #1122
    
    * Format portmacro.h in arm CM0 ports
    
    * portable/ARM_CM0: Add xPortIsInsideInterrupt
    
    Add missing xPortIsInsideInterrupt function to Cortex-M0 port.
    
    * tree-wide: Unify formatting of __cplusplus ifdefs
    
    * Paranthesize expression-like macro (FreeRTOS#668)
    
    * Updated tasks.c checks for scheduler suspension (FreeRTOS#670)
    
    This commit updates the checks for the variable uxSchedulerSuspended in
    tasks.c module to use a uniform format.
    
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    
    * Fix cast alignment warning (FreeRTOS#669)
    
    * Fix cast alignment warning
    
    Without this change, the code produces the following warning when
    compiled with `-Wcast-align` flag:
    
    ```
    cast increases required alignment of target type
    ```
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Align StackSize and StackAddress for macOS (FreeRTOS#674)
    
    * Armv8-M (except Cortex-M23) interrupt priority checking (FreeRTOS#673)
    
    * Armv8-M: Formatting changes
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Armv8-M: Add support for interrupt priority check
    
    FreeRTOS provides `FromISR` system calls which can be called directly
    from interrupt service routines. It is crucial that the priority of
    these ISRs is set to same or lower value (numerically higher) than that
    of `configMAX_SYSCALL_INTERRUPT_PRIORITY`. For more information refer
    to https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.
    
    Add a check to trigger an assert when an ISR with priority higher
    (numerically lower) than `configMAX_SYSCALL_INTERRUPT_PRIORITY` calls
    `FromISR` system calls if `configASSERT` macro is defined.
    
    In addition, add a config option
    `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` to disable interrupt
    priority check while running on QEMU. Based on the discussion
    https://gitlab.com/qemu-project/qemu/-/issues/1122, The interrupt
    priority bits in QEMU do not match the real hardware. Therefore the
    assert that checks the number of implemented bits and __NVIC_PRIO_BITS
    will always fail. The config option
     `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` should be defined in the
    `FreeRTOSConfig.h` for QEMU targets.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Use SHPR2 for calculating interrupt priority bits
    
    This removes the dependency on the secure software to mark the interrupt
    as non-secure.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Use the extended movx instruction instead of mov (FreeRTOS#676)
    
    The following is from the MSP430X instruction set -
    
    ```
    MOVX.W Move source word to destination word.
    
    The source operand is copied to the destination. The source operand is
    not affected. Both operands may be located in the full address space.
    ```
    
    The movx instruction allows both the operands to be located in the full
    address space and therefore, works with large data model as well.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix eTaskGetState for pending ready tasks (FreeRTOS#679)
    
    This commit fixes eTaskGetState so that eReady is returned for pending ready
    tasks.
    
    Co-authored-by: Darian Leung <darian@espressif.com>
    
    * Generates SBOM after source files are updated with release tag (FreeRTOS#680)
    
    * update source file with release version info before SBOM generation
    
    * delete tag branch during cleanup
    
    * Add back croutines by reverting PR#590 (FreeRTOS#685)
    
    * Add croutines to the code base
    
    * Add croutine changes to cmake, lexicon and readme
    
    * Add croutine file to portable cmake file
    
    * Add back more references from PR 591
    
    * Remove __NVIC_PRIO_BITS and configPRIO_BITS check in port (FreeRTOS#683)
    
    * Remove __NVIC_PRIO_BITS and configPRIO_BITS check in CM3, CM4 and ARMv8.
    * Add hardware not implemented bits check. These bits should be zero.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Use UBaseType_t as interrupt mask (FreeRTOS#689)
    
    * Use UBaseType_t as interrupt mask
    * Update GCC posix port to use UBaseType_t as interrupt mask
    
    * Fix clang warning in croutine and stream buffer (FreeRTOS#686)
    
    * Fix document warning in croutine
    * Fix cast-qual warning in stream buffer
    
    * Use portTASK_FUNCTION_PROTO to replace portNORETURN (FreeRTOS#688)
    
    * Use portTASK_FUNCTION_PROTO to replace portNORETURN
    
    * Fix typo in check comment of configMAX_SYSCALL_INTERRUPT_PRIORITY (FreeRTOS#690)
    
    * Add constant type for portMAX_DELAY in port (FreeRTOS#691)
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update static stream buffer size check (FreeRTOS#693)
    
    * Use volatile size instead of sizeof directly to prevent always
      true/false warning
    
    * Fix typos in comments for the AT91SAM7S port (FreeRTOS#695)
    
    Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
    
    * Fix FreeRTOS#697: Missing portPOINTER_SIZE_TYPE definition for ATmega port (FreeRTOS#698)
    
    * Remove empty expression statement compiler warning (FreeRTOS#692)
    
    * Add do while( 0 ) loop for empty expression statement compiler warning
    
    * Update uxTaskGetSystemState for tasks in pending ready list (FreeRTOS#702)
    
    * Update uxTaskGetSystemState to sync with eTaskGetState
    * Update in vTaskGetInfo for tasks in pending ready list should be in
      ready state.
    
    * Fix circular dependency in CMake project (FreeRTOS#700)
    
    * Fix circular dependency in cmake project
    
    Fix for FreeRTOS#687
    In order for custom ports to also break the cycle, they must link
    against freertos_kernel_include instead of freertos_kernel.
    
    * Simplify include path
    
    * Memory Protection Unit (MPU) Enhancements (FreeRTOS#705)
    
    Memory Protection Unit (MPU) Enhancements
    
    This commit introduces a new MPU wrapper that places additional
    restrictions on unprivileged tasks. The following is the list of changes
    introduced with the new MPU wrapper:
    
    1. Opaque and indirectly verifiable integers for kernel object handles:
       All the kernel object handles (for example, queue handles) are now
       opaque integers. Previously object handles were raw pointers.
    
    2. Saving the task context in Task Control Block (TCB): When a task is
       swapped out by the scheduler, the task's context is now saved in its
       TCB. Previously the task's context was saved on its stack.
    
    3. Execute system calls on a separate privileged only stack: FreeRTOS
       system calls, which execute with elevated privilege, now use a
       separate privileged only stack. Previously system calls used the
       calling task's stack. The application writer can control the size of
       the system call stack using new configSYSTEM_CALL_STACK_SIZE config
       macro.
    
    4. Memory bounds checks: FreeRTOS system calls which accept a pointer
       and de-reference it, now verify that the calling task has required
       permissions to access the memory location referenced by the pointer.
    
    5. System call restrictions: The following system calls are no longer
       available to unprivileged tasks:
        - vQueueDelete
        - xQueueCreateMutex
        - xQueueCreateMutexStatic
        - xQueueCreateCountingSemaphore
        - xQueueCreateCountingSemaphoreStatic
        - xQueueGenericCreate
        - xQueueGenericCreateStatic
        - xQueueCreateSet
        - xQueueRemoveFromSet
        - xQueueGenericReset
        - xTaskCreate
        - xTaskCreateStatic
        - vTaskDelete
        - vTaskPrioritySet
        - vTaskSuspendAll
        - xTaskResumeAll
        - xTaskGetHandle
        - xTaskCallApplicationTaskHook
        - vTaskList
        - vTaskGetRunTimeStats
        - xTaskCatchUpTicks
        - xEventGroupCreate
        - xEventGroupCreateStatic
        - vEventGroupDelete
        - xStreamBufferGenericCreate
        - xStreamBufferGenericCreateStatic
        - vStreamBufferDelete
        - xStreamBufferReset
       Also, an unprivileged task can no longer use vTaskSuspend to suspend
       any task other than itself.
    
    We thank the following people for their inputs in these enhancements:
    - David Reiss of Meta Platforms, Inc.
    - Lan Luo, Xinhui Shao, Yumeng Wei, Zixia Liu, Huaiyu Yan and Zhen Ling
      of School of Computer Science and Engineering, Southeast University,
      China.
    - Xinwen Fu of Department of Computer Science, University of
      Massachusetts Lowell, USA.
    - Yuequi Chen, Zicheng Wang, Minghao Lin of University of Colorado
      Boulder, USA.
    
    * Update History for Version 10.6.0 (FreeRTOS#706)
    
    Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
    
    * Fixed compile options polluting project (FreeRTOS#694)
    
    * Fixed compile options polluting project
    
    Moved add_library higher
    
    * Apply suggestions from code review
    
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    
    * fixed cmakelists keeping in mind the suggestions
    
    ---------
    
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    
    * Fix the comments in the CM3 and CM4 MPU Ports about the MPU Region numbers being loaded (FreeRTOS#707)
    
    Co-authored-by: Soren Ptak <skptak@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update xSemaphoreGetStaticBuffer prototype in comment (FreeRTOS#704)
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Correct the misspelled name (FreeRTOS#708)
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Sudeep Mohanty <91244425+sudeep-mohanty@users.noreply.github.com>
    Co-authored-by: Monika Singh <108652024+moninom1@users.noreply.github.com>
    Co-authored-by: Darian Leung <darian@espressif.com>
    Co-authored-by: Tony Josi <tonyjosi@amazon.com>
    Co-authored-by: Evgeny Ermakov <22344340+unspecd@users.noreply.github.com>
    Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
    Co-authored-by: Joris Putcuyps <joris.putcuyps@gmail.com>
    Co-authored-by: Patrick Cook <114708437+cookpate@users.noreply.github.com>
    Co-authored-by: Mr. Jake <norbertzpilicy@gmail.com>
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    Co-authored-by: Soren Ptak <Skptak@outlook.com>
    Co-authored-by: Soren Ptak <skptak@amazon.com>
    Configuration menu
    Copy the full SHA
    56a360e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b9a50bd View commit details
    Browse the repository at this point in the history
  3. Merge main to SMP branch 0721 (#90)

    * Fix array-bounds compiler warning on gcc11+ in list.h (FreeRTOS#580)
    
    listGET_OWNER_OF_NEXT_ENTRY computes `( pxConstList )->pxIndex->pxNext` after
    verifying that `( pxConstList )->pxIndex` points to `xListEnd`, which due to
    being a MiniListItem_t, can be shorter than a ListItem_t. Thus,
    `( pxConstList )->pxIndex` is a `ListItem_t *` that extends past the end of the
    `List_t` whose `xListEnd` it points to. This is fixed by accessing `pxNext`
    through a `MiniListItem_t` instead.
    
    * move the prototype for vApplicationIdleHook to task.h. (FreeRTOS#600)
    
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update equal priority task preemption (FreeRTOS#603)
    
    * vTaskResume and vTaskPrioritySet don't preempt equal priority task
    
    * Update vTaskResumeAll not to preempt task with equal priority
    
    * Fix in xTaskResumeFromISR
    
    * Update FreeRTOS/FreeRTOS build checks (FreeRTOS#613)
    
    This is needed to be compatible with the refactoring done in this
    PR - FreeRTOS/FreeRTOS#889
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent (FreeRTOS#611)
    
    Allow ulTaskGetIdleRunTimeCounter and ulTaskGetIdleRunTimePercent to be
    used whenever configGENERATE_RUN_TIME_STATS is enabled, as this is the
    only requirement for these functions to work.
    
    * Fix some CMake documentation typos (FreeRTOS#616)
    
    The quick start instructions for CMake mention the "master"
    git branch which has been replaced by "main" in the current
    repo.
    
    The main CMakeLists.txt documents how to integrate a
    custom port. Fix a typo in the suggested CMake code.
    
    * Added support of 64bit events. (FreeRTOS#597)
    
    * Added support of 64bit even
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Added missing brackets
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Made proper name for tick macro.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Improved macro evaluation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fixed missed port files  + documentation
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Changes made on PR
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Fix macro definition.
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Formatted code with uncrustify
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    ---------
    
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    
    * Introduce portMEMORY_BARRIER for Microblaze port. (FreeRTOS#621)
    
    The introduction of `portMEMORY_BARRIER` will ensure
    the places in the kernel use a barrier will work.
    For example, `xTaskResumeAll` has a memory barrier
    to ensure its correctness when compiled with optimization
    enabled. Without the barrier `xTaskResumeAll` can fail
    (e.g. start reading and writing to address 0 and/or
    infinite looping) when `xPendingReadyList` contains more
    than one task to restore.
    
    In `xTaskResumeAll` the compiler chooses to cache the
    `pxTCB` the first time through the loop for use
    in every subsequent loop. This is incorrect as the
    removal of `pxTCB->xEventListItem` will actually
    change the value of `pxTCB` if it was read again
    at the top of the loop. The barrier forces the compiler
    to read `pxTCB` again at the top of the loop.
    
    The compiler is operating correctly. The removal
    `pxTCB->xEventListItem` executes on a `List_t *`
    and `ListItem_t *`.  This means that the compiler
    can assume that any `MiniListItem_t` values are
    unchanged by the loop (i.e. "strict-aliasing").
    This allows the compiler to cache `pxTCB` as it
    is obtained via a `MiniListItem_t`. This is incorrect
    in this case because it is possible for a `ListItem_t *`
    to actually alias a `MiniListItem_t`. This is technically
    a "violation of aliasing rules" so we use the the barrier
    to disable the strict-aliasing optimization in this loop.
    
    * Do not call exit() on MSVC Port when calling vPortEndScheduler (FreeRTOS#624)
    
    * make port exitable
    
    * correctly set xPortRunning to False
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * add suggestions from Review
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update PR template to include checkbox for Unit Test related changes (FreeRTOS#627)
    
    * Fix build failure introduced in PR FreeRTOS#597 (FreeRTOS#629)
    
    The PR FreeRTOS#597 introduced a new config option configTICK_TYPE_WIDTH_IN_BITS
    which can be defined to one of the following:
    * TICK_TYPE_WIDTH_16_BITS - Tick type is 16 bit wide.
    * TICK_TYPE_WIDTH_32_BITS - Tick type is 32 bit wide.
    * TICK_TYPE_WIDTH_64_BITS - Tick type is 64 bit wide.
    
    Earlier we supported 16 and 32 bit width for tick type which was
    controlled using the config option configUSE_16_BIT_TICKS. The PR
    tried to maintain backward compatibility by honoring
    configUSE_16_BIT_TICKS. The backward compatibility did not work as
    expected though, as the macro configTICK_TYPE_WIDTH_IN_BITS was used
    before it was defined. This PR addresses it by ensuring that the macro
    configTICK_TYPE_WIDTH_IN_BITS is defined before it is used.
    
    Testing
    1. configUSE_16_BIT_TICKS is defined to 0.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    2. configUSE_16_BIT_TICKS is defined to 1.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    3. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_16_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    10e2:       4b53            ldr     r3, [pc, FreeRTOS#332]  ; (1230 <xTaskIncrementTick+0x15c>)
    10e4:       f8b3 4134       ldrh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    10e8:       b2a4            uxth    r4, r4
    10ea:       3401            adds    r4, #1
    10ec:       b2a4            uxth    r4, r4
    10ee:       f8a3 4134       strh.w  r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 16 bit.
    
    4. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_32_BITS.
    
    Source (function xTaskIncrementTick in tasks.c):
    ```
    const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
    ```
    
    Assembly:
    ```
    109e:       4b50            ldr     r3, [pc, FreeRTOS#320]  ; (11e0 <xTaskIncrementTick+0x150>)
    10a0:       f8d3 4134       ldr.w   r4, [r3, FreeRTOS#308]  ; 0x134
    10a4:       3401            adds    r4, #1
    10a6:       f8c3 4134       str.w   r4, [r3, FreeRTOS#308]  ; 0x134
    ```
    
    It is clear from assembly that the tick type is 32 bit.
    
    5. configTICK_TYPE_WIDTH_IN_BITS is defined to TICK_TYPE_WIDTH_64_BITS.
    
    ```
     #error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
    ```
    
    The testing was done for GCC/ARM_CM3 port which does not support 64 bit
    tick type.
    
    6. Neither configUSE_16_BIT_TICKS nor configTICK_TYPE_WIDTH_IN_BITS
    defined.
    
    ```
     #error Missing definition:  One of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    7. Both configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS defined.
    
    ```
     #error Only one of configUSE_16_BIT_TICKS and
     configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.
     See the Configuration section of the FreeRTOS API documentation for
     details.
    ```
    
    Related issue - FreeRTOS#628
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Feature/fixing clang gnu compiler warnings (FreeRTOS#620)
    
    * Adding in ability to support a library for freertos_config and a custom freertos_kernel_port (FreeRTOS#558)
    
    * Using single name definition for libraries everywhere. (FreeRTOS#558)
    
    * Supporting backwards compatibility with FREERTOS_CONFIG_FILE_DIRECTORY (FreeRTOS#571)
    
    * Removing compiler warnings for GNU and Clang. (FreeRTOS#571)
    
    * Added in documentation on how to consume from a main project. Added default PORT selection for native POSIX and MINGW platforms.
    
    * Only adding freertos_config if it exists. Removing auto generation of it from a FREERTOS_CONFIG_FILE_DIRECTORY.
    
    * Fixing clang and gnu compiler warnings.
    
    * Adding in project information and how to compile for GNU/clang
    
    * Fixing compiler issue with unused variable - no need to declare variable.
    
    * Adding in compile warnings for linux builds that kernel is okay with using.
    
    * Fixing more extra-semi-stmt clang warnings.
    
    * Moving definition of hooks into header files if features are enabled.
    
    * Fixing formatting with uncrustify.
    
    * Fixing merge conflicts with main merge.
    
    * Fixing compiler errors due to merge issues and formatting.
    
    * Fixing Line feeds.
    
    * Adding 'portNORETURN' into portmacros.h. Other Updates based on PR request
    
    * Further clean-up of clang and clang-tidy issues.
    
    * Removing compiler specific pragmas from common c files.
    
    * Fixing missing lexicon entry and uncrustify formatting changes.
    
    * Resolving merge issue multiple defnitions of proto for prvIdleTask
    
    * Fixing formatting issues that are not covered by uncrustify. Use clang-tidy instead if you want this level of control.
    
    * More uncrustify formatting issues.
    
    * Fixing extra bracket in #if statement.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * POSIX port fixes (FreeRTOS#626)
    
    * Fix types in POSIX port
    
    Use TaskFunction_t and StackType_t as other ports do.
    
    * Fix portTICK_RATE_MICROSECONDS in POSIX port
    
    ---------
    
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Cortex-M35P: Add Cortex-M35P port (FreeRTOS#631)
    
    * Cortex-M35P: Add Cortex-M35P port
    
    The Cortex-M35P support added to kernel. The port hasn't been
    validated yet with TF-M. Hence TF-M support is not included in this
    port.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Add portNORETURN to the newly added portmacro.h
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.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>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Introduced Github Status Badge for Unit Tests (FreeRTOS#634)
    
    * Introduced Github Status Badge for Unit Tests
    
    * Github status badge to point to latest run
    
    * Github status badge UT points to latest results
    
    * Fixed URL for Github Status badge
    
    ---------
    
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    
    * Remove C99 requirement from CMake file (FreeRTOS#633)
    
    * Remove C99 requirement from CMake file
    
    The kernel source is C89 compliant and does not need C99.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Explicitly set C89 requirement for kernel
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions (FreeRTOS#343)
    
    * Pass top of stack to configINIT_TLS_BLOCK
    
    Picolibc wants to allocate the per-task TLS block within the stack
    segment, so it will need to modify the top of stack value. Pass the
    pxTopOfStack variable to make this explicit.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Move newlib-specific definitions to separate file
    
    This reduces the clutter in FreeRTOS.h caused by having newlib-specific
    macros present there.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Make TLS code depend only on configUSE_C_RUNTIME_TLS_SUPPORT
    
    Remove reference to configUSE_NEWLIB_REENTRANT as that only works
    when using newlib. configUSE_C_RUNTIME_TLS_SUPPORT is always
    set when configUSE_NEWLIB_REENTRANT is set, so using both was
    redundant in that case.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * portable-ARC: Adapt ARC support to use generalized TLS support
    
    With generalized thread local storage (TLS) support present in the
    core, the two ARC ports need to have the changes to the TCB mirrored
    to them.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    * Add Thread Local Storage (TLS) support using Picolibc functions
    
    This patch provides definitions of the general TLS support macros in
    terms of the Picolibc TLS support functions.
    
    Picolibc is normally configured to use TLS internally for all
    variables that are intended to be task-local, so these changes are
    necessary for picolibc to work correctly with FreeRTOS.
    
    The picolibc helper functions rely on elements within the linker
    script to arrange the TLS data in memory and define some symbols.
    Applications wanting to use this mechanism will need changes in their
    linker script when migrating to picolibc.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    
    ---------
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Interrupt priority assert improvements for CM3/4/7 (FreeRTOS#602)
    
    * Interrupt priority assert improvements for CM3/4/7
    
    In the ARM_CM3, ARM_CM4, and ARM_CM7 ports, change the assertion that
    `configMAX_SYSCALL_INTERRUPT_PRIORITY` is nonzero to account for the
    number of priority bits implemented by the hardware.
    
    Change these ports to also use the lowest priority for PendSV and
    SysTick, ignoring `configKERNEL_INTERRUPT_PRIORITY`.
    
    * Remove not needed configKERNEL_INTERRUPT_PRIORITY define
    
    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>
    
    * Introduced code coverage status badge (FreeRTOS#635)
    
    * Introduced code coverage status badge
    
    * Trying to fix the URL checker issue
    
    * Fix URL check
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * added portPOINTER_SIZE_TYPE and SIZE_MAX definition to PIC24/dsPIC port (FreeRTOS#636)
    
    * added portPOINTER_SIZE_TYPE definition to PIC24/dsPIC port
    
    * Added SIZE_MAX definition to PIC24/dsPIC33
    
    * Fix TLS and stack alignment when using picolibc (FreeRTOS#637)
    
    Both the TLS block and stack must be correctly aligned when using
    picolibc. The architecture stack alignment is represented by the
    portBYTE_ALIGNMENT_MASK and the TLS block alignment is provided by the
    Picolibc _tls_align() inline function for Picolibc version 1.8 and
    above. For older versions of Picolibc, we'll assume that the TLS block
    requires the same alignment as the stack.
    
    For downward growing stacks, this requires aligning the start of the
    TLS block to the maximum of the stack alignment and the TLS
    alignment. With this, both the TLS block and stack will now be
    correctly aligned.
    
    For upward growing stacks, the two areas must be aligned
    independently; the TLS block is aligned from the start of the stack,
    then the tls space is allocated, and then the stack is aligned above
    that.
    
    It's probably useful to know here that the linker ensures that
    variables within the TLS block are assigned offsets that match their
    alignment requirements. If the TLS block itself is correctly aligned,
    then everything within will also be.
    
    I have only tested the downward growing stack branch of this patch.
    
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Enable building the GCC Cortex-R5 port without an FPU (FreeRTOS#586)
    
    * Ensure configUSE_TASK_FPU_SUPPORT option is set correctly
    
    If one does enable the FPU of the Cortex-R5 processor, then the GCC
    compiler will define the macro __ARM_FP. This can be used to ensure,
    that the configUSE_TASK_FPU_SUPPORT is set accordingly.
    
    * Enable the implementation of vPortTaskUsesFPU only if configUSE_TASK_FPU_SUPPORT is set to 1
    
    * Remove error case in pxPortInitialiseStack
    
    The case of configUSE_TASK_FPU_SUPPORT is 0 is now handled
    
    * Enable access to FPU registers only if FPU is enabled
    
    * Make minor formating changes
    
    * Format ARM Cortex-R5 port
    
    * Address review comments from @ChristosZosi
    
    * Minor code review suggestions
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix freertos_kernel cmake property, Posix Port (FreeRTOS#640)
    
    * Fix freertos_kernel cmake property, Posix Port
    
    * Moves the `set_property()` call below the target definition in top level CMakeLists file
    * Corrects billion value from `ULL` suffix (not C90 compliant) to `UL` suffix with cast to uint64_t
    
    * Add blank line to CMakeLists.txt
    
    * Add missing FreeRTOS+ defines
    
    * Run kernel demos and unit tests for PR changes (FreeRTOS#645)
    
    * Run kernel demos and unit tests for PR changes
    
    Kernel demos check builds multiple demos from FreeRTOS/FreeRTOS and
    unit tests check runs unit tests in FreeRTOS/FreeRTOS. Both of these
    checks currently use main branch of FreeRTOS-Kernel. This commits
    updates these checks to use the changes in the PR.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Do not specify PR SHA explicitly as that is default
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Remove explicit PR SHA from kernel checks
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Add functions to get the buffers of statically created objects (FreeRTOS#641)
    
    Added various ...GetStaticBuffer() functions to get the buffers of statically
    created objects.
    ---------
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits (FreeRTOS#639)
    
    * Cortex-M Assert when NVIC implements 8 PRIO bits
    
    * Fix CM3 ports
    
    * Fix ARM_CM3_MPU
    
    * Fix ARM CM3
    
    * Fix ARM_CM4_MPU
    
    * Fix ARM_CM4
    
    * Fix GCC ARM_CM7
    
    * Fix IAR ARM ports
    
    * Uncrustify changes
    
    * Fix MikroC_ARM_CM4F port
    
    * Fix MikroC_ARM_CM4F port-(2)
    
    * Fix RVDS ARM ports
    
    * Revert changes for Tasking/ARM_CM4F port
    
    * Revert changes for Tasking/ARM_CM4F port-(2)
    
    * Update port.c
    
    Fix GCC/ARM_CM4F port
    
    * Update port.c
    
    * update GCC\ARM_CM4F port
    
    * update port.c
    
    * Assert to check configMAX_SYSCALL_INTERRUPT_PRIORITY is set to higher priority
    
    * Fix merge error: remove duplicate code
    
    * Fix typos
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    
    * Remove C90 requirement from CMakeLists (FreeRTOS#649)
    
    This is needed as it is breaking projects - https://forums.freertos.org/t/freertos-gcc-cmake/16984
    
    We will re-evaluate and accordingly add this later.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Only add alignment padding when needed (FreeRTOS#650)
    
    Heap 4 and Heap 5 add some padding to ensure that the allocated blocks
    are always aligned to portBYTE_ALIGNMENT bytes. The code until now was
    adding padding always even if the resulting block was already aligned.
    This commits updates the code to only add padding if the resulting block
    is not aligned.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * add a missing comma (FreeRTOS#651)
    
    * fix conversion warning (FreeRTOS#658)
    
    FreeRTOS-Kernel/portable/GCC/ARM_CM4F/port.c:399:41: error: conversion from 'uint32_t' {aka 'long unsigned int'} to 'uint8_t' {aka 'unsigned char'} may change value [-Werror=conversion]
    
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    
    * ARMv7M: Adjust implemented priority bit assertions (FreeRTOS#665)
    
    Adjust assertions related to the CMSIS __NVIC_PRIO_BITS and FreeRTOS
    configPRIO_BITS configuration macros such that these macros specify the
    minimum number of implemented priority bits supported by a config
    build rather than the exact number of implemented priority bits.
    
    Related to Qemu issue #1122
    
    * Format portmacro.h in arm CM0 ports
    
    * portable/ARM_CM0: Add xPortIsInsideInterrupt
    
    Add missing xPortIsInsideInterrupt function to Cortex-M0 port.
    
    * tree-wide: Unify formatting of __cplusplus ifdefs
    
    * Paranthesize expression-like macro (FreeRTOS#668)
    
    * Updated tasks.c checks for scheduler suspension (FreeRTOS#670)
    
    This commit updates the checks for the variable uxSchedulerSuspended in
    tasks.c module to use a uniform format.
    
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    
    * Fix cast alignment warning (FreeRTOS#669)
    
    * Fix cast alignment warning
    
    Without this change, the code produces the following warning when
    compiled with `-Wcast-align` flag:
    
    ```
    cast increases required alignment of target type
    ```
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Align StackSize and StackAddress for macOS (FreeRTOS#674)
    
    * Armv8-M (except Cortex-M23) interrupt priority checking (FreeRTOS#673)
    
    * Armv8-M: Formatting changes
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Armv8-M: Add support for interrupt priority check
    
    FreeRTOS provides `FromISR` system calls which can be called directly
    from interrupt service routines. It is crucial that the priority of
    these ISRs is set to same or lower value (numerically higher) than that
    of `configMAX_SYSCALL_INTERRUPT_PRIORITY`. For more information refer
    to https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.
    
    Add a check to trigger an assert when an ISR with priority higher
    (numerically lower) than `configMAX_SYSCALL_INTERRUPT_PRIORITY` calls
    `FromISR` system calls if `configASSERT` macro is defined.
    
    In addition, add a config option
    `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` to disable interrupt
    priority check while running on QEMU. Based on the discussion
    https://gitlab.com/qemu-project/qemu/-/issues/1122, The interrupt
    priority bits in QEMU do not match the real hardware. Therefore the
    assert that checks the number of implemented bits and __NVIC_PRIO_BITS
    will always fail. The config option
     `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` should be defined in the
    `FreeRTOSConfig.h` for QEMU targets.
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    
    * Use SHPR2 for calculating interrupt priority bits
    
    This removes the dependency on the secure software to mark the interrupt
    as non-secure.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Use the extended movx instruction instead of mov (FreeRTOS#676)
    
    The following is from the MSP430X instruction set -
    
    ```
    MOVX.W Move source word to destination word.
    
    The source operand is copied to the destination. The source operand is
    not affected. Both operands may be located in the full address space.
    ```
    
    The movx instruction allows both the operands to be located in the full
    address space and therefore, works with large data model as well.
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    * Fix eTaskGetState for pending ready tasks (FreeRTOS#679)
    
    This commit fixes eTaskGetState so that eReady is returned for pending ready
    tasks.
    
    Co-authored-by: Darian Leung <darian@espressif.com>
    
    * Generates SBOM after source files are updated with release tag (FreeRTOS#680)
    
    * update source file with release version info before SBOM generation
    
    * delete tag branch during cleanup
    
    * Add back croutines by reverting PR#590 (FreeRTOS#685)
    
    * Add croutines to the code base
    
    * Add croutine changes to cmake, lexicon and readme
    
    * Add croutine file to portable cmake file
    
    * Add back more references from PR 591
    
    * Remove __NVIC_PRIO_BITS and configPRIO_BITS check in port (FreeRTOS#683)
    
    * Remove __NVIC_PRIO_BITS and configPRIO_BITS check in CM3, CM4 and ARMv8.
    * Add hardware not implemented bits check. These bits should be zero.
    
    ---------
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Use UBaseType_t as interrupt mask (FreeRTOS#689)
    
    * Use UBaseType_t as interrupt mask
    * Update GCC posix port to use UBaseType_t as interrupt mask
    
    * Fix clang warning in croutine and stream buffer (FreeRTOS#686)
    
    * Fix document warning in croutine
    * Fix cast-qual warning in stream buffer
    
    * Use portTASK_FUNCTION_PROTO to replace portNORETURN (FreeRTOS#688)
    
    * Use portTASK_FUNCTION_PROTO to replace portNORETURN
    
    * Fix typo in check comment of configMAX_SYSCALL_INTERRUPT_PRIORITY (FreeRTOS#690)
    
    * Add constant type for portMAX_DELAY in port (FreeRTOS#691)
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update static stream buffer size check (FreeRTOS#693)
    
    * Use volatile size instead of sizeof directly to prevent always
      true/false warning
    
    * Fix typos in comments for the AT91SAM7S port (FreeRTOS#695)
    
    Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
    
    * Fix FreeRTOS#697: Missing portPOINTER_SIZE_TYPE definition for ATmega port (FreeRTOS#698)
    
    * Remove empty expression statement compiler warning (FreeRTOS#692)
    
    * Add do while( 0 ) loop for empty expression statement compiler warning
    
    * Update uxTaskGetSystemState for tasks in pending ready list (FreeRTOS#702)
    
    * Update uxTaskGetSystemState to sync with eTaskGetState
    * Update in vTaskGetInfo for tasks in pending ready list should be in
      ready state.
    
    * Fix circular dependency in CMake project (FreeRTOS#700)
    
    * Fix circular dependency in cmake project
    
    Fix for FreeRTOS#687
    In order for custom ports to also break the cycle, they must link
    against freertos_kernel_include instead of freertos_kernel.
    
    * Simplify include path
    
    * Memory Protection Unit (MPU) Enhancements (FreeRTOS#705)
    
    Memory Protection Unit (MPU) Enhancements
    
    This commit introduces a new MPU wrapper that places additional
    restrictions on unprivileged tasks. The following is the list of changes
    introduced with the new MPU wrapper:
    
    1. Opaque and indirectly verifiable integers for kernel object handles:
       All the kernel object handles (for example, queue handles) are now
       opaque integers. Previously object handles were raw pointers.
    
    2. Saving the task context in Task Control Block (TCB): When a task is
       swapped out by the scheduler, the task's context is now saved in its
       TCB. Previously the task's context was saved on its stack.
    
    3. Execute system calls on a separate privileged only stack: FreeRTOS
       system calls, which execute with elevated privilege, now use a
       separate privileged only stack. Previously system calls used the
       calling task's stack. The application writer can control the size of
       the system call stack using new configSYSTEM_CALL_STACK_SIZE config
       macro.
    
    4. Memory bounds checks: FreeRTOS system calls which accept a pointer
       and de-reference it, now verify that the calling task has required
       permissions to access the memory location referenced by the pointer.
    
    5. System call restrictions: The following system calls are no longer
       available to unprivileged tasks:
        - vQueueDelete
        - xQueueCreateMutex
        - xQueueCreateMutexStatic
        - xQueueCreateCountingSemaphore
        - xQueueCreateCountingSemaphoreStatic
        - xQueueGenericCreate
        - xQueueGenericCreateStatic
        - xQueueCreateSet
        - xQueueRemoveFromSet
        - xQueueGenericReset
        - xTaskCreate
        - xTaskCreateStatic
        - vTaskDelete
        - vTaskPrioritySet
        - vTaskSuspendAll
        - xTaskResumeAll
        - xTaskGetHandle
        - xTaskCallApplicationTaskHook
        - vTaskList
        - vTaskGetRunTimeStats
        - xTaskCatchUpTicks
        - xEventGroupCreate
        - xEventGroupCreateStatic
        - vEventGroupDelete
        - xStreamBufferGenericCreate
        - xStreamBufferGenericCreateStatic
        - vStreamBufferDelete
        - xStreamBufferReset
       Also, an unprivileged task can no longer use vTaskSuspend to suspend
       any task other than itself.
    
    We thank the following people for their inputs in these enhancements:
    - David Reiss of Meta Platforms, Inc.
    - Lan Luo, Xinhui Shao, Yumeng Wei, Zixia Liu, Huaiyu Yan and Zhen Ling
      of School of Computer Science and Engineering, Southeast University,
      China.
    - Xinwen Fu of Department of Computer Science, University of
      Massachusetts Lowell, USA.
    - Yuequi Chen, Zicheng Wang, Minghao Lin of University of Colorado
      Boulder, USA.
    
    * Update History for Version 10.6.0 (FreeRTOS#706)
    
    Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
    
    * Fixed compile options polluting project (FreeRTOS#694)
    
    * Fixed compile options polluting project
    
    Moved add_library higher
    
    * Apply suggestions from code review
    
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    
    * fixed cmakelists keeping in mind the suggestions
    
    ---------
    
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    
    * Fix the comments in the CM3 and CM4 MPU Ports about the MPU Region numbers being loaded (FreeRTOS#707)
    
    Co-authored-by: Soren Ptak <skptak@amazon.com>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Update xSemaphoreGetStaticBuffer prototype in comment (FreeRTOS#704)
    
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    
    * Correct the misspelled name (FreeRTOS#708)
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    
    ---------
    
    Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
    Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
    Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Signed-off-by: Keith Packard <keithpac@amazon.com>
    Signed-off-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Signed-off-by: Sudeep Mohanty <sudp.mohanty@gmail.com>
    Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
    Co-authored-by: Archit Gupta <71798289+archigup@users.noreply.github.com>
    Co-authored-by: tcpluess <tpluess@ieee.org>
    Co-authored-by: pluess <pluess@faulhorn.mw.iap.unibe.ch>
    Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
    Co-authored-by: Chris Copeland <chris@chrisnc.net>
    Co-authored-by: David J. Fiddes <35607151+davefiddes@users.noreply.github.com>
    Co-authored-by: Dusan Cervenka <cervenka@acrios.com>
    Co-authored-by: bbain <16752579+bbain@users.noreply.github.com>
    Co-authored-by: Ju1He1 <93189163+Ju1He1@users.noreply.github.com>
    Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
    Co-authored-by: phelter <paulheltera@gmail.com>
    Co-authored-by: jacky309 <jacques.guillou@gmail.com>
    Co-authored-by: Jacques GUILLOU <jacques.guillou.job@gmail.com>
    Co-authored-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
    Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
    Co-authored-by: kar-rahul-aws <118818625+kar-rahul-aws@users.noreply.github.com>
    Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
    Co-authored-by: Keith Packard <keithp@keithp.com>
    Co-authored-by: Keith Packard <keithpac@amazon.com>
    Co-authored-by: Joseph Julicher <jjulicher@mac.com>
    Co-authored-by: Paul Bartell <pbartell@amazon.com>
    Co-authored-by: Christos Zosimidis <christos.zosimidis@gmail.com>
    Co-authored-by: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com>
    Co-authored-by: Holden <holden-zenithaerotech.com>
    Co-authored-by: Darian <32921628+Dazza0@users.noreply.github.com>
    Co-authored-by: Ubuntu <ubuntu@ip-172-31-17-174.ec2.internal>
    Co-authored-by: Nicolas <nicolas.brunner@heig-vd.ch>
    Co-authored-by: Vo Trung Chi <chi.votrung@vn.bosch.com>
    Co-authored-by: Sudeep Mohanty <91244425+sudeep-mohanty@users.noreply.github.com>
    Co-authored-by: Monika Singh <108652024+moninom1@users.noreply.github.com>
    Co-authored-by: Darian Leung <darian@espressif.com>
    Co-authored-by: Tony Josi <tonyjosi@amazon.com>
    Co-authored-by: Evgeny Ermakov <22344340+unspecd@users.noreply.github.com>
    Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
    Co-authored-by: Joris Putcuyps <joris.putcuyps@gmail.com>
    Co-authored-by: Patrick Cook <114708437+cookpate@users.noreply.github.com>
    Co-authored-by: Mr. Jake <norbertzpilicy@gmail.com>
    Co-authored-by: Paul Bartell <paul.bartell@gmail.com>
    Co-authored-by: Soren Ptak <Skptak@outlook.com>
    Co-authored-by: Soren Ptak <skptak@amazon.com>
    Configuration menu
    Copy the full SHA
    7acf8fd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4e74560 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2023

  1. Move default configNUMBER_OF_CORES definition forward in FreeRTOSConf…

    …ig.h (#88)
    
    * Move default configNUMBER_OF_CORES definition forward in FreeRTOSConfig.h.
    chinglee-iot committed Jul 24, 2023
    Configuration menu
    Copy the full SHA
    9be537e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0afe21a View commit details
    Browse the repository at this point in the history