From cd9720c82167caae560da0bb67398ab4e8a4c631 Mon Sep 17 00:00:00 2001 From: kar-rahul-aws Date: Mon, 15 Jul 2024 14:55:21 +0530 Subject: [PATCH] Update the RM57 project --- ...C_R5F_TI_RM57_HERCULES_GCC.code-workspace} | 10 +- .../include/FreeRTOSConfig.h | 29 +- .../include/demo_tasks.h | 25 +- .../source/irq_demo.c | 18 +- .../source/main.c | 62 +- .../source/notification_demo.c | 58 +- .../source/queue_demo.c | 43 +- .../source/reg_test.c | 13 +- .../source/reg_test_GCC.S | 8 +- .../source/uncrustify.cfg | 673 ------------------ 10 files changed, 131 insertions(+), 808 deletions(-) rename FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/{CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC.code-workspace => CORTEX_NO_GIC_R5F_TI_RM57_HERCULES_GCC.code-workspace} (85%) delete mode 100644 FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/uncrustify.cfg diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC.code-workspace b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_NO_GIC_R5F_TI_RM57_HERCULES_GCC.code-workspace similarity index 85% rename from FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC.code-workspace rename to FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_NO_GIC_R5F_TI_RM57_HERCULES_GCC.code-workspace index 87f157a220..a132b0b1a0 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC.code-workspace +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/.vscode/CORTEX_NO_GIC_R5F_TI_RM57_HERCULES_GCC.code-workspace @@ -8,13 +8,13 @@ "name": "FreeRTOS-Kernel" }, { - "path": "../../../Source/portable/GCC/ARM_CRx_MPU", + "path": "../../../Source/portable/GCC/ARM_CRx_No_GIC", "C_Cpp.default.includePath": [ "../source", "../include", "../BoardFiles/include", "../BoardFiles/source", - "../../Source/portable/GCC/ARM_CRx_MPU", + "../../Source/portable/GCC/ARM_CRx_No_GIC", "../../Source/include", "../../Source", ], @@ -34,15 +34,15 @@ "**/.github**": true, "**/.git[a-hj-z-]**": true, "**/portable/**": true - + }, - + "C_Cpp.default.includePath": [ "../source", "../include", "../BoardFiles/include", "../BoardFiles/source", - "../../Source/portable/GCC/ARM_CRx_MPU", + "../../Source/portable/GCC/ARM_CRx_No_GIC", "../../Source/include", "../../Source", ], diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/FreeRTOSConfig.h index 4eba13f614..c71bab9ddf 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/FreeRTOSConfig.h @@ -2,22 +2,23 @@ * FreeRTOS V202212.00 * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS @@ -66,11 +67,6 @@ extern void vMainSetupTimerInterrupt( void ); #define NULL 0x0 #endif - #define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1U - #define configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS 0U - - #define configENABLE_FPU 1U - #define configNUMBER_OF_CORES 1U #define configUSE_PREEMPTION 1U #define configUSE_IDLE_HOOK 1U @@ -80,6 +76,7 @@ extern void vMainSetupTimerInterrupt( void ); #define configQUEUE_REGISTRY_SIZE 10U #define configSUPPORT_STATIC_ALLOCATION 1U #define configSUPPORT_DYNAMIC_ALLOCATION 0U + #define configUSE_TASK_FPU_SUPPORT 2U #define configCPU_CLOCK_HZ ( 110000000U ) #define configTICK_RATE_HZ ( 1000U ) diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/demo_tasks.h b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/demo_tasks.h index f5bbe44af6..6e9b8dceb2 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/demo_tasks.h +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/include/demo_tasks.h @@ -2,22 +2,23 @@ * FreeRTOS V202212.00 * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS @@ -41,7 +42,7 @@ /** @brief Demo that uses the Task Notification APIs */ #define NOTIFICATION_DEMO 0x8 -/** @brief Build Register, Queue, MPU, IRQ, and Notification demos */ +/** @brief Build Register, Queue, IRQ, and Notification demos */ #define FULL_DEMO ( REGISTER_DEMO | QUEUE_DEMO | IRQ_DEMO | NOTIFICATION_DEMO ) /** @brief Bitfield used to select the Demo Tasks to build and run diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/irq_demo.c b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/irq_demo.c index 8288d6218a..6a03ee30f6 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/irq_demo.c +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/irq_demo.c @@ -39,26 +39,26 @@ /* Demo include */ #include "demo_tasks.h" -#if ( mainDEMO_TYPE & IRQ_DEMO ) +#if ( mainDEMO_TYPE &IRQ_DEMO ) /** @brief TCB used by the IRQ Test Task */ - static StaticTask_t xIRQTestTaskTCB; + static StaticTask_t xIRQTestTaskTCB; -/** @brief MPU Region Aligned Stack used by the IRQ Test Task */ +/** @brief Stack used by the IRQ Test Task */ - static StackType_t uxIRQTestTaskStack[ configMINIMAL_STACK_SIZE ]; + static StackType_t uxIRQTestTaskStack[ configMINIMAL_STACK_SIZE ]; /** @brief Parameters that are passed into the IRQ test task solely for * the purpose of ensuring parameters are passed into tasks correctly. */ #define irqTASK_PARAMETER ( 0xFEEDBEEFUL ) /** @brief Statically allocated task handle for the IRQ Test task. */ - static TaskHandle_t xIRQTaskHandle; + static TaskHandle_t xIRQTaskHandle; - volatile static uint32_t ulIntNestTestVal; + volatile static uint32_t ulIntNestTestVal; /* ----------------------------------------------------------------------------------- */ -/** @brief Entry point for the Unprivileged IRQ Test Task. +/** @brief Entry point for the IRQ Test Task. * @param pvParameters A test value to ensure the task's arguments are correctly set. * @note This task raises Software Interrupts (SWI) in the form of IRQs using the * Vectored Interrupt Manager (VIM) built into the RM57 by Texas Instrument (TI). @@ -124,7 +124,7 @@ /* ----------------------------------------------------------------------------------- */ - void vIRQDemoHandler( void ) /* PRIVILEGED_FUNCTION */ + void vIRQDemoHandler( void ) { sci_print( "\tSWI Based IRQ was raised!\r\n" ); volatile uint32_t ulSSIRegisterValue; @@ -221,7 +221,7 @@ { BaseType_t xReturn = pdFAIL; - /* Create the register check tasks, as described at the top of this file. */ + /* Create the IRQ check tasks, as described at the top of this file. */ xIRQTaskHandle = xTaskCreateStatic( prvIRQTestTask, "IRQTestTask", configMINIMAL_STACK_SIZE, diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/main.c b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/main.c index ea5aa5ab34..b260f63e0f 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/main.c +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/main.c @@ -72,21 +72,21 @@ void vApplicationIRQHandler( void ); /* --------------------- Static Task Memory Allocation --------------------- */ /** @brief Statically declared TCB Used by the Idle Task */ - static StaticTask_t xTimerTaskTCB; +static StaticTask_t xTimerTaskTCB; -/** @brief Statically declared MPU aligned stack used by the timer task */ - static StackType_t uxTimerTaskStack[ configMINIMAL_STACK_SIZE ]; +/** @brief Statically declared stack used by the timer task */ +static StackType_t uxTimerTaskStack[ configMINIMAL_STACK_SIZE ]; /** @brief Statically declared TCB Used by the Idle Task */ - static StaticTask_t xIdleTaskTCB; +static StaticTask_t xIdleTaskTCB; -/** @brief Statically declared MPU aligned stack used by the idle task */ - static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; +/** @brief Statically declared stack used by the idle task */ +static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; /** @brief Simple variable to show how the idle tick hook can be used */ - static volatile TickType_t ulIdleTickHookCount = 0x0; +static volatile TickType_t ulIdleTickHookCount = 0x0; - extern volatile uint32_t ulPortYieldRequired; +extern volatile uint32_t ulPortYieldRequired; /* ------------------------------------------------------------------------- */ @@ -101,48 +101,48 @@ int main( void ) "----------------------------\r\n\r\n" ); #if ( mainDEMO_TYPE & REGISTER_DEMO ) - { - if( pdPASS == xReturn ) { - sci_print( "Creating the Register test tasks\r\n" ); - xReturn = xCreateRegisterTestTasks(); + if( pdPASS == xReturn ) + { + sci_print( "Creating the Register test tasks\r\n" ); + xReturn = xCreateRegisterTestTasks(); + } } - } #endif /* ( mainDEMO_TYPE & REGISTER_DEMO ) */ #if ( mainDEMO_TYPE & QUEUE_DEMO ) - { - if( pdPASS == xReturn ) { - sci_print( "Creating the Queue Demo Tasks\r\n" ); - xReturn = xCreateQueueTasks(); + if( pdPASS == xReturn ) + { + sci_print( "Creating the Queue Demo Tasks\r\n" ); + xReturn = xCreateQueueTasks(); + } } - } #endif /* ( mainDEMO_TYPE & QUEUE_DEMO ) */ #if ( mainDEMO_TYPE & IRQ_DEMO ) - { - if( pdPASS == xReturn ) { - sci_print( "Creating the IRQ Demo Tasks\r\n" ); - xReturn = xCreateIRQTestTask(); + if( pdPASS == xReturn ) + { + sci_print( "Creating the IRQ Demo Tasks\r\n" ); + xReturn = xCreateIRQTestTask(); + } } - } #endif /* ( mainDEMO_TYPE & IRQ_DEMO ) */ #if ( mainDEMO_TYPE & NOTIFICATION_DEMO ) - { - if( pdPASS == xReturn ) { - sci_print( "Creating the Notification Demo Tasks\r\n" ); - xReturn = xCreateNotificationTestTask(); + if( pdPASS == xReturn ) + { + sci_print( "Creating the Notification Demo Tasks\r\n" ); + xReturn = xCreateNotificationTestTask(); + } } - } #endif /* ( mainDEMO_TYPE & NOTIFICATION_DEMO ) */ if( pdPASS == xReturn ) { - sci_print( "\r\n--------------------------- Start of FreeRTOS Demos" + sci_print( "\r\n--------------------------- Start of FreeRTOS Demo Tasks" "---------------------------\r\n\r\n" ); vTaskStartScheduler(); } @@ -295,8 +295,6 @@ void vAssertCalled( const char * pcFuncName, __asm volatile ( "NOP" ); } - /* NOTE: Unprivileged tasks cannot enter critical sections on the ARM_CRx_MPU port. - * Meaning unprivileged tasks will cause a pre-fetch abort if they fail an assert. */ taskENTER_CRITICAL(); { /* You can step out of this function to debug the assertion by using @@ -406,7 +404,7 @@ void vApplicationIRQHandler( void ) /* An IRQ Raised by Channel 21 of the VIM is a Software Interrupt (SSI). */ else if( 21UL == ulIRQChannelIndex ) { - #if ( mainDEMO_TYPE & IRQ_DEMO ) + #if ( mainDEMO_TYPE &IRQ_DEMO ) /* This is an interrupt raised by Software */ vIRQDemoHandler(); #else diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/notification_demo.c b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/notification_demo.c index f2f9dfbbf2..fc314ed612 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/notification_demo.c +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/notification_demo.c @@ -2,22 +2,23 @@ * FreeRTOS V202212.00 * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS @@ -48,13 +49,13 @@ /** @brief Value sent back and forth between the tasks */ #define notificationTEST_VALUE 0x1234UL -/** @brief TCB used by the Notification Test Task */ - static StaticTask_t xNotificationTestTaskTCB; + /** @brief TCB used by the Notification Test Task */ + static StaticTask_t xNotificationTestTaskTCB; -/** @brief MPU Region Aligned Stack used by the Notification Test Task */ + /** @brief Stack used by the Notification Test Task */ static StackType_t uxNotificationTestTaskStack[ configMINIMAL_STACK_SIZE ]; -/** @brief Statically allocated task handle for the Notification Test task. */ + /** @brief Statically allocated task handle for the Notification Test task. */ static TaskHandle_t xNotificationTaskOneHandle; /* ----------------------------------------------------------------------------------- */ @@ -72,8 +73,11 @@ } } -/** @brief Entry point for the Unprivileged Notification Test Task. - * @param pvParameters A test value to ensure the task's arguments are correctly set. +/* ----------------------------------------------------------------------------------- */ + +/** @brief Entry point for the Notification Test Task. + * @param pvParameters A test value to ensure the task's arguments are correctly + * set. * @note This task sends itself and another task notifications using the * cross-task notification APIs. */ @@ -91,7 +95,8 @@ ulNotificationValue = 0x0UL; /* The task should not yet have a notification pending. */ - xReturned = xTaskNotifyWait( 0x0UL, 0x0UL, &ulNotificationValue, 0x0UL ); + xReturned = xTaskNotifyWait( 0x0UL, 0x0UL, + &ulNotificationValue, 0x0UL ); configASSERT( pdFAIL == xReturned ); configASSERT( 0x0UL == ulNotificationValue ); @@ -107,7 +112,8 @@ /* Two notifications have been sent to this task by itself */ configASSERT( 0x2UL == ulNotificationValue ); - sci_print( "Notification Task correctly sent itself two notifications!\r\n" ); + sci_print( "Notification Task correctly sent itself two" + "notifications!\r\n" ); /* Now make the task send itself a notification with a value */ xReturned = xTaskNotify( xTaskGetCurrentTaskHandle(), @@ -131,7 +137,8 @@ } else { - sci_print( "Notification Task did NOT get the expected value!\r\n" ); + sci_print( "Notification Task did NOT get the expected" + "value!\r\n" ); configASSERT( 0x0UL ); } @@ -139,12 +146,13 @@ ulNotificationValue = 0x0UL; /* There should be no value to receive this time */ - xReturned = xTaskNotifyWait( 0, 0, &ulNotificationValue, ( TickType_t ) 0x0UL ); + xReturned = xTaskNotifyWait( 0, 0, &ulNotificationValue, + ( TickType_t ) 0x0UL ); if( ( pdPASS == xReturned ) || ( 0x0 != ulNotificationValue ) ) { - sci_print( "Notification Task received a value when there should have been " - "none" ); + sci_print( "Notification Task received a value when there" + "should have been none" ); configASSERT( 0x0UL ); } diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/queue_demo.c b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/queue_demo.c index b31575b75b..4a525cf501 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/queue_demo.c +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/queue_demo.c @@ -2,22 +2,23 @@ * FreeRTOS V202212.00 * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS @@ -48,7 +49,7 @@ #if ( mainDEMO_TYPE & QUEUE_DEMO ) - /* ------------------------------ Demo Task Configs ------------------------------ */ + /* ------------------------------ Demo Task Configs --------------------*/ /** @brief The rate at which data is sent to the queue from the send task. * @note Ticks are converted to milliseconds using pdMS_TO_TICKS(). */ @@ -95,16 +96,16 @@ /*-------------------- Static Task Memory Allocation ------------------- */ -/** @brief Statically allocated, and MPU aligned, Queue object */ +/** @brief Statically allocated Queue object */ static StaticQueue_t xStaticQueue; -/** @brief Statically allocated, and MPU aligned, Storage for the Queue */ +/** @brief Statically allocated Storage for the Queue */ static uint8_t xQueueStorage[ 0x20 ]; -/** @brief Statically allocated, and MPU aligned, QueueHandle */ +/** @brief Statically allocated QueueHandle */ static QueueHandle_t xQueue; -/* Each task needs to know the other tasks handle so they can send signals to +/* Each task needs to know the other tasks' handle so they can send signals to * each other. The handle is obtained from the task's name. */ /** @brief Task name for the queue send task. */ @@ -113,13 +114,13 @@ /** @brief Task name for the queue receive task. */ static const char * pcReceiveTaskName = "ReceiveTaskName"; -/** @brief Static MPU aligned stack used by the Queue Send Task */ +/** @brief Statically allocated stack used by the Queue Send Task */ static StackType_t xQueueSendTaskStack[ configMINIMAL_STACK_SIZE / 2U ]; /** @brief Static TCB Used by the Queue Send Task */ static StaticTask_t xQueueSendTaskTCB; -/** @brief Static MPU aligned stack used by the Queue Receive Task */ +/** @brief Statically allocated stack used by the Queue Receive Task */ static StackType_t xQueueReceiveTaskStack[ configMINIMAL_STACK_SIZE / 2U ]; /** @brief Static TCB Used by the Queue Receive Task */ @@ -182,6 +183,8 @@ return xReturn; } +/* ------------------------------------------------------------------------------------ */ + BaseType_t xCreateQueueTasks( void ) { BaseType_t xReturn = pdPASS; diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test.c b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test.c index 34e558652a..36d8fb93ae 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test.c +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test.c @@ -44,13 +44,13 @@ /** @brief TCB used by Register Test Task One */ static StaticTask_t xRegTestOneTaskTCB; -/** @brief Small MPU Region Aligned Stack used by Register Test Task One */ +/** @brief Stack used by Register Test Task One */ static StackType_t uxRegTestOneTaskStack[ configMINIMAL_STACK_SIZE / 2U ]; /** @brief TCB used by Register Test Two Task */ static StaticTask_t xRegTestTwoTaskTCB; -/** @brief Small MPU Region Aligned Stack used by Register Test Task Two */ +/** @brief Stack used by Register Test Task Two */ static StackType_t uxRegTestTwoTaskStack[ configMINIMAL_STACK_SIZE / 2U ]; /* Parameters that are passed into the register check tasks solely for the @@ -62,7 +62,6 @@ static StackType_t uxRegTestTwoTaskStack[ configMINIMAL_STACK_SIZE / 2U ]; /** @brief Array to track the number of loops the register test tasks have run. * - * @note Smallest valid MPU region size for Armv7-R is 32 bytes. * Register Test One will use loopCount[0]; * Register Test Two Will use loopCount[1]; */ @@ -84,10 +83,6 @@ static TaskHandle_t xRegisterTaskTwoHandle; */ static void prvRegTestTaskEntry1( void * pvParameters ) { - /** - * Intialize the FPU context of the task. - */ - vPortTaskUsesFPU(); /** Although the Register Test task is written in assembly, its entry point * is written in C for convenience of checking the task parameter is being * passed in correctly. */ @@ -115,10 +110,6 @@ static void prvRegTestTaskEntry1( void * pvParameters ) */ static void prvRegTestTaskEntry2( void * pvParameters ) { - /** - * Intialize the FPU context of the task. - */ - vPortTaskUsesFPU(); /** Although the Register Test task is written in assembly, its entry point * is written in C for convenience of checking the task parameter is being * passed in correctly. */ diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test_GCC.S b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test_GCC.S index 2e4ff354ff..82aa34394f 100644 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test_GCC.S +++ b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/reg_test_GCC.S @@ -30,6 +30,7 @@ .global vRegTest1Implementation .global vRegTest2Implementation + .extern vPortYield .extern .extern loopCounter .text @@ -79,7 +80,7 @@ vRegTest1Implementation: reg1_loop: /* Perform a yield to increase test coverage */ PUSH {R0, R14} -/* BLX vPortYield */ + BLX vPortYield POP {R0, R14} /* Check all the VFP registers still contain the values set above. @@ -225,7 +226,6 @@ reg1_loopf_pass: /* Delay for 0x100 ticks before running again */ PUSH { R0-R4, R12, R14 } MOV R0, #0x100 - /* As this is a privileged task, it can directly call vTaskDelay */ LDR R1, =vTaskDelay BLX R1 POP { R0-R4, R12, R14 } @@ -284,7 +284,7 @@ reg2_loop: /* Yield to increase test coverage */ PUSH {R0, R14} -/* BLX vPortYield */ + BLX vPortYield POP {R0, R14} /* Check all the VFP registers still contain the values set above. @@ -425,8 +425,6 @@ reg2_loopf_pass: /* Delay for 0x200 ticks before running again */ PUSH { R0-R4, R12, R14 } MOV R0, #0x200 - /* Unprivileged tasks need to use the MPU wrapped functions. - * Change this to be BLX vTaskDelay to trigger a pre-fetch abort. */ BLX vTaskDelay POP { R0-R4, R12, R14 } diff --git a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/uncrustify.cfg b/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/uncrustify.cfg deleted file mode 100644 index 3f4c40cab1..0000000000 --- a/FreeRTOS/Demo/CORTEX_No_GIC_R5F_TI_RM57_HERCULES_GCC/source/uncrustify.cfg +++ /dev/null @@ -1,673 +0,0 @@ -# Uncrustify-0.69.0 - -newlines = auto # lf/crlf/cr/auto -input_tab_size = 4 # unsigned number -output_tab_size = 4 # unsigned number -string_escape_char = 92 # unsigned number -string_escape_char2 = 0 # unsigned number -string_replace_tab_chars = false # true/false -tok_split_gte = false # true/false -disable_processing_cmt = " *INDENT-OFF*" # string -enable_processing_cmt = " *INDENT-ON*" # string -enable_digraphs = false # true/false -utf8_bom = ignore # ignore/add/remove/force -utf8_byte = false # true/false -utf8_force = false # true/false -sp_arith = force # ignore/add/remove/force -sp_arith_additive = ignore # ignore/add/remove/force -sp_assign = force # ignore/add/remove/force -sp_cpp_lambda_assign = ignore # ignore/add/remove/force -sp_cpp_lambda_paren = ignore # ignore/add/remove/force -sp_assign_default = force # ignore/add/remove/force -sp_before_assign = force # ignore/add/remove/force -sp_after_assign = force # ignore/add/remove/force -sp_enum_paren = ignore # ignore/add/remove/force -sp_enum_assign = force # ignore/add/remove/force -sp_enum_before_assign = force # ignore/add/remove/force -sp_enum_after_assign = force # ignore/add/remove/force -sp_enum_colon = ignore # ignore/add/remove/force -sp_pp_concat = add # ignore/add/remove/force -sp_pp_stringify = add # ignore/add/remove/force -sp_before_pp_stringify = ignore # ignore/add/remove/force -sp_bool = force # ignore/add/remove/force -sp_compare = force # ignore/add/remove/force -sp_inside_paren = force # ignore/add/remove/force -sp_paren_paren = force # ignore/add/remove/force -sp_cparen_oparen = ignore # ignore/add/remove/force -sp_balance_nested_parens = false # true/false -sp_paren_brace = force # ignore/add/remove/force -sp_brace_brace = ignore # ignore/add/remove/force -sp_before_ptr_star = force # ignore/add/remove/force -sp_before_unnamed_ptr_star = force # ignore/add/remove/force -sp_between_ptr_star = remove # ignore/add/remove/force -sp_after_ptr_star = force # ignore/add/remove/force -sp_after_ptr_block_caret = ignore # ignore/add/remove/force -sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force -sp_after_ptr_star_func = ignore # ignore/add/remove/force -sp_ptr_star_paren = ignore # ignore/add/remove/force -sp_before_ptr_star_func = ignore # ignore/add/remove/force -sp_before_byref = force # ignore/add/remove/force -sp_before_unnamed_byref = ignore # ignore/add/remove/force -sp_after_byref = remove # ignore/add/remove/force -sp_after_byref_func = remove # ignore/add/remove/force -sp_before_byref_func = ignore # ignore/add/remove/force -sp_after_type = force # ignore/add/remove/force -sp_after_decltype = ignore # ignore/add/remove/force -sp_before_template_paren = ignore # ignore/add/remove/force -sp_template_angle = ignore # ignore/add/remove/force -sp_before_angle = remove # ignore/add/remove/force -sp_inside_angle = remove # ignore/add/remove/force -sp_inside_angle_empty = ignore # ignore/add/remove/force -sp_angle_colon = ignore # ignore/add/remove/force -sp_after_angle = force # ignore/add/remove/force -sp_angle_paren = ignore # ignore/add/remove/force -sp_angle_paren_empty = ignore # ignore/add/remove/force -sp_angle_word = ignore # ignore/add/remove/force -sp_angle_shift = add # ignore/add/remove/force -sp_permit_cpp11_shift = false # true/false -sp_before_sparen = remove # ignore/add/remove/force -sp_inside_sparen = force # ignore/add/remove/force -sp_inside_sparen_open = ignore # ignore/add/remove/force -sp_inside_sparen_close = ignore # ignore/add/remove/force -sp_after_sparen = force # ignore/add/remove/force -sp_sparen_brace = force # ignore/add/remove/force -sp_invariant_paren = ignore # ignore/add/remove/force -sp_after_invariant_paren = ignore # ignore/add/remove/force -sp_special_semi = ignore # ignore/add/remove/force -sp_before_semi = remove # ignore/add/remove/force -sp_before_semi_for = remove # ignore/add/remove/force -sp_before_semi_for_empty = add # ignore/add/remove/force -sp_after_semi = add # ignore/add/remove/force -sp_after_semi_for = force # ignore/add/remove/force -sp_after_semi_for_empty = force # ignore/add/remove/force -sp_before_square = remove # ignore/add/remove/force -sp_before_squares = remove # ignore/add/remove/force -sp_cpp_before_struct_binding = ignore # ignore/add/remove/force -sp_inside_square = force # ignore/add/remove/force -sp_inside_square_oc_array = ignore # ignore/add/remove/force -sp_after_comma = force # ignore/add/remove/force -sp_before_comma = remove # ignore/add/remove/force -sp_after_mdatype_commas = ignore # ignore/add/remove/force -sp_before_mdatype_commas = ignore # ignore/add/remove/force -sp_between_mdatype_commas = ignore # ignore/add/remove/force -sp_paren_comma = force # ignore/add/remove/force -sp_before_ellipsis = ignore # ignore/add/remove/force -sp_type_ellipsis = ignore # ignore/add/remove/force -sp_type_question = ignore # ignore/add/remove/force -sp_paren_ellipsis = ignore # ignore/add/remove/force -sp_paren_qualifier = ignore # ignore/add/remove/force -sp_paren_noexcept = ignore # ignore/add/remove/force -sp_after_class_colon = ignore # ignore/add/remove/force -sp_before_class_colon = ignore # ignore/add/remove/force -sp_after_constr_colon = ignore # ignore/add/remove/force -sp_before_constr_colon = ignore # ignore/add/remove/force -sp_before_case_colon = remove # ignore/add/remove/force -sp_after_operator = ignore # ignore/add/remove/force -sp_after_operator_sym = ignore # ignore/add/remove/force -sp_after_operator_sym_empty = ignore # ignore/add/remove/force -sp_after_cast = force # ignore/add/remove/force -sp_inside_paren_cast = force # ignore/add/remove/force -sp_cpp_cast_paren = ignore # ignore/add/remove/force -sp_sizeof_paren = remove # ignore/add/remove/force -sp_sizeof_ellipsis = ignore # ignore/add/remove/force -sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force -sp_decltype_paren = ignore # ignore/add/remove/force -sp_after_tag = ignore # ignore/add/remove/force -sp_inside_braces_enum = force # ignore/add/remove/force -sp_inside_braces_struct = force # ignore/add/remove/force -sp_inside_braces_oc_dict = ignore # ignore/add/remove/force -sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force -sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force -sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force -sp_inside_braces = force # ignore/add/remove/force -sp_inside_braces_empty = remove # ignore/add/remove/force -sp_type_func = force # ignore/add/remove/force -sp_type_brace_init_lst = ignore # ignore/add/remove/force -sp_func_proto_paren = remove # ignore/add/remove/force -sp_func_proto_paren_empty = ignore # ignore/add/remove/force -sp_func_def_paren = remove # ignore/add/remove/force -sp_func_def_paren_empty = ignore # ignore/add/remove/force -sp_inside_fparens = remove # ignore/add/remove/force -sp_inside_fparen = force # ignore/add/remove/force -sp_inside_tparen = ignore # ignore/add/remove/force -sp_after_tparen_close = ignore # ignore/add/remove/force -sp_square_fparen = ignore # ignore/add/remove/force -sp_fparen_brace = add # ignore/add/remove/force -sp_fparen_brace_initializer = ignore # ignore/add/remove/force -sp_fparen_dbrace = ignore # ignore/add/remove/force -sp_func_call_paren = remove # ignore/add/remove/force -sp_func_call_paren_empty = ignore # ignore/add/remove/force -sp_func_call_user_paren = ignore # ignore/add/remove/force -sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force -sp_func_call_user_paren_paren = ignore # ignore/add/remove/force -sp_func_class_paren = remove # ignore/add/remove/force -sp_func_class_paren_empty = ignore # ignore/add/remove/force -sp_return_paren = remove # ignore/add/remove/force -sp_return_brace = ignore # ignore/add/remove/force -sp_attribute_paren = remove # ignore/add/remove/force -sp_defined_paren = remove # ignore/add/remove/force -sp_throw_paren = ignore # ignore/add/remove/force -sp_after_throw = ignore # ignore/add/remove/force -sp_catch_paren = ignore # ignore/add/remove/force -sp_oc_catch_paren = ignore # ignore/add/remove/force -sp_oc_classname_paren = ignore # ignore/add/remove/force -sp_version_paren = ignore # ignore/add/remove/force -sp_scope_paren = ignore # ignore/add/remove/force -sp_super_paren = remove # ignore/add/remove/force -sp_this_paren = remove # ignore/add/remove/force -sp_macro = force # ignore/add/remove/force -sp_macro_func = force # ignore/add/remove/force -sp_else_brace = ignore # ignore/add/remove/force -sp_brace_else = ignore # ignore/add/remove/force -sp_brace_typedef = force # ignore/add/remove/force -sp_catch_brace = ignore # ignore/add/remove/force -sp_oc_catch_brace = ignore # ignore/add/remove/force -sp_brace_catch = ignore # ignore/add/remove/force -sp_oc_brace_catch = ignore # ignore/add/remove/force -sp_finally_brace = ignore # ignore/add/remove/force -sp_brace_finally = ignore # ignore/add/remove/force -sp_try_brace = ignore # ignore/add/remove/force -sp_getset_brace = ignore # ignore/add/remove/force -sp_word_brace = add # ignore/add/remove/force -sp_word_brace_ns = add # ignore/add/remove/force -sp_before_dc = remove # ignore/add/remove/force -sp_after_dc = remove # ignore/add/remove/force -sp_d_array_colon = ignore # ignore/add/remove/force -sp_not = remove # ignore/add/remove/force -sp_inv = remove # ignore/add/remove/force -sp_addr = remove # ignore/add/remove/force -sp_member = remove # ignore/add/remove/force -sp_deref = remove # ignore/add/remove/force -sp_sign = remove # ignore/add/remove/force -sp_incdec = remove # ignore/add/remove/force -sp_before_nl_cont = add # ignore/add/remove/force -sp_after_oc_scope = ignore # ignore/add/remove/force -sp_after_oc_colon = ignore # ignore/add/remove/force -sp_before_oc_colon = ignore # ignore/add/remove/force -sp_after_oc_dict_colon = ignore # ignore/add/remove/force -sp_before_oc_dict_colon = ignore # ignore/add/remove/force -sp_after_send_oc_colon = ignore # ignore/add/remove/force -sp_before_send_oc_colon = ignore # ignore/add/remove/force -sp_after_oc_type = ignore # ignore/add/remove/force -sp_after_oc_return_type = ignore # ignore/add/remove/force -sp_after_oc_at_sel = ignore # ignore/add/remove/force -sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force -sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force -sp_before_oc_block_caret = ignore # ignore/add/remove/force -sp_after_oc_block_caret = ignore # ignore/add/remove/force -sp_after_oc_msg_receiver = ignore # ignore/add/remove/force -sp_after_oc_property = ignore # ignore/add/remove/force -sp_after_oc_synchronized = ignore # ignore/add/remove/force -sp_cond_colon = force # ignore/add/remove/force -sp_cond_colon_before = ignore # ignore/add/remove/force -sp_cond_colon_after = ignore # ignore/add/remove/force -sp_cond_question = force # ignore/add/remove/force -sp_cond_question_before = ignore # ignore/add/remove/force -sp_cond_question_after = ignore # ignore/add/remove/force -sp_cond_ternary_short = ignore # ignore/add/remove/force -sp_case_label = force # ignore/add/remove/force -sp_range = ignore # ignore/add/remove/force -sp_after_for_colon = ignore # ignore/add/remove/force -sp_before_for_colon = ignore # ignore/add/remove/force -sp_extern_paren = ignore # ignore/add/remove/force -sp_cmt_cpp_start = ignore # ignore/add/remove/force -sp_cmt_cpp_doxygen = false # true/false -sp_cmt_cpp_qttr = false # true/false -sp_endif_cmt = force # ignore/add/remove/force -sp_after_new = ignore # ignore/add/remove/force -sp_between_new_paren = ignore # ignore/add/remove/force -sp_after_newop_paren = ignore # ignore/add/remove/force -sp_inside_newop_paren = ignore # ignore/add/remove/force -sp_inside_newop_paren_open = ignore # ignore/add/remove/force -sp_inside_newop_paren_close = ignore # ignore/add/remove/force -sp_before_tr_emb_cmt = force # ignore/add/remove/force -sp_num_before_tr_emb_cmt = 1 # unsigned number -sp_annotation_paren = ignore # ignore/add/remove/force -sp_skip_vbrace_tokens = false # true/false -sp_after_noexcept = ignore # ignore/add/remove/force -sp_vala_after_translation = ignore # ignore/add/remove/force -force_tab_after_define = false # true/false -indent_columns = 4 # unsigned number -indent_continue = 0 # number -indent_continue_class_head = 0 # unsigned number -indent_single_newlines = false # true/false -indent_param = 0 # unsigned number -indent_with_tabs = 0 # unsigned number -indent_cmt_with_tabs = false # true/false -indent_align_string = true # true/false -indent_xml_string = 0 # unsigned number -indent_brace = 0 # unsigned number -indent_braces = false # true/false -indent_braces_no_func = false # true/false -indent_braces_no_class = false # true/false -indent_braces_no_struct = false # true/false -indent_brace_parent = false # true/false -indent_paren_open_brace = false # true/false -indent_cs_delegate_brace = false # true/false -indent_cs_delegate_body = false # true/false -indent_namespace = false # true/false -indent_namespace_single_indent = false # true/false -indent_namespace_level = 0 # unsigned number -indent_namespace_limit = 0 # unsigned number -indent_extern = false # true/false -indent_class = true # true/false -indent_class_colon = true # true/false -indent_class_on_colon = false # true/false -indent_constr_colon = false # true/false -indent_ctor_init_leading = 2 # unsigned number -indent_ctor_init = 0 # number -indent_else_if = false # true/false -indent_var_def_blk = 0 # number -indent_var_def_cont = false # true/false -indent_shift = false # true/false -indent_func_def_force_col1 = false # true/false -indent_func_call_param = false # true/false -indent_func_def_param = false # true/false -indent_func_proto_param = false # true/false -indent_func_class_param = false # true/false -indent_func_ctor_var_param = false # true/false -indent_template_param = false # true/false -indent_func_param_double = false # true/false -indent_func_const = 0 # unsigned number -indent_func_throw = 0 # unsigned number -indent_member = 3 # unsigned number -indent_member_single = false # true/false -indent_sing_line_comments = 0 # unsigned number -indent_relative_single_line_comments = false # true/false -indent_switch_case = 4 # unsigned number -indent_switch_pp = true # true/false -indent_case_shift = 0 # unsigned number -indent_case_brace = 3 # number -indent_col1_comment = false # true/false -indent_col1_multi_string_literal = false # true/false -indent_label = 1 # number -indent_access_spec = 1 # number -indent_access_spec_body = false # true/false -indent_paren_nl = false # true/false -indent_paren_close = 0 # unsigned number -indent_paren_after_func_def = false # true/false -indent_paren_after_func_decl = false # true/false -indent_paren_after_func_call = false # true/false -indent_comma_paren = false # true/false -indent_bool_paren = false # true/false -indent_semicolon_for_paren = false # true/false -indent_first_bool_expr = false # true/false -indent_first_for_expr = false # true/false -indent_square_nl = false # true/false -indent_preserve_sql = false # true/false -indent_align_assign = true # true/false -indent_align_paren = true # true/false -indent_oc_block = false # true/false -indent_oc_block_msg = 0 # unsigned number -indent_oc_msg_colon = 0 # unsigned number -indent_oc_msg_prioritize_first_colon = true # true/false -indent_oc_block_msg_xcode_style = false # true/false -indent_oc_block_msg_from_keyword = false # true/false -indent_oc_block_msg_from_colon = false # true/false -indent_oc_block_msg_from_caret = false # true/false -indent_oc_block_msg_from_brace = false # true/false -indent_min_vbrace_open = 0 # unsigned number -indent_vbrace_open_on_tabstop = false # true/false -indent_token_after_brace = true # true/false -indent_cpp_lambda_body = false # true/false -indent_using_block = true # true/false -indent_ternary_operator = 0 # unsigned number -indent_off_after_return_new = false # true/false -indent_single_after_return = false # true/false -indent_ignore_asm_block = false # true/false -nl_collapse_empty_body = false # true/false -nl_assign_leave_one_liners = true # true/false -nl_class_leave_one_liners = true # true/false -nl_enum_leave_one_liners = false # true/false -nl_getset_leave_one_liners = false # true/false -nl_cs_property_leave_one_liners = false # true/false -nl_func_leave_one_liners = false # true/false -nl_cpp_lambda_leave_one_liners = false # true/false -nl_if_leave_one_liners = false # true/false -nl_while_leave_one_liners = false # true/false -nl_for_leave_one_liners = false # true/false -nl_oc_msg_leave_one_liner = false # true/false -nl_oc_mdef_brace = ignore # ignore/add/remove/force -nl_oc_block_brace = ignore # ignore/add/remove/force -nl_oc_interface_brace = ignore # ignore/add/remove/force -nl_oc_implementation_brace = ignore # ignore/add/remove/force -nl_start_of_file = remove # ignore/add/remove/force -nl_start_of_file_min = 0 # unsigned number -nl_end_of_file = force # ignore/add/remove/force -nl_end_of_file_min = 1 # unsigned number -nl_assign_brace = add # ignore/add/remove/force -nl_assign_square = ignore # ignore/add/remove/force -nl_tsquare_brace = ignore # ignore/add/remove/force -nl_after_square_assign = ignore # ignore/add/remove/force -nl_fcall_brace = add # ignore/add/remove/force -nl_enum_brace = force # ignore/add/remove/force -nl_enum_class = ignore # ignore/add/remove/force -nl_enum_class_identifier = ignore # ignore/add/remove/force -nl_enum_identifier_colon = ignore # ignore/add/remove/force -nl_enum_colon_type = ignore # ignore/add/remove/force -nl_struct_brace = force # ignore/add/remove/force -nl_union_brace = force # ignore/add/remove/force -nl_if_brace = add # ignore/add/remove/force -nl_brace_else = add # ignore/add/remove/force -nl_elseif_brace = ignore # ignore/add/remove/force -nl_else_brace = add # ignore/add/remove/force -nl_else_if = ignore # ignore/add/remove/force -nl_before_if_closing_paren = ignore # ignore/add/remove/force -nl_brace_finally = ignore # ignore/add/remove/force -nl_finally_brace = ignore # ignore/add/remove/force -nl_try_brace = ignore # ignore/add/remove/force -nl_getset_brace = force # ignore/add/remove/force -nl_for_brace = add # ignore/add/remove/force -nl_catch_brace = ignore # ignore/add/remove/force -nl_oc_catch_brace = ignore # ignore/add/remove/force -nl_brace_catch = ignore # ignore/add/remove/force -nl_oc_brace_catch = ignore # ignore/add/remove/force -nl_brace_square = ignore # ignore/add/remove/force -nl_brace_fparen = ignore # ignore/add/remove/force -nl_while_brace = add # ignore/add/remove/force -nl_scope_brace = ignore # ignore/add/remove/force -nl_unittest_brace = ignore # ignore/add/remove/force -nl_version_brace = ignore # ignore/add/remove/force -nl_using_brace = ignore # ignore/add/remove/force -nl_brace_brace = ignore # ignore/add/remove/force -nl_do_brace = add # ignore/add/remove/force -nl_brace_while = ignore # ignore/add/remove/force -nl_switch_brace = add # ignore/add/remove/force -nl_synchronized_brace = ignore # ignore/add/remove/force -nl_multi_line_cond = false # true/false -nl_multi_line_define = true # true/false -nl_before_case = true # true/false -nl_after_case = true # true/false -nl_case_colon_brace = ignore # ignore/add/remove/force -nl_before_throw = ignore # ignore/add/remove/force -nl_namespace_brace = ignore # ignore/add/remove/force -nl_template_class = ignore # ignore/add/remove/force -nl_class_brace = ignore # ignore/add/remove/force -nl_class_init_args = ignore # ignore/add/remove/force -nl_constr_init_args = ignore # ignore/add/remove/force -nl_enum_own_lines = ignore # ignore/add/remove/force -nl_func_type_name = remove # ignore/add/remove/force -nl_func_type_name_class = ignore # ignore/add/remove/force -nl_func_class_scope = ignore # ignore/add/remove/force -nl_func_scope_name = ignore # ignore/add/remove/force -nl_func_proto_type_name = remove # ignore/add/remove/force -nl_func_paren = remove # ignore/add/remove/force -nl_func_paren_empty = ignore # ignore/add/remove/force -nl_func_def_paren = remove # ignore/add/remove/force -nl_func_def_paren_empty = ignore # ignore/add/remove/force -nl_func_call_paren = ignore # ignore/add/remove/force -nl_func_call_paren_empty = ignore # ignore/add/remove/force -nl_func_decl_start = remove # ignore/add/remove/force -nl_func_def_start = remove # ignore/add/remove/force -nl_func_decl_start_single = ignore # ignore/add/remove/force -nl_func_def_start_single = ignore # ignore/add/remove/force -nl_func_decl_start_multi_line = false # true/false -nl_func_def_start_multi_line = false # true/false -nl_func_decl_args = add # ignore/add/remove/force -nl_func_def_args = add # ignore/add/remove/force -nl_func_decl_args_multi_line = false # true/false -nl_func_def_args_multi_line = false # true/false -nl_func_decl_end = remove # ignore/add/remove/force -nl_func_def_end = remove # ignore/add/remove/force -nl_func_decl_end_single = ignore # ignore/add/remove/force -nl_func_def_end_single = ignore # ignore/add/remove/force -nl_func_decl_end_multi_line = false # true/false -nl_func_def_end_multi_line = false # true/false -nl_func_decl_empty = ignore # ignore/add/remove/force -nl_func_def_empty = ignore # ignore/add/remove/force -nl_func_call_empty = ignore # ignore/add/remove/force -nl_func_call_start = ignore # ignore/add/remove/force -nl_func_call_start_multi_line = false # true/false -nl_func_call_args_multi_line = false # true/false -nl_func_call_end_multi_line = false # true/false -nl_oc_msg_args = false # true/false -nl_fdef_brace = add # ignore/add/remove/force -nl_fdef_brace_cond = ignore # ignore/add/remove/force -nl_cpp_ldef_brace = ignore # ignore/add/remove/force -nl_return_expr = ignore # ignore/add/remove/force -nl_after_semicolon = true # true/false -nl_paren_dbrace_open = ignore # ignore/add/remove/force -nl_type_brace_init_lst = ignore # ignore/add/remove/force -nl_type_brace_init_lst_open = ignore # ignore/add/remove/force -nl_type_brace_init_lst_close = ignore # ignore/add/remove/force -nl_after_brace_open = true # true/false -nl_after_brace_open_cmt = false # true/false -nl_after_vbrace_open = false # true/false -nl_after_vbrace_open_empty = false # true/false -nl_after_brace_close = true # true/false -nl_after_vbrace_close = false # true/false -nl_brace_struct_var = ignore # ignore/add/remove/force -nl_define_macro = false # true/false -nl_squeeze_paren_close = false # true/false -nl_squeeze_ifdef = true # true/false -nl_squeeze_ifdef_top_level = false # true/false -nl_before_if = force # ignore/add/remove/force -nl_after_if = force # ignore/add/remove/force -nl_before_for = force # ignore/add/remove/force -nl_after_for = force # ignore/add/remove/force -nl_before_while = force # ignore/add/remove/force -nl_after_while = force # ignore/add/remove/force -nl_before_switch = force # ignore/add/remove/force -nl_after_switch = force # ignore/add/remove/force -nl_before_synchronized = ignore # ignore/add/remove/force -nl_after_synchronized = ignore # ignore/add/remove/force -nl_before_do = force # ignore/add/remove/force -nl_after_do = force # ignore/add/remove/force -nl_before_return = false # true/false -nl_after_return = true # true/false -nl_ds_struct_enum_cmt = false # true/false -nl_ds_struct_enum_close_brace = false # true/false -nl_class_colon = ignore # ignore/add/remove/force -nl_constr_colon = ignore # ignore/add/remove/force -nl_namespace_two_to_one_liner = false # true/false -nl_create_if_one_liner = false # true/false -nl_create_for_one_liner = false # true/false -nl_create_while_one_liner = false # true/false -nl_create_func_def_one_liner = false # true/false -nl_split_if_one_liner = false # true/false -nl_split_for_one_liner = false # true/false -nl_split_while_one_liner = false # true/false -nl_max = 4 # unsigned number -nl_max_blank_in_func = 0 # unsigned number -nl_before_func_body_proto = 0 # unsigned number -nl_before_func_body_def = 0 # unsigned number -nl_before_func_class_proto = 0 # unsigned number -nl_before_func_class_def = 0 # unsigned number -nl_after_func_proto = 0 # unsigned number -nl_after_func_proto_group = 1 # unsigned number -nl_after_func_class_proto = 0 # unsigned number -nl_after_func_class_proto_group = 0 # unsigned number -nl_class_leave_one_liner_groups = false # true/false -nl_after_func_body = 0 # unsigned number -nl_after_func_body_class = 2 # unsigned number -nl_after_func_body_one_liner = 0 # unsigned number -nl_func_var_def_blk = 1 # unsigned number -nl_typedef_blk_start = 0 # unsigned number -nl_typedef_blk_end = 0 # unsigned number -nl_typedef_blk_in = 0 # unsigned number -nl_var_def_blk_start = 0 # unsigned number -nl_var_def_blk_end = 0 # unsigned number -nl_var_def_blk_in = 0 # unsigned number -nl_before_block_comment = 2 # unsigned number -nl_before_c_comment = 0 # unsigned number -nl_before_cpp_comment = 0 # unsigned number -nl_after_multiline_comment = false # true/false -nl_after_label_colon = false # true/false -nl_after_struct = 0 # unsigned number -nl_before_class = 0 # unsigned number -nl_after_class = 0 # unsigned number -nl_before_access_spec = 0 # unsigned number -nl_after_access_spec = 0 # unsigned number -nl_comment_func_def = 0 # unsigned number -nl_after_try_catch_finally = 0 # unsigned number -nl_around_cs_property = 0 # unsigned number -nl_between_get_set = 0 # unsigned number -nl_property_brace = ignore # ignore/add/remove/force -nl_inside_namespace = 0 # unsigned number -eat_blanks_after_open_brace = true # true/false -eat_blanks_before_close_brace = true # true/false -nl_remove_extra_newlines = 0 # unsigned number -nl_after_annotation = ignore # ignore/add/remove/force -nl_between_annotation = ignore # ignore/add/remove/force -pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_bool = trail # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force -code_width = 0 # unsigned number -ls_for_split_full = false # true/false -ls_func_split_full = false # true/false -ls_code_width = false # true/false -align_keep_tabs = false # true/false -align_with_tabs = false # true/false -align_on_tabstop = false # true/false -align_number_right = false # true/false -align_keep_extra_space = false # true/false -align_func_params = false # true/false -align_func_params_span = 0 # unsigned number -align_func_params_thresh = 0 # number -align_func_params_gap = 0 # unsigned number -align_constr_value_span = 0 # unsigned number -align_constr_value_thresh = 0 # number -align_constr_value_gap = 0 # unsigned number -align_same_func_call_params = false # true/false -align_same_func_call_params_span = 0 # unsigned number -align_same_func_call_params_thresh = 0 # number -align_var_def_span = 0 # unsigned number -align_var_def_star_style = 0 # unsigned number -align_var_def_amp_style = 1 # unsigned number -align_var_def_thresh = 16 # number -align_var_def_gap = 0 # unsigned number -align_var_def_colon = false # true/false -align_var_def_colon_gap = 0 # unsigned number -align_var_def_attribute = false # true/false -align_var_def_inline = false # true/false -align_assign_span = 0 # unsigned number -align_assign_func_proto_span = 0 # unsigned number -align_assign_thresh = 12 # number -align_assign_decl_func = 0 # unsigned number -align_enum_equ_span = 0 # unsigned number -align_enum_equ_thresh = 0 # number -align_var_class_span = 0 # unsigned number -align_var_class_thresh = 0 # number -align_var_class_gap = 0 # unsigned number -align_var_struct_span = 0 # unsigned number -align_var_struct_thresh = 0 # number -align_var_struct_gap = 0 # unsigned number -align_struct_init_span = 3 # unsigned number -align_typedef_span = 5 # unsigned number -align_typedef_gap = 3 # unsigned number -align_typedef_func = 0 # unsigned number -align_typedef_star_style = 1 # unsigned number -align_typedef_amp_style = 1 # unsigned number -align_right_cmt_span = 3 # unsigned number -align_right_cmt_gap = 0 # unsigned number -align_right_cmt_mix = false # true/false -align_right_cmt_same_level = false # true/false -align_right_cmt_at_col = 0 # unsigned number -align_func_proto_span = 0 # unsigned number -align_func_proto_thresh = 0 # number -align_func_proto_gap = 0 # unsigned number -align_on_operator = false # true/false -align_mix_var_proto = false # true/false -align_single_line_func = false # true/false -align_single_line_brace = false # true/false -align_single_line_brace_gap = 0 # unsigned number -align_oc_msg_spec_span = 0 # unsigned number -align_nl_cont = true # true/false -align_pp_define_together = false # true/false -align_pp_define_span = 3 # unsigned number -align_pp_define_gap = 4 # unsigned number -align_left_shift = true # true/false -align_asm_colon = false # true/false -align_oc_msg_colon_span = 0 # unsigned number -align_oc_msg_colon_first = false # true/false -align_oc_decl_colon = false # true/false -cmt_width = 0 # unsigned number -cmt_reflow_mode = 0 # unsigned number -cmt_convert_tab_to_spaces = false # true/false -cmt_indent_multi = true # true/false -cmt_c_group = false # true/false -cmt_c_nl_start = false # true/false -cmt_c_nl_end = false # true/false -cmt_cpp_to_c = true # true/false -cmt_cpp_group = false # true/false -cmt_cpp_nl_start = false # true/false -cmt_cpp_nl_end = false # true/false -cmt_star_cont = true # true/false -cmt_sp_before_star_cont = 0 # unsigned number -cmt_sp_after_star_cont = 0 # unsigned number -cmt_multi_check_last = true # true/false -cmt_multi_first_len_minimum = 4 # unsigned number -cmt_insert_file_header = "" # string -cmt_insert_file_footer = "" # string -cmt_insert_func_header = "" # string -cmt_insert_class_header = "" # string -cmt_insert_oc_msg_header = "" # string -cmt_insert_before_preproc = false # true/false -cmt_insert_before_inlines = true # true/false -cmt_insert_before_ctor_dtor = false # true/false -mod_full_brace_do = add # ignore/add/remove/force -mod_full_brace_for = add # ignore/add/remove/force -mod_full_brace_function = ignore # ignore/add/remove/force -mod_full_brace_if = add # ignore/add/remove/force -mod_full_brace_if_chain = false # true/false -mod_full_brace_if_chain_only = false # true/false -mod_full_brace_while = add # ignore/add/remove/force -mod_full_brace_using = ignore # ignore/add/remove/force -mod_full_brace_nl = 0 # unsigned number -mod_full_brace_nl_block_rem_mlcond = false # true/false -mod_paren_on_return = ignore # ignore/add/remove/force -mod_pawn_semicolon = false # true/false -mod_full_paren_if_bool = true # true/false -mod_remove_extra_semicolon = true # true/false -mod_add_long_function_closebrace_comment = 0 # unsigned number -mod_add_long_namespace_closebrace_comment = 0 # unsigned number -mod_add_long_class_closebrace_comment = 0 # unsigned number -mod_add_long_switch_closebrace_comment = 0 # unsigned number -mod_add_long_ifdef_endif_comment = 10 # unsigned number -mod_add_long_ifdef_else_comment = 10 # unsigned number -mod_sort_import = false # true/false -mod_sort_using = false # true/false -mod_sort_include = false # true/false -mod_move_case_break = false # true/false -mod_case_brace = remove # ignore/add/remove/force -mod_remove_empty_return = true # true/false -mod_enum_last_comma = ignore # ignore/add/remove/force -mod_sort_oc_properties = false # true/false -mod_sort_oc_property_class_weight = 0 # number -mod_sort_oc_property_thread_safe_weight = 0 # number -mod_sort_oc_property_readwrite_weight = 0 # number -mod_sort_oc_property_reference_weight = 0 # number -mod_sort_oc_property_getter_weight = 0 # number -mod_sort_oc_property_setter_weight = 0 # number -mod_sort_oc_property_nullability_weight = 0 # number -pp_indent = force # ignore/add/remove/force -pp_indent_at_level = true # true/false -pp_indent_count = 4 # unsigned number -pp_space = remove # ignore/add/remove/force -pp_space_count = 0 # unsigned number -pp_indent_region = 0 # number -pp_region_indent_code = false # true/false -pp_indent_if = 0 # number -pp_if_indent_code = true # true/false -pp_define_at_level = false # true/false -pp_ignore_define_body = false # true/false -pp_indent_case = true # true/false -pp_indent_func_def = true # true/false -pp_indent_extern = true # true/false -pp_indent_brace = false # true/false -include_category_0 = "" # string -include_category_1 = "" # string -include_category_2 = "" # string -use_indent_func_call_param = true # true/false -use_indent_continue_only_once = false # true/false -indent_cpp_lambda_only_once = false # true/false -use_options_overriding_for_qt_macros = true # true/false -warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number