Merge branch 'main' into blocking_buffer

This commit is contained in:
Aniruddha Kanhere 2024-04-10 13:56:07 -07:00 committed by GitHub
commit ab31cf4b0f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
679 changed files with 18989 additions and 12515 deletions

View file

@ -549,6 +549,10 @@ NTRST
NVIC NVIC
ODAT ODAT
ODSR ODSR
OINC
OIWBNOWA
OIWBWA
OIWTNOWA
OPMOD OPMOD
optimisations optimisations
OPTIMISED OPTIMISED
@ -630,6 +634,7 @@ PREB
PRIA PRIA
Prioritised Prioritised
PRIS PRIS
PRIVDEFENA
PROCDLY PROCDLY
PRODH PRODH
PRODL PRODL
@ -795,6 +800,15 @@ SWRST
SWTRG SWTRG
synchronise synchronise
SYSC SYSC
sysclk
Sysclk
SysClk
SYSClk
SYSCLK
sysclock
Sysclock
SysClock
SYSCLOCK
TACCR TACCR
TACCTL TACCTL
TACLR TACLR
@ -877,6 +891,9 @@ UNDADD
unpadded unpadded
Unpadded Unpadded
UNPADDED UNPADDED
unprotect
Unprotect
Unprotected
UNRE UNRE
UNSUB UNSUB
UNSUBACK UNSUBACK

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
#/* #/*
# * FreeRTOS Kernel <DEVELOPMENT BRANCH> # * FreeRTOS Kernel <DEVELOPMENT BRANCH>
# * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. # * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# * # *
# * SPDX-License-Identifier: MIT # * SPDX-License-Identifier: MIT
# * # *
@ -37,7 +37,8 @@ KERNEL_IGNORED_FILES = [
'FreeRTOS-openocd.c', 'FreeRTOS-openocd.c',
'Makefile', 'Makefile',
'.DS_Store', '.DS_Store',
'cspell.config.yaml' 'cspell.config.yaml',
'.clang-format'
] ]
KERNEL_IGNORED_EXTENSIONS = [ KERNEL_IGNORED_EXTENSIONS = [
@ -135,12 +136,16 @@ KERNEL_HEADER = [
' */\n', ' */\n',
] ]
FREERTOS_COPYRIGHT_REGEX = r"^(;|#)?( *(\/\*|\*|#|\/\/))? Copyright \(C\) 20\d\d Amazon.com, Inc. or its affiliates. All Rights Reserved\.( \*\/)?$"
def main(): def main():
parser = HeaderChecker.configArgParser() parser = HeaderChecker.configArgParser()
args = parser.parse_args() args = parser.parse_args()
# Configure the checks then run # Configure the checks then run
checker = HeaderChecker(KERNEL_HEADER, checker = HeaderChecker(KERNEL_HEADER,
copyright_regex=FREERTOS_COPYRIGHT_REGEX,
ignored_files=KERNEL_IGNORED_FILES, ignored_files=KERNEL_IGNORED_FILES,
ignored_ext=KERNEL_IGNORED_EXTENSIONS, ignored_ext=KERNEL_IGNORED_EXTENSIONS,
ignored_patterns=KERNEL_IGNORED_PATTERNS, ignored_patterns=KERNEL_IGNORED_PATTERNS,

View file

@ -31,14 +31,14 @@ jobs:
# Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage # Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage
- name: Checkout FreeRTOS Release Tools - name: Checkout FreeRTOS Release Tools
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
path: tools path: tools
# Simpler git auth if we use checkout action and forward the repo to release script # Simpler git auth if we use checkout action and forward the repo to release script
- name: Checkout FreeRTOS Kernel - name: Checkout FreeRTOS Kernel
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: local_kernel path: local_kernel
fetch-depth: 0 fetch-depth: 0

View file

@ -9,7 +9,7 @@ jobs:
formatting: formatting:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4.1.1
- name: Check Formatting of FreeRTOS-Kernel Files - name: Check Formatting of FreeRTOS-Kernel Files
uses: FreeRTOS/CI-CD-Github-Actions/formatting@main uses: FreeRTOS/CI-CD-Github-Actions/formatting@main
with: with:
@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Clone This Repo - name: Clone This Repo
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
- name: Run spellings check - name: Run spellings check
uses: FreeRTOS/CI-CD-Github-Actions/spellings@main uses: FreeRTOS/CI-CD-Github-Actions/spellings@main
with: with:
@ -30,14 +30,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Clone This Repo - name: Clone This Repo
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
- name: Link Verification - name: Link Verification
uses: FreeRTOS/CI-CD-Github-Actions/link-verifier@main uses: FreeRTOS/CI-CD-Github-Actions/link-verifier@main
verify-manifest: verify-manifest:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4.1.1
with: with:
submodules: true submodules: true
fetch-depth: 0 fetch-depth: 0

View file

@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the Repository - name: Checkout the Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
- env: - env:
stepName: Install Build Essentials stepName: Install Build Essentials

View file

@ -7,11 +7,11 @@ jobs:
git-secrets: git-secrets:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4.1.1
with: with:
submodules: recursive submodules: recursive
- name: Checkout awslabs/git-secrets - name: Checkout awslabs/git-secrets
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
repository: awslabs/git-secrets repository: awslabs/git-secrets
ref: master ref: master

View file

@ -15,7 +15,7 @@ jobs:
# There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker # There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker
- name: Checkout FreeRTOS Tools - name: Checkout FreeRTOS Tools
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
sparse-checkout: '.github' sparse-checkout: '.github'
@ -24,7 +24,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: inspect path: inspect

View file

@ -14,7 +14,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -23,7 +23,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -43,7 +43,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -52,7 +52,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -74,7 +74,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -83,7 +83,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -110,7 +110,7 @@ jobs:
steps: steps:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
- name: Install GCC - name: Install GCC
shell: bash shell: bash
@ -137,7 +137,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -146,7 +146,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -166,7 +166,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -176,7 +176,7 @@ jobs:
stepName: Fetch Community-Supported-Demos Submodule stepName: Fetch Community-Supported-Demos Submodule
shell: bash shell: bash
run: | run: |
# Fetch Community-Supported-Demos Submodule # ${{ env.stepName }}
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}" echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
# This repository contains the microblaze_instructions.h header file # This repository contains the microblaze_instructions.h header file
@ -186,7 +186,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -252,29 +252,24 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the FreeRTOS/FreeRTOS Repository - name: Checkout the FreeRTOS/FreeRTOS Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
fetch-depth: 1 fetch-depth: 1
- name: Fetch Community-Supported-Demos Submodule - env:
stepName: Fetch Community-Supported-Demos Submodule
shell: bash shell: bash
run: | run: |
# Fetch Community-Supported-Demos Submodule # ${{ env.stepName }}
echo "::group::Fetch Community-Supported-Demos Submodule" echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
echo "::endgroup::" echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
if [ "$?" = "0" ]; then
echo -e "\033[32;3mCloned the Community-Supported-Demos\033[0m"
else
echo -e "\033[32;31mCommunity-Supported-Demos Clone Failed...\033[0m"
exit 1
fi
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source
@ -289,6 +284,16 @@ jobs:
working-directory: FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC working-directory: FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC
run: make -j run: make -j
- name: Build CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC Demo
shell: bash
working-directory: FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC
run: cmake -S . -B build && make -j -C build all
- name: Build CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC Demo
shell: bash
working-directory: FreeRTOS/Demo/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC
run: cmake -S . -B build && make -j -C build all
- name: Build CORTEX_LM3S102_GCC Demo - name: Build CORTEX_LM3S102_GCC Demo
shell: bash shell: bash
working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC

View file

@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- name: Checkout Parent Repository - name: Checkout Parent Repository
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
@ -15,7 +15,7 @@ jobs:
# Checkout user pull request changes # Checkout user pull request changes
- name: Checkout Pull Request - name: Checkout Pull Request
uses: actions/checkout@v3 uses: actions/checkout@v4.1.1
with: with:
path: ./FreeRTOS/Source path: ./FreeRTOS/Source

View file

@ -85,6 +85,7 @@ if(NOT FREERTOS_PORT)
" GCC_ARM_CM85_NTZ_NONSECURE - Compiler: GCC Target: ARM Cortex-M85 non-trustzone non-secure\n" " GCC_ARM_CM85_NTZ_NONSECURE - Compiler: GCC Target: ARM Cortex-M85 non-trustzone non-secure\n"
" GCC_ARM_CM85_TFM - Compiler: GCC Target: ARM Cortex-M85 non-secure for TF-M\n" " GCC_ARM_CM85_TFM - Compiler: GCC Target: ARM Cortex-M85 non-secure for TF-M\n"
" GCC_ARM_CR5 - Compiler: GCC Target: ARM Cortex-R5\n" " GCC_ARM_CR5 - Compiler: GCC Target: ARM Cortex-R5\n"
" GCC_ARM_CRX_MPU - Compiler: GCC Target: ARM Cortex-Rx with MPU\n"
" GCC_ARM_CRX_NOGIC - Compiler: GCC Target: ARM Cortex-Rx no GIC\n" " GCC_ARM_CRX_NOGIC - Compiler: GCC Target: ARM Cortex-Rx no GIC\n"
" GCC_ARM7_AT91FR40008 - Compiler: GCC Target: ARM7 Atmel AT91R40008\n" " GCC_ARM7_AT91FR40008 - Compiler: GCC Target: ARM7 Atmel AT91R40008\n"
" GCC_ARM7_AT91SAM7S - Compiler: GCC Target: ARM7 Atmel AT91SAM7S\n" " GCC_ARM7_AT91SAM7S - Compiler: GCC Target: ARM7 Atmel AT91SAM7S\n"

View file

@ -2,11 +2,11 @@
FreeRTOS-Kernel conforms to [MISRA C:2012](https://www.misra.org.uk/misra-c) FreeRTOS-Kernel conforms to [MISRA C:2012](https://www.misra.org.uk/misra-c)
guidelines, with the deviations listed below. Compliance is checked with guidelines, with the deviations listed below. Compliance is checked with
Coverity static analysis. Since the FreeRTOS kernel is designed for Coverity static analysis version 2023.6.1. Since the FreeRTOS kernel is
small-embedded devices, it needs to have a very small memory footprint and designed for small-embedded devices, it needs to have a very small memory
has to be efficient. To achieve that and to increase the performance, it footprint and has to be efficient. To achieve that and to increase the
deviates from some MISRA rules. The specific deviations, suppressed inline, performance, it deviates from some MISRA rules. The specific deviations,
are listed below. suppressed inline, are listed below.
Additionally, [MISRA configuration file](examples/coverity/coverity_misra.config) Additionally, [MISRA configuration file](examples/coverity/coverity_misra.config)
contains project wide deviations. contains project wide deviations.

View file

@ -30,7 +30,7 @@
#include "task.h" #include "task.h"
#include "croutine.h" #include "croutine.h"
/* Remove the whole file is co-routines are not being used. */ /* Remove the whole file if co-routines are not being used. */
#if ( configUSE_CO_ROUTINES != 0 ) #if ( configUSE_CO_ROUTINES != 0 )
/* /*
@ -52,8 +52,10 @@
/* Other file private variables. --------------------------------*/ /* Other file private variables. --------------------------------*/
CRCB_t * pxCurrentCoRoutine = NULL; CRCB_t * pxCurrentCoRoutine = NULL;
static UBaseType_t uxTopCoRoutineReadyPriority = 0; static UBaseType_t uxTopCoRoutineReadyPriority = ( UBaseType_t ) 0U;
static TickType_t xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0; static TickType_t xCoRoutineTickCount = ( TickType_t ) 0U;
static TickType_t xLastTickCount = ( TickType_t ) 0U;
static TickType_t xPassedTicks = ( TickType_t ) 0U;
/* The initial state of the co-routine when it is created. */ /* The initial state of the co-routine when it is created. */
#define corINITIAL_STATE ( 0 ) #define corINITIAL_STATE ( 0 )
@ -378,5 +380,26 @@
return xReturn; return xReturn;
} }
/*-----------------------------------------------------------*/
/*
* Reset state in this file. This state is normally initialized at start up.
* This function must be called by the application before restarting the
* scheduler.
*/
void vCoRoutineResetState( void )
{
/* Lists for ready and blocked co-routines. */
pxDelayedCoRoutineList = NULL;
pxOverflowDelayedCoRoutineList = NULL;
/* Other file private variables. */
pxCurrentCoRoutine = NULL;
uxTopCoRoutineReadyPriority = ( UBaseType_t ) 0U;
xCoRoutineTickCount = ( TickType_t ) 0U;
xLastTickCount = ( TickType_t ) 0U;
xPassedTicks = ( TickType_t ) 0U;
}
/*-----------------------------------------------------------*/
#endif /* configUSE_CO_ROUTINES == 0 */ #endif /* configUSE_CO_ROUTINES == 0 */

View file

@ -45,6 +45,12 @@
* correct privileged Vs unprivileged linkage and placement. */ * correct privileged Vs unprivileged linkage and placement. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* This entire source file will be skipped if the application is not configured
* to include event groups functionality. This #if is closed at the very bottom
* of this file. If you want to include event groups then ensure
* configUSE_EVENT_GROUPS is set to 1 in FreeRTOSConfig.h. */
#if ( configUSE_EVENT_GROUPS == 1 )
typedef struct EventGroupDef_t typedef struct EventGroupDef_t
{ {
EventBits_t uxEventBits; EventBits_t uxEventBits;
@ -868,3 +874,8 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits,
#endif /* configUSE_TRACE_FACILITY */ #endif /* configUSE_TRACE_FACILITY */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* This entire source file will be skipped if the application is not configured
* to include event groups functionality. If you want to include event groups
* then ensure configUSE_EVENT_GROUPS is set to 1 in FreeRTOSConfig.h. */
#endif /* configUSE_EVENT_GROUPS == 1 */

View file

@ -43,7 +43,13 @@
/* Standard includes. */ /* Standard includes. */
#include <stdio.h> #include <stdio.h>
void exampleTask( void * parameters ) /*-----------------------------------------------------------*/
static void exampleTask( void * parameters );
/*-----------------------------------------------------------*/
static void exampleTask( void * parameters )
{ {
/* Unused parameters. */ /* Unused parameters. */
( void ) parameters; ( void ) parameters;
@ -61,13 +67,13 @@ void main( void )
static StaticTask_t exampleTaskTCB; static StaticTask_t exampleTaskTCB;
static StackType_t exampleTaskStack[ configMINIMAL_STACK_SIZE ]; static StackType_t exampleTaskStack[ configMINIMAL_STACK_SIZE ];
printf( "Example FreeRTOS Project\n" ); ( void ) printf( "Example FreeRTOS Project\n" );
xTaskCreateStatic( exampleTask, ( void ) xTaskCreateStatic( exampleTask,
"example", "example",
configMINIMAL_STACK_SIZE, configMINIMAL_STACK_SIZE,
NULL, NULL,
configMAX_PRIORITIES - 1, configMAX_PRIORITIES - 1U,
&( exampleTaskStack[ 0 ] ), &( exampleTaskStack[ 0 ] ),
&( exampleTaskTCB ) ); &( exampleTaskTCB ) );
@ -81,6 +87,8 @@ void main( void )
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configCHECK_FOR_STACK_OVERFLOW > 0 )
void vApplicationStackOverflowHook( TaskHandle_t xTask, void vApplicationStackOverflowHook( TaskHandle_t xTask,
char * pcTaskName ) char * pcTaskName )
{ {
@ -89,4 +97,6 @@ void vApplicationStackOverflowHook( TaskHandle_t xTask,
( void ) xTask; ( void ) xTask;
( void ) pcTaskName; ( void ) pcTaskName;
} }
#endif /* #if ( configCHECK_FOR_STACK_OVERFLOW > 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -2,8 +2,9 @@ cmake_minimum_required(VERSION 3.15)
project(coverity) project(coverity)
set(FREERTOS_KERNEL_PATH "../../") set(FREERTOS_KERNEL_PATH "../..")
FILE(GLOB FREERTOS_KERNEL_SOURCE ${FREERTOS_KERNEL_PATH}*.c) FILE(GLOB FREERTOS_KERNEL_SOURCE ${FREERTOS_KERNEL_PATH}/*.c)
FILE(GLOB FREERTOS_PORT_CODE ${FREERTOS_KERNEL_PATH}/portable/template/*.c)
# Coverity incorrectly infers the type of pdTRUE and pdFALSE as boolean because # Coverity incorrectly infers the type of pdTRUE and pdFALSE as boolean because
# of their names. This generates multiple false positive warnings about type # of their names. This generates multiple false positive warnings about type
@ -12,8 +13,8 @@ FILE(GLOB FREERTOS_KERNEL_SOURCE ${FREERTOS_KERNEL_PATH}*.c)
# fixes the issue of incorrectly inferring the type of pdTRUE and pdFALSE as # fixes the issue of incorrectly inferring the type of pdTRUE and pdFALSE as
# boolean. # boolean.
add_custom_target(fix_source ALL add_custom_target(fix_source ALL
COMMAND sed -i -b -e 's/pdFALSE/pdFAIL/g' -e 's/pdTRUE/pdPASS/g' ${FREERTOS_KERNEL_SOURCE} COMMAND sed -i -b -e 's/pdFALSE/pdFAIL/g' -e 's/pdTRUE/pdPASS/g' ${FREERTOS_KERNEL_SOURCE} ${FREERTOS_PORT_CODE}
DEPENDS ${FREERTOS_KERNEL_SOURCE}) DEPENDS ${FREERTOS_KERNEL_SOURCE} ${FREERTOS_PORT_CODE})
# Add the freertos_config for FreeRTOS-Kernel. # Add the freertos_config for FreeRTOS-Kernel.
add_library(freertos_config INTERFACE) add_library(freertos_config INTERFACE)

View file

@ -4,7 +4,7 @@ run [Synopsys Coverity](https://www.synopsys.com/software-integrity/security-tes
for checking MISRA compliance. for checking MISRA compliance.
> **Note** > **Note**
Coverity version 2022.6.1 incorrectly infers the type of `pdTRUE` and `pdFALSE` Coverity version 2023.6.1 incorrectly infers the type of `pdTRUE` and `pdFALSE`
as boolean because of their names, resulting in multiple false positive warnings as boolean because of their names, resulting in multiple false positive warnings
about type mismatch. We replace `pdTRUE` with `pdPASS` and `pdFALSE` with about type mismatch. We replace `pdTRUE` with `pdPASS` and `pdFALSE` with
`pdFAIL` to avoid these false positive warnings. This workaround will not be `pdFAIL` to avoid these false positive warnings. This workaround will not be
@ -40,15 +40,14 @@ commands in a terminal:
3. Build the (pseudo) application: 3. Build the (pseudo) application:
~~~ ~~~
cd build/ cd build/
cov-build --emit-complementary-info --dir cov-out make cov-build --emit-complementary-info --dir cov-out make coverity
~~~ ~~~
4. Go to the Coverity output directory (`cov-out`) and begin Coverity static 4. Go to the Coverity output directory (`cov-out`) and begin Coverity static
analysis: analysis:
~~~ ~~~
cd cov-out/
cov-analyze --dir ./cov-out \ cov-analyze --dir ./cov-out \
--coding-standard-config ../examples/coverity/coverity_misra.config \ --coding-standard-config ../examples/coverity/coverity_misra.config \
--tu-pattern "file('.*/FreeRTOS/Source/[A-Za-z_]*\.c') --tu-pattern "file('[A-Za-z_]+\.c')"
~~~ ~~~
5. Generate the HTML report: 5. Generate the HTML report:
~~~ ~~~

View file

@ -1,97 +1,91 @@
// MISRA C-2012 Rules
{ {
version : "2.0", "version" : "2.0",
standard : "c2012", "standard" : "c2012",
title: "Coverity MISRA Configuration", "title": "Coverity MISRA Configuration",
deviations : [ "deviations" : [
// Disable the following rules.
{ {
deviation: "Rule 3.1", "deviation": "Rule 3.1",
reason: "We post HTTP links in code comments which contain // inside comments blocks." "reason": "We post HTTP links in code comments which contain // inside comments blocks."
}, },
{ {
deviation: "Rule 14.4", "deviation": "Rule 14.4",
reason: "do while( 0 ) pattern is used in macros to prevent extra semi-colon." "reason": "do while( 0 ) pattern is used in macros to prevent extra semi-colon."
},
// Disable the following advisory rules and directives.
{
deviation: "Directive 4.4",
reason: "Code snippet is used in comment to help explanation."
}, },
{ {
deviation: "Directive 4.5", "deviation": "Directive 4.4",
reason: "Allow names that MISRA considers ambiguous." "reason": "Code snippet is used in comment to help explanation."
}, },
{ {
deviation: "Directive 4.6", "deviation": "Directive 4.5",
reason: "Allow port to use primitive type with typedefs." "reason": "Allow names that MISRA considers ambiguous."
}, },
{ {
deviation: "Directive 4.8", "deviation": "Directive 4.6",
reason: "HeapRegion_t and HeapStats_t are used only in heap files but declared in portable.h which is included in multiple source files. As a result, these definitions appear in multiple source files where they are not used." "reason": "Allow port to use primitive type with typedefs."
}, },
{ {
deviation: "Directive 4.9", "deviation": "Directive 4.8",
reason: "FreeRTOS-Kernel is optimised to work on small micro-controllers. To achieve that, function-like macros are used." "reason": "HeapRegion_t and HeapStats_t are used only in heap files but declared in portable.h which is included in multiple source files. As a result, these definitions appear in multiple source files where they are not used."
}, },
{ {
deviation: "Rule 2.3", "deviation": "Directive 4.9",
reason: "FreeRTOS defines types which is used in application." "reason": "FreeRTOS-Kernel is optimised to work on small micro-controllers. To achieve that, function-like macros are used."
}, },
{ {
deviation: "Rule 2.4", "deviation": "Rule 2.3",
reason: "Allow to define unused tag." "reason": "FreeRTOS defines types which is used in application."
}, },
{ {
deviation: "Rule 2.5", "deviation": "Rule 2.4",
reason: "Allow to define unused macro." "reason": "Allow to define unused tag."
}, },
{ {
deviation: "Rule 5.9", "deviation": "Rule 2.5",
reason: "Allow to define identifier with the same name in structure and global variable." "reason": "Allow to define unused macro."
}, },
{ {
deviation: "Rule 8.7", "deviation": "Rule 5.9",
reason: "API functions are not used by the library outside of the files they are defined; however, they must be externally visible in order to be used by an application." "reason": "Allow to define identifier with the same name in structure and global variable."
}, },
{ {
deviation: "Rule 8.9", "deviation": "Rule 8.7",
reason: "Allow to object to be defined in wider scope for debug purpose." "reason": "API functions are not used by the library outside of the files they are defined; however, they must be externally visible in order to be used by an application."
}, },
{ {
deviation: "Rule 8.13", "deviation": "Rule 8.9",
reason: "Allow to not to use const-qualified type for callback function." "reason": "Allow to object to be defined in wider scope for debug purpose."
}, },
{ {
deviation: "Rule 11.4", "deviation": "Rule 8.13",
reason: "Allow to convert between a pointer to object and an interger type for stack alignment." "reason": "Allow to not to use const-qualified type for callback function."
}, },
{ {
deviation: "Rule 15.4", "deviation": "Rule 11.4",
reason: "Allow to use multiple break statements in a loop." "reason": "Allow to convert between a pointer to object and an interger type for stack alignment."
}, },
{ {
deviation: "Rule 15.5", "deviation": "Rule 15.4",
reason: "Allow to use multiple points of exit." "reason": "Allow to use multiple break statements in a loop."
}, },
{ {
deviation: "Rule 17.8", "deviation": "Rule 15.5",
reason: "Allow to update the parameters of a function." "reason": "Allow to use multiple points of exit."
}, },
{ {
deviation: "Rule 18.4", "deviation": "Rule 17.8",
reason: "Allow to use pointer arithmetic." "reason": "Allow to update the parameters of a function."
}, },
{ {
deviation: "Rule 19.2", "deviation": "Rule 18.4",
reason: "Allow to use union." "reason": "Allow to use pointer arithmetic."
}, },
{ {
deviation: "Rule 20.5", "deviation": "Rule 19.2",
reason: "Allow to use #undef for MPU wrappers." "reason": "Allow to use union."
},
{
"deviation": "Rule 20.5",
"reason": "Allow to use #undef for MPU wrappers."
} }
] ]
} }

View file

@ -236,6 +236,28 @@
* if configUSE_TIMERS is set to 1. */ * if configUSE_TIMERS is set to 1. */
#define configTIMER_QUEUE_LENGTH 10 #define configTIMER_QUEUE_LENGTH 10
/******************************************************************************/
/* Event Group related definitions. *******************************************/
/******************************************************************************/
/* Set configUSE_EVENT_GROUPS to 1 to include event group functionality in the
* build. Set to 0 to exclude event group functionality from the build. The
* FreeRTOS/source/event_groups.c source file must be included in the build if
* configUSE_EVENT_GROUPS is set to 1. Defaults to 1 if left undefined. */
#define configUSE_EVENT_GROUPS 1
/******************************************************************************/
/* Stream Buffer related definitions. *****************************************/
/******************************************************************************/
/* Set configUSE_STREAM_BUFFERS to 1 to include stream buffer functionality in
* the build. Set to 0 to exclude event group functionality from the build. The
* FreeRTOS/source/stream_buffer.c source file must be included in the build if
* configUSE_STREAM_BUFFERS is set to 1. Defaults to 1 if left undefined. */
#define configUSE_STREAM_BUFFERS 1
/******************************************************************************/ /******************************************************************************/
/* Memory allocation related definitions. *************************************/ /* Memory allocation related definitions. *************************************/
/******************************************************************************/ /******************************************************************************/
@ -283,10 +305,9 @@
/******************************************************************************/ /******************************************************************************/
/* configKERNEL_INTERRUPT_PRIORITY sets the priority of the tick and context /* configKERNEL_INTERRUPT_PRIORITY sets the priority of the tick and context
* switch performing interrupts. The default value is set to the highest interrupt * switch performing interrupts. Not supported by all FreeRTOS ports. See
* priority (0). Not supported by all FreeRTOS ports. See * https://www.freertos.org/RTOS-Cortex-M3-M4.html for information specific to
* https://www.freertos.org/RTOS-Cortex-M3-M4.html for information specific to ARM * ARM Cortex-M devices. */
* Cortex-M devices. */
#define configKERNEL_INTERRUPT_PRIORITY 0 #define configKERNEL_INTERRUPT_PRIORITY 0
/* configMAX_SYSCALL_INTERRUPT_PRIORITY sets the interrupt priority above which /* configMAX_SYSCALL_INTERRUPT_PRIORITY sets the interrupt priority above which
@ -496,6 +517,15 @@
* run any task on any available core. */ * run any task on any available core. */
#define configUSE_CORE_AFFINITY 0 #define configUSE_CORE_AFFINITY 0
/* When using SMP with core affinity feature enabled, set
* configTASK_DEFAULT_CORE_AFFINITY to change the default core affinity mask for
* tasks created without an affinity mask specified. Setting the define to 1 would
* make such tasks run on core 0 and setting it to (1 << portGET_CORE_ID()) would
* make such tasks run on the current core. This config value is useful, if
* swapping tasks between cores is not supported (e.g. Tricore) or if legacy code
* should be controlled. Defaults to tskNO_AFFINITY if left undefined. */
#define configTASK_DEFAULT_CORE_AFFINITY tskNO_AFFINITY
/* When using SMP (i.e. configNUMBER_OF_CORES is greater than one), if /* When using SMP (i.e. configNUMBER_OF_CORES is greater than one), if
* configUSE_TASK_PREEMPTION_DISABLE is set to 1, individual tasks can be set to * configUSE_TASK_PREEMPTION_DISABLE is set to 1, individual tasks can be set to
* either pre-emptive or co-operative mode using the vTaskPreemptionDisable and * either pre-emptive or co-operative mode using the vTaskPreemptionDisable and
@ -563,6 +593,24 @@
* for the Cortex-M23,Cortex-M33 and Cortex-M35P ports. */ * for the Cortex-M23,Cortex-M33 and Cortex-M35P ports. */
#define configENABLE_MVE 1 #define configENABLE_MVE 1
/******************************************************************************/
/* ARMv7-M and ARMv8-M port Specific Configuration definitions. ***************/
/******************************************************************************/
/* Set configCHECK_HANDLER_INSTALLATION to 1 to enable additional asserts to verify
* that the application has correctly installed FreeRTOS interrupt handlers.
*
* An application can install FreeRTOS interrupt handlers in one of the following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and xPortPendSVHandler
* for SVC call and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVC call and PendSV
* interrupts and route program control from those handlers
* to vPortSVCHandler and xPortPendSVHandler functions.
* The applications that use Indirect Routing must set configCHECK_HANDLER_INSTALLATION to 0.
*
* Defaults to 1 if left undefined. */
#define configCHECK_HANDLER_INSTALLATION 1
/******************************************************************************/ /******************************************************************************/
/* Definitions that include or exclude functionality. *************************/ /* Definitions that include or exclude functionality. *************************/
/******************************************************************************/ /******************************************************************************/

View file

@ -96,6 +96,10 @@
#define configNUMBER_OF_CORES 1 #define configNUMBER_OF_CORES 1
#endif #endif
#ifndef configUSE_MALLOC_FAILED_HOOK
#define configUSE_MALLOC_FAILED_HOOK 0
#endif
/* Basic FreeRTOS definitions. */ /* Basic FreeRTOS definitions. */
#include "projdefs.h" #include "projdefs.h"
@ -294,10 +298,6 @@
#endif #endif
#endif #endif
#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
#endif
#ifndef configUSE_APPLICATION_TASK_TAG #ifndef configUSE_APPLICATION_TASK_TAG
#define configUSE_APPLICATION_TASK_TAG 0 #define configUSE_APPLICATION_TASK_TAG 0
#endif #endif
@ -318,6 +318,24 @@
#define configUSE_TIMERS 0 #define configUSE_TIMERS 0
#endif #endif
#ifndef configUSE_EVENT_GROUPS
#define configUSE_EVENT_GROUPS 1
#endif
#ifndef configUSE_STREAM_BUFFERS
#define configUSE_STREAM_BUFFERS 1
#endif
#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
#endif
#if ( configUSE_DAEMON_TASK_STARTUP_HOOK != 0 )
#if ( configUSE_TIMERS == 0 )
#error configUSE_DAEMON_TASK_STARTUP_HOOK is set, but the daemon task is not created because configUSE_TIMERS is 0.
#endif
#endif
#ifndef configUSE_COUNTING_SEMAPHORES #ifndef configUSE_COUNTING_SEMAPHORES
#define configUSE_COUNTING_SEMAPHORES 0 #define configUSE_COUNTING_SEMAPHORES 0
#endif #endif
@ -484,6 +502,12 @@
#define configUSE_CORE_AFFINITY 0 #define configUSE_CORE_AFFINITY 0
#endif /* configUSE_CORE_AFFINITY */ #endif /* configUSE_CORE_AFFINITY */
#if ( ( configNUMBER_OF_CORES > 1 ) && ( configUSE_CORE_AFFINITY == 1 ) )
#ifndef configTASK_DEFAULT_CORE_AFFINITY
#define configTASK_DEFAULT_CORE_AFFINITY tskNO_AFFINITY
#endif
#endif
#ifndef configUSE_PASSIVE_IDLE_HOOK #ifndef configUSE_PASSIVE_IDLE_HOOK
#define configUSE_PASSIVE_IDLE_HOOK 0 #define configUSE_PASSIVE_IDLE_HOOK 0
#endif /* configUSE_PASSIVE_IDLE_HOOK */ #endif /* configUSE_PASSIVE_IDLE_HOOK */
@ -2643,10 +2667,6 @@
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
#endif #endif
#ifndef configUSE_MALLOC_FAILED_HOOK
#define configUSE_MALLOC_FAILED_HOOK 0
#endif
#ifndef portPRIVILEGE_BIT #ifndef portPRIVILEGE_BIT
#define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 ) #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 )
#endif #endif
@ -2799,9 +2819,9 @@
#ifndef configSTACK_DEPTH_TYPE #ifndef configSTACK_DEPTH_TYPE
/* Defaults to uint16_t for backward compatibility, but can be overridden /* Defaults to StackType_t for backward compatibility, but can be overridden
* in FreeRTOSConfig.h if uint16_t is too restrictive. */ * in FreeRTOSConfig.h if StackType_t is too restrictive. */
#define configSTACK_DEPTH_TYPE uint16_t #define configSTACK_DEPTH_TYPE StackType_t
#endif #endif
#ifndef configRUN_TIME_COUNTER_TYPE #ifndef configRUN_TIME_COUNTER_TYPE

View file

@ -746,6 +746,13 @@ void vCoRoutineAddToDelayedList( TickType_t xTicksToDelay,
*/ */
BaseType_t xCoRoutineRemoveFromEventList( const List_t * pxEventList ); BaseType_t xCoRoutineRemoveFromEventList( const List_t * pxEventList );
/*
* This function resets the internal state of the coroutine module. It must be
* called by the application before restarting the scheduler.
*/
void vCoRoutineResetState( void ) PRIVILEGED_FUNCTION;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -139,6 +139,9 @@ typedef TickType_t EventBits_t;
* each event group has 56 usable bits (bit 0 to bit 53). The EventBits_t type * each event group has 56 usable bits (bit 0 to bit 53). The EventBits_t type
* is used to store event bits within an event group. * is used to store event bits within an event group.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupCreate()
* to be available.
*
* @return If the event group was created then a handle to the event group is * @return If the event group was created then a handle to the event group is
* returned. If there was insufficient FreeRTOS heap available to create the * returned. If there was insufficient FreeRTOS heap available to create the
* event group then NULL is returned. See https://www.FreeRTOS.org/a00111.html * event group then NULL is returned. See https://www.FreeRTOS.org/a00111.html
@ -196,6 +199,9 @@ typedef TickType_t EventBits_t;
* each event group has 56 usable bits (bit 0 to bit 53). The EventBits_t type * each event group has 56 usable bits (bit 0 to bit 53). The EventBits_t type
* is used to store event bits within an event group. * is used to store event bits within an event group.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupCreateStatic()
* to be available.
*
* @param pxEventGroupBuffer pxEventGroupBuffer must point to a variable of type * @param pxEventGroupBuffer pxEventGroupBuffer must point to a variable of type
* StaticEventGroup_t, which will be then be used to hold the event group's data * StaticEventGroup_t, which will be then be used to hold the event group's data
* structures, removing the need for the memory to be allocated dynamically. * structures, removing the need for the memory to be allocated dynamically.
@ -238,6 +244,9 @@ typedef TickType_t EventBits_t;
* *
* This function cannot be called from an interrupt. * This function cannot be called from an interrupt.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupWaitBits()
* to be available.
*
* @param xEventGroup The event group in which the bits are being tested. The * @param xEventGroup The event group in which the bits are being tested. The
* event group must have previously been created using a call to * event group must have previously been created using a call to
* xEventGroupCreate(). * xEventGroupCreate().
@ -331,6 +340,9 @@ EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
* Clear bits within an event group. This function cannot be called from an * Clear bits within an event group. This function cannot be called from an
* interrupt. * interrupt.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupClearBits()
* to be available.
*
* @param xEventGroup The event group in which the bits are to be cleared. * @param xEventGroup The event group in which the bits are to be cleared.
* *
* @param uxBitsToClear A bitwise value that indicates the bit or bits to clear * @param uxBitsToClear A bitwise value that indicates the bit or bits to clear
@ -461,6 +473,9 @@ EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup,
* Setting bits in an event group will automatically unblock tasks that are * Setting bits in an event group will automatically unblock tasks that are
* blocked waiting for the bits. * blocked waiting for the bits.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupSetBits()
* to be available.
*
* @param xEventGroup The event group in which the bits are to be set. * @param xEventGroup The event group in which the bits are to be set.
* *
* @param uxBitsToSet A bitwise value that indicates the bit or bits to set. * @param uxBitsToSet A bitwise value that indicates the bit or bits to set.
@ -625,6 +640,9 @@ EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup,
* this case all the bits specified by uxBitsToWait will be automatically * this case all the bits specified by uxBitsToWait will be automatically
* cleared before the function returns. * cleared before the function returns.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupSync()
* to be available.
*
* @param xEventGroup The event group in which the bits are being tested. The * @param xEventGroup The event group in which the bits are being tested. The
* event group must have previously been created using a call to * event group must have previously been created using a call to
* xEventGroupCreate(). * xEventGroupCreate().
@ -743,6 +761,9 @@ EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup,
* Returns the current value of the bits in an event group. This function * Returns the current value of the bits in an event group. This function
* cannot be used from an interrupt. * cannot be used from an interrupt.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupGetBits()
* to be available.
*
* @param xEventGroup The event group being queried. * @param xEventGroup The event group being queried.
* *
* @return The event group bits at the time xEventGroupGetBits() was called. * @return The event group bits at the time xEventGroupGetBits() was called.
@ -760,6 +781,9 @@ EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup,
* *
* A version of xEventGroupGetBits() that can be called from an ISR. * A version of xEventGroupGetBits() that can be called from an ISR.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupGetBitsFromISR()
* to be available.
*
* @param xEventGroup The event group being queried. * @param xEventGroup The event group being queried.
* *
* @return The event group bits at the time xEventGroupGetBitsFromISR() was called. * @return The event group bits at the time xEventGroupGetBitsFromISR() was called.
@ -779,6 +803,9 @@ EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) PRIVILEG
* xEventGroupCreate(). Tasks that are blocked on the event group will be * xEventGroupCreate(). Tasks that are blocked on the event group will be
* unblocked and obtain 0 as the event group's value. * unblocked and obtain 0 as the event group's value.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for vEventGroupDelete()
* to be available.
*
* @param xEventGroup The event group being deleted. * @param xEventGroup The event group being deleted.
*/ */
void vEventGroupDelete( EventGroupHandle_t xEventGroup ) PRIVILEGED_FUNCTION; void vEventGroupDelete( EventGroupHandle_t xEventGroup ) PRIVILEGED_FUNCTION;
@ -793,6 +820,9 @@ void vEventGroupDelete( EventGroupHandle_t xEventGroup ) PRIVILEGED_FUNCTION;
* Retrieve a pointer to a statically created event groups's data structure * Retrieve a pointer to a statically created event groups's data structure
* buffer. It is the same buffer that is supplied at the time of creation. * buffer. It is the same buffer that is supplied at the time of creation.
* *
* The configUSE_EVENT_GROUPS configuration constant must be set to 1 for xEventGroupGetStaticBuffer()
* to be available.
*
* @param xEventGroup The event group for which to retrieve the buffer. * @param xEventGroup The event group for which to retrieve the buffer.
* *
* @param ppxEventGroupBuffer Used to return a pointer to the event groups's * @param ppxEventGroupBuffer Used to return a pointer to the event groups's

View file

@ -172,7 +172,7 @@ typedef struct xLIST_ITEM ListItem_t;
typedef struct xLIST typedef struct xLIST
{ {
listFIRST_LIST_INTEGRITY_CHECK_VALUE /**< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ listFIRST_LIST_INTEGRITY_CHECK_VALUE /**< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
volatile UBaseType_t uxNumberOfItems; configLIST_VOLATILE UBaseType_t uxNumberOfItems;
ListItem_t * configLIST_VOLATILE pxIndex; /**< Used to walk through the list. Points to the last item returned by a call to listGET_OWNER_OF_NEXT_ENTRY (). */ ListItem_t * configLIST_VOLATILE pxIndex; /**< Used to walk through the list. Points to the last item returned by a call to listGET_OWNER_OF_NEXT_ENTRY (). */
MiniListItem_t xListEnd; /**< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ MiniListItem_t xListEnd; /**< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */
listSECOND_LIST_INTEGRITY_CHECK_VALUE /**< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ listSECOND_LIST_INTEGRITY_CHECK_VALUE /**< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
@ -282,6 +282,7 @@ typedef struct xLIST
* \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY
* \ingroup LinkedList * \ingroup LinkedList
*/ */
#if ( configNUMBER_OF_CORES == 1 )
#define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \ #define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \
do { \ do { \
List_t * const pxConstList = ( pxList ); \ List_t * const pxConstList = ( pxList ); \
@ -294,6 +295,13 @@ typedef struct xLIST
} \ } \
( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \ ( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \
} while( 0 ) } while( 0 )
#else /* #if ( configNUMBER_OF_CORES == 1 ) */
/* This function is not required in SMP. FreeRTOS SMP scheduler doesn't use
* pxIndex and it should always point to the xListEnd. Not defining this macro
* here to prevent updating pxIndex.
*/
#endif /* #if ( configNUMBER_OF_CORES == 1 ) */
/* /*
* Version of uxListRemove() that does not return a value. Provided as a slight * Version of uxListRemove() that does not return a value. Provided as a slight
@ -326,7 +334,7 @@ typedef struct xLIST
} \ } \
\ \
( pxItemToRemove )->pxContainer = NULL; \ ( pxItemToRemove )->pxContainer = NULL; \
( pxList->uxNumberOfItems )--; \ ( ( pxList )->uxNumberOfItems ) -= ( UBaseType_t ) 1U; \
} while( 0 ) } while( 0 )
/* /*
@ -373,7 +381,7 @@ typedef struct xLIST
/* Remember which list the item is in. */ \ /* Remember which list the item is in. */ \
( pxNewListItem )->pxContainer = ( pxList ); \ ( pxNewListItem )->pxContainer = ( pxList ); \
\ \
( ( pxList )->uxNumberOfItems )++; \ ( ( pxList )->uxNumberOfItems ) += ( UBaseType_t ) 1U; \
} while( 0 ) } while( 0 )
/* /*

View file

@ -100,6 +100,8 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* *
* configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in * configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in
* FreeRTOSConfig.h for xMessageBufferCreate() to be available. * FreeRTOSConfig.h for xMessageBufferCreate() to be available.
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferCreate() to be available.
* *
* @param xBufferSizeBytes The total number of bytes (not messages) the message * @param xBufferSizeBytes The total number of bytes (not messages) the message
* buffer will be able to hold at any one time. When a message is written to * buffer will be able to hold at any one time. When a message is written to
@ -174,6 +176,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* Creates a new message buffer using statically allocated memory. See * Creates a new message buffer using statically allocated memory. See
* xMessageBufferCreate() for a version that uses dynamically allocated memory. * xMessageBufferCreate() for a version that uses dynamically allocated memory.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferCreateStatic() to be available.
*
* @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the * @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the
* pucMessageBufferStorageArea parameter. When a message is written to the * pucMessageBufferStorageArea parameter. When a message is written to the
* message buffer an additional sizeof( size_t ) bytes are also written to store * message buffer an additional sizeof( size_t ) bytes are also written to store
@ -258,6 +263,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* buffer and storage area buffer. These are the same buffers that are supplied * buffer and storage area buffer. These are the same buffers that are supplied
* at the time of creation. * at the time of creation.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferGetStaticBuffers() to be available.
*
* @param xMessageBuffer The message buffer for which to retrieve the buffers. * @param xMessageBuffer The message buffer for which to retrieve the buffers.
* *
* @param ppucMessageBufferStorageArea Used to return a pointer to the * @param ppucMessageBufferStorageArea Used to return a pointer to the
@ -309,6 +317,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt * xMessageBufferSendFromISR() to write to a message buffer from an interrupt
* service routine (ISR). * service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferSend() to be available.
*
* @param xMessageBuffer The handle of the message buffer to which a message is * @param xMessageBuffer The handle of the message buffer to which a message is
* being sent. * being sent.
* *
@ -409,6 +420,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt * xMessageBufferSendFromISR() to write to a message buffer from an interrupt
* service routine (ISR). * service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferSendFromISR() to be available.
*
* @param xMessageBuffer The handle of the message buffer to which a message is * @param xMessageBuffer The handle of the message buffer to which a message is
* being sent. * being sent.
* *
@ -513,6 +527,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* xMessageBufferReceiveFromISR() to read from a message buffer from an * xMessageBufferReceiveFromISR() to read from a message buffer from an
* interrupt service routine (ISR). * interrupt service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferReceive() to be available.
*
* @param xMessageBuffer The handle of the message buffer from which a message * @param xMessageBuffer The handle of the message buffer from which a message
* is being received. * is being received.
* *
@ -604,6 +621,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* xMessageBufferReceiveFromISR() to read from a message buffer from an * xMessageBufferReceiveFromISR() to read from a message buffer from an
* interrupt service routine (ISR). * interrupt service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferReceiveFromISR() to be available.
*
* @param xMessageBuffer The handle of the message buffer from which a message * @param xMessageBuffer The handle of the message buffer from which a message
* is being received. * is being received.
* *
@ -687,6 +707,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* A message buffer handle must not be used after the message buffer has been * A message buffer handle must not be used after the message buffer has been
* deleted. * deleted.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* vMessageBufferDelete() to be available.
*
* @param xMessageBuffer The handle of the message buffer to be deleted. * @param xMessageBuffer The handle of the message buffer to be deleted.
* *
*/ */
@ -703,6 +726,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* cannot accept any more messages, of any size, until space is made available * cannot accept any more messages, of any size, until space is made available
* by a message being removed from the message buffer. * by a message being removed from the message buffer.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferIsFull() to be available.
*
* @param xMessageBuffer The handle of the message buffer being queried. * @param xMessageBuffer The handle of the message buffer being queried.
* *
* @return If the message buffer referenced by xMessageBuffer is full then * @return If the message buffer referenced by xMessageBuffer is full then
@ -719,6 +745,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* *
* Tests to see if a message buffer is empty (does not contain any messages). * Tests to see if a message buffer is empty (does not contain any messages).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferIsEmpty() to be available.
*
* @param xMessageBuffer The handle of the message buffer being queried. * @param xMessageBuffer The handle of the message buffer being queried.
* *
* @return If the message buffer referenced by xMessageBuffer is empty then * @return If the message buffer referenced by xMessageBuffer is empty then
@ -739,6 +768,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* *
* A message buffer can only be reset if there are no tasks blocked on it. * A message buffer can only be reset if there are no tasks blocked on it.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferReset() to be available.
*
* @param xMessageBuffer The handle of the message buffer being reset. * @param xMessageBuffer The handle of the message buffer being reset.
* *
* @return If the message buffer was reset then pdPASS is returned. If the * @return If the message buffer was reset then pdPASS is returned. If the
@ -760,6 +792,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* @endcode * @endcode
* Returns the number of bytes of free space in the message buffer. * Returns the number of bytes of free space in the message buffer.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferSpaceAvailable() to be available.
*
* @param xMessageBuffer The handle of the message buffer being queried. * @param xMessageBuffer The handle of the message buffer being queried.
* *
* @return The number of bytes that can be written to the message buffer before * @return The number of bytes that can be written to the message buffer before
@ -786,6 +821,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* Useful if xMessageBufferReceive() returned 0 because the size of the buffer * Useful if xMessageBufferReceive() returned 0 because the size of the buffer
* passed into xMessageBufferReceive() was too small to hold the next message. * passed into xMessageBufferReceive() was too small to hold the next message.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferNextLengthBytes() to be available.
*
* @param xMessageBuffer The handle of the message buffer being queried. * @param xMessageBuffer The handle of the message buffer being queried.
* *
* @return The length (in bytes) of the next message in the message buffer, or 0 * @return The length (in bytes) of the next message in the message buffer, or 0
@ -795,7 +833,7 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* \ingroup MessageBufferManagement * \ingroup MessageBufferManagement
*/ */
#define xMessageBufferNextLengthBytes( xMessageBuffer ) \ #define xMessageBufferNextLengthBytes( xMessageBuffer ) \
xStreamBufferNextMessageLengthBytes( xMessageBuffer ) PRIVILEGED_FUNCTION; xStreamBufferNextMessageLengthBytes( xMessageBuffer )
/** /**
* message_buffer.h * message_buffer.h
@ -817,6 +855,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for
* additional information. * additional information.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferSendCompletedFromISR() to be available.
*
* @param xMessageBuffer The handle of the stream buffer to which data was * @param xMessageBuffer The handle of the stream buffer to which data was
* written. * written.
* *
@ -858,6 +899,9 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
* See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for
* additional information. * additional information.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xMessageBufferReceiveCompletedFromISR() to be available.
*
* @param xMessageBuffer The handle of the stream buffer from which data was * @param xMessageBuffer The handle of the stream buffer from which data was
* read. * read.
* *

View file

@ -178,7 +178,7 @@ void vPortGetHeapStats( HeapStats_t * pxHeapStats );
/* /*
* Map to the memory management routines required for the port. * Map to the memory management routines required for the port.
*/ */
void * pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION; void * pvPortMalloc( size_t xWantedSize ) PRIVILEGED_FUNCTION;
void * pvPortCalloc( size_t xNum, void * pvPortCalloc( size_t xNum,
size_t xSize ) PRIVILEGED_FUNCTION; size_t xSize ) PRIVILEGED_FUNCTION;
void vPortFree( void * pv ) PRIVILEGED_FUNCTION; void vPortFree( void * pv ) PRIVILEGED_FUNCTION;
@ -194,6 +194,12 @@ size_t xPortGetMinimumEverFreeHeapSize( void ) PRIVILEGED_FUNCTION;
#define vPortFreeStack vPortFree #define vPortFreeStack vPortFree
#endif #endif
/*
* This function resets the internal state of the heap module. It must be called
* by the application before restarting the scheduler.
*/
void vPortHeapResetState( void ) PRIVILEGED_FUNCTION;
#if ( configUSE_MALLOC_FAILED_HOOK == 1 ) #if ( configUSE_MALLOC_FAILED_HOOK == 1 )
/** /**

View file

@ -91,6 +91,8 @@ typedef void (* StreamBufferCallbackFunction_t)( StreamBufferHandle_t xStreamBuf
* *
* configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in * configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in
* FreeRTOSConfig.h for xStreamBufferCreate() to be available. * FreeRTOSConfig.h for xStreamBufferCreate() to be available.
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferCreate() to be available.
* *
* @param xBufferSizeBytes The total number of bytes the stream buffer will be * @param xBufferSizeBytes The total number of bytes the stream buffer will be
* able to hold at any one time. * able to hold at any one time.
@ -175,7 +177,9 @@ typedef void (* StreamBufferCallbackFunction_t)( StreamBufferHandle_t xStreamBuf
* xStreamBufferCreate() for a version that uses dynamically allocated memory. * xStreamBufferCreate() for a version that uses dynamically allocated memory.
* *
* configSUPPORT_STATIC_ALLOCATION must be set to 1 in FreeRTOSConfig.h for * configSUPPORT_STATIC_ALLOCATION must be set to 1 in FreeRTOSConfig.h for
* xStreamBufferCreateStatic() to be available. * xStreamBufferCreateStatic() to be available. configUSE_STREAM_BUFFERS must be
* set to 1 in for FreeRTOSConfig.h for xStreamBufferCreateStatic() to be
* available.
* *
* @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the * @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the
* pucStreamBufferStorageArea parameter. * pucStreamBufferStorageArea parameter.
@ -273,6 +277,9 @@ typedef void (* StreamBufferCallbackFunction_t)( StreamBufferHandle_t xStreamBuf
* buffer and storage area buffer. These are the same buffers that are supplied * buffer and storage area buffer. These are the same buffers that are supplied
* at the time of creation. * at the time of creation.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferGetStaticBuffers() to be available.
*
* @param xStreamBuffer The stream buffer for which to retrieve the buffers. * @param xStreamBuffer The stream buffer for which to retrieve the buffers.
* *
* @param ppucStreamBufferStorageArea Used to return a pointer to the stream * @param ppucStreamBufferStorageArea Used to return a pointer to the stream
@ -323,6 +330,9 @@ typedef void (* StreamBufferCallbackFunction_t)( StreamBufferHandle_t xStreamBuf
* xStreamBufferSendFromISR() to write to a stream buffer from an interrupt * xStreamBufferSendFromISR() to write to a stream buffer from an interrupt
* service routine (ISR). * service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferSend() to be available.
*
* @param xStreamBuffer The handle of the stream buffer to which a stream is * @param xStreamBuffer The handle of the stream buffer to which a stream is
* being sent. * being sent.
* *
@ -421,6 +431,9 @@ size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
* xStreamBufferSendFromISR() to write to a stream buffer from an interrupt * xStreamBufferSendFromISR() to write to a stream buffer from an interrupt
* service routine (ISR). * service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferSendFromISR() to be available.
*
* @param xStreamBuffer The handle of the stream buffer to which a stream is * @param xStreamBuffer The handle of the stream buffer to which a stream is
* being sent. * being sent.
* *
@ -521,6 +534,9 @@ size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer,
* xStreamBufferReceiveFromISR() to read from a stream buffer from an * xStreamBufferReceiveFromISR() to read from a stream buffer from an
* interrupt service routine (ISR). * interrupt service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferReceive() to be available.
*
* @param xStreamBuffer The handle of the stream buffer from which bytes are to * @param xStreamBuffer The handle of the stream buffer from which bytes are to
* be received. * be received.
* *
@ -596,6 +612,9 @@ size_t xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
* Use xStreamBufferReceiveFromISR() to read bytes from a stream buffer from an * Use xStreamBufferReceiveFromISR() to read bytes from a stream buffer from an
* interrupt service routine (ISR). * interrupt service routine (ISR).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferReceiveFromISR() to be available.
*
* @param xStreamBuffer The handle of the stream buffer from which a stream * @param xStreamBuffer The handle of the stream buffer from which a stream
* is being received. * is being received.
* *
@ -680,6 +699,9 @@ size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer,
* A stream buffer handle must not be used after the stream buffer has been * A stream buffer handle must not be used after the stream buffer has been
* deleted. * deleted.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* vStreamBufferDelete() to be available.
*
* @param xStreamBuffer The handle of the stream buffer to be deleted. * @param xStreamBuffer The handle of the stream buffer to be deleted.
* *
* \defgroup vStreamBufferDelete vStreamBufferDelete * \defgroup vStreamBufferDelete vStreamBufferDelete
@ -697,6 +719,9 @@ void vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTI
* Queries a stream buffer to see if it is full. A stream buffer is full if it * Queries a stream buffer to see if it is full. A stream buffer is full if it
* does not have any free space, and therefore cannot accept any more data. * does not have any free space, and therefore cannot accept any more data.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferIsFull() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being queried. * @param xStreamBuffer The handle of the stream buffer being queried.
* *
* @return If the stream buffer is full then pdTRUE is returned. Otherwise * @return If the stream buffer is full then pdTRUE is returned. Otherwise
@ -717,6 +742,9 @@ BaseType_t xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_
* Queries a stream buffer to see if it is empty. A stream buffer is empty if * Queries a stream buffer to see if it is empty. A stream buffer is empty if
* it does not contain any data. * it does not contain any data.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferIsEmpty() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being queried. * @param xStreamBuffer The handle of the stream buffer being queried.
* *
* @return If the stream buffer is empty then pdTRUE is returned. Otherwise * @return If the stream buffer is empty then pdTRUE is returned. Otherwise
@ -739,6 +767,9 @@ BaseType_t xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED
* are no tasks blocked waiting to either send to or receive from the stream * are no tasks blocked waiting to either send to or receive from the stream
* buffer. * buffer.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferReset() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being reset. * @param xStreamBuffer The handle of the stream buffer being reset.
* *
* @return If the stream buffer is reset then pdPASS is returned. If there was * @return If the stream buffer is reset then pdPASS is returned. If there was
@ -761,6 +792,9 @@ BaseType_t xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_F
* equal to the amount of data that can be sent to the stream buffer before it * equal to the amount of data that can be sent to the stream buffer before it
* is full. * is full.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferSpacesAvailable() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being queried. * @param xStreamBuffer The handle of the stream buffer being queried.
* *
* @return The number of bytes that can be written to the stream buffer before * @return The number of bytes that can be written to the stream buffer before
@ -782,6 +816,9 @@ size_t xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) PRIVIL
* the number of bytes that can be read from the stream buffer before the stream * the number of bytes that can be read from the stream buffer before the stream
* buffer would be empty. * buffer would be empty.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferBytesAvailable() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being queried. * @param xStreamBuffer The handle of the stream buffer being queried.
* *
* @return The number of bytes that can be read from the stream buffer before * @return The number of bytes that can be read from the stream buffer before
@ -816,6 +853,9 @@ size_t xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) PRIVILE
* A trigger level is set when the stream buffer is created, and can be modified * A trigger level is set when the stream buffer is created, and can be modified
* using xStreamBufferSetTriggerLevel(). * using xStreamBufferSetTriggerLevel().
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferSetTriggerLevel() to be available.
*
* @param xStreamBuffer The handle of the stream buffer being updated. * @param xStreamBuffer The handle of the stream buffer being updated.
* *
* @param xTriggerLevel The new trigger level for the stream buffer. * @param xTriggerLevel The new trigger level for the stream buffer.
@ -850,6 +890,9 @@ BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
* See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for
* additional information. * additional information.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferSendCompletedFromISR() to be available.
*
* @param xStreamBuffer The handle of the stream buffer to which data was * @param xStreamBuffer The handle of the stream buffer to which data was
* written. * written.
* *
@ -891,6 +934,9 @@ BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer
* See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for
* additional information. * additional information.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* xStreamBufferReceiveCompletedFromISR() to be available.
*
* @param xStreamBuffer The handle of the stream buffer from which data was * @param xStreamBuffer The handle of the stream buffer from which data was
* read. * read.
* *
@ -924,6 +970,9 @@ BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuf
* vStreamBufferSetStreamBufferNotificationIndex, this function returns the * vStreamBufferSetStreamBufferNotificationIndex, this function returns the
* default value (tskDEFAULT_INDEX_TO_NOTIFY). * default value (tskDEFAULT_INDEX_TO_NOTIFY).
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* uxStreamBufferGetStreamBufferNotificationIndex() to be available.
*
* @param xStreamBuffer The handle of the stream buffer for which the task * @param xStreamBuffer The handle of the stream buffer for which the task
* notification index is retrieved. * notification index is retrieved.
* *
@ -951,6 +1000,9 @@ UBaseType_t uxStreamBufferGetStreamBufferNotificationIndex( StreamBufferHandle_t
* before attempting to send or receive data from the stream buffer to avoid * before attempting to send or receive data from the stream buffer to avoid
* inconsistencies. * inconsistencies.
* *
* configUSE_STREAM_BUFFERS must be set to 1 in for FreeRTOSConfig.h for
* vStreamBufferSetStreamBufferNotificationIndex() to be available.
*
* @param xStreamBuffer The handle of the stream buffer for which the task * @param xStreamBuffer The handle of the stream buffer for which the task
* notification index is set. * notification index is set.
* *

View file

@ -53,10 +53,10 @@
* The tskKERNEL_VERSION_MAJOR, tskKERNEL_VERSION_MINOR, tskKERNEL_VERSION_BUILD * The tskKERNEL_VERSION_MAJOR, tskKERNEL_VERSION_MINOR, tskKERNEL_VERSION_BUILD
* values will reflect the last released version number. * values will reflect the last released version number.
*/ */
#define tskKERNEL_VERSION_NUMBER "V10.4.4+" #define tskKERNEL_VERSION_NUMBER "V11.0.1+"
#define tskKERNEL_VERSION_MAJOR 10 #define tskKERNEL_VERSION_MAJOR 11
#define tskKERNEL_VERSION_MINOR 4 #define tskKERNEL_VERSION_MINOR 0
#define tskKERNEL_VERSION_BUILD 4 #define tskKERNEL_VERSION_BUILD 1
/* MPU region parameters passed in ulParameters /* MPU region parameters passed in ulParameters
* of MemoryRegion_t struct. */ * of MemoryRegion_t struct. */
@ -2289,7 +2289,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) PRIVILEGED_FUNCTION;
* \defgroup vTaskList vTaskList * \defgroup vTaskList vTaskList
* \ingroup TaskUtils * \ingroup TaskUtils
*/ */
#define vTaskList( pcWriteBuffer ) vTaskListTasks( pcWriteBuffer, configSTATS_BUFFER_MAX_LENGTH ) #define vTaskList( pcWriteBuffer ) vTaskListTasks( ( pcWriteBuffer ), configSTATS_BUFFER_MAX_LENGTH )
/** /**
* task. h * task. h
@ -2412,7 +2412,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) PRIVILEGED_FUNCTION;
* \defgroup vTaskGetRunTimeStats vTaskGetRunTimeStats * \defgroup vTaskGetRunTimeStats vTaskGetRunTimeStats
* \ingroup TaskUtils * \ingroup TaskUtils
*/ */
#define vTaskGetRunTimeStats( pcWriteBuffer ) vTaskGetRunTimeStatistics( pcWriteBuffer, configSTATS_BUFFER_MAX_LENGTH ) #define vTaskGetRunTimeStats( pcWriteBuffer ) vTaskGetRunTimeStatistics( ( pcWriteBuffer ), configSTATS_BUFFER_MAX_LENGTH )
/** /**
* task. h * task. h
@ -3438,6 +3438,20 @@ BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
*/ */
BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) PRIVILEGED_FUNCTION; BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) PRIVILEGED_FUNCTION;
/**
* task.h
* @code{c}
* void vTaskResetState( void );
* @endcode
*
* This function resets the internal state of the task. It must be called by the
* application before restarting the scheduler.
*
* \defgroup vTaskResetState vTaskResetState
* \ingroup SchedulerControl
*/
void vTaskResetState( void ) PRIVILEGED_FUNCTION;
/*----------------------------------------------------------- /*-----------------------------------------------------------
* SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES
@ -3574,9 +3588,7 @@ TaskHandle_t xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION;
/* /*
* Return the handle of the task running on specified core. * Return the handle of the task running on specified core.
*/ */
#if ( configNUMBER_OF_CORES > 1 )
TaskHandle_t xTaskGetCurrentTaskHandleForCore( BaseType_t xCoreID ) PRIVILEGED_FUNCTION; TaskHandle_t xTaskGetCurrentTaskHandleForCore( BaseType_t xCoreID ) PRIVILEGED_FUNCTION;
#endif
/* /*
* Shortcut used by the queue implementation to prevent unnecessary call to * Shortcut used by the queue implementation to prevent unnecessary call to

View file

@ -1417,6 +1417,12 @@ BaseType_t xTimerGenericCommandFromISR( TimerHandle_t xTimer,
#endif #endif
/*
* This function resets the internal state of the timer module. It must be called
* by the application before restarting the scheduler.
*/
void vTimerResetState( void ) PRIVILEGED_FUNCTION;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus
} }

9
list.c
View file

@ -130,7 +130,7 @@ void vListInsertEnd( List_t * const pxList,
/* Remember which list the item is in. */ /* Remember which list the item is in. */
pxNewListItem->pxContainer = pxList; pxNewListItem->pxContainer = pxList;
( pxList->uxNumberOfItems )++; ( pxList->uxNumberOfItems ) += ( UBaseType_t ) 1U;
traceRETURN_vListInsertEnd(); traceRETURN_vListInsertEnd();
} }
@ -205,12 +205,13 @@ void vListInsert( List_t * const pxList,
* item later. */ * item later. */
pxNewListItem->pxContainer = pxList; pxNewListItem->pxContainer = pxList;
( pxList->uxNumberOfItems )++; ( pxList->uxNumberOfItems ) += ( UBaseType_t ) 1U;
traceRETURN_vListInsert(); traceRETURN_vListInsert();
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )
{ {
/* The list item knows which list it is in. Obtain the list from the list /* The list item knows which list it is in. Obtain the list from the list
@ -219,8 +220,6 @@ UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )
traceENTER_uxListRemove( pxItemToRemove ); traceENTER_uxListRemove( pxItemToRemove );
pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;
pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;
@ -238,7 +237,7 @@ UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )
} }
pxItemToRemove->pxContainer = NULL; pxItemToRemove->pxContainer = NULL;
( pxList->uxNumberOfItems )--; ( pxList->uxNumberOfItems ) -= ( UBaseType_t ) 1U;
traceRETURN_uxListRemove( pxList->uxNumberOfItems ); traceRETURN_uxListRemove( pxList->uxNumberOfItems );

View file

@ -1,4 +1,4 @@
name : "FreeRTOS-Kernel" name : "FreeRTOS-Kernel"
version: "v10.5.1" version: "v11.0.1+"
description: "FreeRTOS Kernel." description: "FreeRTOS Kernel."
license: "MIT" license: "MIT"

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -48,12 +48,11 @@ MPU_xTaskDelayUntil:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0, r1}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -63,12 +62,11 @@ MPU_xTaskAbortDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0, r1}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -78,12 +76,11 @@ MPU_vTaskDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0, r1}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -93,12 +90,11 @@ MPU_uxTaskPriorityGet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0, r1}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -108,12 +104,11 @@ MPU_eTaskGetState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0, r1}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -123,12 +118,11 @@ MPU_vTaskGetInfo:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0, r1}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -138,12 +132,11 @@ MPU_xTaskGetIdleTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -153,12 +146,11 @@ MPU_vTaskSuspend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0, r1}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -168,12 +160,11 @@ MPU_vTaskResume:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0, r1}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -183,12 +174,11 @@ MPU_xTaskGetTickCount:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0, r1}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -198,12 +188,11 @@ MPU_uxTaskGetNumberOfTasks:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0, r1}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -213,12 +202,11 @@ MPU_ulTaskGetRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -228,12 +216,11 @@ MPU_ulTaskGetRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +230,11 @@ MPU_ulTaskGetIdleRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -258,12 +244,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -273,12 +258,11 @@ MPU_vTaskSetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -288,12 +272,11 @@ MPU_xTaskGetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -303,12 +286,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -318,12 +300,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -333,12 +314,11 @@ MPU_uxTaskGetSystemState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0, r1}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -348,12 +328,11 @@ MPU_uxTaskGetStackHighWaterMark:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -363,12 +342,11 @@ MPU_uxTaskGetStackHighWaterMark2:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -378,12 +356,11 @@ MPU_xTaskGetCurrentTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -393,12 +370,11 @@ MPU_xTaskGetSchedulerState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0, r1}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -408,12 +384,11 @@ MPU_vTaskSetTimeOutState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0, r1}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -423,12 +398,11 @@ MPU_xTaskCheckForTimeOut:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0, r1}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -438,12 +412,11 @@ MPU_xTaskGenericNotifyEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +426,11 @@ MPU_xTaskGenericNotifyWaitEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -468,12 +440,11 @@ MPU_ulTaskGenericNotifyTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -483,12 +454,11 @@ MPU_xTaskGenericNotifyStateClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -498,12 +468,11 @@ MPU_ulTaskGenericNotifyValueClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -513,12 +482,11 @@ MPU_xQueueGenericSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0, r1}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -528,12 +496,11 @@ MPU_uxQueueMessagesWaiting:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0, r1}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -543,12 +510,11 @@ MPU_uxQueueSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0, r1}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -558,12 +524,11 @@ MPU_xQueueReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0, r1}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -573,12 +538,11 @@ MPU_xQueuePeek:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0, r1}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -588,12 +552,11 @@ MPU_xQueueSemaphoreTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0, r1}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -603,12 +566,11 @@ MPU_xQueueGetMutexHolder:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0, r1}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -618,12 +580,11 @@ MPU_xQueueTakeMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -633,12 +594,11 @@ MPU_xQueueGiveMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -648,12 +608,11 @@ MPU_xQueueSelectFromSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0, r1}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +622,11 @@ MPU_xQueueAddToSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0, r1}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -678,12 +636,11 @@ MPU_vQueueAddToRegistry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0, r1}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -693,12 +650,11 @@ MPU_vQueueUnregisterQueue:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0, r1}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -708,12 +664,11 @@ MPU_pcQueueGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0, r1}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -723,12 +678,11 @@ MPU_pvTimerGetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0, r1}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -738,12 +692,11 @@ MPU_vTimerSetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0, r1}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -753,12 +706,11 @@ MPU_xTimerIsTimerActive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0, r1}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -768,12 +720,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0, r1}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -783,12 +734,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -798,12 +748,11 @@ MPU_pcTimerGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0, r1}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -813,12 +762,11 @@ MPU_vTimerSetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0, r1}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -828,12 +776,11 @@ MPU_xTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -843,12 +790,11 @@ MPU_uxTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -858,12 +804,11 @@ MPU_xTimerGetPeriod:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0, r1}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +818,11 @@ MPU_xTimerGetExpiryTime:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0, r1}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -888,12 +832,11 @@ MPU_xEventGroupWaitBitsEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0, r1}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -903,12 +846,11 @@ MPU_xEventGroupClearBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0, r1}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -918,12 +860,11 @@ MPU_xEventGroupSetBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0, r1}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -933,12 +874,11 @@ MPU_xEventGroupSync:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0, r1}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -948,12 +888,11 @@ MPU_uxEventGroupGetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0, r1}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -963,12 +902,11 @@ MPU_vEventGroupSetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0, r1}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -978,12 +916,11 @@ MPU_xStreamBufferSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0, r1}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -993,12 +930,11 @@ MPU_xStreamBufferReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0, r1}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1008,12 +944,11 @@ MPU_xStreamBufferIsFull:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1023,12 +958,11 @@ MPU_xStreamBufferIsEmpty:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1038,12 +972,11 @@ MPU_xStreamBufferSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1053,12 +986,11 @@ MPU_xStreamBufferBytesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1068,12 +1000,11 @@ MPU_xStreamBufferSetTriggerLevel:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0, r1}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1083,12 +1014,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0, r1}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -48,12 +48,11 @@ MPU_xTaskDelayUntil:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0, r1}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -63,12 +62,11 @@ MPU_xTaskAbortDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0, r1}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -78,12 +76,11 @@ MPU_vTaskDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0, r1}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -93,12 +90,11 @@ MPU_uxTaskPriorityGet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0, r1}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -108,12 +104,11 @@ MPU_eTaskGetState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0, r1}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -123,12 +118,11 @@ MPU_vTaskGetInfo:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0, r1}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -138,12 +132,11 @@ MPU_xTaskGetIdleTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -153,12 +146,11 @@ MPU_vTaskSuspend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0, r1}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -168,12 +160,11 @@ MPU_vTaskResume:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0, r1}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -183,12 +174,11 @@ MPU_xTaskGetTickCount:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0, r1}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -198,12 +188,11 @@ MPU_uxTaskGetNumberOfTasks:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0, r1}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -213,12 +202,11 @@ MPU_ulTaskGetRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -228,12 +216,11 @@ MPU_ulTaskGetRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +230,11 @@ MPU_ulTaskGetIdleRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -258,12 +244,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -273,12 +258,11 @@ MPU_vTaskSetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -288,12 +272,11 @@ MPU_xTaskGetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -303,12 +286,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -318,12 +300,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -333,12 +314,11 @@ MPU_uxTaskGetSystemState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0, r1}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -348,12 +328,11 @@ MPU_uxTaskGetStackHighWaterMark:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -363,12 +342,11 @@ MPU_uxTaskGetStackHighWaterMark2:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -378,12 +356,11 @@ MPU_xTaskGetCurrentTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -393,12 +370,11 @@ MPU_xTaskGetSchedulerState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0, r1}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -408,12 +384,11 @@ MPU_vTaskSetTimeOutState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0, r1}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -423,12 +398,11 @@ MPU_xTaskCheckForTimeOut:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0, r1}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -438,12 +412,11 @@ MPU_xTaskGenericNotifyEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +426,11 @@ MPU_xTaskGenericNotifyWaitEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -468,12 +440,11 @@ MPU_ulTaskGenericNotifyTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -483,12 +454,11 @@ MPU_xTaskGenericNotifyStateClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -498,12 +468,11 @@ MPU_ulTaskGenericNotifyValueClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -513,12 +482,11 @@ MPU_xQueueGenericSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0, r1}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -528,12 +496,11 @@ MPU_uxQueueMessagesWaiting:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0, r1}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -543,12 +510,11 @@ MPU_uxQueueSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0, r1}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -558,12 +524,11 @@ MPU_xQueueReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0, r1}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -573,12 +538,11 @@ MPU_xQueuePeek:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0, r1}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -588,12 +552,11 @@ MPU_xQueueSemaphoreTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0, r1}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -603,12 +566,11 @@ MPU_xQueueGetMutexHolder:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0, r1}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -618,12 +580,11 @@ MPU_xQueueTakeMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -633,12 +594,11 @@ MPU_xQueueGiveMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -648,12 +608,11 @@ MPU_xQueueSelectFromSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0, r1}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +622,11 @@ MPU_xQueueAddToSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0, r1}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -678,12 +636,11 @@ MPU_vQueueAddToRegistry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0, r1}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -693,12 +650,11 @@ MPU_vQueueUnregisterQueue:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0, r1}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -708,12 +664,11 @@ MPU_pcQueueGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0, r1}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -723,12 +678,11 @@ MPU_pvTimerGetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0, r1}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -738,12 +692,11 @@ MPU_vTimerSetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0, r1}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -753,12 +706,11 @@ MPU_xTimerIsTimerActive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0, r1}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -768,12 +720,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0, r1}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -783,12 +734,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -798,12 +748,11 @@ MPU_pcTimerGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0, r1}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -813,12 +762,11 @@ MPU_vTimerSetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0, r1}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -828,12 +776,11 @@ MPU_xTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -843,12 +790,11 @@ MPU_uxTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -858,12 +804,11 @@ MPU_xTimerGetPeriod:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0, r1}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +818,11 @@ MPU_xTimerGetExpiryTime:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0, r1}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -888,12 +832,11 @@ MPU_xEventGroupWaitBitsEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0, r1}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -903,12 +846,11 @@ MPU_xEventGroupClearBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0, r1}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -918,12 +860,11 @@ MPU_xEventGroupSetBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0, r1}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -933,12 +874,11 @@ MPU_xEventGroupSync:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0, r1}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -948,12 +888,11 @@ MPU_uxEventGroupGetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0, r1}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -963,12 +902,11 @@ MPU_vEventGroupSetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0, r1}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -978,12 +916,11 @@ MPU_xStreamBufferSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0, r1}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -993,12 +930,11 @@ MPU_xStreamBufferReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0, r1}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1008,12 +944,11 @@ MPU_xStreamBufferIsFull:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1023,12 +958,11 @@ MPU_xStreamBufferIsEmpty:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1038,12 +972,11 @@ MPU_xStreamBufferSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1053,12 +986,11 @@ MPU_xStreamBufferBytesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1068,12 +1000,11 @@ MPU_xStreamBufferSetTriggerLevel:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0, r1}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1083,12 +1014,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0, r1}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -47,12 +47,11 @@ MPU_xTaskDelayUntil:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -61,12 +60,11 @@ MPU_xTaskAbortDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -75,12 +73,11 @@ MPU_vTaskDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -89,12 +86,11 @@ MPU_uxTaskPriorityGet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -103,12 +99,11 @@ MPU_eTaskGetState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -117,12 +112,11 @@ MPU_vTaskGetInfo:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -131,12 +125,11 @@ MPU_xTaskGetIdleTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -145,12 +138,11 @@ MPU_vTaskSuspend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -159,12 +151,11 @@ MPU_vTaskResume:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -173,12 +164,11 @@ MPU_xTaskGetTickCount:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -187,12 +177,11 @@ MPU_uxTaskGetNumberOfTasks:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -201,12 +190,11 @@ MPU_ulTaskGetRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -215,12 +203,11 @@ MPU_ulTaskGetRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -229,12 +216,11 @@ MPU_ulTaskGetIdleRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +229,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -257,12 +242,11 @@ MPU_vTaskSetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -271,12 +255,11 @@ MPU_xTaskGetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -285,12 +268,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -299,12 +281,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -313,12 +294,11 @@ MPU_uxTaskGetSystemState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -327,12 +307,11 @@ MPU_uxTaskGetStackHighWaterMark:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -341,12 +320,11 @@ MPU_uxTaskGetStackHighWaterMark2:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -355,12 +333,11 @@ MPU_xTaskGetCurrentTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -369,12 +346,11 @@ MPU_xTaskGetSchedulerState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -383,12 +359,11 @@ MPU_vTaskSetTimeOutState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -397,12 +372,11 @@ MPU_xTaskCheckForTimeOut:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -411,12 +385,11 @@ MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -425,12 +398,11 @@ MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -439,12 +411,11 @@ MPU_ulTaskGenericNotifyTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +424,11 @@ MPU_xTaskGenericNotifyStateClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -467,12 +437,11 @@ MPU_ulTaskGenericNotifyValueClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -481,12 +450,11 @@ MPU_xQueueGenericSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -495,12 +463,11 @@ MPU_uxQueueMessagesWaiting:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -509,12 +476,11 @@ MPU_uxQueueSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -523,12 +489,11 @@ MPU_xQueueReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -537,12 +502,11 @@ MPU_xQueuePeek:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -551,12 +515,11 @@ MPU_xQueueSemaphoreTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -565,12 +528,11 @@ MPU_xQueueGetMutexHolder:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -579,12 +541,11 @@ MPU_xQueueTakeMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -593,12 +554,11 @@ MPU_xQueueGiveMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -607,12 +567,11 @@ MPU_xQueueSelectFromSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -621,12 +580,11 @@ MPU_xQueueAddToSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -635,12 +593,11 @@ MPU_vQueueAddToRegistry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -649,12 +606,11 @@ MPU_vQueueUnregisterQueue:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +619,11 @@ MPU_pcQueueGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -677,12 +632,11 @@ MPU_pvTimerGetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -691,12 +645,11 @@ MPU_vTimerSetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -705,12 +658,11 @@ MPU_xTimerIsTimerActive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -719,12 +671,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -733,12 +684,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -747,12 +697,11 @@ MPU_pcTimerGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -761,12 +710,11 @@ MPU_vTimerSetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -775,12 +723,11 @@ MPU_xTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -789,12 +736,11 @@ MPU_uxTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -803,12 +749,11 @@ MPU_xTimerGetPeriod:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -817,12 +762,11 @@ MPU_xTimerGetExpiryTime:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -831,12 +775,11 @@ MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -845,12 +788,11 @@ MPU_xEventGroupClearBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -859,12 +801,11 @@ MPU_xEventGroupSetBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +814,11 @@ MPU_xEventGroupSync:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -887,12 +827,11 @@ MPU_uxEventGroupGetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,12 +840,11 @@ MPU_vEventGroupSetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -915,12 +853,11 @@ MPU_xStreamBufferSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,12 +866,11 @@ MPU_xStreamBufferReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -943,12 +879,11 @@ MPU_xStreamBufferIsFull:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -957,12 +892,11 @@ MPU_xStreamBufferIsEmpty:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -971,12 +905,11 @@ MPU_xStreamBufferSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -985,12 +918,11 @@ MPU_xStreamBufferBytesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -999,12 +931,11 @@ MPU_xStreamBufferSetTriggerLevel:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1013,12 +944,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -47,12 +47,11 @@ MPU_xTaskDelayUntil:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -61,12 +60,11 @@ MPU_xTaskAbortDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -75,12 +73,11 @@ MPU_vTaskDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -89,12 +86,11 @@ MPU_uxTaskPriorityGet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -103,12 +99,11 @@ MPU_eTaskGetState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -117,12 +112,11 @@ MPU_vTaskGetInfo:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -131,12 +125,11 @@ MPU_xTaskGetIdleTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -145,12 +138,11 @@ MPU_vTaskSuspend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -159,12 +151,11 @@ MPU_vTaskResume:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -173,12 +164,11 @@ MPU_xTaskGetTickCount:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -187,12 +177,11 @@ MPU_uxTaskGetNumberOfTasks:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -201,12 +190,11 @@ MPU_ulTaskGetRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -215,12 +203,11 @@ MPU_ulTaskGetRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -229,12 +216,11 @@ MPU_ulTaskGetIdleRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +229,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -257,12 +242,11 @@ MPU_vTaskSetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -271,12 +255,11 @@ MPU_xTaskGetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -285,12 +268,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -299,12 +281,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -313,12 +294,11 @@ MPU_uxTaskGetSystemState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -327,12 +307,11 @@ MPU_uxTaskGetStackHighWaterMark:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -341,12 +320,11 @@ MPU_uxTaskGetStackHighWaterMark2:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -355,12 +333,11 @@ MPU_xTaskGetCurrentTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -369,12 +346,11 @@ MPU_xTaskGetSchedulerState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -383,12 +359,11 @@ MPU_vTaskSetTimeOutState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -397,12 +372,11 @@ MPU_xTaskCheckForTimeOut:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -411,12 +385,11 @@ MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -425,12 +398,11 @@ MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -439,12 +411,11 @@ MPU_ulTaskGenericNotifyTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +424,11 @@ MPU_xTaskGenericNotifyStateClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -467,12 +437,11 @@ MPU_ulTaskGenericNotifyValueClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -481,12 +450,11 @@ MPU_xQueueGenericSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -495,12 +463,11 @@ MPU_uxQueueMessagesWaiting:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -509,12 +476,11 @@ MPU_uxQueueSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -523,12 +489,11 @@ MPU_xQueueReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -537,12 +502,11 @@ MPU_xQueuePeek:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -551,12 +515,11 @@ MPU_xQueueSemaphoreTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -565,12 +528,11 @@ MPU_xQueueGetMutexHolder:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -579,12 +541,11 @@ MPU_xQueueTakeMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -593,12 +554,11 @@ MPU_xQueueGiveMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -607,12 +567,11 @@ MPU_xQueueSelectFromSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -621,12 +580,11 @@ MPU_xQueueAddToSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -635,12 +593,11 @@ MPU_vQueueAddToRegistry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -649,12 +606,11 @@ MPU_vQueueUnregisterQueue:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +619,11 @@ MPU_pcQueueGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -677,12 +632,11 @@ MPU_pvTimerGetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -691,12 +645,11 @@ MPU_vTimerSetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -705,12 +658,11 @@ MPU_xTimerIsTimerActive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -719,12 +671,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -733,12 +684,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -747,12 +697,11 @@ MPU_pcTimerGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -761,12 +710,11 @@ MPU_vTimerSetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -775,12 +723,11 @@ MPU_xTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -789,12 +736,11 @@ MPU_uxTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -803,12 +749,11 @@ MPU_xTimerGetPeriod:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -817,12 +762,11 @@ MPU_xTimerGetExpiryTime:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -831,12 +775,11 @@ MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -845,12 +788,11 @@ MPU_xEventGroupClearBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -859,12 +801,11 @@ MPU_xEventGroupSetBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +814,11 @@ MPU_xEventGroupSync:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -887,12 +827,11 @@ MPU_uxEventGroupGetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,12 +840,11 @@ MPU_vEventGroupSetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -915,12 +853,11 @@ MPU_xStreamBufferSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,12 +866,11 @@ MPU_xStreamBufferReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -943,12 +879,11 @@ MPU_xStreamBufferIsFull:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -957,12 +892,11 @@ MPU_xStreamBufferIsEmpty:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -971,12 +905,11 @@ MPU_xStreamBufferSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -985,12 +918,11 @@ MPU_xStreamBufferBytesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -999,12 +931,11 @@ MPU_xStreamBufferSetTriggerLevel:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1013,12 +944,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -68,12 +68,12 @@ add_library(freertos_kernel_port OBJECT
# ARMv8-A ports for GCC # ARMv8-A ports for GCC
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64>: $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64>:
GCC/Arm_AARCH64/port.c GCC/ARM_AARCH64/port.c
GCC/Arm_AARCH64/portASM.S> GCC/ARM_AARCH64/portASM.S>
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64_SRE>: $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64_SRE>:
GCC/Arm_AARCH64_SRE/port.c GCC/ARM_AARCH64_SRE/port.c
GCC/Arm_AARCH64_SRE/portASM.S> GCC/ARM_AARCH64_SRE/portASM.S>
# ARMv6-M port for GCC # ARMv6-M port for GCC
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>: $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:
@ -207,6 +207,11 @@ add_library(freertos_kernel_port OBJECT
GCC/ARM_CR5/port.c GCC/ARM_CR5/port.c
GCC/ARM_CR5/portASM.S> GCC/ARM_CR5/portASM.S>
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_MPU>:
GCC/ARM_CRx_MPU/port.c
GCC/ARM_CRx_MPU/portASM.S
GCC/ARM_CRx_MPU/mpu_wrappers_v2_asm.S>
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>: $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:
GCC/ARM_CRx_No_GIC/port.c GCC/ARM_CRx_No_GIC/port.c
GCC/ARM_CRx_No_GIC/portASM.S> GCC/ARM_CRx_No_GIC/portASM.S>
@ -836,6 +841,7 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
# ARMv7-R ports for GCC # ARMv7-R ports for GCC
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR5> $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR5>
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_MPU>
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_No_GIC> $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_No_GIC>
# ARMv4T ARM7TDMI ports for GCC # ARMv4T ARM7TDMI ports for GCC

View file

@ -1952,7 +1952,7 @@
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) )
EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */ EventGroupHandle_t MPU_xEventGroupCreate( void ) /* FREERTOS_SYSTEM_CALL */
{ {
EventGroupHandle_t xReturn; EventGroupHandle_t xReturn;
@ -1975,10 +1975,10 @@
return xReturn; return xReturn;
} }
#endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) )
EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */ EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
EventGroupHandle_t xReturn; EventGroupHandle_t xReturn;
@ -2001,9 +2001,10 @@
return xReturn; return xReturn;
} }
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit, const BaseType_t xClearOnExit,
@ -2030,8 +2031,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */ const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
{ {
@ -2055,8 +2058,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */ const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
{ {
@ -2080,8 +2085,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet, const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
@ -2107,8 +2114,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */ void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* FREERTOS_SYSTEM_CALL */
{ {
if( portIS_PRIVILEGED() == pdFALSE ) if( portIS_PRIVILEGED() == pdFALSE )
@ -2127,8 +2136,10 @@
vEventGroupDelete( xEventGroup ); vEventGroupDelete( xEventGroup );
} }
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData, const void * pvTxData,
size_t xDataLengthBytes, size_t xDataLengthBytes,
@ -2154,8 +2165,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
size_t xReturn; size_t xReturn;
@ -2178,8 +2191,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
void * pvRxData, void * pvRxData,
size_t xBufferLengthBytes, size_t xBufferLengthBytes,
@ -2205,8 +2220,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
if( portIS_PRIVILEGED() == pdFALSE ) if( portIS_PRIVILEGED() == pdFALSE )
@ -2225,8 +2242,10 @@
vStreamBufferDelete( xStreamBuffer ); vStreamBufferDelete( xStreamBuffer );
} }
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
BaseType_t xReturn; BaseType_t xReturn;
@ -2249,8 +2268,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
BaseType_t xReturn; BaseType_t xReturn;
@ -2273,8 +2294,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
BaseType_t xReturn; BaseType_t xReturn;
@ -2297,8 +2320,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
size_t xReturn; size_t xReturn;
@ -2320,8 +2345,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
{ {
size_t xReturn; size_t xReturn;
@ -2344,8 +2371,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */ size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
{ {
@ -2369,9 +2398,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) )
StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
size_t xTriggerLevelBytes, size_t xTriggerLevelBytes,
BaseType_t xIsMessageBuffer, BaseType_t xIsMessageBuffer,
@ -2422,10 +2452,10 @@
return xReturn; return xReturn;
} }
#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ #endif /* #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) )
StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
size_t xTriggerLevelBytes, size_t xTriggerLevelBytes,
BaseType_t xIsMessageBuffer, BaseType_t xIsMessageBuffer,
@ -2482,7 +2512,7 @@
return xReturn; return xReturn;
} }
#endif /* configSUPPORT_STATIC_ALLOCATION */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -93,15 +93,15 @@
* @brief Checks whether an external index is valid or not. * @brief Checks whether an external index is valid or not.
*/ */
#define IS_EXTERNAL_INDEX_VALID( lIndex ) \ #define IS_EXTERNAL_INDEX_VALID( lIndex ) \
( ( ( lIndex ) >= INDEX_OFFSET ) && \ ( ( ( ( lIndex ) >= INDEX_OFFSET ) && \
( ( lIndex ) < ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE + INDEX_OFFSET ) ) ) ( ( lIndex ) < ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE + INDEX_OFFSET ) ) ) ? pdTRUE : pdFALSE )
/** /**
* @brief Checks whether an internal index is valid or not. * @brief Checks whether an internal index is valid or not.
*/ */
#define IS_INTERNAL_INDEX_VALID( lIndex ) \ #define IS_INTERNAL_INDEX_VALID( lIndex ) \
( ( ( lIndex ) >= 0 ) && \ ( ( ( ( lIndex ) >= 0 ) && \
( ( lIndex ) < ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE ) ) ) ( ( lIndex ) < ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE ) ) ) ? pdTRUE : pdFALSE )
/** /**
* @brief Converts an internal index into external. * @brief Converts an internal index into external.
@ -197,46 +197,51 @@
/* /*
* Wrappers to keep all the casting in one place. * Wrappers to keep all the casting in one place.
*/ */
#define MPU_StoreQueueHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_StoreQueueHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), NULL, KERNEL_OBJECT_TYPE_QUEUE )
#define MPU_GetQueueHandleAtIndex( lIndex ) ( QueueHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_GetQueueHandleAtIndex( lIndex ) ( QueueHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_QUEUE )
#if ( configUSE_QUEUE_SETS == 1 ) #if ( configUSE_QUEUE_SETS == 1 )
#define MPU_StoreQueueSetHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_StoreQueueSetHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), NULL, KERNEL_OBJECT_TYPE_QUEUE )
#define MPU_GetQueueSetHandleAtIndex( lIndex ) ( QueueSetHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_GetQueueSetHandleAtIndex( lIndex ) ( QueueSetHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_QUEUE )
#define MPU_StoreQueueSetMemberHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_StoreQueueSetMemberHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), NULL, KERNEL_OBJECT_TYPE_QUEUE )
#define MPU_GetQueueSetMemberHandleAtIndex( lIndex ) ( QueueSetMemberHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_GetQueueSetMemberHandleAtIndex( lIndex ) ( QueueSetMemberHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_QUEUE )
#define MPU_GetIndexForQueueSetMemberHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) xHandle, KERNEL_OBJECT_TYPE_QUEUE ) #define MPU_GetIndexForQueueSetMemberHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) ( xHandle ), KERNEL_OBJECT_TYPE_QUEUE )
#endif #endif
/* /*
* Wrappers to keep all the casting in one place for Task APIs. * Wrappers to keep all the casting in one place for Task APIs.
*/ */
#define MPU_StoreTaskHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_TASK ) #define MPU_StoreTaskHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), NULL, KERNEL_OBJECT_TYPE_TASK )
#define MPU_GetTaskHandleAtIndex( lIndex ) ( TaskHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_TASK ) #define MPU_GetTaskHandleAtIndex( lIndex ) ( TaskHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_TASK )
#define MPU_GetIndexForTaskHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) xHandle, KERNEL_OBJECT_TYPE_TASK ) #define MPU_GetIndexForTaskHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) ( xHandle ), KERNEL_OBJECT_TYPE_TASK )
#if ( configUSE_EVENT_GROUPS == 1 )
/* /*
* Wrappers to keep all the casting in one place for Event Group APIs. * Wrappers to keep all the casting in one place for Event Group APIs.
*/ */
#define MPU_StoreEventGroupHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_EVENT_GROUP ) #define MPU_StoreEventGroupHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), NULL, KERNEL_OBJECT_TYPE_EVENT_GROUP )
#define MPU_GetEventGroupHandleAtIndex( lIndex ) ( EventGroupHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_EVENT_GROUP ) #define MPU_GetEventGroupHandleAtIndex( lIndex ) ( EventGroupHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_EVENT_GROUP )
#define MPU_GetIndexForEventGroupHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) xHandle, KERNEL_OBJECT_TYPE_EVENT_GROUP ) #define MPU_GetIndexForEventGroupHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) ( xHandle ), KERNEL_OBJECT_TYPE_EVENT_GROUP )
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
#if ( configUSE_STREAM_BUFFERS == 1 )
/* /*
* Wrappers to keep all the casting in one place for Stream Buffer APIs. * Wrappers to keep all the casting in one place for Stream Buffer APIs.
*/ */
#define MPU_StoreStreamBufferHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, NULL, KERNEL_OBJECT_TYPE_STREAM_BUFFER ) #define MPU_StoreStreamBufferHandleAtIndex( lIndex, xHandle ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle), NULL, KERNEL_OBJECT_TYPE_STREAM_BUFFER )
#define MPU_GetStreamBufferHandleAtIndex( lIndex ) ( StreamBufferHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_STREAM_BUFFER ) #define MPU_GetStreamBufferHandleAtIndex( lIndex ) ( StreamBufferHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_STREAM_BUFFER )
#define MPU_GetIndexForStreamBufferHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) xHandle, KERNEL_OBJECT_TYPE_STREAM_BUFFER ) #define MPU_GetIndexForStreamBufferHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) ( xHandle ), KERNEL_OBJECT_TYPE_STREAM_BUFFER )
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
#if ( configUSE_TIMERS == 1 ) #if ( configUSE_TIMERS == 1 )
/* /*
* Wrappers to keep all the casting in one place for Timer APIs. * Wrappers to keep all the casting in one place for Timer APIs.
*/ */
#define MPU_StoreTimerHandleAtIndex( lIndex, xHandle, pxApplicationCallback ) MPU_StoreHandleAndDataAtIndex( lIndex, ( OpaqueObjectHandle_t ) xHandle, ( void * ) pxApplicationCallback, KERNEL_OBJECT_TYPE_TIMER ) #define MPU_StoreTimerHandleAtIndex( lIndex, xHandle, pxApplicationCallback ) MPU_StoreHandleAndDataAtIndex( ( lIndex ), ( OpaqueObjectHandle_t ) ( xHandle ), ( void * ) ( pxApplicationCallback ), KERNEL_OBJECT_TYPE_TIMER )
#define MPU_GetTimerHandleAtIndex( lIndex ) ( TimerHandle_t ) MPU_GetHandleAtIndex( lIndex, KERNEL_OBJECT_TYPE_TIMER ) #define MPU_GetTimerHandleAtIndex( lIndex ) ( TimerHandle_t ) MPU_GetHandleAtIndex( ( lIndex ), KERNEL_OBJECT_TYPE_TIMER )
#define MPU_GetIndexForTimerHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) xHandle, KERNEL_OBJECT_TYPE_TIMER ) #define MPU_GetIndexForTimerHandle( xHandle ) MPU_GetIndexForHandle( ( OpaqueObjectHandle_t ) ( xHandle ), KERNEL_OBJECT_TYPE_TIMER )
#endif /* #if ( configUSE_TIMERS == 1 ) */ #endif /* #if ( configUSE_TIMERS == 1 ) */
@ -2197,7 +2202,7 @@
if( ( !( ( pvItemToQueue == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) ) && if( ( !( ( pvItemToQueue == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) ) &&
( !( ( xCopyPosition == queueOVERWRITE ) && ( uxQueueLength != ( UBaseType_t ) 1U ) ) ) ( !( ( xCopyPosition == queueOVERWRITE ) && ( uxQueueLength != ( UBaseType_t ) 1U ) ) )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -2312,7 +2317,7 @@
if( ( !( ( ( pvBuffer ) == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) ) if( ( !( ( ( pvBuffer ) == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -2364,7 +2369,7 @@
if( ( !( ( ( pvBuffer ) == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) ) if( ( !( ( ( pvBuffer ) == NULL ) && ( uxQueueItemSize != ( UBaseType_t ) 0U ) ) )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -2411,9 +2416,9 @@
{ {
uxQueueItemSize = uxQueueGetQueueItemSize( xInternalQueueHandle ); uxQueueItemSize = uxQueueGetQueueItemSize( xInternalQueueHandle );
if( ( uxQueueItemSize == 0 ) if( ( uxQueueItemSize == 0U )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -3867,6 +3872,8 @@
/* MPU wrappers for event group APIs. */ /* MPU wrappers for event group APIs. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit, const BaseType_t xClearOnExit,
@ -3906,10 +3913,10 @@
if( xAreParamsReadable == pdTRUE ) if( xAreParamsReadable == pdTRUE )
{ {
if( ( ( pxParams->uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ) && if( ( ( pxParams->uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0U ) &&
( pxParams->uxBitsToWaitFor != 0 ) ( pxParams->uxBitsToWaitFor != 0U )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( pxParams->xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( pxParams->xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -3938,8 +3945,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupClearBitsImpl( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupClearBitsImpl( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) PRIVILEGED_FUNCTION; const EventBits_t uxBitsToClear ) PRIVILEGED_FUNCTION;
@ -3951,7 +3962,7 @@
int32_t lIndex; int32_t lIndex;
BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE; BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE;
if( ( uxBitsToClear & eventEVENT_BITS_CONTROL_BYTES ) == 0 ) if( ( uxBitsToClear & eventEVENT_BITS_CONTROL_BYTES ) == 0U )
{ {
lIndex = ( int32_t ) xEventGroup; lIndex = ( int32_t ) xEventGroup;
@ -3973,8 +3984,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSetBitsImpl( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSetBitsImpl( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) PRIVILEGED_FUNCTION; const EventBits_t uxBitsToSet ) PRIVILEGED_FUNCTION;
@ -3986,7 +4001,7 @@
int32_t lIndex; int32_t lIndex;
BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE; BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE;
if( ( uxBitsToSet & eventEVENT_BITS_CONTROL_BYTES ) == 0 ) if( ( uxBitsToSet & eventEVENT_BITS_CONTROL_BYTES ) == 0U )
{ {
lIndex = ( int32_t ) xEventGroup; lIndex = ( int32_t ) xEventGroup;
@ -4008,8 +4023,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSyncImpl( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSyncImpl( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet, const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
@ -4025,10 +4044,10 @@
int32_t lIndex; int32_t lIndex;
BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE; BaseType_t xCallingTaskIsAuthorizedToAccessEventGroup = pdFALSE;
if( ( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ) && if( ( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0U ) &&
( uxBitsToWaitFor != 0 ) ( uxBitsToWaitFor != 0U )
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
&& ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ) && ( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0U ) ) )
#endif #endif
) )
{ {
@ -4052,9 +4071,11 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
UBaseType_t MPU_uxEventGroupGetNumberImpl( void * xEventGroup ) PRIVILEGED_FUNCTION; UBaseType_t MPU_uxEventGroupGetNumberImpl( void * xEventGroup ) PRIVILEGED_FUNCTION;
@ -4085,10 +4106,10 @@
return xReturn; return xReturn;
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
void MPU_vEventGroupSetNumberImpl( void * xEventGroup, void MPU_vEventGroupSetNumberImpl( void * xEventGroup,
UBaseType_t uxEventGroupNumber ) PRIVILEGED_FUNCTION; UBaseType_t uxEventGroupNumber ) PRIVILEGED_FUNCTION;
@ -4118,7 +4139,7 @@
} }
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Privileged only wrappers for Event Group APIs. These are needed so that /* Privileged only wrappers for Event Group APIs. These are needed so that
@ -4126,7 +4147,7 @@
* with all the APIs. */ * with all the APIs. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) )
EventGroupHandle_t MPU_xEventGroupCreate( void ) /* PRIVILEGED_FUNCTION */ EventGroupHandle_t MPU_xEventGroupCreate( void ) /* PRIVILEGED_FUNCTION */
{ {
@ -4154,10 +4175,10 @@
return xExternalEventGroupHandle; return xExternalEventGroupHandle;
} }
#endif /* if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) )
EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* PRIVILEGED_FUNCTION */ EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) /* PRIVILEGED_FUNCTION */
{ {
@ -4185,9 +4206,11 @@
return xExternalEventGroupHandle; return xExternalEventGroupHandle;
} }
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* PRIVILEGED_FUNCTION */ void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) /* PRIVILEGED_FUNCTION */
{ {
EventGroupHandle_t xInternalEventGroupHandle = NULL; EventGroupHandle_t xInternalEventGroupHandle = NULL;
@ -4206,9 +4229,11 @@
} }
} }
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) )
BaseType_t MPU_xEventGroupGetStaticBuffer( EventGroupHandle_t xEventGroup, BaseType_t MPU_xEventGroupGetStaticBuffer( EventGroupHandle_t xEventGroup,
StaticEventGroup_t ** ppxEventGroupBuffer ) /* PRIVILEGED_FUNCTION */ StaticEventGroup_t ** ppxEventGroupBuffer ) /* PRIVILEGED_FUNCTION */
@ -4232,10 +4257,10 @@
return xReturn; return xReturn;
} }
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_EVENT_GROUPS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
BaseType_t MPU_xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, BaseType_t MPU_xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) /* PRIVILEGED_FUNCTION */ const EventBits_t uxBitsToClear ) /* PRIVILEGED_FUNCTION */
@ -4259,10 +4284,10 @@
return xReturn; return xReturn;
} }
#endif /* #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
BaseType_t MPU_xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, BaseType_t MPU_xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet, const EventBits_t uxBitsToSet,
@ -4287,9 +4312,11 @@
return xReturn; return xReturn;
} }
#endif /* #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) /* PRIVILEGED_FUNCTION */ EventBits_t MPU_xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) /* PRIVILEGED_FUNCTION */
{ {
EventBits_t xReturn = 0; EventBits_t xReturn = 0;
@ -4310,12 +4337,16 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* MPU wrappers for stream buffer APIs. */ /* MPU wrappers for stream buffer APIs. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSendImpl( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferSendImpl( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData, const void * pvTxData,
size_t xDataLengthBytes, size_t xDataLengthBytes,
@ -4361,8 +4392,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceiveImpl( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferReceiveImpl( StreamBufferHandle_t xStreamBuffer,
void * pvRxData, void * pvRxData,
size_t xBufferLengthBytes, size_t xBufferLengthBytes,
@ -4408,8 +4443,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsFullImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; BaseType_t MPU_xStreamBufferIsFullImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
BaseType_t MPU_xStreamBufferIsFullImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ BaseType_t MPU_xStreamBufferIsFullImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
@ -4438,8 +4477,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsEmptyImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; BaseType_t MPU_xStreamBufferIsEmptyImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
BaseType_t MPU_xStreamBufferIsEmptyImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ BaseType_t MPU_xStreamBufferIsEmptyImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
@ -4468,8 +4511,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSpacesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; size_t MPU_xStreamBufferSpacesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
size_t MPU_xStreamBufferSpacesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ size_t MPU_xStreamBufferSpacesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
@ -4498,8 +4545,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferBytesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; size_t MPU_xStreamBufferBytesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
size_t MPU_xStreamBufferBytesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ size_t MPU_xStreamBufferBytesAvailableImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
@ -4528,8 +4579,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSetTriggerLevelImpl( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferSetTriggerLevelImpl( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) PRIVILEGED_FUNCTION; size_t xTriggerLevel ) PRIVILEGED_FUNCTION;
@ -4560,8 +4615,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferNextMessageLengthBytesImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; size_t MPU_xStreamBufferNextMessageLengthBytesImpl( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
size_t MPU_xStreamBufferNextMessageLengthBytesImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ size_t MPU_xStreamBufferNextMessageLengthBytesImpl( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
@ -4590,6 +4649,8 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Privileged only wrappers for Stream Buffer APIs. These are needed so that /* Privileged only wrappers for Stream Buffer APIs. These are needed so that
@ -4597,7 +4658,7 @@
* with all the APIs. */ * with all the APIs. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) )
StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,
size_t xTriggerLevelBytes, size_t xTriggerLevelBytes,
@ -4649,10 +4710,10 @@
return xExternalStreamBufferHandle; return xExternalStreamBufferHandle;
} }
#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ #endif /* #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) )
StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
size_t xTriggerLevelBytes, size_t xTriggerLevelBytes,
@ -4708,9 +4769,11 @@
return xExternalStreamBufferHandle; return xExternalStreamBufferHandle;
} }
#endif /* configSUPPORT_STATIC_ALLOCATION */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
{ {
StreamBufferHandle_t xInternalStreamBufferHandle = NULL; StreamBufferHandle_t xInternalStreamBufferHandle = NULL;
@ -4730,8 +4793,12 @@
MPU_SetIndexFreeInKernelObjectPool( CONVERT_TO_INTERNAL_INDEX( lIndex ) ); MPU_SetIndexFreeInKernelObjectPool( CONVERT_TO_INTERNAL_INDEX( lIndex ) );
} }
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */ BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) /* PRIVILEGED_FUNCTION */
{ {
BaseType_t xReturn = pdFALSE; BaseType_t xReturn = pdFALSE;
@ -4752,9 +4819,11 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configSUPPORT_STATIC_ALLOCATION == 1 ) #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) )
BaseType_t MPU_xStreamBufferGetStaticBuffers( StreamBufferHandle_t xStreamBuffers, BaseType_t MPU_xStreamBufferGetStaticBuffers( StreamBufferHandle_t xStreamBuffers,
uint8_t * ppucStreamBufferStorageArea, uint8_t * ppucStreamBufferStorageArea,
@ -4779,9 +4848,11 @@
return xReturn; return xReturn;
} }
#endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ #endif /* #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_STREAM_BUFFERS == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData, const void * pvTxData,
size_t xDataLengthBytes, size_t xDataLengthBytes,
@ -4805,8 +4876,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer,
void * pvRxData, void * pvRxData,
size_t xBufferLengthBytes, size_t xBufferLengthBytes,
@ -4830,8 +4905,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer,
BaseType_t * pxHigherPriorityTaskWoken ) /* PRIVILEGED_FUNCTION */ BaseType_t * pxHigherPriorityTaskWoken ) /* PRIVILEGED_FUNCTION */
{ {
@ -4853,8 +4932,12 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer,
BaseType_t * pxHigherPriorityTaskWoken ) /*PRIVILEGED_FUNCTION */ BaseType_t * pxHigherPriorityTaskWoken ) /*PRIVILEGED_FUNCTION */
{ {
@ -4877,6 +4960,8 @@
return xReturn; return xReturn;
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Functions that the application writer wants to execute in privileged mode /* Functions that the application writer wants to execute in privileged mode
@ -4909,7 +4994,11 @@
( UBaseType_t ) 0, /* SYSTEM_CALL_xTimerGenericCommandFromTask. */ ( UBaseType_t ) 0, /* SYSTEM_CALL_xTimerGenericCommandFromTask. */
#endif #endif
#if ( configUSE_EVENT_GROUPS == 1 )
( UBaseType_t ) MPU_xEventGroupWaitBitsImpl, /* SYSTEM_CALL_xEventGroupWaitBits. */ ( UBaseType_t ) MPU_xEventGroupWaitBitsImpl, /* SYSTEM_CALL_xEventGroupWaitBits. */
#else
( UBaseType_t ) 0, /* SYSTEM_CALL_xEventGroupWaitBits. */
#endif
/* The system calls above this line take 5 parameters. */ /* The system calls above this line take 5 parameters. */
@ -5104,6 +5193,7 @@
( UBaseType_t ) 0, /* SYSTEM_CALL_xTimerGetExpiryTime. */ ( UBaseType_t ) 0, /* SYSTEM_CALL_xTimerGetExpiryTime. */
#endif #endif
#if ( configUSE_EVENT_GROUPS == 1 )
( UBaseType_t ) MPU_xEventGroupClearBitsImpl, /* SYSTEM_CALL_xEventGroupClearBits. */ ( UBaseType_t ) MPU_xEventGroupClearBitsImpl, /* SYSTEM_CALL_xEventGroupClearBits. */
( UBaseType_t ) MPU_xEventGroupSetBitsImpl, /* SYSTEM_CALL_xEventGroupSetBits. */ ( UBaseType_t ) MPU_xEventGroupSetBitsImpl, /* SYSTEM_CALL_xEventGroupSetBits. */
( UBaseType_t ) MPU_xEventGroupSyncImpl, /* SYSTEM_CALL_xEventGroupSync. */ ( UBaseType_t ) MPU_xEventGroupSyncImpl, /* SYSTEM_CALL_xEventGroupSync. */
@ -5115,7 +5205,15 @@
( UBaseType_t ) 0, /* SYSTEM_CALL_uxEventGroupGetNumber. */ ( UBaseType_t ) 0, /* SYSTEM_CALL_uxEventGroupGetNumber. */
( UBaseType_t ) 0, /* SYSTEM_CALL_vEventGroupSetNumber. */ ( UBaseType_t ) 0, /* SYSTEM_CALL_vEventGroupSetNumber. */
#endif #endif
#else
( UBaseType_t ) 0, /* SYSTEM_CALL_xEventGroupClearBits. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xEventGroupSetBits. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xEventGroupSync. */
( UBaseType_t ) 0, /* SYSTEM_CALL_uxEventGroupGetNumber. */
( UBaseType_t ) 0, /* SYSTEM_CALL_vEventGroupSetNumber. */
#endif
#if ( configUSE_STREAM_BUFFERS == 1 )
( UBaseType_t ) MPU_xStreamBufferSendImpl, /* SYSTEM_CALL_xStreamBufferSend. */ ( UBaseType_t ) MPU_xStreamBufferSendImpl, /* SYSTEM_CALL_xStreamBufferSend. */
( UBaseType_t ) MPU_xStreamBufferReceiveImpl, /* SYSTEM_CALL_xStreamBufferReceive. */ ( UBaseType_t ) MPU_xStreamBufferReceiveImpl, /* SYSTEM_CALL_xStreamBufferReceive. */
( UBaseType_t ) MPU_xStreamBufferIsFullImpl, /* SYSTEM_CALL_xStreamBufferIsFull. */ ( UBaseType_t ) MPU_xStreamBufferIsFullImpl, /* SYSTEM_CALL_xStreamBufferIsFull. */
@ -5124,6 +5222,17 @@
( UBaseType_t ) MPU_xStreamBufferBytesAvailableImpl, /* SYSTEM_CALL_xStreamBufferBytesAvailable. */ ( UBaseType_t ) MPU_xStreamBufferBytesAvailableImpl, /* SYSTEM_CALL_xStreamBufferBytesAvailable. */
( UBaseType_t ) MPU_xStreamBufferSetTriggerLevelImpl, /* SYSTEM_CALL_xStreamBufferSetTriggerLevel. */ ( UBaseType_t ) MPU_xStreamBufferSetTriggerLevelImpl, /* SYSTEM_CALL_xStreamBufferSetTriggerLevel. */
( UBaseType_t ) MPU_xStreamBufferNextMessageLengthBytesImpl /* SYSTEM_CALL_xStreamBufferNextMessageLengthBytes. */ ( UBaseType_t ) MPU_xStreamBufferNextMessageLengthBytesImpl /* SYSTEM_CALL_xStreamBufferNextMessageLengthBytes. */
#else
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferSend. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferReceive. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferIsFull. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferIsEmpty. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferSpacesAvailable. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferBytesAvailable. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferSetTriggerLevel. */
( UBaseType_t ) 0, /* SYSTEM_CALL_xStreamBufferNextMessageLengthBytes. */
#endif
}; };
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -13,11 +13,11 @@ the T32 and A32 instruction sets. Follow the
[link](https://developer.arm.com/Architectures/A-Profile%20Architecture) [link](https://developer.arm.com/Architectures/A-Profile%20Architecture)
for more information. for more information.
## Arm_AARCH64 port ## ARM_AARCH64 port
This port adds support for Armv8-A architecture AArch64 execution state. This port adds support for Armv8-A architecture AArch64 execution state.
This port is generic and can be used as a starting point for Armv8-A This port is generic and can be used as a starting point for Armv8-A
application processors. application processors.
* Arm_AARCH64 * ARM_AARCH64
* Memory mapped interace to access Arm GIC registers * Memory mapped interface to access Arm GIC registers

View file

@ -13,11 +13,11 @@ the T32 and A32 instruction sets. Follow the
[link](https://developer.arm.com/Architectures/A-Profile%20Architecture) [link](https://developer.arm.com/Architectures/A-Profile%20Architecture)
for more information. for more information.
## Arm_AARCH64_SRE port ## ARM_AARCH64_SRE port
This port adds support for Armv8-A architecture AArch64 execution state. This port adds support for Armv8-A architecture AArch64 execution state.
This port is generic and can be used as a starting point for Armv8-A This port is generic and can be used as a starting point for Armv8-A
application processors. application processors.
* Arm_AARCH64_SRE * ARM_AARCH64_SRE
* System Register interace to access Arm GIC registers * System Register interface to access Arm GIC registers

View file

@ -4,13 +4,13 @@ Initial port to support Armv8-A architecture in FreeRTOS kernel was written for
Arm Cortex-A53 processor. Arm Cortex-A53 processor.
* ARM_CA53_64_BIT * ARM_CA53_64_BIT
* Memory mapped interace to access Arm GIC registers * Memory mapped interface to access Arm GIC registers
This port is generic and can be used as a starting point for other Armv8-A This port is generic and can be used as a starting point for other Armv8-A
application processors. Therefore, the port `ARM_CA53_64_BIT` is renamed as application processors. Therefore, the port `ARM_CA53_64_BIT` is renamed as
`Arm_AARCH64`. The existing projects that use old port `ARM_CA53_64_BIT`, `ARM_AARCH64`. The existing projects that use old port `ARM_CA53_64_BIT`,
should migrate to renamed port `Arm_AARCH64`. should migrate to renamed port `ARM_AARCH64`.
**NOTE** **NOTE**
This port uses memory mapped interace to access Arm GIC registers. This port uses memory mapped interface to access Arm GIC registers.

View file

@ -4,13 +4,13 @@ Initial port to support Armv8-A architecture in FreeRTOS kernel was written for
Arm Cortex-A53 processor. Arm Cortex-A53 processor.
* ARM_CA53_64_BIT_SRE * ARM_CA53_64_BIT_SRE
* System Register interace to access Arm GIC registers * System Register interface to access Arm GIC registers
This port is generic and can be used as a starting point for other Armv8-A This port is generic and can be used as a starting point for other Armv8-A
application processors. Therefore, the port `Arm_AARCH64_SRE` is renamed as application processors. Therefore, the port `ARM_AARCH64_SRE` is renamed as
`Arm_AARCH64_SRE`. The existing projects that use old port `Arm_AARCH64_SRE`, `ARM_AARCH64_SRE`. The existing projects that use old port `ARM_AARCH64_SRE`,
should migrate to renamed port `Arm_AARCH64_SRE`. should migrate to renamed port `ARM_AARCH64_SRE`.
**NOTE** **NOTE**
This port uses System Register interace to access Arm GIC registers. This port uses System Register interface to access Arm GIC registers.

View file

@ -246,7 +246,7 @@ exit_without_switch:
MOVS PC, LR MOVS PC, LR
switch_before_exit: switch_before_exit:
/* A context swtich is to be performed. Clear the context switch pending /* A context switch is to be performed. Clear the context switch pending
flag. */ flag. */
MOV r0, #0 MOV r0, #0
STR r0, [r1] STR r0, [r1]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,523 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
/* Standard includes. */
#include <stdint.h>
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE ensures that PRIVILEGED_FUNCTION
* is defined correctly and privileged functions are placed in correct sections. */
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* Portasm includes. */
#include "portasm.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#if ( configENABLE_MPU == 1 )
void vRestoreContextOfFirstTask( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .extern pxCurrentTCB \n"
" .syntax unified \n"
" \n"
" program_mpu_first_task: \n"
" \n"
" ldr r3, =pxCurrentTCB \n" /* r3 = &pxCurrentTCB. */
" ldr r0, [r3] \n" /* r0 = pxCurrentTCB.*/
" adds r0, #4 \n" /* r0 = Second item in the TCB which is xMPUSettings. */
" \n"
" dmb \n" /* Complete outstanding transfers before disabling MPU. */
" ldr r1, =0xe000ed94 \n" /* r1 = 0xe000ed94 [Location of MPU_CTRL]. */
" ldr r2, [r1] \n" /* Read the value of MPU_CTRL. */
" movs r3, #1 \n" /* r3 = 1. */
" bics r2, r3 \n" /* r2 = r2 & ~r3 i.e. Clear the bit 0 in r2. */
" str r2, [r1] \n" /* Disable MPU. */
" \n"
" ldr r1, =0xe000ed9c \n" /* r1 = 0xe000ed9c [Location of RBAR]. */
" ldr r2, =0xe000eda0 \n" /* r2 = 0xe000eda0 [Location of RASR]. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read first set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read second set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read third set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read fourth set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read fifth set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldr r1, =0xe000ed94 \n" /* r1 = 0xe000ed94 [Location of MPU_CTRL]. */
" ldr r2, [r1] \n" /* Read the value of MPU_CTRL. */
" movs r3, #1 \n" /* r3 = 1. */
" orrs r2, r3 \n" /* r2 = r2 | r3 i.e. Set the bit 0 in r2. */
" str r2, [r1] \n" /* Enable MPU. */
" dsb \n" /* Force memory writes before continuing. */
" \n"
" restore_context_first_task: \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &pxCurrentTCB. */
" ldr r0, [r2] \n" /* r0 = pxCurrentTCB.*/
" ldr r1, [r0] \n" /* r1 = Location of saved context in TCB. */
" \n"
" restore_special_regs_first_task: \n"
" subs r1, #12 \n"
" ldmia r1!, {r2-r4} \n" /* r2 = original PSP, r3 = CONTROL, r4 = LR. */
" subs r1, #12 \n"
" msr psp, r2 \n"
" msr control, r3 \n"
" mov lr, r4 \n"
" \n"
" restore_general_regs_first_task: \n"
" subs r1, #32 \n"
" ldmia r1!, {r4-r7} \n" /* r4-r7 contain half of the hardware saved context. */
" stmia r2!, {r4-r7} \n" /* Copy half of the the hardware saved context on the task stack. */
" ldmia r1!, {r4-r7} \n" /* r4-r7 contain rest half of the hardware saved context. */
" stmia r2!, {r4-r7} \n" /* Copy rest half of the the hardware saved context on the task stack. */
" subs r1, #48 \n"
" ldmia r1!, {r4-r7} \n" /* Restore r8-r11. */
" mov r8, r4 \n" /* r8 = r4. */
" mov r9, r5 \n" /* r9 = r5. */
" mov r10, r6 \n" /* r10 = r6. */
" mov r11, r7 \n" /* r11 = r7. */
" subs r1, #32 \n"
" ldmia r1!, {r4-r7} \n" /* Restore r4-r7. */
" subs r1, #16 \n"
" \n"
" restore_context_done_first_task: \n"
" str r1, [r0] \n" /* Save the location where the context should be saved next as the first member of TCB. */
" bx lr \n"
" \n"
" .align 4 \n"
::"i" ( portSVC_START_SCHEDULER ) : "memory"
);
}
#else /* configENABLE_MPU */
void vRestoreContextOfFirstTask( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .extern pxCurrentTCB \n"
" .syntax unified \n"
" \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &pxCurrentTCB. */
" ldr r1, [r2] \n" /* r1 = pxCurrentTCB.*/
" ldr r0, [r1] \n" /* Read top of stack from TCB - The first item in pxCurrentTCB is the task top of stack. */
" \n"
" ldm r0!, {r2} \n" /* Read from stack - r2 = EXC_RETURN. */
" movs r1, #2 \n" /* r1 = 2. */
" msr CONTROL, r1 \n" /* Switch to use PSP in the thread mode. */
" adds r0, #32 \n" /* Discard everything up to r0. */
" msr psp, r0 \n" /* This is now the new top of stack to use in the task. */
" isb \n"
" bx r2 \n" /* Finally, branch to EXC_RETURN. */
" \n"
" .align 4 \n"
);
}
#endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/
BaseType_t xIsPrivileged( void ) /* __attribute__ (( naked )) */
{
__asm volatile
(
" .syntax unified \n"
" \n"
" mrs r0, control \n" /* r0 = CONTROL. */
" movs r1, #1 \n" /* r1 = 1. */
" tst r0, r1 \n" /* Perform r0 & r1 (bitwise AND) and update the conditions flag. */
" beq running_privileged \n" /* If the result of previous AND operation was 0, branch. */
" movs r0, #0 \n" /* CONTROL[0]!=0. Return false to indicate that the processor is not privileged. */
" bx lr \n" /* Return. */
" running_privileged: \n"
" movs r0, #1 \n" /* CONTROL[0]==0. Return true to indicate that the processor is privileged. */
" bx lr \n" /* Return. */
" \n"
" .align 4 \n"
::: "r0", "r1", "memory"
);
}
/*-----------------------------------------------------------*/
void vRaisePrivilege( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .syntax unified \n"
" \n"
" mrs r0, control \n" /* Read the CONTROL register. */
" movs r1, #1 \n" /* r1 = 1. */
" bics r0, r1 \n" /* Clear the bit 0. */
" msr control, r0 \n" /* Write back the new CONTROL value. */
" bx lr \n" /* Return to the caller. */
::: "r0", "r1", "memory"
);
}
/*-----------------------------------------------------------*/
void vResetPrivilege( void ) /* __attribute__ (( naked )) */
{
__asm volatile
(
" .syntax unified \n"
" \n"
" mrs r0, control \n" /* r0 = CONTROL. */
" movs r1, #1 \n" /* r1 = 1. */
" orrs r0, r1 \n" /* r0 = r0 | r1. */
" msr control, r0 \n" /* CONTROL = r0. */
" bx lr \n" /* Return to the caller. */
::: "r0", "r1", "memory"
);
}
/*-----------------------------------------------------------*/
void vStartFirstTask( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
/* Don't reset the MSP stack as is done on CM3/4 devices. The reason is that
* the Vector Table Offset Register (VTOR) is optional in CM0+ architecture
* and therefore, may not be available on all the devices. */
__asm volatile
(
" .syntax unified \n"
" cpsie i \n" /* Globally enable interrupts. */
" dsb \n"
" isb \n"
" svc %0 \n" /* System call to start the first task. */
" nop \n"
" \n"
" .align 4 \n"
::"i" ( portSVC_START_SCHEDULER ) : "memory"
);
}
/*-----------------------------------------------------------*/
uint32_t ulSetInterruptMask( void ) /* __attribute__(( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .syntax unified \n"
" \n"
" mrs r0, PRIMASK \n"
" cpsid i \n"
" bx lr \n"
::: "memory"
);
}
/*-----------------------------------------------------------*/
void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __attribute__(( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .syntax unified \n"
" \n"
" msr PRIMASK, r0 \n"
" bx lr \n"
::: "memory"
);
}
/*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 )
void PendSV_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .extern pxCurrentTCB \n"
" .syntax unified \n"
" \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &( pxCurrentTCB ). */
" ldr r0, [r2] \n" /* r0 = pxCurrentTCB. */
" ldr r1, [r0] \n" /* r1 = Location in TCB where the context should be saved. */
" mrs r2, psp \n" /* r2 = PSP. */
" \n"
" save_general_regs: \n"
" stmia r1!, {r4-r7} \n" /* Store r4-r7. */
" mov r4, r8 \n" /* r4 = r8. */
" mov r5, r9 \n" /* r5 = r9. */
" mov r6, r10 \n" /* r6 = r10. */
" mov r7, r11 \n" /* r7 = r11. */
" stmia r1!, {r4-r7} \n" /* Store r8-r11. */
" ldmia r2!, {r4-r7} \n" /* Copy half of the hardware saved context into r4-r7. */
" stmia r1!, {r4-r7} \n" /* Store the hardware saved context. */
" ldmia r2!, {r4-r7} \n" /* Copy rest half of the hardware saved context into r4-r7. */
" stmia r1!, {r4-r7} \n" /* Store the hardware saved context. */
" \n"
" save_special_regs: \n"
" mrs r2, psp \n" /* r2 = PSP. */
" mrs r3, control \n" /* r3 = CONTROL. */
" mov r4, lr \n" /* r4 = LR. */
" stmia r1!, {r2-r4} \n" /* Store original PSP (after hardware has saved context), CONTROL and LR. */
" str r1, [r0] \n" /* Save the location from where the context should be restored as the first member of TCB. */
" \n"
" select_next_task: \n"
" cpsid i \n"
" bl vTaskSwitchContext \n"
" cpsie i \n"
" \n"
" program_mpu: \n"
" \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &( pxCurrentTCB ). */
" ldr r0, [r2] \n" /* r0 = pxCurrentTCB. */
" adds r0, #4 \n" /* r0 = Second item in the TCB which is xMPUSettings. */
" \n"
" dmb \n" /* Complete outstanding transfers before disabling MPU. */
" ldr r1, =0xe000ed94 \n" /* r1 = 0xe000ed94 [Location of MPU_CTRL]. */
" ldr r2, [r1] \n" /* Read the value of MPU_CTRL. */
" movs r3, #1 \n" /* r3 = 1. */
" bics r2, r3 \n" /* r2 = r2 & ~r3 i.e. Clear the bit 0 in r2. */
" str r2, [r1] \n" /* Disable MPU */
" \n"
" ldr r1, =0xe000ed9c \n" /* r1 = 0xe000ed9c [Location of RBAR]. */
" ldr r2, =0xe000eda0 \n" /* r2 = 0xe000eda0 [Location of RASR]. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read first set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read second set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read third set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read fourth set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldmia r0!, {r3-r4} \n" /* Read fifth set of RBAR/RASR registers from TCB. */
" str r3, [r1] \n" /* Program RBAR. */
" str r4, [r2] \n" /* Program RASR. */
" \n"
" ldr r1, =0xe000ed94 \n" /* r1 = 0xe000ed94 [Location of MPU_CTRL]. */
" ldr r2, [r1] \n" /* Read the value of MPU_CTRL. */
" movs r3, #1 \n" /* r3 = 1. */
" orrs r2, r3 \n" /* r2 = r2 | r3 i.e. Set the bit 0 in r2. */
" str r2, [r1] \n" /* Enable MPU. */
" dsb \n" /* Force memory writes before continuing. */
" \n"
" restore_context: \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &pxCurrentTCB. */
" ldr r0, [r2] \n" /* r0 = pxCurrentTCB.*/
" ldr r1, [r0] \n" /* r1 = Location of saved context in TCB. */
" \n"
" restore_special_regs: \n"
" subs r1, #12 \n"
" ldmia r1!, {r2-r4} \n" /* r2 = original PSP, r3 = CONTROL, r4 = LR. */
" subs r1, #12 \n"
" msr psp, r2 \n"
" msr control, r3 \n"
" mov lr, r4 \n"
" \n"
" restore_general_regs: \n"
" subs r1, #32 \n"
" ldmia r1!, {r4-r7} \n" /* r4-r7 contain half of the hardware saved context. */
" stmia r2!, {r4-r7} \n" /* Copy half of the the hardware saved context on the task stack. */
" ldmia r1!, {r4-r7} \n" /* r4-r7 contain rest half of the hardware saved context. */
" stmia r2!, {r4-r7} \n" /* Copy rest half of the the hardware saved context on the task stack. */
" subs r1, #48 \n"
" ldmia r1!, {r4-r7} \n" /* Restore r8-r11. */
" mov r8, r4 \n" /* r8 = r4. */
" mov r9, r5 \n" /* r9 = r5. */
" mov r10, r6 \n" /* r10 = r6. */
" mov r11, r7 \n" /* r11 = r7. */
" subs r1, #32 \n"
" ldmia r1!, {r4-r7} \n" /* Restore r4-r7. */
" subs r1, #16 \n"
" \n"
" restore_context_done: \n"
" str r1, [r0] \n" /* Save the location where the context should be saved next as the first member of TCB. */
" bx lr \n"
" \n"
" .align 4 \n"
);
}
#else /* configENABLE_MPU */
void PendSV_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .extern pxCurrentTCB \n"
" .syntax unified \n"
" \n"
" mrs r0, psp \n" /* Read PSP in r0. */
" ldr r2, =pxCurrentTCB \n" /* r2 = &( pxCurrentTCB ). */
" ldr r1, [r2] \n" /* r1 = pxCurrentTCB. */
" subs r0, r0, #36 \n" /* Make space for LR and the remaining registers on the stack. */
" str r0, [r1] \n" /* Save the new top of stack in TCB. */
" \n"
" mov r3, lr \n" /* r3 = LR/EXC_RETURN. */
" stmia r0!, {r3-r7} \n" /* Store on the stack - LR and low registers that are not automatically saved. */
" mov r4, r8 \n" /* r4 = r8. */
" mov r5, r9 \n" /* r5 = r9. */
" mov r6, r10 \n" /* r6 = r10. */
" mov r7, r11 \n" /* r7 = r11. */
" stmia r0!, {r4-r7} \n" /* Store the high registers that are not saved automatically. */
" \n"
" cpsid i \n"
" bl vTaskSwitchContext \n"
" cpsie i \n"
" \n"
" ldr r2, =pxCurrentTCB \n" /* r2 = &( pxCurrentTCB ). */
" ldr r1, [r2] \n" /* r1 = pxCurrentTCB. */
" ldr r0, [r1] \n" /* The first item in pxCurrentTCB is the task top of stack. r0 now points to the top of stack. */
" \n"
" adds r0, r0, #20 \n" /* Move to the high registers. */
" ldmia r0!, {r4-r7} \n" /* Restore the high registers that are not automatically restored. */
" mov r8, r4 \n" /* r8 = r4. */
" mov r9, r5 \n" /* r9 = r5. */
" mov r10, r6 \n" /* r10 = r6. */
" mov r11, r7 \n" /* r11 = r7. */
" msr psp, r0 \n" /* Remember the new top of stack for the task. */
" subs r0, r0, #36 \n" /* Move to the starting of the saved context. */
" ldmia r0!, {r3-r7} \n" /* Read from stack - r3 = LR and r4-r7 restored. */
" bx r3 \n"
" \n"
" .align 4 \n"
);
}
#endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .syntax unified \n"
" .extern vPortSVCHandler_C \n"
" .extern vSystemCallEnter \n"
" .extern vSystemCallExit \n"
" .extern pxCurrentTCB \n"
" \n"
" movs r0, #4 \n"
" mov r1, lr \n"
" tst r0, r1 \n"
" beq stack_on_msp \n"
" \n"
" stack_on_psp: \n"
" mrs r0, psp \n"
" b route_svc \n"
" \n"
" stack_on_msp: \n"
" mrs r0, msp \n"
" b route_svc \n"
" \n"
" route_svc: \n"
" ldr r3, [r0, #24] \n"
" subs r3, #2 \n"
" ldrb r2, [r3, #0] \n"
" ldr r3, =%0 \n"
" cmp r2, r3 \n"
" blt system_call_enter \n"
" ldr r3, =%1 \n"
" cmp r2, r3 \n"
" beq system_call_exit \n"
" b vPortSVCHandler_C \n"
" \n"
" system_call_enter: \n"
" push {lr} \n"
" bl vSystemCallEnter \n"
" pop {pc} \n"
" \n"
" system_call_exit: \n"
" push {lr} \n"
" bl vSystemCallExit \n"
" pop {pc} \n"
" \n"
" .align 4 \n"
" \n"
: /* No outputs. */
: "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "r3", "memory"
);
}
#else /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
{
__asm volatile
(
" .syntax unified \n"
" .extern vPortSVCHandler_C \n"
" \n"
" movs r0, #4 \n"
" mov r1, lr \n"
" tst r0, r1 \n"
" beq stacking_used_msp \n"
" \n"
" stacking_used_psp: \n"
" mrs r0, psp \n"
" b vPortSVCHandler_C \n"
" \n"
" stacking_used_msp: \n"
" mrs r0, msp \n"
" b vPortSVCHandler_C \n"
" \n"
" .align 4 \n"
);
}
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/

View file

@ -0,0 +1,99 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
#ifndef __PORT_ASM_H__
#define __PORT_ASM_H__
/* Scheduler includes. */
#include "FreeRTOS.h"
/* MPU wrappers includes. */
#include "mpu_wrappers.h"
/**
* @brief Restore the context of the first task so that the first task starts
* executing.
*/
void vRestoreContextOfFirstTask( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief Checks whether or not the processor is privileged.
*
* @return 1 if the processor is already privileged, 0 otherwise.
*/
BaseType_t xIsPrivileged( void ) __attribute__( ( naked ) );
/**
* @brief Raises the privilege level by clearing the bit 0 of the CONTROL
* register.
*
* @note This is a privileged function and should only be called from the kenrel
* code.
*
* Bit 0 of the CONTROL register defines the privilege level of Thread Mode.
* Bit[0] = 0 --> The processor is running privileged
* Bit[0] = 1 --> The processor is running unprivileged.
*/
void vRaisePrivilege( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief Lowers the privilege level by setting the bit 0 of the CONTROL
* register.
*
* Bit 0 of the CONTROL register defines the privilege level of Thread Mode.
* Bit[0] = 0 --> The processor is running privileged
* Bit[0] = 1 --> The processor is running unprivileged.
*/
void vResetPrivilege( void ) __attribute__( ( naked ) );
/**
* @brief Starts the first task.
*/
void vStartFirstTask( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief Disables interrupts.
*/
uint32_t ulSetInterruptMask( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief Enables interrupts.
*/
void vClearInterruptMask( uint32_t ulMask ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief PendSV Exception handler.
*/
void PendSV_Handler( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
/**
* @brief SVC Handler.
*/
void SVC_Handler( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
#endif /* __PORT_ASM_H__ */

View file

@ -26,7 +26,6 @@
* *
*/ */
#ifndef PORTMACRO_H #ifndef PORTMACRO_H
#define PORTMACRO_H #define PORTMACRO_H
@ -36,17 +35,25 @@
#endif #endif
/* *INDENT-ON* */ /* *INDENT-ON* */
/*----------------------------------------------------------- /*------------------------------------------------------------------------------
* Port specific definitions. * Port specific definitions.
* *
* The settings in this file configure FreeRTOS correctly for the * The settings in this file configure FreeRTOS correctly for the given hardware
* given hardware and compiler. * and compiler.
* *
* These settings should not be altered. * These settings should not be altered.
*----------------------------------------------------------- *------------------------------------------------------------------------------
*/ */
/* Type definitions. */ #ifndef configENABLE_MPU
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
#endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/
/**
* @brief Type definitions.
*/
#define portCHAR char #define portCHAR char
#define portFLOAT float #define portFLOAT float
#define portDOUBLE double #define portDOUBLE double
@ -74,19 +81,209 @@ typedef unsigned long UBaseType_t;
#endif #endif
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Architecture specifics. */ /**
* Architecture specifics.
*/
#define portARCH_NAME "Cortex-M0+"
#define portSTACK_GROWTH ( -1 ) #define portSTACK_GROWTH ( -1 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) #define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 8 #define portBYTE_ALIGNMENT 8
#define portNOP()
#define portINLINE __inline
#ifndef portFORCE_INLINE
#define portFORCE_INLINE inline __attribute__( ( always_inline ) )
#endif
#define portDONT_DISCARD __attribute__( ( used ) ) #define portDONT_DISCARD __attribute__( ( used ) )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/**
* @brief Extern declarations.
*/
extern BaseType_t xPortIsInsideInterrupt( void );
extern void vPortYield( void ) /* PRIVILEGED_FUNCTION */;
extern void vPortEnterCritical( void ) /* PRIVILEGED_FUNCTION */;
extern void vPortExitCritical( void ) /* PRIVILEGED_FUNCTION */;
extern uint32_t ulSetInterruptMask( void ) /* __attribute__(( naked )) PRIVILEGED_FUNCTION */;
extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) PRIVILEGED_FUNCTION */;
#if ( configENABLE_MPU == 1 )
extern BaseType_t xIsPrivileged( void ) /* __attribute__ (( naked )) */;
extern void vResetPrivilege( void ) /* __attribute__ (( naked )) */;
#endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/
/**
* @brief MPU specific constants.
*/
#if ( configENABLE_MPU == 1 )
#define portUSING_MPU_WRAPPERS 1
#define portPRIVILEGE_BIT ( 0x80000000UL )
#else
#define portPRIVILEGE_BIT ( 0x0UL )
#endif /* configENABLE_MPU */
/* Shareable (S), Cacheable (C) and Bufferable (B) bits for flash region. */
#ifndef configS_C_B_FLASH
#define configS_C_B_FLASH ( 0x07UL )
#endif
/* Shareable (S), Cacheable (C) and Bufferable (B) bits for RAM region. */
#ifndef configS_C_B_SRAM
#define configS_C_B_SRAM ( 0x07UL )
#endif
/* MPU regions. */
#define portPRIVILEGED_RAM_REGION ( 7UL )
#define portPRIVILEGED_FLASH_REGION ( 6UL )
#define portUNPRIVILEGED_FLASH_REGION ( 5UL )
#define portSTACK_REGION ( 4UL )
#define portFIRST_CONFIGURABLE_REGION ( 0UL )
#define portLAST_CONFIGURABLE_REGION ( 3UL )
#define portNUM_CONFIGURABLE_REGIONS ( 4UL )
#define portTOTAL_NUM_REGIONS ( portNUM_CONFIGURABLE_REGIONS + 1UL ) /* Plus one to make space for the stack region. */
/* MPU region sizes. This information is encoded in the SIZE bits of the MPU
* Region Attribute and Size Register (RASR). */
#define portMPU_REGION_SIZE_256B ( 0x07UL << 1UL )
#define portMPU_REGION_SIZE_512B ( 0x08UL << 1UL )
#define portMPU_REGION_SIZE_1KB ( 0x09UL << 1UL )
#define portMPU_REGION_SIZE_2KB ( 0x0AUL << 1UL )
#define portMPU_REGION_SIZE_4KB ( 0x0BUL << 1UL )
#define portMPU_REGION_SIZE_8KB ( 0x0CUL << 1UL )
#define portMPU_REGION_SIZE_16KB ( 0x0DUL << 1UL )
#define portMPU_REGION_SIZE_32KB ( 0x0EUL << 1UL )
#define portMPU_REGION_SIZE_64KB ( 0x0FUL << 1UL )
#define portMPU_REGION_SIZE_128KB ( 0x10UL << 1UL )
#define portMPU_REGION_SIZE_256KB ( 0x11UL << 1UL )
#define portMPU_REGION_SIZE_512KB ( 0x12UL << 1UL )
#define portMPU_REGION_SIZE_1MB ( 0x13UL << 1UL )
#define portMPU_REGION_SIZE_2MB ( 0x14UL << 1UL )
#define portMPU_REGION_SIZE_4MB ( 0x15UL << 1UL )
#define portMPU_REGION_SIZE_8MB ( 0x16UL << 1UL )
#define portMPU_REGION_SIZE_16MB ( 0x17UL << 1UL )
#define portMPU_REGION_SIZE_32MB ( 0x18UL << 1UL )
#define portMPU_REGION_SIZE_64MB ( 0x19UL << 1UL )
#define portMPU_REGION_SIZE_128MB ( 0x1AUL << 1UL )
#define portMPU_REGION_SIZE_256MB ( 0x1BUL << 1UL )
#define portMPU_REGION_SIZE_512MB ( 0x1CUL << 1UL )
#define portMPU_REGION_SIZE_1GB ( 0x1DUL << 1UL )
#define portMPU_REGION_SIZE_2GB ( 0x1EUL << 1UL )
#define portMPU_REGION_SIZE_4GB ( 0x1FUL << 1UL )
/* MPU memory types. This information is encoded in the S ( Shareable), C
* (Cacheable) and B (Bufferable) bits of the MPU Region Attribute and Size
* Register (RASR). */
#define portMPU_REGION_STRONGLY_ORDERED_SHAREABLE ( 0x0UL << 16UL ) /* S=NA, C=0, B=0. */
#define portMPU_REGION_DEVICE_SHAREABLE ( 0x1UL << 16UL ) /* S=NA, C=0, B=1. */
#define portMPU_REGION_NORMAL_OIWTNOWA_NONSHARED ( 0x2UL << 16UL ) /* S=0, C=1, B=0. */
#define portMPU_REGION_NORMAL_OIWTNOWA_SHARED ( 0x6UL << 16UL ) /* S=1, C=1, B=0. */
#define portMPU_REGION_NORMAL_OIWBNOWA_NONSHARED ( 0x3UL << 16UL ) /* S=0, C=1, B=1.*/
#define portMPU_REGION_NORMAL_OIWBNOWA_SHARED ( 0x7UL << 16UL ) /* S=1, C=1, B=1.*/
/* MPU access permissions. This information is encoded in the AP and XN bits of
* the MPU Region Attribute and Size Register (RASR). */
#define portMPU_REGION_PRIV_NA_UNPRIV_NA ( 0x0UL << 24UL )
#define portMPU_REGION_PRIV_RW_UNPRIV_NA ( 0x1UL << 24UL )
#define portMPU_REGION_PRIV_RW_UNPRIV_RO ( 0x2UL << 24UL )
#define portMPU_REGION_PRIV_RW_UNPRIV_RW ( 0x3UL << 24UL )
#define portMPU_REGION_PRIV_RO_UNPRIV_NA ( 0x5UL << 24UL )
#define portMPU_REGION_PRIV_RO_UNPRIV_RO ( 0x6UL << 24UL )
#define portMPU_REGION_EXECUTE_NEVER ( 0x1UL << 28UL )
#if ( configENABLE_MPU == 1 )
/**
* @brief Settings to define an MPU region.
*/
typedef struct MPURegionSettings
{
uint32_t ulRBAR; /**< MPU Region Base Address Register (RBAR) for the region. */
uint32_t ulRASR; /**< MPU Region Attribute and Size Register (RASR) for the region. */
} MPURegionSettings_t;
#if ( configUSE_MPU_WRAPPERS_V1 == 0 )
#ifndef configSYSTEM_CALL_STACK_SIZE
#error configSYSTEM_CALL_STACK_SIZE must be defined to the desired size of the system call stack in words for using MPU wrappers v2.
#endif
/**
* @brief System call stack.
*/
typedef struct SYSTEM_CALL_STACK_INFO
{
uint32_t ulSystemCallStackBuffer[ configSYSTEM_CALL_STACK_SIZE ];
uint32_t * pulSystemCallStack;
uint32_t * pulTaskStack;
uint32_t ulLinkRegisterAtSystemCallEntry;
} xSYSTEM_CALL_STACK_INFO;
#endif /* configUSE_MPU_WRAPPERS_V1 == 0 */
/**
* @brief MPU settings as stored in the TCB.
*/
/*
* +----------+-----------------+---------------+-----+
* | r4-r11 | r0-r3, r12, LR, | PSP, CONTROL | |
* | | PC, xPSR | EXC_RETURN | |
* +----------+-----------------+---------------+-----+
*
* <---------><----------------><---------------><---->
* 8 8 3 1
*/
#define CONTEXT_SIZE 20
/* Flags used for xMPU_SETTINGS.ulTaskFlags member. */
#define portSTACK_FRAME_HAS_PADDING_FLAG ( 1UL << 0UL )
#define portTASK_IS_PRIVILEGED_FLAG ( 1UL << 1UL )
/* Size of an Access Control List (ACL) entry in bits. */
#define portACL_ENTRY_SIZE_BITS ( 32U )
typedef struct MPU_SETTINGS
{
MPURegionSettings_t xRegionsSettings[ portTOTAL_NUM_REGIONS ]; /**< Settings for 4 per task regions. */
uint32_t ulContext[ CONTEXT_SIZE ];
uint32_t ulTaskFlags;
#if ( configUSE_MPU_WRAPPERS_V1 == 0 )
xSYSTEM_CALL_STACK_INFO xSystemCallStackInfo;
#if ( configENABLE_ACCESS_CONTROL_LIST == 1 )
uint32_t ulAccessControlList[ ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE / portACL_ENTRY_SIZE_BITS ) + 1 ];
#endif
#endif
} xMPU_SETTINGS;
#endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/
/**
* @brief SVC numbers.
*/
#define portSVC_START_SCHEDULER 100
#define portSVC_RAISE_PRIVILEGE 101
#define portSVC_SYSTEM_CALL_EXIT 102
#define portSVC_YIELD 103
/*-----------------------------------------------------------*/
/**
* @brief Scheduler utilities.
*/
#if ( configENABLE_MPU == 1 )
#define portYIELD() __asm volatile ( "svc %0" ::"i" ( portSVC_YIELD ) : "memory" )
#define portYIELD_WITHIN_API() vPortYield()
#else
#define portYIELD() vPortYield()
#define portYIELD_WITHIN_API() vPortYield()
#endif
/* Scheduler utilities. */
extern void vPortYield( void );
#define portNVIC_INT_CTRL_REG ( *( ( volatile uint32_t * ) 0xe000ed04 ) ) #define portNVIC_INT_CTRL_REG ( *( ( volatile uint32_t * ) 0xe000ed04 ) )
#define portNVIC_PENDSVSET_BIT ( 1UL << 28UL ) #define portNVIC_PENDSVSET_BIT ( 1UL << 28UL )
#define portYIELD() vPortYield()
#define portEND_SWITCHING_ISR( xSwitchRequired ) \ #define portEND_SWITCHING_ISR( xSwitchRequired ) \
do \ do \
{ \ { \
@ -103,66 +300,84 @@ extern void vPortYield( void );
#define portYIELD_FROM_ISR( x ) portEND_SWITCHING_ISR( x ) #define portYIELD_FROM_ISR( x ) portEND_SWITCHING_ISR( x )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/**
/* Critical section management. */ * @brief Critical section management.
extern void vPortEnterCritical( void ); */
extern void vPortExitCritical( void ); #define portSET_INTERRUPT_MASK_FROM_ISR() ulSetInterruptMask()
extern uint32_t ulSetInterruptMaskFromISR( void ) __attribute__( ( naked ) ); #define portCLEAR_INTERRUPT_MASK_FROM_ISR( x ) vClearInterruptMask( x )
extern void vClearInterruptMaskFromISR( uint32_t ulMask ) __attribute__( ( naked ) );
#define portSET_INTERRUPT_MASK_FROM_ISR() ulSetInterruptMaskFromISR()
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( x ) vClearInterruptMaskFromISR( x )
#define portDISABLE_INTERRUPTS() __asm volatile ( " cpsid i " ::: "memory" ) #define portDISABLE_INTERRUPTS() __asm volatile ( " cpsid i " ::: "memory" )
#define portENABLE_INTERRUPTS() __asm volatile ( " cpsie i " ::: "memory" ) #define portENABLE_INTERRUPTS() __asm volatile ( " cpsie i " ::: "memory" )
#define portENTER_CRITICAL() vPortEnterCritical() #define portENTER_CRITICAL() vPortEnterCritical()
#define portEXIT_CRITICAL() vPortExitCritical() #define portEXIT_CRITICAL() vPortExitCritical()
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Tickless idle/low power functionality. */ /**
* @brief Tickless idle/low power functionality.
*/
#ifndef portSUPPRESS_TICKS_AND_SLEEP #ifndef portSUPPRESS_TICKS_AND_SLEEP
extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ); extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime );
#define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) vPortSuppressTicksAndSleep( xExpectedIdleTime ) #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) vPortSuppressTicksAndSleep( xExpectedIdleTime )
#endif #endif
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */ /**
* @brief Task function macros as described on the FreeRTOS.org website.
*/
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void * pvParameters ) #define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void * pvParameters )
#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void * pvParameters ) #define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void * pvParameters )
#define portNOP()
#define portMEMORY_BARRIER() __asm volatile ( "" ::: "memory" )
#define portINLINE __inline
#ifndef portFORCE_INLINE
#define portFORCE_INLINE inline __attribute__( ( always_inline ) )
#endif
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
portFORCE_INLINE static BaseType_t xPortIsInsideInterrupt( void ) #if ( configENABLE_MPU == 1 )
{
uint32_t ulCurrentInterrupt;
BaseType_t xReturn;
/* Obtain the number of the currently executing interrupt. */ /**
__asm volatile ( "mrs %0, ipsr" : "=r" ( ulCurrentInterrupt )::"memory" ); * @brief Checks whether or not the processor is privileged.
*
* @return 1 if the processor is already privileged, 0 otherwise.
*/
#define portIS_PRIVILEGED() xIsPrivileged()
if( ulCurrentInterrupt == 0 ) /**
{ * @brief Raise an SVC request to raise privilege.
xReturn = pdFALSE; *
} * The SVC handler checks that the SVC was raised from a system call and only
else * then it raises the privilege. If this is called from any other place,
{ * the privilege is not raised.
xReturn = pdTRUE; */
} #define portRAISE_PRIVILEGE() __asm volatile ( "svc %0 \n" ::"i" ( portSVC_RAISE_PRIVILEGE ) : "memory" );
return xReturn; /**
} * @brief Lowers the privilege level by setting the bit 0 of the CONTROL
* register.
*/
#define portRESET_PRIVILEGE() vResetPrivilege()
#else
#define portIS_PRIVILEGED()
#define portRAISE_PRIVILEGE()
#define portRESET_PRIVILEGE()
#endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 )
extern BaseType_t xPortIsTaskPrivileged( void );
/**
* @brief Checks whether or not the calling task is privileged.
*
* @return pdTRUE if the calling task is privileged, pdFALSE otherwise.
*/
#define portIS_TASK_PRIVILEGED() xPortIsTaskPrivileged()
#endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/
/**
* @brief Barriers.
*/
#define portMEMORY_BARRIER() __asm volatile ( "" ::: "memory" )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* *INDENT-OFF* */ /* *INDENT-OFF* */

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -269,7 +269,7 @@ static void prvPortStartFirstTask( void )
BaseType_t xPortStartScheduler( void ) BaseType_t xPortStartScheduler( void )
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -62,12 +62,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskDelayUntil_Unpriv \n" " bne MPU_xTaskDelayUntil_Unpriv \n"
" MPU_xTaskDelayUntil_Priv: \n" " MPU_xTaskDelayUntil_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskDelayUntilImpl \n" " b MPU_xTaskDelayUntilImpl \n"
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
@ -91,12 +90,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskAbortDelay_Unpriv \n" " bne MPU_xTaskAbortDelay_Unpriv \n"
" MPU_xTaskAbortDelay_Priv: \n" " MPU_xTaskAbortDelay_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskAbortDelayImpl \n" " b MPU_xTaskAbortDelayImpl \n"
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
@ -120,12 +118,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskDelay_Unpriv \n" " bne MPU_vTaskDelay_Unpriv \n"
" MPU_vTaskDelay_Priv: \n" " MPU_vTaskDelay_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskDelayImpl \n" " b MPU_vTaskDelayImpl \n"
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
@ -149,12 +146,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskPriorityGet_Unpriv \n" " bne MPU_uxTaskPriorityGet_Unpriv \n"
" MPU_uxTaskPriorityGet_Priv: \n" " MPU_uxTaskPriorityGet_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskPriorityGetImpl \n" " b MPU_uxTaskPriorityGetImpl \n"
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
@ -178,12 +174,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_eTaskGetState_Unpriv \n" " bne MPU_eTaskGetState_Unpriv \n"
" MPU_eTaskGetState_Priv: \n" " MPU_eTaskGetState_Priv: \n"
" pop {r0} \n"
" b MPU_eTaskGetStateImpl \n" " b MPU_eTaskGetStateImpl \n"
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
@ -213,12 +208,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskGetInfo_Unpriv \n" " bne MPU_vTaskGetInfo_Unpriv \n"
" MPU_vTaskGetInfo_Priv: \n" " MPU_vTaskGetInfo_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskGetInfoImpl \n" " b MPU_vTaskGetInfoImpl \n"
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
@ -242,12 +236,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetIdleTaskHandle_Unpriv \n" " bne MPU_xTaskGetIdleTaskHandle_Unpriv \n"
" MPU_xTaskGetIdleTaskHandle_Priv: \n" " MPU_xTaskGetIdleTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetIdleTaskHandleImpl \n" " b MPU_xTaskGetIdleTaskHandleImpl \n"
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
@ -271,12 +264,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSuspend_Unpriv \n" " bne MPU_vTaskSuspend_Unpriv \n"
" MPU_vTaskSuspend_Priv: \n" " MPU_vTaskSuspend_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSuspendImpl \n" " b MPU_vTaskSuspendImpl \n"
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
@ -300,12 +292,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskResume_Unpriv \n" " bne MPU_vTaskResume_Unpriv \n"
" MPU_vTaskResume_Priv: \n" " MPU_vTaskResume_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskResumeImpl \n" " b MPU_vTaskResumeImpl \n"
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
@ -327,12 +318,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetTickCount_Unpriv \n" " bne MPU_xTaskGetTickCount_Unpriv \n"
" MPU_xTaskGetTickCount_Priv: \n" " MPU_xTaskGetTickCount_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetTickCountImpl \n" " b MPU_xTaskGetTickCountImpl \n"
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
@ -352,12 +342,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetNumberOfTasks_Unpriv \n" " bne MPU_uxTaskGetNumberOfTasks_Unpriv \n"
" MPU_uxTaskGetNumberOfTasks_Priv: \n" " MPU_uxTaskGetNumberOfTasks_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetNumberOfTasksImpl \n" " b MPU_uxTaskGetNumberOfTasksImpl \n"
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
@ -379,12 +368,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetRunTimeCounter_Unpriv \n" " bne MPU_ulTaskGetRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetRunTimeCounter_Priv: \n" " MPU_ulTaskGetRunTimeCounter_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetRunTimeCounterImpl \n" " b MPU_ulTaskGetRunTimeCounterImpl \n"
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
@ -408,12 +396,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetRunTimePercent_Unpriv \n" " bne MPU_ulTaskGetRunTimePercent_Unpriv \n"
" MPU_ulTaskGetRunTimePercent_Priv: \n" " MPU_ulTaskGetRunTimePercent_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetRunTimePercentImpl \n" " b MPU_ulTaskGetRunTimePercentImpl \n"
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
@ -437,12 +424,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetIdleRunTimePercent_Unpriv \n" " bne MPU_ulTaskGetIdleRunTimePercent_Unpriv \n"
" MPU_ulTaskGetIdleRunTimePercent_Priv: \n" " MPU_ulTaskGetIdleRunTimePercent_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetIdleRunTimePercentImpl \n" " b MPU_ulTaskGetIdleRunTimePercentImpl \n"
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
@ -466,12 +452,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv \n" " bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetIdleRunTimeCounter_Priv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetIdleRunTimeCounterImpl \n" " b MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
@ -497,12 +482,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetApplicationTaskTag_Unpriv \n" " bne MPU_vTaskSetApplicationTaskTag_Unpriv \n"
" MPU_vTaskSetApplicationTaskTag_Priv: \n" " MPU_vTaskSetApplicationTaskTag_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetApplicationTaskTagImpl \n" " b MPU_vTaskSetApplicationTaskTagImpl \n"
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
@ -526,12 +510,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetApplicationTaskTag_Unpriv \n" " bne MPU_xTaskGetApplicationTaskTag_Unpriv \n"
" MPU_xTaskGetApplicationTaskTag_Priv: \n" " MPU_xTaskGetApplicationTaskTag_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetApplicationTaskTagImpl \n" " b MPU_xTaskGetApplicationTaskTagImpl \n"
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
@ -559,12 +542,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv \n" " bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv \n"
" MPU_vTaskSetThreadLocalStoragePointer_Priv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetThreadLocalStoragePointerImpl \n" " b MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
@ -590,12 +572,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv \n" " bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Priv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Priv: \n"
" pop {r0} \n"
" b MPU_pvTaskGetThreadLocalStoragePointerImpl \n" " b MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
@ -623,12 +604,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetSystemState_Unpriv \n" " bne MPU_uxTaskGetSystemState_Unpriv \n"
" MPU_uxTaskGetSystemState_Priv: \n" " MPU_uxTaskGetSystemState_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetSystemStateImpl \n" " b MPU_uxTaskGetSystemStateImpl \n"
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
@ -652,12 +632,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetStackHighWaterMark_Unpriv \n" " bne MPU_uxTaskGetStackHighWaterMark_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark_Priv: \n" " MPU_uxTaskGetStackHighWaterMark_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetStackHighWaterMarkImpl \n" " b MPU_uxTaskGetStackHighWaterMarkImpl \n"
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
@ -681,12 +660,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetStackHighWaterMark2_Unpriv \n" " bne MPU_uxTaskGetStackHighWaterMark2_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark2_Priv: \n" " MPU_uxTaskGetStackHighWaterMark2_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetStackHighWaterMark2Impl \n" " b MPU_uxTaskGetStackHighWaterMark2Impl \n"
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
@ -710,12 +688,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetCurrentTaskHandle_Unpriv \n" " bne MPU_xTaskGetCurrentTaskHandle_Unpriv \n"
" MPU_xTaskGetCurrentTaskHandle_Priv: \n" " MPU_xTaskGetCurrentTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetCurrentTaskHandleImpl \n" " b MPU_xTaskGetCurrentTaskHandleImpl \n"
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
@ -739,12 +716,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetSchedulerState_Unpriv \n" " bne MPU_xTaskGetSchedulerState_Unpriv \n"
" MPU_xTaskGetSchedulerState_Priv: \n" " MPU_xTaskGetSchedulerState_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetSchedulerStateImpl \n" " b MPU_xTaskGetSchedulerStateImpl \n"
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
@ -766,12 +742,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetTimeOutState_Unpriv \n" " bne MPU_vTaskSetTimeOutState_Unpriv \n"
" MPU_vTaskSetTimeOutState_Priv: \n" " MPU_vTaskSetTimeOutState_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetTimeOutStateImpl \n" " b MPU_vTaskSetTimeOutStateImpl \n"
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
@ -793,12 +768,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskCheckForTimeOut_Unpriv \n" " bne MPU_xTaskCheckForTimeOut_Unpriv \n"
" MPU_xTaskCheckForTimeOut_Priv: \n" " MPU_xTaskCheckForTimeOut_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskCheckForTimeOutImpl \n" " b MPU_xTaskCheckForTimeOutImpl \n"
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
@ -820,12 +794,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotify_Unpriv \n" " bne MPU_xTaskGenericNotify_Unpriv \n"
" MPU_xTaskGenericNotify_Priv: \n" " MPU_xTaskGenericNotify_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyImpl \n" " b MPU_xTaskGenericNotifyImpl \n"
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
@ -849,12 +822,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotifyWait_Unpriv \n" " bne MPU_xTaskGenericNotifyWait_Unpriv \n"
" MPU_xTaskGenericNotifyWait_Priv: \n" " MPU_xTaskGenericNotifyWait_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyWaitImpl \n" " b MPU_xTaskGenericNotifyWaitImpl \n"
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
@ -882,12 +854,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGenericNotifyTake_Unpriv \n" " bne MPU_ulTaskGenericNotifyTake_Unpriv \n"
" MPU_ulTaskGenericNotifyTake_Priv: \n" " MPU_ulTaskGenericNotifyTake_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGenericNotifyTakeImpl \n" " b MPU_ulTaskGenericNotifyTakeImpl \n"
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
@ -913,12 +884,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotifyStateClear_Unpriv \n" " bne MPU_xTaskGenericNotifyStateClear_Unpriv \n"
" MPU_xTaskGenericNotifyStateClear_Priv: \n" " MPU_xTaskGenericNotifyStateClear_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyStateClearImpl \n" " b MPU_xTaskGenericNotifyStateClearImpl \n"
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
@ -946,12 +916,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGenericNotifyValueClear_Unpriv \n" " bne MPU_ulTaskGenericNotifyValueClear_Unpriv \n"
" MPU_ulTaskGenericNotifyValueClear_Priv: \n" " MPU_ulTaskGenericNotifyValueClear_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGenericNotifyValueClearImpl \n" " b MPU_ulTaskGenericNotifyValueClearImpl \n"
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
@ -979,12 +948,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGenericSend_Unpriv \n" " bne MPU_xQueueGenericSend_Unpriv \n"
" MPU_xQueueGenericSend_Priv: \n" " MPU_xQueueGenericSend_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGenericSendImpl \n" " b MPU_xQueueGenericSendImpl \n"
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
@ -1004,12 +972,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxQueueMessagesWaiting_Unpriv \n" " bne MPU_uxQueueMessagesWaiting_Unpriv \n"
" MPU_uxQueueMessagesWaiting_Priv: \n" " MPU_uxQueueMessagesWaiting_Priv: \n"
" pop {r0} \n"
" b MPU_uxQueueMessagesWaitingImpl \n" " b MPU_uxQueueMessagesWaitingImpl \n"
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
@ -1029,12 +996,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxQueueSpacesAvailable_Unpriv \n" " bne MPU_uxQueueSpacesAvailable_Unpriv \n"
" MPU_uxQueueSpacesAvailable_Priv: \n" " MPU_uxQueueSpacesAvailable_Priv: \n"
" pop {r0} \n"
" b MPU_uxQueueSpacesAvailableImpl \n" " b MPU_uxQueueSpacesAvailableImpl \n"
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
@ -1058,12 +1024,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueReceive_Unpriv \n" " bne MPU_xQueueReceive_Unpriv \n"
" MPU_xQueueReceive_Priv: \n" " MPU_xQueueReceive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueReceiveImpl \n" " b MPU_xQueueReceiveImpl \n"
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
@ -1087,12 +1052,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueuePeek_Unpriv \n" " bne MPU_xQueuePeek_Unpriv \n"
" MPU_xQueuePeek_Priv: \n" " MPU_xQueuePeek_Priv: \n"
" pop {r0} \n"
" b MPU_xQueuePeekImpl \n" " b MPU_xQueuePeekImpl \n"
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
@ -1114,12 +1078,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueSemaphoreTake_Unpriv \n" " bne MPU_xQueueSemaphoreTake_Unpriv \n"
" MPU_xQueueSemaphoreTake_Priv: \n" " MPU_xQueueSemaphoreTake_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueSemaphoreTakeImpl \n" " b MPU_xQueueSemaphoreTakeImpl \n"
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
@ -1141,12 +1104,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGetMutexHolder_Unpriv \n" " bne MPU_xQueueGetMutexHolder_Unpriv \n"
" MPU_xQueueGetMutexHolder_Priv: \n" " MPU_xQueueGetMutexHolder_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGetMutexHolderImpl \n" " b MPU_xQueueGetMutexHolderImpl \n"
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
@ -1172,12 +1134,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueTakeMutexRecursive_Unpriv \n" " bne MPU_xQueueTakeMutexRecursive_Unpriv \n"
" MPU_xQueueTakeMutexRecursive_Priv: \n" " MPU_xQueueTakeMutexRecursive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueTakeMutexRecursiveImpl \n" " b MPU_xQueueTakeMutexRecursiveImpl \n"
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
@ -1201,12 +1162,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGiveMutexRecursive_Unpriv \n" " bne MPU_xQueueGiveMutexRecursive_Unpriv \n"
" MPU_xQueueGiveMutexRecursive_Priv: \n" " MPU_xQueueGiveMutexRecursive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGiveMutexRecursiveImpl \n" " b MPU_xQueueGiveMutexRecursiveImpl \n"
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
@ -1232,12 +1192,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueSelectFromSet_Unpriv \n" " bne MPU_xQueueSelectFromSet_Unpriv \n"
" MPU_xQueueSelectFromSet_Priv: \n" " MPU_xQueueSelectFromSet_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueSelectFromSetImpl \n" " b MPU_xQueueSelectFromSetImpl \n"
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
@ -1263,12 +1222,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueAddToSet_Unpriv \n" " bne MPU_xQueueAddToSet_Unpriv \n"
" MPU_xQueueAddToSet_Priv: \n" " MPU_xQueueAddToSet_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueAddToSetImpl \n" " b MPU_xQueueAddToSetImpl \n"
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
@ -1294,12 +1252,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vQueueAddToRegistry_Unpriv \n" " bne MPU_vQueueAddToRegistry_Unpriv \n"
" MPU_vQueueAddToRegistry_Priv: \n" " MPU_vQueueAddToRegistry_Priv: \n"
" pop {r0} \n"
" b MPU_vQueueAddToRegistryImpl \n" " b MPU_vQueueAddToRegistryImpl \n"
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
@ -1323,12 +1280,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vQueueUnregisterQueue_Unpriv \n" " bne MPU_vQueueUnregisterQueue_Unpriv \n"
" MPU_vQueueUnregisterQueue_Priv: \n" " MPU_vQueueUnregisterQueue_Priv: \n"
" pop {r0} \n"
" b MPU_vQueueUnregisterQueueImpl \n" " b MPU_vQueueUnregisterQueueImpl \n"
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
@ -1352,12 +1308,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pcQueueGetName_Unpriv \n" " bne MPU_pcQueueGetName_Unpriv \n"
" MPU_pcQueueGetName_Priv: \n" " MPU_pcQueueGetName_Priv: \n"
" pop {r0} \n"
" b MPU_pcQueueGetNameImpl \n" " b MPU_pcQueueGetNameImpl \n"
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
@ -1381,12 +1336,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pvTimerGetTimerID_Unpriv \n" " bne MPU_pvTimerGetTimerID_Unpriv \n"
" MPU_pvTimerGetTimerID_Priv: \n" " MPU_pvTimerGetTimerID_Priv: \n"
" pop {r0} \n"
" b MPU_pvTimerGetTimerIDImpl \n" " b MPU_pvTimerGetTimerIDImpl \n"
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
@ -1412,12 +1366,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTimerSetTimerID_Unpriv \n" " bne MPU_vTimerSetTimerID_Unpriv \n"
" MPU_vTimerSetTimerID_Priv: \n" " MPU_vTimerSetTimerID_Priv: \n"
" pop {r0} \n"
" b MPU_vTimerSetTimerIDImpl \n" " b MPU_vTimerSetTimerIDImpl \n"
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
@ -1441,12 +1394,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerIsTimerActive_Unpriv \n" " bne MPU_xTimerIsTimerActive_Unpriv \n"
" MPU_xTimerIsTimerActive_Priv: \n" " MPU_xTimerIsTimerActive_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerIsTimerActiveImpl \n" " b MPU_xTimerIsTimerActiveImpl \n"
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
@ -1470,12 +1422,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv \n" " bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Priv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetTimerDaemonTaskHandleImpl \n" " b MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
@ -1499,12 +1450,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n" " bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n" " MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n" " b MPU_xTimerGenericCommandFromTaskImpl \n"
" MPU_xTimerGenericCommandFromTask_Unpriv: \n" " MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
@ -1528,12 +1478,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pcTimerGetName_Unpriv \n" " bne MPU_pcTimerGetName_Unpriv \n"
" MPU_pcTimerGetName_Priv: \n" " MPU_pcTimerGetName_Priv: \n"
" pop {r0} \n"
" b MPU_pcTimerGetNameImpl \n" " b MPU_pcTimerGetNameImpl \n"
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
@ -1559,12 +1508,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTimerSetReloadMode_Unpriv \n" " bne MPU_vTimerSetReloadMode_Unpriv \n"
" MPU_vTimerSetReloadMode_Priv: \n" " MPU_vTimerSetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_vTimerSetReloadModeImpl \n" " b MPU_vTimerSetReloadModeImpl \n"
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
@ -1588,12 +1536,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetReloadMode_Unpriv \n" " bne MPU_xTimerGetReloadMode_Unpriv \n"
" MPU_xTimerGetReloadMode_Priv: \n" " MPU_xTimerGetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetReloadModeImpl \n" " b MPU_xTimerGetReloadModeImpl \n"
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
@ -1617,12 +1564,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTimerGetReloadMode_Unpriv \n" " bne MPU_uxTimerGetReloadMode_Unpriv \n"
" MPU_uxTimerGetReloadMode_Priv: \n" " MPU_uxTimerGetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_uxTimerGetReloadModeImpl \n" " b MPU_uxTimerGetReloadModeImpl \n"
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
@ -1646,12 +1592,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetPeriod_Unpriv \n" " bne MPU_xTimerGetPeriod_Unpriv \n"
" MPU_xTimerGetPeriod_Priv: \n" " MPU_xTimerGetPeriod_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetPeriodImpl \n" " b MPU_xTimerGetPeriodImpl \n"
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
@ -1675,12 +1620,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetExpiryTime_Unpriv \n" " bne MPU_xTimerGetExpiryTime_Unpriv \n"
" MPU_xTimerGetExpiryTime_Priv: \n" " MPU_xTimerGetExpiryTime_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetExpiryTimeImpl \n" " b MPU_xTimerGetExpiryTimeImpl \n"
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
@ -1690,6 +1634,8 @@
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1713,8 +1659,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; const EventBits_t uxBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1740,8 +1690,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; const EventBits_t uxBitsToSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1767,8 +1721,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet, const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
@ -1798,9 +1756,11 @@
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1814,22 +1774,21 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxEventGroupGetNumber_Unpriv \n" " bne MPU_uxEventGroupGetNumber_Unpriv \n"
" MPU_uxEventGroupGetNumber_Priv: \n" " MPU_uxEventGroupGetNumber_Priv: \n"
" pop {r0} \n"
" b MPU_uxEventGroupGetNumberImpl \n" " b MPU_uxEventGroupGetNumberImpl \n"
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
void MPU_vEventGroupSetNumber( void * xEventGroup, void MPU_vEventGroupSetNumber( void * xEventGroup,
UBaseType_t uxEventGroupNumber ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; UBaseType_t uxEventGroupNumber ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1845,21 +1804,22 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vEventGroupSetNumber_Unpriv \n" " bne MPU_vEventGroupSetNumber_Unpriv \n"
" MPU_vEventGroupSetNumber_Priv: \n" " MPU_vEventGroupSetNumber_Priv: \n"
" pop {r0} \n"
" b MPU_vEventGroupSetNumberImpl \n" " b MPU_vEventGroupSetNumberImpl \n"
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData, const void * pvTxData,
size_t xDataLengthBytes, size_t xDataLengthBytes,
@ -1889,8 +1849,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
void * pvRxData, void * pvRxData,
size_t xBufferLengthBytes, size_t xBufferLengthBytes,
@ -1920,8 +1884,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1945,8 +1913,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1970,8 +1942,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1995,8 +1971,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -2020,8 +2000,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t xTriggerLevel ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -2047,8 +2031,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -2072,6 +2060,8 @@
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#endif /* configUSE_MPU_WRAPPERS_V1 == 0 */ #endif /* configUSE_MPU_WRAPPERS_V1 == 0 */

View file

@ -264,14 +264,14 @@ BaseType_t xPortIsTaskPrivileged( void ) PRIVILEGED_FUNCTION;
* switches can only occur when uxCriticalNesting is zero. */ * switches can only occur when uxCriticalNesting is zero. */
static UBaseType_t uxCriticalNesting = 0xaaaaaaaa; static UBaseType_t uxCriticalNesting = 0xaaaaaaaa;
#if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
/* /*
* This variable is set to pdTRUE when the scheduler is started. * This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/* /*
* Used by the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() macro to ensure * Used by the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() macro to ensure
@ -744,7 +744,7 @@ static void prvRestoreContextOfFirstTask( void )
BaseType_t xPortStartScheduler( void ) BaseType_t xPortStartScheduler( void )
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -878,11 +878,11 @@ BaseType_t xPortStartScheduler( void )
/* Initialise the critical nesting count ready for the first task. */ /* Initialise the critical nesting count ready for the first task. */
uxCriticalNesting = 0; uxCriticalNesting = 0;
#if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/* Start the first task. */ /* Start the first task. */
__asm volatile ( __asm volatile (
@ -1371,6 +1371,8 @@ void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_MPU_WRAPPERS_V1 == 0 )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1418,6 +1420,8 @@ BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
return xAccessGranted; return xAccessGranted;
} }
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configASSERT_DEFINED == 1 ) #if ( configASSERT_DEFINED == 1 )

View file

@ -312,7 +312,7 @@ BaseType_t xPortStartScheduler( void )
configASSERT( portCPUID != portCORTEX_M7_r0p0_ID ); configASSERT( portCPUID != portCORTEX_M7_r0p0_ID );
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV

View file

@ -62,12 +62,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskDelayUntil_Unpriv \n" " bne MPU_xTaskDelayUntil_Unpriv \n"
" MPU_xTaskDelayUntil_Priv: \n" " MPU_xTaskDelayUntil_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskDelayUntilImpl \n" " b MPU_xTaskDelayUntilImpl \n"
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
@ -91,12 +90,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskAbortDelay_Unpriv \n" " bne MPU_xTaskAbortDelay_Unpriv \n"
" MPU_xTaskAbortDelay_Priv: \n" " MPU_xTaskAbortDelay_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskAbortDelayImpl \n" " b MPU_xTaskAbortDelayImpl \n"
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
@ -120,12 +118,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskDelay_Unpriv \n" " bne MPU_vTaskDelay_Unpriv \n"
" MPU_vTaskDelay_Priv: \n" " MPU_vTaskDelay_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskDelayImpl \n" " b MPU_vTaskDelayImpl \n"
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
@ -149,12 +146,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskPriorityGet_Unpriv \n" " bne MPU_uxTaskPriorityGet_Unpriv \n"
" MPU_uxTaskPriorityGet_Priv: \n" " MPU_uxTaskPriorityGet_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskPriorityGetImpl \n" " b MPU_uxTaskPriorityGetImpl \n"
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
@ -178,12 +174,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_eTaskGetState_Unpriv \n" " bne MPU_eTaskGetState_Unpriv \n"
" MPU_eTaskGetState_Priv: \n" " MPU_eTaskGetState_Priv: \n"
" pop {r0} \n"
" b MPU_eTaskGetStateImpl \n" " b MPU_eTaskGetStateImpl \n"
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
@ -213,12 +208,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskGetInfo_Unpriv \n" " bne MPU_vTaskGetInfo_Unpriv \n"
" MPU_vTaskGetInfo_Priv: \n" " MPU_vTaskGetInfo_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskGetInfoImpl \n" " b MPU_vTaskGetInfoImpl \n"
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
@ -242,12 +236,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetIdleTaskHandle_Unpriv \n" " bne MPU_xTaskGetIdleTaskHandle_Unpriv \n"
" MPU_xTaskGetIdleTaskHandle_Priv: \n" " MPU_xTaskGetIdleTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetIdleTaskHandleImpl \n" " b MPU_xTaskGetIdleTaskHandleImpl \n"
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
@ -271,12 +264,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSuspend_Unpriv \n" " bne MPU_vTaskSuspend_Unpriv \n"
" MPU_vTaskSuspend_Priv: \n" " MPU_vTaskSuspend_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSuspendImpl \n" " b MPU_vTaskSuspendImpl \n"
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
@ -300,12 +292,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskResume_Unpriv \n" " bne MPU_vTaskResume_Unpriv \n"
" MPU_vTaskResume_Priv: \n" " MPU_vTaskResume_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskResumeImpl \n" " b MPU_vTaskResumeImpl \n"
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskResume ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
@ -327,12 +318,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetTickCount_Unpriv \n" " bne MPU_xTaskGetTickCount_Unpriv \n"
" MPU_xTaskGetTickCount_Priv: \n" " MPU_xTaskGetTickCount_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetTickCountImpl \n" " b MPU_xTaskGetTickCountImpl \n"
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
@ -352,12 +342,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetNumberOfTasks_Unpriv \n" " bne MPU_uxTaskGetNumberOfTasks_Unpriv \n"
" MPU_uxTaskGetNumberOfTasks_Priv: \n" " MPU_uxTaskGetNumberOfTasks_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetNumberOfTasksImpl \n" " b MPU_uxTaskGetNumberOfTasksImpl \n"
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
@ -379,12 +368,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetRunTimeCounter_Unpriv \n" " bne MPU_ulTaskGetRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetRunTimeCounter_Priv: \n" " MPU_ulTaskGetRunTimeCounter_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetRunTimeCounterImpl \n" " b MPU_ulTaskGetRunTimeCounterImpl \n"
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
@ -408,12 +396,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetRunTimePercent_Unpriv \n" " bne MPU_ulTaskGetRunTimePercent_Unpriv \n"
" MPU_ulTaskGetRunTimePercent_Priv: \n" " MPU_ulTaskGetRunTimePercent_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetRunTimePercentImpl \n" " b MPU_ulTaskGetRunTimePercentImpl \n"
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
@ -437,12 +424,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetIdleRunTimePercent_Unpriv \n" " bne MPU_ulTaskGetIdleRunTimePercent_Unpriv \n"
" MPU_ulTaskGetIdleRunTimePercent_Priv: \n" " MPU_ulTaskGetIdleRunTimePercent_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetIdleRunTimePercentImpl \n" " b MPU_ulTaskGetIdleRunTimePercentImpl \n"
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
@ -466,12 +452,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv \n" " bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv \n"
" MPU_ulTaskGetIdleRunTimeCounter_Priv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGetIdleRunTimeCounterImpl \n" " b MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
@ -497,12 +482,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetApplicationTaskTag_Unpriv \n" " bne MPU_vTaskSetApplicationTaskTag_Unpriv \n"
" MPU_vTaskSetApplicationTaskTag_Priv: \n" " MPU_vTaskSetApplicationTaskTag_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetApplicationTaskTagImpl \n" " b MPU_vTaskSetApplicationTaskTagImpl \n"
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
@ -526,12 +510,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetApplicationTaskTag_Unpriv \n" " bne MPU_xTaskGetApplicationTaskTag_Unpriv \n"
" MPU_xTaskGetApplicationTaskTag_Priv: \n" " MPU_xTaskGetApplicationTaskTag_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetApplicationTaskTagImpl \n" " b MPU_xTaskGetApplicationTaskTagImpl \n"
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
@ -559,12 +542,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv \n" " bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv \n"
" MPU_vTaskSetThreadLocalStoragePointer_Priv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetThreadLocalStoragePointerImpl \n" " b MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
@ -590,12 +572,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv \n" " bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Priv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Priv: \n"
" pop {r0} \n"
" b MPU_pvTaskGetThreadLocalStoragePointerImpl \n" " b MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
@ -623,12 +604,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetSystemState_Unpriv \n" " bne MPU_uxTaskGetSystemState_Unpriv \n"
" MPU_uxTaskGetSystemState_Priv: \n" " MPU_uxTaskGetSystemState_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetSystemStateImpl \n" " b MPU_uxTaskGetSystemStateImpl \n"
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
@ -652,12 +632,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetStackHighWaterMark_Unpriv \n" " bne MPU_uxTaskGetStackHighWaterMark_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark_Priv: \n" " MPU_uxTaskGetStackHighWaterMark_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetStackHighWaterMarkImpl \n" " b MPU_uxTaskGetStackHighWaterMarkImpl \n"
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
@ -681,12 +660,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTaskGetStackHighWaterMark2_Unpriv \n" " bne MPU_uxTaskGetStackHighWaterMark2_Unpriv \n"
" MPU_uxTaskGetStackHighWaterMark2_Priv: \n" " MPU_uxTaskGetStackHighWaterMark2_Priv: \n"
" pop {r0} \n"
" b MPU_uxTaskGetStackHighWaterMark2Impl \n" " b MPU_uxTaskGetStackHighWaterMark2Impl \n"
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
@ -710,12 +688,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetCurrentTaskHandle_Unpriv \n" " bne MPU_xTaskGetCurrentTaskHandle_Unpriv \n"
" MPU_xTaskGetCurrentTaskHandle_Priv: \n" " MPU_xTaskGetCurrentTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetCurrentTaskHandleImpl \n" " b MPU_xTaskGetCurrentTaskHandleImpl \n"
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
@ -739,12 +716,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGetSchedulerState_Unpriv \n" " bne MPU_xTaskGetSchedulerState_Unpriv \n"
" MPU_xTaskGetSchedulerState_Priv: \n" " MPU_xTaskGetSchedulerState_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGetSchedulerStateImpl \n" " b MPU_xTaskGetSchedulerStateImpl \n"
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
@ -766,12 +742,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTaskSetTimeOutState_Unpriv \n" " bne MPU_vTaskSetTimeOutState_Unpriv \n"
" MPU_vTaskSetTimeOutState_Priv: \n" " MPU_vTaskSetTimeOutState_Priv: \n"
" pop {r0} \n"
" b MPU_vTaskSetTimeOutStateImpl \n" " b MPU_vTaskSetTimeOutStateImpl \n"
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
@ -793,12 +768,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskCheckForTimeOut_Unpriv \n" " bne MPU_xTaskCheckForTimeOut_Unpriv \n"
" MPU_xTaskCheckForTimeOut_Priv: \n" " MPU_xTaskCheckForTimeOut_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskCheckForTimeOutImpl \n" " b MPU_xTaskCheckForTimeOutImpl \n"
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
@ -820,12 +794,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotify_Unpriv \n" " bne MPU_xTaskGenericNotify_Unpriv \n"
" MPU_xTaskGenericNotify_Priv: \n" " MPU_xTaskGenericNotify_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyImpl \n" " b MPU_xTaskGenericNotifyImpl \n"
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
@ -849,12 +822,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotifyWait_Unpriv \n" " bne MPU_xTaskGenericNotifyWait_Unpriv \n"
" MPU_xTaskGenericNotifyWait_Priv: \n" " MPU_xTaskGenericNotifyWait_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyWaitImpl \n" " b MPU_xTaskGenericNotifyWaitImpl \n"
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
@ -882,12 +854,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGenericNotifyTake_Unpriv \n" " bne MPU_ulTaskGenericNotifyTake_Unpriv \n"
" MPU_ulTaskGenericNotifyTake_Priv: \n" " MPU_ulTaskGenericNotifyTake_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGenericNotifyTakeImpl \n" " b MPU_ulTaskGenericNotifyTakeImpl \n"
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
@ -913,12 +884,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTaskGenericNotifyStateClear_Unpriv \n" " bne MPU_xTaskGenericNotifyStateClear_Unpriv \n"
" MPU_xTaskGenericNotifyStateClear_Priv: \n" " MPU_xTaskGenericNotifyStateClear_Priv: \n"
" pop {r0} \n"
" b MPU_xTaskGenericNotifyStateClearImpl \n" " b MPU_xTaskGenericNotifyStateClearImpl \n"
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
@ -946,12 +916,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_ulTaskGenericNotifyValueClear_Unpriv \n" " bne MPU_ulTaskGenericNotifyValueClear_Unpriv \n"
" MPU_ulTaskGenericNotifyValueClear_Priv: \n" " MPU_ulTaskGenericNotifyValueClear_Priv: \n"
" pop {r0} \n"
" b MPU_ulTaskGenericNotifyValueClearImpl \n" " b MPU_ulTaskGenericNotifyValueClearImpl \n"
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
@ -979,12 +948,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGenericSend_Unpriv \n" " bne MPU_xQueueGenericSend_Unpriv \n"
" MPU_xQueueGenericSend_Priv: \n" " MPU_xQueueGenericSend_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGenericSendImpl \n" " b MPU_xQueueGenericSendImpl \n"
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
@ -1004,12 +972,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxQueueMessagesWaiting_Unpriv \n" " bne MPU_uxQueueMessagesWaiting_Unpriv \n"
" MPU_uxQueueMessagesWaiting_Priv: \n" " MPU_uxQueueMessagesWaiting_Priv: \n"
" pop {r0} \n"
" b MPU_uxQueueMessagesWaitingImpl \n" " b MPU_uxQueueMessagesWaitingImpl \n"
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
@ -1029,12 +996,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxQueueSpacesAvailable_Unpriv \n" " bne MPU_uxQueueSpacesAvailable_Unpriv \n"
" MPU_uxQueueSpacesAvailable_Priv: \n" " MPU_uxQueueSpacesAvailable_Priv: \n"
" pop {r0} \n"
" b MPU_uxQueueSpacesAvailableImpl \n" " b MPU_uxQueueSpacesAvailableImpl \n"
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
@ -1058,12 +1024,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueReceive_Unpriv \n" " bne MPU_xQueueReceive_Unpriv \n"
" MPU_xQueueReceive_Priv: \n" " MPU_xQueueReceive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueReceiveImpl \n" " b MPU_xQueueReceiveImpl \n"
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
@ -1087,12 +1052,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueuePeek_Unpriv \n" " bne MPU_xQueuePeek_Unpriv \n"
" MPU_xQueuePeek_Priv: \n" " MPU_xQueuePeek_Priv: \n"
" pop {r0} \n"
" b MPU_xQueuePeekImpl \n" " b MPU_xQueuePeekImpl \n"
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
@ -1114,12 +1078,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueSemaphoreTake_Unpriv \n" " bne MPU_xQueueSemaphoreTake_Unpriv \n"
" MPU_xQueueSemaphoreTake_Priv: \n" " MPU_xQueueSemaphoreTake_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueSemaphoreTakeImpl \n" " b MPU_xQueueSemaphoreTakeImpl \n"
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
@ -1141,12 +1104,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGetMutexHolder_Unpriv \n" " bne MPU_xQueueGetMutexHolder_Unpriv \n"
" MPU_xQueueGetMutexHolder_Priv: \n" " MPU_xQueueGetMutexHolder_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGetMutexHolderImpl \n" " b MPU_xQueueGetMutexHolderImpl \n"
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
@ -1172,12 +1134,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueTakeMutexRecursive_Unpriv \n" " bne MPU_xQueueTakeMutexRecursive_Unpriv \n"
" MPU_xQueueTakeMutexRecursive_Priv: \n" " MPU_xQueueTakeMutexRecursive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueTakeMutexRecursiveImpl \n" " b MPU_xQueueTakeMutexRecursiveImpl \n"
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
@ -1201,12 +1162,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueGiveMutexRecursive_Unpriv \n" " bne MPU_xQueueGiveMutexRecursive_Unpriv \n"
" MPU_xQueueGiveMutexRecursive_Priv: \n" " MPU_xQueueGiveMutexRecursive_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueGiveMutexRecursiveImpl \n" " b MPU_xQueueGiveMutexRecursiveImpl \n"
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
@ -1232,12 +1192,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueSelectFromSet_Unpriv \n" " bne MPU_xQueueSelectFromSet_Unpriv \n"
" MPU_xQueueSelectFromSet_Priv: \n" " MPU_xQueueSelectFromSet_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueSelectFromSetImpl \n" " b MPU_xQueueSelectFromSetImpl \n"
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
@ -1263,12 +1222,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xQueueAddToSet_Unpriv \n" " bne MPU_xQueueAddToSet_Unpriv \n"
" MPU_xQueueAddToSet_Priv: \n" " MPU_xQueueAddToSet_Priv: \n"
" pop {r0} \n"
" b MPU_xQueueAddToSetImpl \n" " b MPU_xQueueAddToSetImpl \n"
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
@ -1294,12 +1252,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vQueueAddToRegistry_Unpriv \n" " bne MPU_vQueueAddToRegistry_Unpriv \n"
" MPU_vQueueAddToRegistry_Priv: \n" " MPU_vQueueAddToRegistry_Priv: \n"
" pop {r0} \n"
" b MPU_vQueueAddToRegistryImpl \n" " b MPU_vQueueAddToRegistryImpl \n"
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
@ -1323,12 +1280,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vQueueUnregisterQueue_Unpriv \n" " bne MPU_vQueueUnregisterQueue_Unpriv \n"
" MPU_vQueueUnregisterQueue_Priv: \n" " MPU_vQueueUnregisterQueue_Priv: \n"
" pop {r0} \n"
" b MPU_vQueueUnregisterQueueImpl \n" " b MPU_vQueueUnregisterQueueImpl \n"
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
@ -1352,12 +1308,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pcQueueGetName_Unpriv \n" " bne MPU_pcQueueGetName_Unpriv \n"
" MPU_pcQueueGetName_Priv: \n" " MPU_pcQueueGetName_Priv: \n"
" pop {r0} \n"
" b MPU_pcQueueGetNameImpl \n" " b MPU_pcQueueGetNameImpl \n"
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
@ -1381,12 +1336,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pvTimerGetTimerID_Unpriv \n" " bne MPU_pvTimerGetTimerID_Unpriv \n"
" MPU_pvTimerGetTimerID_Priv: \n" " MPU_pvTimerGetTimerID_Priv: \n"
" pop {r0} \n"
" b MPU_pvTimerGetTimerIDImpl \n" " b MPU_pvTimerGetTimerIDImpl \n"
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
@ -1412,12 +1366,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTimerSetTimerID_Unpriv \n" " bne MPU_vTimerSetTimerID_Unpriv \n"
" MPU_vTimerSetTimerID_Priv: \n" " MPU_vTimerSetTimerID_Priv: \n"
" pop {r0} \n"
" b MPU_vTimerSetTimerIDImpl \n" " b MPU_vTimerSetTimerIDImpl \n"
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
@ -1441,12 +1394,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerIsTimerActive_Unpriv \n" " bne MPU_xTimerIsTimerActive_Unpriv \n"
" MPU_xTimerIsTimerActive_Priv: \n" " MPU_xTimerIsTimerActive_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerIsTimerActiveImpl \n" " b MPU_xTimerIsTimerActiveImpl \n"
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
@ -1470,12 +1422,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv \n" " bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Priv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetTimerDaemonTaskHandleImpl \n" " b MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
@ -1499,12 +1450,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGenericCommandFromTask_Unpriv \n" " bne MPU_xTimerGenericCommandFromTask_Unpriv \n"
" MPU_xTimerGenericCommandFromTask_Priv: \n" " MPU_xTimerGenericCommandFromTask_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGenericCommandFromTaskImpl \n" " b MPU_xTimerGenericCommandFromTaskImpl \n"
" MPU_xTimerGenericCommandFromTask_Unpriv: \n" " MPU_xTimerGenericCommandFromTask_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommandFromTask ) : "memory"
@ -1528,12 +1478,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_pcTimerGetName_Unpriv \n" " bne MPU_pcTimerGetName_Unpriv \n"
" MPU_pcTimerGetName_Priv: \n" " MPU_pcTimerGetName_Priv: \n"
" pop {r0} \n"
" b MPU_pcTimerGetNameImpl \n" " b MPU_pcTimerGetNameImpl \n"
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
@ -1559,12 +1508,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vTimerSetReloadMode_Unpriv \n" " bne MPU_vTimerSetReloadMode_Unpriv \n"
" MPU_vTimerSetReloadMode_Priv: \n" " MPU_vTimerSetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_vTimerSetReloadModeImpl \n" " b MPU_vTimerSetReloadModeImpl \n"
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
@ -1588,12 +1536,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetReloadMode_Unpriv \n" " bne MPU_xTimerGetReloadMode_Unpriv \n"
" MPU_xTimerGetReloadMode_Priv: \n" " MPU_xTimerGetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetReloadModeImpl \n" " b MPU_xTimerGetReloadModeImpl \n"
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
@ -1617,12 +1564,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxTimerGetReloadMode_Unpriv \n" " bne MPU_uxTimerGetReloadMode_Unpriv \n"
" MPU_uxTimerGetReloadMode_Priv: \n" " MPU_uxTimerGetReloadMode_Priv: \n"
" pop {r0} \n"
" b MPU_uxTimerGetReloadModeImpl \n" " b MPU_uxTimerGetReloadModeImpl \n"
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
@ -1646,12 +1592,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetPeriod_Unpriv \n" " bne MPU_xTimerGetPeriod_Unpriv \n"
" MPU_xTimerGetPeriod_Priv: \n" " MPU_xTimerGetPeriod_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetPeriodImpl \n" " b MPU_xTimerGetPeriodImpl \n"
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
@ -1675,12 +1620,11 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_xTimerGetExpiryTime_Unpriv \n" " bne MPU_xTimerGetExpiryTime_Unpriv \n"
" MPU_xTimerGetExpiryTime_Priv: \n" " MPU_xTimerGetExpiryTime_Priv: \n"
" pop {r0} \n"
" b MPU_xTimerGetExpiryTimeImpl \n" " b MPU_xTimerGetExpiryTimeImpl \n"
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
@ -1690,6 +1634,8 @@
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1713,8 +1659,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; const EventBits_t uxBitsToClear ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1740,8 +1690,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; const EventBits_t uxBitsToSet ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1767,8 +1721,12 @@
: : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_EVENT_GROUPS == 1 )
EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
const EventBits_t uxBitsToSet, const EventBits_t uxBitsToSet,
const EventBits_t uxBitsToWaitFor, const EventBits_t uxBitsToWaitFor,
@ -1798,9 +1756,11 @@
: : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
#endif /* #if ( configUSE_EVENT_GROUPS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1814,22 +1774,21 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_uxEventGroupGetNumber_Unpriv \n" " bne MPU_uxEventGroupGetNumber_Unpriv \n"
" MPU_uxEventGroupGetNumber_Priv: \n" " MPU_uxEventGroupGetNumber_Priv: \n"
" pop {r0} \n"
" b MPU_uxEventGroupGetNumberImpl \n" " b MPU_uxEventGroupGetNumberImpl \n"
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TRACE_FACILITY == 1 ) #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
void MPU_vEventGroupSetNumber( void * xEventGroup, void MPU_vEventGroupSetNumber( void * xEventGroup,
UBaseType_t uxEventGroupNumber ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; UBaseType_t uxEventGroupNumber ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -1845,21 +1804,22 @@
" push {r0} \n" " push {r0} \n"
" mrs r0, control \n" " mrs r0, control \n"
" tst r0, #1 \n" " tst r0, #1 \n"
" pop {r0} \n"
" bne MPU_vEventGroupSetNumber_Unpriv \n" " bne MPU_vEventGroupSetNumber_Unpriv \n"
" MPU_vEventGroupSetNumber_Priv: \n" " MPU_vEventGroupSetNumber_Priv: \n"
" pop {r0} \n"
" b MPU_vEventGroupSetNumberImpl \n" " b MPU_vEventGroupSetNumberImpl \n"
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" \n" " \n"
: : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
#endif /*( configUSE_TRACE_FACILITY == 1 )*/ #endif /* #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
const void * pvTxData, const void * pvTxData,
size_t xDataLengthBytes, size_t xDataLengthBytes,
@ -1889,8 +1849,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
void * pvRxData, void * pvRxData,
size_t xBufferLengthBytes, size_t xBufferLengthBytes,
@ -1920,8 +1884,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1945,8 +1913,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1970,8 +1942,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -1995,8 +1971,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -2020,8 +2000,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
size_t xTriggerLevel ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t xTriggerLevel ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
@ -2047,8 +2031,12 @@
: : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_STREAM_BUFFERS == 1 )
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL; size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
@ -2072,6 +2060,8 @@
: : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
#endif /* #if ( configUSE_STREAM_BUFFERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#endif /* configUSE_MPU_WRAPPERS_V1 == 0 */ #endif /* configUSE_MPU_WRAPPERS_V1 == 0 */

View file

@ -289,14 +289,14 @@ BaseType_t xPortIsTaskPrivileged( void ) PRIVILEGED_FUNCTION;
* switches can only occur when uxCriticalNesting is zero. */ * switches can only occur when uxCriticalNesting is zero. */
static UBaseType_t uxCriticalNesting = 0xaaaaaaaa; static UBaseType_t uxCriticalNesting = 0xaaaaaaaa;
#if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
/* /*
* This variable is set to pdTRUE when the scheduler is started. * This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/* /*
* Used by the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() macro to ensure * Used by the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() macro to ensure
@ -830,7 +830,7 @@ BaseType_t xPortStartScheduler( void )
#endif #endif
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -963,11 +963,11 @@ BaseType_t xPortStartScheduler( void )
/* Initialise the critical nesting count ready for the first task. */ /* Initialise the critical nesting count ready for the first task. */
uxCriticalNesting = 0; uxCriticalNesting = 0;
#if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/* Ensure the VFP is enabled - it should be anyway. */ /* Ensure the VFP is enabled - it should be anyway. */
vPortEnableVFP(); vPortEnableVFP();
@ -1514,6 +1514,8 @@ void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_MPU_WRAPPERS_V1 == 0 )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1561,6 +1563,8 @@ BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
return xAccessGranted; return xAccessGranted;
} }
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configASSERT_DEFINED == 1 ) #if ( configASSERT_DEFINED == 1 )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -300,7 +300,7 @@ static void prvPortStartFirstTask( void )
BaseType_t xPortStartScheduler( void ) BaseType_t xPortStartScheduler( void )
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

File diff suppressed because it is too large Load diff

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -76,8 +76,8 @@
/* Save the floating point context, if any. */ /* Save the floating point context, if any. */
FMRXNE R1, FPSCR FMRXNE R1, FPSCR
VPUSHNE {D0-D15}
PUSHNE {R1} PUSHNE {R1}
VPUSHNE {D0-D15}
/* Save ulPortTaskHasFPUContext itself. */ /* Save ulPortTaskHasFPUContext itself. */
PUSH {R3} PUSH {R3}
@ -110,8 +110,8 @@
CMP R1, #0 CMP R1, #0
/* Restore the floating point context, if any. */ /* Restore the floating point context, if any. */
POPNE {R0}
VPOPNE {D0-D15} VPOPNE {D0-D15}
POPNE {R0}
VMSRNE FPSCR, R0 VMSRNE FPSCR, R0
#endif /* __ARM_FP */ #endif /* __ARM_FP */
@ -147,8 +147,15 @@
FreeRTOS_SWI_Handler: FreeRTOS_SWI_Handler:
/* Save the context of the current task and select a new task to run. */ /* Save the context of the current task and select a new task to run. */
portSAVE_CONTEXT portSAVE_CONTEXT
/* Ensure bit 2 of the stack pointer is clear. */
MOV r2, sp
AND r2, r2, #4
SUB sp, sp, r2
LDR R0, vTaskSwitchContextConst LDR R0, vTaskSwitchContextConst
BLX R0 BLX R0
portRESTORE_CONTEXT portRESTORE_CONTEXT
@ -242,7 +249,7 @@ exit_without_switch:
MOVS PC, LR MOVS PC, LR
switch_before_exit: switch_before_exit:
/* A context swtich is to be performed. Clear the context switch pending /* A context switch is to be performed. Clear the context switch pending
flag. */ flag. */
MOV r0, #0 MOV r0, #0
STR r0, [r1] STR r0, [r1]
@ -256,6 +263,11 @@ switch_before_exit:
POP {LR} POP {LR}
portSAVE_CONTEXT portSAVE_CONTEXT
/* Ensure bit 2 of the stack pointer is clear. */
MOV r2, sp
AND r2, r2, #4
SUB sp, sp, r2
/* Call the function that selects the new task to execute. /* Call the function that selects the new task to execute.
vTaskSwitchContext() if vTaskSwitchContext() uses LDRD or STRD vTaskSwitchContext() if vTaskSwitchContext() uses LDRD or STRD
instructions, or 8 byte aligned stack allocated data. LR does not need instructions, or 8 byte aligned stack allocated data. LR does not need

View file

@ -0,0 +1,867 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
/* ----------------------------------------------------------------------------------- */
.arm
.syntax unified
.section freertos_system_calls
#define FREERTOS_ASSEMBLY
#include "FreeRTOSConfig.h"
#include "portmacro_asm.h"
#include "mpu_syscall_numbers.h"
#undef FREERTOS_ASSEMBLY
/* ----------------------- Start of Port Specific System Calls ----------------------- */
/*
* void vPortYield( void );
*/
.align 4
.global vPortYield
.type vPortYield, %function
vPortYield:
SVC #portSVC_YIELD
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vPortSystemCallExit( void );
*/
.align 4
.global vPortSystemCallExit
.type vPortSystemCallExit, %function
vPortSystemCallExit:
SVC #portSVC_SYSTEM_CALL_EXIT
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* BaseType_t xPortIsPrivileged( void );
*
* According to the Procedure Call Standard for the ARM Architecture (AAPCS):
* - Return value must be in R0.
*/
.align 4
.global xPortIsPrivileged
.type xPortIsPrivileged, %function
xPortIsPrivileged:
MRS R0, CPSR /* R0 = CPSR. */
AND R0, R0, #0x1F /* R0 = R0 & 0x1F. Extract mode bits.*/
CMP R0, #USER_MODE /* If R0 == #USER_MODE. */
MOVEQ R0, #0x0 /* Then, set R0 to 0 to indicate that the processer is not privileged. */
MOVNE R0, #0x01 /* Otherwise, set R0 to 1 to indicate that the processer is privileged. */
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* UBaseType_t ulPortCountLeadingZeros( UBaseType_t ulBitmap );
*
* According to the Procedure Call Standard for the ARM Architecture (AAPCS):
* - Parameter ulBitmap is passed in R0.
* - Return value must be in R0.
*/
.align 4
.weak ulPortCountLeadingZeros
.type ulPortCountLeadingZeros, %function
ulPortCountLeadingZeros:
CLZ R0, R0
BX LR
/* ------------------- End of Port Specific System Calls ------------------- */
.macro INVOKE_SYSTEM_CALL systemCallNumber, systemCallImpl
PUSH {R0}
MRS R0, CPSR
AND R0, R0, #0x1F
CMP R0, #USER_MODE
POP {R0}
SVCEQ \systemCallNumber
B \systemCallImpl
.endm
/* ----------------------------------------------------------------------------------- */
.extern MPU_xTaskGetTickCountImpl
.align 4
.global MPU_xTaskGetTickCount
.type MPU_xTaskGetTickCount, function
MPU_xTaskGetTickCount:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetTickCount, MPU_xTaskGetTickCountImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_uxTaskGetNumberOfTasksImpl
.align 4
.global MPU_uxTaskGetNumberOfTasks
.type MPU_uxTaskGetNumberOfTasks, function
MPU_uxTaskGetNumberOfTasks:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetNumberOfTasks, MPU_uxTaskGetNumberOfTasksImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_vTaskSetTimeOutStateImpl
.align 4
.global MPU_vTaskSetTimeOutState
.type MPU_vTaskSetTimeOutState, function
MPU_vTaskSetTimeOutState:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetTimeOutState, MPU_vTaskSetTimeOutStateImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xTaskCheckForTimeOutImpl
.align 4
.global MPU_xTaskCheckForTimeOut
.type MPU_xTaskCheckForTimeOut, function
MPU_xTaskCheckForTimeOut:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskCheckForTimeOut, MPU_xTaskCheckForTimeOutImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xQueueGenericSendImpl
.align 4
.global MPU_xQueueGenericSend
.type MPU_xQueueGenericSend, function
MPU_xQueueGenericSend:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGenericSend, MPU_xQueueGenericSendImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_uxQueueMessagesWaitingImpl
.align 4
.global MPU_uxQueueMessagesWaiting
.type MPU_uxQueueMessagesWaiting, function
MPU_uxQueueMessagesWaiting:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxQueueMessagesWaiting, MPU_uxQueueMessagesWaitingImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_uxQueueSpacesAvailableImpl
.align 4
.global MPU_uxQueueSpacesAvailable
.type MPU_uxQueueSpacesAvailable, function
MPU_uxQueueSpacesAvailable:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxQueueSpacesAvailable, MPU_uxQueueSpacesAvailableImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xQueueReceiveImpl
.align 4
.global MPU_xQueueReceive
.type MPU_xQueueReceive, function
MPU_xQueueReceive:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueReceive, MPU_xQueueReceiveImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xQueuePeekImpl
.align 4
.global MPU_xQueuePeek
.type MPU_xQueuePeek, function
MPU_xQueuePeek:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueuePeek, MPU_xQueuePeekImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xQueueSemaphoreTakeImpl
.align 4
.global MPU_xQueueSemaphoreTake
.type MPU_xQueueSemaphoreTake, function
MPU_xQueueSemaphoreTake:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueSemaphoreTake, MPU_xQueueSemaphoreTakeImpl
/* ----------------------------------------------------------------------------------- */
#if ( configUSE_EVENT_GROUPS == 1 )
.extern MPU_xEventGroupWaitBitsImpl
.align 4
.global MPU_xEventGroupWaitBitsEntry
.type MPU_xEventGroupWaitBitsEntry, function
MPU_xEventGroupWaitBitsEntry:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupWaitBits, MPU_xEventGroupWaitBitsImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xEventGroupClearBitsImpl
.align 4
.global MPU_xEventGroupClearBits
.type MPU_xEventGroupClearBits, function
MPU_xEventGroupClearBits:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupClearBits, MPU_xEventGroupClearBitsImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xEventGroupSetBitsImpl
.align 4
.global MPU_xEventGroupSetBits
.type MPU_xEventGroupSetBits, function
MPU_xEventGroupSetBits:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupSetBits, MPU_xEventGroupSetBitsImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xEventGroupSyncImpl
.align 4
.global MPU_xEventGroupSync
.type MPU_xEventGroupSync, function
MPU_xEventGroupSync:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupSync, MPU_xEventGroupSyncImpl
#endif /* if ( configUSE_EVENT_GROUPS == 1 ) */
/* ----------------------------------------------------------------------------------- */
#if ( configUSE_STREAM_BUFFERS == 1 )
.extern MPU_xStreamBufferSendImpl
.align 4
.global MPU_xStreamBufferSend
.type MPU_xStreamBufferSend, function
MPU_xStreamBufferSend:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSend, MPU_xStreamBufferSendImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferReceiveImpl
.align 4
.global MPU_xStreamBufferReceive
.type MPU_xStreamBufferReceive, function
MPU_xStreamBufferReceive:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferReceive, MPU_xStreamBufferReceiveImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferIsFullImpl
.align 4
.global MPU_xStreamBufferIsFull
.type MPU_xStreamBufferIsFull, function
MPU_xStreamBufferIsFull:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferIsFull, MPU_xStreamBufferIsFullImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferIsEmptyImpl
.align 4
.global MPU_xStreamBufferIsEmpty
.type MPU_xStreamBufferIsEmpty, function
MPU_xStreamBufferIsEmpty:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferIsEmpty, MPU_xStreamBufferIsEmptyImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferSpacesAvailableImpl
.align 4
.global MPU_xStreamBufferSpacesAvailable
.type MPU_xStreamBufferSpacesAvailable, function
MPU_xStreamBufferSpacesAvailable:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSpacesAvailable, MPU_xStreamBufferSpacesAvailableImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferBytesAvailableImpl
.align 4
.global MPU_xStreamBufferBytesAvailable
.type MPU_xStreamBufferBytesAvailable, function
MPU_xStreamBufferBytesAvailable:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferBytesAvailable, MPU_xStreamBufferBytesAvailableImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferSetTriggerLevelImpl
.align 4
.global MPU_xStreamBufferSetTriggerLevel
.type MPU_xStreamBufferSetTriggerLevel, function
MPU_xStreamBufferSetTriggerLevel:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSetTriggerLevel, MPU_xStreamBufferSetTriggerLevelImpl
/* ----------------------------------------------------------------------------------- */
.extern MPU_xStreamBufferNextMessageLengthBytesImpl
.align 4
.global MPU_xStreamBufferNextMessageLengthBytes
.type MPU_xStreamBufferNextMessageLengthBytes, function
MPU_xStreamBufferNextMessageLengthBytes:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes, MPU_xStreamBufferNextMessageLengthBytesImpl
#endif /* if ( configUSE_STREAM_BUFFERS == 1 ) */
/* ----------------------------------------------------------------------------------- */
#if ( ( INCLUDE_xTaskDelayUntil == 1 ) || ( INCLUDE_vTaskDelayUntil == 1 ) )
.extern MPU_xTaskDelayUntilImpl
.align 4
.global MPU_xTaskDelayUntil
.type MPU_xTaskDelayUntil, function
MPU_xTaskDelayUntil:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskDelayUntil, MPU_xTaskDelayUntilImpl
#endif /* if ( ( INCLUDE_xTaskDelayUntil == 1 ) || ( INCLUDE_vTaskDelayUntil == 1 ) ) */
/* ----------------------------------------------------------------------------------- */
#if ( INCLUDE_xTaskAbortDelay == 1 )
.extern MPU_xTaskAbortDelayImpl
.align 4
.global MPU_xTaskAbortDelay
.type MPU_xTaskAbortDelay, function
MPU_xTaskAbortDelay:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskAbortDelay, MPU_xTaskAbortDelayImpl
#endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_vTaskDelay == 1 )
.extern MPU_vTaskDelayImpl
.align 4
.global MPU_vTaskDelay
.type MPU_vTaskDelay, function
MPU_vTaskDelay:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskDelay, MPU_vTaskDelayImpl
#endif /* if ( INCLUDE_vTaskDelay == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_uxTaskPriorityGet == 1 )
.extern MPU_uxTaskPriorityGetImpl
.align 4
.global MPU_uxTaskPriorityGet
.type MPU_uxTaskPriorityGet, function
MPU_uxTaskPriorityGet:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskPriorityGet, MPU_uxTaskPriorityGetImpl
#endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_eTaskGetState == 1 )
.extern MPU_eTaskGetStateImpl
.align 4
.global MPU_eTaskGetState
.type MPU_eTaskGetState, function
MPU_eTaskGetState:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_eTaskGetState, MPU_eTaskGetStateImpl
#endif /* if ( INCLUDE_eTaskGetState == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configUSE_TRACE_FACILITY == 1 )
.extern MPU_vTaskGetInfoImpl
.align 4
.global MPU_vTaskGetInfo
.type MPU_vTaskGetInfo, function
MPU_vTaskGetInfo:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskGetInfo, MPU_vTaskGetInfoImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_uxTaskGetSystemStateImpl
.align 4
.global MPU_uxTaskGetSystemState
.type MPU_uxTaskGetSystemState, function
MPU_uxTaskGetSystemState:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetSystemState, MPU_uxTaskGetSystemStateImpl
#endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) )
.extern MPU_uxEventGroupGetNumberImpl
.align 4
.global MPU_uxEventGroupGetNumber
.type MPU_uxEventGroupGetNumber, function
MPU_uxEventGroupGetNumber:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxEventGroupGetNumber, MPU_uxEventGroupGetNumberImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_vEventGroupSetNumberImpl
.align 4
.global MPU_vEventGroupSetNumber
.type MPU_vEventGroupSetNumber, function
MPU_vEventGroupSetNumber:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vEventGroupSetNumber, MPU_vEventGroupSetNumberImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
.extern MPU_xTaskGetIdleTaskHandleImpl
.align 4
.global MPU_xTaskGetIdleTaskHandle
.type MPU_xTaskGetIdleTaskHandle, function
MPU_xTaskGetIdleTaskHandle:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetIdleTaskHandle, MPU_xTaskGetIdleTaskHandleImpl
#endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_vTaskSuspend == 1 )
.extern MPU_vTaskSuspendImpl
.align 4
.global MPU_vTaskSuspend
.type MPU_vTaskSuspend, function
MPU_vTaskSuspend:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSuspend, MPU_vTaskSuspendImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_vTaskResumeImpl
.align 4
.global MPU_vTaskResume
.type MPU_vTaskResume, function
MPU_vTaskResume:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskResume, MPU_vTaskResumeImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( INCLUDE_vTaskSuspend == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configGENERATE_RUN_TIME_STATS == 1 )
.extern MPU_ulTaskGetRunTimeCounterImpl
.align 4
.global MPU_ulTaskGetRunTimeCounter
.type MPU_ulTaskGetRunTimeCounter, function
MPU_ulTaskGetRunTimeCounter:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetRunTimeCounter, MPU_ulTaskGetRunTimeCounterImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_ulTaskGetRunTimePercentImpl
.align 4
.global MPU_ulTaskGetRunTimePercent
.type MPU_ulTaskGetRunTimePercent, function
MPU_ulTaskGetRunTimePercent:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetRunTimePercent, MPU_ulTaskGetRunTimePercentImpl
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
.extern MPU_ulTaskGetIdleRunTimePercentImpl
.align 4
.global MPU_ulTaskGetIdleRunTimePercent
.type MPU_ulTaskGetIdleRunTimePercent, function
MPU_ulTaskGetIdleRunTimePercent:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetIdleRunTimePercent, MPU_ulTaskGetIdleRunTimePercentImpl
/* --------------------------------------------------------------------------- */
.extern MPU_ulTaskGetIdleRunTimeCounterImpl
.align 4
.global MPU_ulTaskGetIdleRunTimeCounter
.type MPU_ulTaskGetIdleRunTimeCounter, function
MPU_ulTaskGetIdleRunTimeCounter:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter, MPU_ulTaskGetIdleRunTimeCounterImpl
/* --------------------------------------------------------------------------- */
#endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
#endif /* if ( configGENERATE_RUN_TIME_STATS == 1 )*/
/* --------------------------------------------------------------------------- */
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
.extern MPU_vTaskSetApplicationTaskTagImpl
.align 4
.global MPU_vTaskSetApplicationTaskTag
.type MPU_vTaskSetApplicationTaskTag, function
MPU_vTaskSetApplicationTaskTag:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetApplicationTaskTag, MPU_vTaskSetApplicationTaskTagImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTaskGetApplicationTaskTagImpl
.align 4
.global MPU_xTaskGetApplicationTaskTag
.type MPU_xTaskGetApplicationTaskTag, function
MPU_xTaskGetApplicationTaskTag:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetApplicationTaskTag, MPU_xTaskGetApplicationTaskTagImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
.extern MPU_vTaskSetThreadLocalStoragePointerImpl
.align 4
.global MPU_vTaskSetThreadLocalStoragePointer
.type MPU_vTaskSetThreadLocalStoragePointer, function
MPU_vTaskSetThreadLocalStoragePointer:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer, MPU_vTaskSetThreadLocalStoragePointerImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_pvTaskGetThreadLocalStoragePointerImpl
.align 4
.global MPU_pvTaskGetThreadLocalStoragePointer
.type MPU_pvTaskGetThreadLocalStoragePointer, function
MPU_pvTaskGetThreadLocalStoragePointer:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer, MPU_pvTaskGetThreadLocalStoragePointerImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
.extern MPU_uxTaskGetStackHighWaterMarkImpl
.align 4
.global MPU_uxTaskGetStackHighWaterMark
.type MPU_uxTaskGetStackHighWaterMark, function
MPU_uxTaskGetStackHighWaterMark:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetStackHighWaterMark, MPU_uxTaskGetStackHighWaterMarkImpl
#endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
.extern MPU_uxTaskGetStackHighWaterMark2Impl
.align 4
.global MPU_uxTaskGetStackHighWaterMark2
.type MPU_uxTaskGetStackHighWaterMark2, function
MPU_uxTaskGetStackHighWaterMark2:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetStackHighWaterMark2, MPU_uxTaskGetStackHighWaterMark2Impl
#endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
.extern MPU_xTaskGetCurrentTaskHandleImpl
.align 4
.global MPU_xTaskGetCurrentTaskHandle
.type MPU_xTaskGetCurrentTaskHandle, function
MPU_xTaskGetCurrentTaskHandle:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetCurrentTaskHandle, MPU_xTaskGetCurrentTaskHandleImpl
#endif /* if( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */
/* ------------------------------------------------------------------------------- */
#if ( INCLUDE_xTaskGetSchedulerState == 1 )
.extern MPU_xTaskGetSchedulerStateImpl
.align 4
.global MPU_xTaskGetSchedulerState
.type MPU_xTaskGetSchedulerState, function
MPU_xTaskGetSchedulerState:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetSchedulerState, MPU_xTaskGetSchedulerStateImpl
#endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
.extern MPU_xQueueGetMutexHolderImpl
.align 4
.global MPU_xQueueGetMutexHolder
.type MPU_xQueueGetMutexHolder, function
MPU_xQueueGetMutexHolder:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGetMutexHolder, MPU_xQueueGetMutexHolderImpl
#endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */
/* ------------------------------------------------------------------------------- */
#if ( configUSE_RECURSIVE_MUTEXES == 1 )
.extern MPU_xQueueTakeMutexRecursiveImpl
.align 4
.global MPU_xQueueTakeMutexRecursive
.type MPU_xQueueTakeMutexRecursive, function
MPU_xQueueTakeMutexRecursive:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueTakeMutexRecursive, MPU_xQueueTakeMutexRecursiveImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xQueueGiveMutexRecursiveImpl
.align 4
.global MPU_xQueueGiveMutexRecursive
.type MPU_xQueueGiveMutexRecursive, function
MPU_xQueueGiveMutexRecursive:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGiveMutexRecursive, MPU_xQueueGiveMutexRecursiveImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configUSE_QUEUE_SETS == 1 )
.extern MPU_xQueueSelectFromSetImpl
.align 4
.global MPU_xQueueSelectFromSet
.type MPU_xQueueSelectFromSet, function
MPU_xQueueSelectFromSet:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueSelectFromSet, MPU_xQueueSelectFromSetImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xQueueAddToSetImpl
.align 4
.global MPU_xQueueAddToSet
.type MPU_xQueueAddToSet, function
MPU_xQueueAddToSet:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueAddToSet, MPU_xQueueAddToSetImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configUSE_QUEUE_SETS == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configQUEUE_REGISTRY_SIZE > 0 )
.extern MPU_vQueueAddToRegistryImpl
.align 4
.global MPU_vQueueAddToRegistry
.type MPU_vQueueAddToRegistry, function
MPU_vQueueAddToRegistry:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vQueueAddToRegistry, MPU_vQueueAddToRegistryImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_vQueueUnregisterQueueImpl
.align 4
.global MPU_vQueueUnregisterQueue
.type MPU_vQueueUnregisterQueue, function
MPU_vQueueUnregisterQueue:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vQueueUnregisterQueue, MPU_vQueueUnregisterQueueImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_pcQueueGetNameImpl
.align 4
.global MPU_pcQueueGetName
.type MPU_pcQueueGetName, function
MPU_pcQueueGetName:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_pcQueueGetName, MPU_pcQueueGetNameImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
/* ------------------------------------------------------------------------------- */
#if ( configUSE_TIMERS == 1 )
.extern MPU_pvTimerGetTimerIDImpl
.align 4
.global MPU_pvTimerGetTimerID
.type MPU_pvTimerGetTimerID, function
MPU_pvTimerGetTimerID:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_pvTimerGetTimerID, MPU_pvTimerGetTimerIDImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_vTimerSetTimerIDImpl
.align 4
.global MPU_vTimerSetTimerID
.type MPU_vTimerSetTimerID, function
MPU_vTimerSetTimerID:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTimerSetTimerID, MPU_vTimerSetTimerIDImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerIsTimerActiveImpl
.align 4
.global MPU_xTimerIsTimerActive
.type MPU_xTimerIsTimerActive, function
MPU_xTimerIsTimerActive:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerIsTimerActive, MPU_xTimerIsTimerActiveImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerGetTimerDaemonTaskHandleImpl
.align 4
.global MPU_xTimerGetTimerDaemonTaskHandle
.type MPU_xTimerGetTimerDaemonTaskHandle, function
MPU_xTimerGetTimerDaemonTaskHandle:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle, MPU_xTimerGetTimerDaemonTaskHandleImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerGenericCommandFromTaskImpl
.align 4
.global MPU_xTimerGenericCommandFromTaskEntry
.type MPU_xTimerGenericCommandFromTaskEntry, function
MPU_xTimerGenericCommandFromTaskEntry:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGenericCommandFromTask, MPU_xTimerGenericCommandFromTaskImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_pcTimerGetNameImpl
.align 4
.global MPU_pcTimerGetName
.type MPU_pcTimerGetName, function
MPU_pcTimerGetName:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_pcTimerGetName, MPU_pcTimerGetNameImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_vTimerSetReloadModeImpl
.align 4
.global MPU_vTimerSetReloadMode
.type MPU_vTimerSetReloadMode, function
MPU_vTimerSetReloadMode:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTimerSetReloadMode, MPU_vTimerSetReloadModeImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerGetReloadModeImpl
.align 4
.global MPU_xTimerGetReloadMode
.type MPU_xTimerGetReloadMode, function
MPU_xTimerGetReloadMode:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetReloadMode, MPU_xTimerGetReloadModeImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_uxTimerGetReloadModeImpl
.align 4
.global MPU_uxTimerGetReloadMode
.type MPU_uxTimerGetReloadMode, function
MPU_uxTimerGetReloadMode:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTimerGetReloadMode, MPU_uxTimerGetReloadModeImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerGetPeriodImpl
.align 4
.global MPU_xTimerGetPeriod
.type MPU_xTimerGetPeriod, function
MPU_xTimerGetPeriod:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetPeriod, MPU_xTimerGetPeriodImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTimerGetExpiryTimeImpl
.align 4
.global MPU_xTimerGetExpiryTime
.type MPU_xTimerGetExpiryTime, function
MPU_xTimerGetExpiryTime:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetExpiryTime, MPU_xTimerGetExpiryTimeImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configUSE_TIMERS == 1 ) */
/* ------------------------------------------------------------------------------- */
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
.extern MPU_xTaskGenericNotifyImpl
.align 4
.global MPU_xTaskGenericNotifyEntry
.type MPU_xTaskGenericNotifyEntry, function
MPU_xTaskGenericNotifyEntry:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotify, MPU_xTaskGenericNotifyImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTaskGenericNotifyWaitImpl
.align 4
.global MPU_xTaskGenericNotifyWaitEntry
.type MPU_xTaskGenericNotifyWaitEntry, function
MPU_xTaskGenericNotifyWaitEntry:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotifyWait, MPU_xTaskGenericNotifyWaitImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_ulTaskGenericNotifyTakeImpl
.align 4
.global MPU_ulTaskGenericNotifyTake
.type MPU_ulTaskGenericNotifyTake, function
MPU_ulTaskGenericNotifyTake:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGenericNotifyTake, MPU_ulTaskGenericNotifyTakeImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_xTaskGenericNotifyStateClearImpl
.align 4
.global MPU_xTaskGenericNotifyStateClear
.type MPU_xTaskGenericNotifyStateClear, function
MPU_xTaskGenericNotifyStateClear:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotifyStateClear, MPU_xTaskGenericNotifyStateClearImpl
/* ------------------------------------------------------------------------------- */
.extern MPU_ulTaskGenericNotifyValueClearImpl
.align 4
.global MPU_ulTaskGenericNotifyValueClear
.type MPU_ulTaskGenericNotifyValueClear, function
MPU_ulTaskGenericNotifyValueClear:
INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGenericNotifyValueClear, MPU_ulTaskGenericNotifyValueClearImpl
/* ------------------------------------------------------------------------------- */
#endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
/* ------------------------------------------------------------------------------- */
.end

View file

@ -0,0 +1,845 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
/* Standard includes. */
#include <stdint.h>
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
* all the API functions to use the MPU wrappers. That should only be done when
* task.h is included from an application file. */
#ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "portmacro.h"
#include "task.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* Max value that fits in a uint32_t type. */
#define portUINT32_MAX ( ~( ( uint32_t ) 0 ) )
/* Check if adding a and b will result in overflow. */
#define portADD_UINT32_WILL_OVERFLOW( a, b ) ( ( a ) > ( portUINT32_MAX - ( b ) ) )
/* ----------------------------------------------------------------------------------- */
/**
* @brief Variable used to keep track of critical section nesting.
*
* @ingroup Critical Sections
*
* This variable is stored as part of the task context and must be initialised
* to a non zero value to ensure interrupts don't inadvertently become unmasked
* before the scheduler starts. As it is stored as part of the task context, it
* will be set to 0 when the first task is started.
*/
PRIVILEGED_DATA volatile UBaseType_t ulCriticalNesting = 0xFFFF;
/**
* @brief Set to 1 to pend a context switch from an ISR.
*
* @ingroup Interrupt Management
*/
PRIVILEGED_DATA volatile UBaseType_t ulPortYieldRequired = pdFALSE;
/**
* @brief Interrupt nesting depth, used to count the number of interrupts to unwind.
*
* @ingroup Interrupt Management
*/
PRIVILEGED_DATA volatile UBaseType_t ulPortInterruptNesting = 0UL;
/**
* @brief Variable to track whether or not the scheduler has been started.
*
* @ingroup Scheduler
*
* This is the port specific version of the xSchedulerRunning in tasks.c.
*/
PRIVILEGED_DATA static BaseType_t prvPortSchedulerRunning = pdFALSE;
/* -------------------------- Private Function Declarations -------------------------- */
/**
* @brief Determine if the given MPU region settings authorizes the requested
* access to the given buffer.
*
* @ingroup Task Context
* @ingroup MPU Control
*
* @param xTaskMPURegion MPU region settings.
* @param ulBufferStart Start address of the given buffer.
* @param ulBufferLength Length of the given buffer.
* @param ulAccessRequested Access requested.
*
* @return pdTRUE if MPU region settins authorizes the requested access to the
* given buffer, pdFALSE otherwise.
*/
PRIVILEGED_FUNCTION static BaseType_t prvMPURegionAuthorizesBuffer( const xMPU_REGION_REGISTERS * xTaskMPURegion,
const uint32_t ulBufferStart,
const uint32_t ulBufferLength,
const uint32_t ulAccessRequested );
/**
* @brief Determine the smallest MPU Region Size Encoding for the given MPU
* region size.
*
* @ingroup MPU Control
*
* @param ulActualMPURegionSize MPU region size in bytes.
*
* @return The smallest MPU Region Size Encoding for the given MPU region size.
*/
PRIVILEGED_FUNCTION static uint32_t prvGetMPURegionSizeEncoding( uint32_t ulActualMPURegionSize );
/**
* @brief Set up MPU.
*
* @ingroup MPU Control
*/
PRIVILEGED_FUNCTION static void prvSetupMPU( void );
/* -------------------------- Exported Function Declarations -------------------------- */
/**
* @brief Enter critical section.
*
* @ingroup Critical Section
*/
PRIVILEGED_FUNCTION void vPortEnterCritical( void );
/**
* @brief Exit critical section.
*
* @ingroup Critical Section
*/
PRIVILEGED_FUNCTION void vPortExitCritical( void );
/* ----------------------------------------------------------------------------------- */
/**
* @brief Setup a FreeRTOS task's initial context.
*
* @ingroup Task Context
*
* @param pxTopOfStack Top of stack.
* @param pxCode The task function.
* @param pvParameters Argument passed to the task function.
* @param xRunPrivileged Marks if the task is privileged.
* @param xMPUSettings MPU settings of the task.
*
* @return Location where to restore the task's context from.
*/
/* PRIVILEGED_FUNCTION */
StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
TaskFunction_t pxCode,
void * pvParameters,
BaseType_t xRunPrivileged,
xMPU_SETTINGS * xMPUSettings )
{
/* Setup the initial context of the task. The context is set exactly as
* expected by the portRESTORE_CONTEXT() macro. */
UBaseType_t ulIndex = CONTEXT_SIZE - 1U;
xSYSTEM_CALL_STACK_INFO * xSysCallInfo = NULL;
if( xRunPrivileged == pdTRUE )
{
xMPUSettings->ulTaskFlags |= portTASK_IS_PRIVILEGED_FLAG;
/* Current Program Status Register (CPSR). */
xMPUSettings->ulContext[ ulIndex ] = SYS_MODE;
}
else
{
xMPUSettings->ulTaskFlags &= ( ~portTASK_IS_PRIVILEGED_FLAG );
/* Current Program Status Register (CPSR). */
xMPUSettings->ulContext[ ulIndex ] = USER_MODE;
}
if( ( ( uint32_t ) pxCode & portTHUMB_MODE_ADDRESS ) != 0x0UL )
{
/* The task will cause the processor to start in THUMB state, set the
* Thumb state bit in the CPSR. */
xMPUSettings->ulContext[ ulIndex ] |= portTHUMB_MODE_BIT;
}
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) pxCode; /* PC. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) portTASK_RETURN_ADDRESS; /* LR. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) pxTopOfStack; /* SP. */
ulIndex--;
/* General Purpose Registers. */
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x12121212; /* R12. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x11111111; /* R11. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x10101010; /* R10. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x09090909; /* R9. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x08080808; /* R8. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x07070707; /* R7. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x06060606; /* R6. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x05050505; /* R5. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x04040404; /* R4. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x03030303; /* R3. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x02020202; /* R2. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x01010101; /* R1. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) pvParameters; /* R0. */
ulIndex--;
#if( portENABLE_FPU == 1 )
{
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000015; /* S31. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1500000; /* S30. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000014; /* S29. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1400000; /* S28. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000013; /* S27. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1300000; /* S26. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000012; /* S25. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1200000; /* S24. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000011; /* S23. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1100000; /* S22. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000010; /* S21. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1000000; /* S20. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000009; /* S19. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD9000000; /* S18. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000008; /* S17. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD8000000; /* S16. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000007; /* S15. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD7000000; /* S14. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000006; /* S13. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD6000000; /* S12. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000005; /* S11. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD5000000; /* S10. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000004; /* S9. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD4000000; /* S8. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000003; /* S7. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD3000000; /* S6. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000002; /* S5. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD2000000; /* S4. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000001; /* S3. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD1000000; /* S2. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000000; /* S1. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0xD0000000; /* S0. */
ulIndex--;
xMPUSettings->ulContext[ ulIndex ] = ( StackType_t ) 0x00000000; /* FPSR. */
ulIndex--;
}
#endif /* portENABLE_FPU */
/* The task will start with a critical nesting count of 0. */
xMPUSettings->ulContext[ ulIndex ] = portNO_CRITICAL_NESTING;
/* Ensure that the system call stack is double word aligned. */
xSysCallInfo = &( xMPUSettings->xSystemCallStackInfo );
xSysCallInfo->pulSystemCallStackPointer = &( xSysCallInfo->ulSystemCallStackBuffer[ configSYSTEM_CALL_STACK_SIZE - 1U ] );
xSysCallInfo->pulSystemCallStackPointer = ( uint32_t * ) ( ( ( uint32_t ) ( xSysCallInfo->pulSystemCallStackPointer ) ) &
( ( uint32_t ) ( ~( portBYTE_ALIGNMENT_MASK ) ) ) );
/* This is not NULL only for the duration of a system call. */
xSysCallInfo->pulTaskStackPointer = NULL;
/* Set the System Call to return to vPortSystemCallExit. */
xSysCallInfo->pulSystemCallExitAddress = ( uint32_t * ) ( &vPortSystemCallExit );
/* Return the address where this task's context should be restored from. */
return &( xMPUSettings->ulContext[ ulIndex ] );
}
/* ----------------------------------------------------------------------------------- */
/**
* @brief Store a FreeRTOS task's MPU settings in its TCB.
*
* @ingroup Task Context
* @ingroup MPU Control
*
* @param xMPUSettings The MPU settings in TCB.
* @param xRegions The updated MPU settings requested by the task.
* @param pxBottomOfStack The base address of the task's Stack.
* @param ulStackDepth The length of the task's stack.
*/
/* PRIVILEGED_FUNCTION */
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack,
uint32_t ulStackDepth )
{
#if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */
extern uint32_t * __SRAM_segment_start__;
extern uint32_t * __SRAM_segment_end__;
#else
/* Declaration when these variable are exported from linker scripts. */
extern uint32_t __SRAM_segment_start__[];
extern uint32_t __SRAM_segment_end__[];
#endif /* if defined( __ARMCC_VERSION ) */
uint32_t ulIndex = 0x0;
uint32_t ulRegionLength;
uint32_t ulRegionLengthEncoded;
uint32_t ulRegionLengthDecoded;
if( xRegions == NULL )
{
/* No MPU regions are specified so allow access to all of the RAM. */
ulRegionLength = ( uint32_t ) __SRAM_segment_end__ - ( uint32_t ) __SRAM_segment_start__;
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulRegionLength );
ulRegionLength |= portMPU_REGION_ENABLE;
/* MPU Settings is zero'd out in the TCB before this function is called.
* We, therefore, do not need to explicitly zero out unused MPU regions
* in xMPUSettings. */
ulIndex = portSTACK_REGION;
xMPUSettings->xRegion[ ulIndex ].ulRegionBaseAddress = ( uint32_t ) __SRAM_segment_start__;
xMPUSettings->xRegion[ ulIndex ].ulRegionSize = ( ulRegionLengthEncoded |
portMPU_REGION_ENABLE );
xMPUSettings->xRegion[ ulIndex ].ulRegionAttribute = ( portMPU_REGION_PRIV_RW_USER_RW_NOEXEC |
portMPU_REGION_NORMAL_OIWTNOWA_SHARED );
}
else
{
for( ulIndex = 0UL; ulIndex < portNUM_CONFIGURABLE_REGIONS; ulIndex++ )
{
/* If a length has been provided, the region is in use. */
if( ( xRegions[ ulIndex ] ).ulLengthInBytes > 0UL )
{
ulRegionLength = xRegions[ ulIndex ].ulLengthInBytes;
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulRegionLength );
/* MPU region base address must be aligned to the region size
* boundary. */
ulRegionLengthDecoded = 2UL << ( ulRegionLengthEncoded >> 1UL );
configASSERT( ( ( ( uint32_t ) xRegions[ ulIndex ].pvBaseAddress ) % ( ulRegionLengthDecoded ) ) == 0UL );
xMPUSettings->xRegion[ ulIndex ].ulRegionBaseAddress = ( uint32_t ) xRegions[ ulIndex ].pvBaseAddress;
xMPUSettings->xRegion[ ulIndex ].ulRegionSize = ( ulRegionLengthEncoded |
portMPU_REGION_ENABLE );
xMPUSettings->xRegion[ ulIndex ].ulRegionAttribute = xRegions[ ulIndex ].ulParameters;
}
else
{
xMPUSettings->xRegion[ ulIndex ].ulRegionBaseAddress = 0x0UL;
xMPUSettings->xRegion[ ulIndex ].ulRegionSize = 0x0UL;
xMPUSettings->xRegion[ ulIndex ].ulRegionAttribute = 0x0UL;
}
}
/* This function is called automatically when the task is created - in
* which case the stack region parameters will be valid. At all other
* times the stack parameters will not be valid and it is assumed that the
* stack region has already been configured. */
if( ulStackDepth != 0x0UL )
{
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulStackDepth * ( uint32_t ) sizeof( StackType_t ) );
/* MPU region base address must be aligned to the region size
* boundary. */
ulRegionLengthDecoded = 2UL << ( ulRegionLengthEncoded >> 1UL );
configASSERT( ( ( uint32_t ) pxBottomOfStack % ( ulRegionLengthDecoded ) ) == 0U );
ulIndex = portSTACK_REGION;
xMPUSettings->xRegion[ ulIndex ].ulRegionBaseAddress = ( uint32_t ) pxBottomOfStack;
xMPUSettings->xRegion[ ulIndex ].ulRegionSize = ( ulRegionLengthEncoded |
portMPU_REGION_ENABLE );;
xMPUSettings->xRegion[ ulIndex ].ulRegionAttribute = ( portMPU_REGION_PRIV_RW_USER_RW_NOEXEC |
portMPU_REGION_NORMAL_OIWTNOWA_SHARED );
}
}
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
BaseType_t xPortIsTaskPrivileged( void )
{
BaseType_t xTaskIsPrivileged = pdFALSE;
/* Calling task's MPU settings. */
const xMPU_SETTINGS * xTaskMpuSettings = xTaskGetMPUSettings( NULL );
if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
{
xTaskIsPrivileged = pdTRUE;
}
return xTaskIsPrivileged;
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
BaseType_t xPortStartScheduler( void )
{
/* Start the timer that generates the tick ISR. */
configSETUP_TICK_INTERRUPT();
/* Configure MPU regions that are common to all tasks. */
prvSetupMPU();
prvPortSchedulerRunning = pdTRUE;
/* Load the context of the first task. */
vPortStartFirstTask();
/* Will only get here if vTaskStartScheduler() was called with the CPU in
* a non-privileged mode or the binary point register was not set to its lowest
* possible value. prvTaskExitError() is referenced to prevent a compiler
* warning about it being defined but not referenced in the case that the user
* defines their own exit address. */
( void ) prvTaskExitError();
return pdFALSE;
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
static uint32_t prvGetMPURegionSizeEncoding( uint32_t ulActualMPURegionSize )
{
uint32_t ulRegionSize, ulReturnValue = 4U;
/* 32 bytes is the smallest valid region for Cortex R4 and R5 CPUs. */
for( ulRegionSize = 0x20UL; ulReturnValue < 0x1FUL; ( ulRegionSize <<= 1UL ) )
{
if( ulActualMPURegionSize <= ulRegionSize )
{
break;
}
else
{
ulReturnValue++;
}
}
/* Shift the code by one before returning so it can be written directly
* into the the correct bit position of the attribute register. */
return ulReturnValue << 1UL;
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
static void prvSetupMPU( void )
{
#if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code. */
/* Sections used for FLASH. */
extern uint32_t * __FLASH_segment_start__;
extern uint32_t * __FLASH_segment_end__;
extern uint32_t * __privileged_functions_start__;
extern uint32_t * __privileged_functions_end__;
/* Sections used for RAM. */
extern uint32_t * __SRAM_segment_start__;
extern uint32_t * __SRAM_segment_end__;
extern uint32_t * __privileged_data_start__;
extern uint32_t * __privileged_data_end__;
#else
/* Declaration when these variable are exported from linker scripts. */
/* Sections used for FLASH. */
extern uint32_t __FLASH_segment_start__[];
extern uint32_t __FLASH_segment_end__[];
extern uint32_t __privileged_functions_start__[];
extern uint32_t __privileged_functions_end__[];
/* Sections used for RAM. */
extern uint32_t __SRAM_segment_start__[];
extern uint32_t __SRAM_segment_end__[];
extern uint32_t __privileged_data_start__[];
extern uint32_t __privileged_data_end__[];
#endif /* if defined( __ARMCC_VERSION ) */
uint32_t ulRegionLength;
uint32_t ulRegionLengthEncoded;
/* Disable the MPU before programming it. */
vMPUDisable();
/* Priv: RX, Unpriv: RX for entire Flash. */
ulRegionLength = ( uint32_t ) __FLASH_segment_end__ - ( uint32_t ) __FLASH_segment_start__;
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulRegionLength );
vMPUSetRegion( portUNPRIVILEGED_FLASH_REGION,
( uint32_t ) __FLASH_segment_start__,
( ulRegionLengthEncoded | portMPU_REGION_ENABLE ),
( portMPU_REGION_PRIV_RO_USER_RO_EXEC |
portMPU_REGION_NORMAL_OIWTNOWA_SHARED ) );
/* Priv: RX, Unpriv: No access for privileged functions. */
ulRegionLength = ( uint32_t ) __privileged_functions_end__ - ( uint32_t ) __privileged_functions_start__;
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulRegionLength );
vMPUSetRegion( portPRIVILEGED_FLASH_REGION,
( uint32_t ) __privileged_functions_start__,
( ulRegionLengthEncoded | portMPU_REGION_ENABLE ),
( portMPU_REGION_PRIV_RO_USER_NA_EXEC |
portMPU_REGION_NORMAL_OIWTNOWA_SHARED ) );
/* Priv: RW, Unpriv: No Access for privileged data. */
ulRegionLength = ( uint32_t ) __privileged_data_end__ - ( uint32_t ) __privileged_data_start__;
ulRegionLengthEncoded = prvGetMPURegionSizeEncoding( ulRegionLength );
vMPUSetRegion( portPRIVILEGED_RAM_REGION,
( uint32_t ) __privileged_data_start__,
( ulRegionLengthEncoded | portMPU_REGION_ENABLE ),
( portMPU_REGION_PRIV_RW_USER_NA_NOEXEC |
portMPU_REGION_PRIV_RW_USER_NA_NOEXEC ) );
/* Enable the MPU background region - it allows privileged operating modes
* access to unmapped regions of memory without generating a fault. */
vMPUEnableBackgroundRegion();
/* After setting default regions, enable the MPU. */
vMPUEnable();
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
static BaseType_t prvMPURegionAuthorizesBuffer( const xMPU_REGION_REGISTERS * xTaskMPURegion,
const uint32_t ulBufferStart,
const uint32_t ulBufferLength,
const uint32_t ulAccessRequested )
{
BaseType_t xAccessGranted = pdFALSE;
uint32_t ulBufferEnd;
uint32_t ulMPURegionLength;
uint32_t ulMPURegionStart;
uint32_t ulMPURegionEnd;
uint32_t ulMPURegionAccessPermissions;
if( portADD_UINT32_WILL_OVERFLOW( ulBufferStart, ( ulBufferLength - 1UL ) ) == pdFALSE )
{
ulBufferEnd = ulBufferStart + ulBufferLength - 1UL;
ulMPURegionLength = 2UL << ( xTaskMPURegion->ulRegionSize >> 1UL );
ulMPURegionStart = xTaskMPURegion->ulRegionBaseAddress;
ulMPURegionEnd = xTaskMPURegion->ulRegionBaseAddress + ulMPURegionLength - 1UL;
if( ( ulBufferStart >= ulMPURegionStart ) &&
( ulBufferEnd <= ulMPURegionEnd ) &&
( ulBufferStart <= ulBufferEnd ) )
{
ulMPURegionAccessPermissions = xTaskMPURegion->ulRegionAttribute & portMPU_REGION_AP_BITMASK;
if( ulAccessRequested == tskMPU_READ_PERMISSION ) /* RO. */
{
if( ( ulMPURegionAccessPermissions == portMPU_REGION_PRIV_RW_USER_RO ) ||
( ulMPURegionAccessPermissions == portMPU_REGION_PRIV_RO_USER_RO ) ||
( ulMPURegionAccessPermissions == portMPU_REGION_PRIV_RW_USER_RW ) )
{
xAccessGranted = pdTRUE;
}
}
else if( ( ulAccessRequested & tskMPU_WRITE_PERMISSION ) != 0UL ) /* W or RW. */
{
if( ulMPURegionAccessPermissions == portMPU_REGION_PRIV_RW_USER_RW )
{
xAccessGranted = pdTRUE;
}
}
}
}
return xAccessGranted;
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength,
uint32_t ulAccessRequested )
{
BaseType_t xAccessGranted = pdFALSE;
uint32_t ulRegionIndex;
xMPU_SETTINGS * xTaskMPUSettings = NULL;
if( prvPortSchedulerRunning == pdFALSE )
{
/* Grant access to all the memory before the scheduler is started. It is
* necessary because there is no task running yet and therefore, we
* cannot use the permissions of any task. */
xAccessGranted = pdTRUE;
}
else
{
/* Calling task's MPU settings. */
xTaskMPUSettings = xTaskGetMPUSettings( NULL );
if( ( xTaskMPUSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
{
/* Privileged tasks have access to all the memory. */
xAccessGranted = pdTRUE;
}
else
{
for( ulRegionIndex = 0x0UL; ulRegionIndex < portTOTAL_NUM_REGIONS_IN_TCB; ulRegionIndex++ )
{
xAccessGranted = prvMPURegionAuthorizesBuffer( &( xTaskMPUSettings->xRegion[ ulRegionIndex ] ),
( uint32_t ) pvBuffer,
ulBufferLength,
ulAccessRequested );
if( xAccessGranted == pdTRUE )
{
break;
}
}
}
}
return xAccessGranted;
}
/* ----------------------------------------------------------------------------------- */
#if( configENABLE_ACCESS_CONTROL_LIST == 1 )
/* PRIVILEGED_FUNCTION */
BaseType_t xPortIsAuthorizedToAccessKernelObject( int32_t lInternalIndexOfKernelObject )
{
uint32_t ulAccessControlListEntryIndex, ulAccessControlListEntryBit;
BaseType_t xAccessGranted = pdFALSE;
const xMPU_SETTINGS * xTaskMpuSettings;
if( prvPortSchedulerRunning == pdFALSE )
{
/* Grant access to all the kernel objects before the scheduler
* is started. It is necessary because there is no task running
* yet and therefore, we cannot use the permissions of any
* task. */
xAccessGranted = pdTRUE;
}
else
{
/* Calling task's MPU settings. */
xTaskMpuSettings = xTaskGetMPUSettings( NULL );
ulAccessControlListEntryIndex = ( ( uint32_t ) lInternalIndexOfKernelObject
/ portACL_ENTRY_SIZE_BITS );
ulAccessControlListEntryBit = ( ( uint32_t ) lInternalIndexOfKernelObject
% portACL_ENTRY_SIZE_BITS );
if( ( xTaskMpuSettings->ulTaskFlags & portTASK_IS_PRIVILEGED_FLAG ) == portTASK_IS_PRIVILEGED_FLAG )
{
xAccessGranted = pdTRUE;
}
else
{
if( ( ( xTaskMpuSettings->ulAccessControlList[ ulAccessControlListEntryIndex ] ) &
( 1U << ulAccessControlListEntryBit ) ) != 0UL )
{
xAccessGranted = pdTRUE;
}
}
}
return xAccessGranted;
}
#else
/* PRIVILEGED_FUNCTION */
BaseType_t xPortIsAuthorizedToAccessKernelObject( int32_t lInternalIndexOfKernelObject )
{
( void ) lInternalIndexOfKernelObject;
/* If Access Control List feature is not used, all the tasks have
* access to all the kernel objects. */
return pdTRUE;
}
#endif /* #if ( configENABLE_ACCESS_CONTROL_LIST == 1 ) */
/* ----------------------------------------------------------------------------------- */
#if( configENABLE_ACCESS_CONTROL_LIST == 1 )
/* PRIVILEGED_FUNCTION */
void vPortGrantAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject )
{
uint32_t ulAccessControlListEntryIndex, ulAccessControlListEntryBit;
xMPU_SETTINGS * xTaskMpuSettings;
ulAccessControlListEntryIndex = ( ( uint32_t ) lInternalIndexOfKernelObject
/ portACL_ENTRY_SIZE_BITS );
ulAccessControlListEntryBit = ( ( uint32_t ) lInternalIndexOfKernelObject
% portACL_ENTRY_SIZE_BITS );
xTaskMpuSettings = xTaskGetMPUSettings( xInternalTaskHandle );
xTaskMpuSettings->ulAccessControlList[ ulAccessControlListEntryIndex ] |= ( 1U << ulAccessControlListEntryBit );
}
#endif /* #if ( configENABLE_ACCESS_CONTROL_LIST == 1 ) */
/* ----------------------------------------------------------------------------------- */
#if( configENABLE_ACCESS_CONTROL_LIST == 1 )
/* PRIVILEGED_FUNCTION */
void vPortRevokeAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject )
{
uint32_t ulAccessControlListEntryIndex, ulAccessControlListEntryBit;
xMPU_SETTINGS * xTaskMpuSettings;
ulAccessControlListEntryIndex = ( ( uint32_t ) lInternalIndexOfKernelObject
/ portACL_ENTRY_SIZE_BITS );
ulAccessControlListEntryBit = ( ( uint32_t ) lInternalIndexOfKernelObject
% portACL_ENTRY_SIZE_BITS );
xTaskMpuSettings = xTaskGetMPUSettings( xInternalTaskHandle );
xTaskMpuSettings->ulAccessControlList[ ulAccessControlListEntryIndex ] &= ~( 1U << ulAccessControlListEntryBit );
}
#endif /* #if ( configENABLE_ACCESS_CONTROL_LIST == 1 ) */
/* ----------------------------------------------------------------------------------- */
void prvTaskExitError( void )
{
/* A function that implements a task must not exit or attempt to return to
* its caller as there is nothing to return to. If a task wants to exit it
* should instead call vTaskDelete( NULL ).
*
* Artificially force an assert() to be triggered if configASSERT() is
* defined, then stop here so application writers can catch the error. */
configASSERT( ulPortInterruptNesting == ~0UL );
for( ;; )
{
}
}
/* ----------------------------------------------------------------------------------- */
void vPortEndScheduler( void )
{
prvPortSchedulerRunning = pdFALSE;
/* Not implemented in this port. Artificially force an assert. */
configASSERT( prvPortSchedulerRunning == pdTRUE );
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
void vPortEnterCritical( void )
{
portDISABLE_INTERRUPTS();
/* Now that interrupts are disabled, ulCriticalNesting can be accessed
* directly. Increment ulCriticalNesting to keep a count of how many times
* portENTER_CRITICAL() has been called. */
ulCriticalNesting++;
/* This is not the interrupt safe version of the enter critical function so
* assert() if it is being called from an interrupt context. Only API
* functions that end in "FromISR" can be used in an interrupt. Only assert
* if the critical nesting count is 1 to protect against recursive calls if
* the assert function also uses a critical section. */
if( ulCriticalNesting == 1 )
{
configASSERT( ulPortInterruptNesting == 0 );
}
}
/* ----------------------------------------------------------------------------------- */
/* PRIVILEGED_FUNCTION */
void vPortExitCritical( void )
{
if( ulCriticalNesting > portNO_CRITICAL_NESTING )
{
/* Decrement the nesting count as the critical section is being
* exited. */
ulCriticalNesting--;
/* If the nesting level has reached zero then all interrupt
* priorities must be re-enabled. */
if( ulCriticalNesting == portNO_CRITICAL_NESTING )
{
/* Critical nesting has reached zero so all interrupt priorities
* should be unmasked. */
portENABLE_INTERRUPTS();
}
}
}
/* ----------------------------------------------------------------------------------- */

View file

@ -0,0 +1,498 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
.arm
.syntax unified
.section privileged_functions
#define FREERTOS_ASSEMBLY
#include "portmacro_asm.h"
#include "mpu_syscall_numbers.h"
#undef FREERTOS_ASSEMBLY
/* External FreeRTOS-Kernel variables. */
.extern pxCurrentTCB
.extern uxSystemCallImplementations
.extern ulPortInterruptNesting
.extern ulPortYieldRequired
/* External Llnker script variables. */
.extern __syscalls_flash_start__
.extern __syscalls_flash_end__
/* External FreeRTOS-Kernel functions. */
.extern vTaskSwitchContext
.extern vApplicationIRQHandler
/* ----------------------------------------------------------------------------------- */
/* Save the context of a FreeRTOS Task. */
.macro portSAVE_CONTEXT
DSB
ISB
/* Push R0 and LR to the stack for current mode. */
PUSH { R0, LR }
LDR LR, =pxCurrentTCB /* LR = &( pxCurrentTCB ). */
LDR LR, [LR] /* LR = pxCurrentTCB. */
LDR LR, [LR] /* LR = pxTopOfStack i.e. the address where to store the task context. */
LDR R0, =ulCriticalNesting /* R0 = &( ulCriticalNesting ). */
LDR R0, [R0] /* R0 = ulCriticalNesting. */
STM LR!, { R0 } /* Store ulCriticalNesting. ! increments LR after storing. */
#if ( portENABLE_FPU == 1 )
VMRS R0, FPSCR /* R0 = FPSCR. */
STM LR!, { R0 } /* Store FPSCR. */
VSTM LR!, { D0-D15 } /* Store D0-D15. */
#endif /* ( portENABLE_FPU == 1 ) */
POP { R0 } /* Restore R0 to pre-exception value. */
/* STM (user registers) - In a PL1 mode other than System mode, STM (user
* registers) instruction stores multiple User mode registers to
* consecutive memory locations using an address from a base register. The
* processor reads the base register value normally, using the current mode
* to determine the correct Banked version of the register. This instruction
* cannot writeback to the base register.
*
* The following can be derived from the above description:
* - The macro portSAVE_CONTEXT MUST be called from a PL1 mode other than
* the System mode.
* - Base register LR of the current mode will be used which contains the
* location to store the context.
* - It will store R0-R14 of User mode i.e. pre-exception SP(R13) and LR(R14)
* will be stored. */
STM LR, { R0-R14 }^
ADD LR, LR, #60 /* R0-R14 - Total 155 register, each 4 byte wide. */
POP { R0 } /* Pre-exception PC is in R0. */
MRS R1, SPSR /* R1 = Pre-exception CPSR. */
STM LR!, { R0-R1 } /* Store pre-exception PC and CPSR. */
.endm
/* ----------------------------------------------------------------------------------- */
/* Restore the context of a FreeRTOS Task. */
.macro portRESTORE_CONTEXT
/* Load the pointer to the current task's Task Control Block (TCB). */
LDR LR, =pxCurrentTCB /* LR = &( pxCurrentTCB ). */
LDR LR, [LR] /* LR = pxCurrentTCB. */
ADD R1, LR, #0x4 /* R1 now points to the xMPUSettings in TCB. */
LDR LR, [LR] /* LR = pxTopOfStack i.e. the address where to restore the task context from. */
/* When creating a loop label in a macro it has to be a numeric label.
* for( R5 = portFIRST_CONFIGURABLE_REGION ; R5 <= portNUM_CONFIGURABLE_REGIONS ; R5++ ) */
MOV R5, #portFIRST_CONFIGURABLE_REGION
123:
LDMIA R1!, { R2-R4 } /* R2 = ulRegionSize, R3 = ulRegionAttribute, R4 = ulRegionBaseAddress. */
MCR p15, #0, R5, c6, c2, #0 /* MPU Region Number Register. */
MCR p15, #0, R4, c6, c1, #0 /* MPU Region Base Address Register. */
MCR p15, #0, R3, c6, c1, #4 /* MPU Region Access Control Register. */
MCR p15, #0, R2, c6, c1, #2 /* MPU Region Size and Enable Register. */
ADD R5, R5, #1
CMP R5, #portNUM_CONFIGURABLE_REGIONS
BLE 123b
LDR R1, =ulCriticalNesting /* R1 = &( ulCriticalNesting ). */
LDM LR!, { R2 } /* R2 = Stored ulCriticalNesting. */
STR R2, [R1] /* Restore ulCriticalNesting. */
#if ( portENABLE_FPU == 1 )
LDM LR!, { R1 } /* R1 = Stored FPSCR. */
VMSR FPSCR, R1 /* Restore FPSCR. */
VLDM LR!, { D0-D15 } /* Restore D0-D15. */
#endif /* portENABLE_FPU*/
/* LDM (User registers) - In a PL1 mode other than System mode, LDM (User
* registers) loads multiple User mode registers from consecutive memory
* locations using an address from a base register. The registers loaded
* cannot include the PC. The processor reads the base register value
* normally, using the current mode to determine the correct Banked version
* of the register. This instruction cannot writeback to the base register.
*
* The following can be derived from the above description:
* - The macro portRESTORE_CONTEXT MUST be called from a PL1 mode other than
* the System mode.
* - Base register LR of the current mode will be used which contains the
* location to restore the context from.
* - It will restore R0-R14 of User mode i.e. SP(R13) and LR(R14) of User
* mode will be restored.
*/
LDM LR, { R0-R14 }^
ADD LR, LR, #60 /* R0-R14 - Total 155 register, each 4 byte wide. */
RFE LR /* Restore PC and CPSR from the context. */
.endm
/* ----------------------------------------------------------------------------------- */
/*
* void vPortStartFirstTask( void );
*/
.align 4
.global vPortStartFirstTask
.type vPortStartFirstTask, %function
vPortStartFirstTask:
/* This function is called from System Mode to start the FreeRTOS-Kernel.
* As described in the portRESTORE_CONTEXT macro, portRESTORE_CONTEXT cannot
* be called from the System mode. We, therefore, switch to the Supervisor
* mode before calling portRESTORE_CONTEXT. */
CPS #SVC_MODE
portRESTORE_CONTEXT
/* ----------------------------------------------------------------------------------- */
.align 4
.global FreeRTOS_SVC_Handler
.type FreeRTOS_SVC_Handler, %function
FreeRTOS_SVC_Handler:
PUSH { R11-R12 }
/* ------------------------- Caller Flash Location Check ------------------------- */
LDR R11, =__syscalls_flash_start__
LDR R12, =__syscalls_flash_end__
CMP LR, R11 /* If SVC instruction address is less than __syscalls_flash_start__, exit. */
BLT svcHandlerExit
CMP LR, R12 /* If SVC instruction address is greater than __syscalls_flash_end__, exit. */
BGT svcHandlerExit
/* ---------------------------- Get Caller SVC Number ---------------------------- */
MRS R11, SPSR /* LR = CPSR at the time of SVC. */
TST R11, #0x20 /* Check Thumb bit (5) in CPSR. */
LDRHNE R11, [LR, #-0x2] /* If Thumb, load halfword. */
BICNE R11, R11, #0xFF00 /* And extract immidiate field (i.e. SVC number). */
LDREQ R11, [LR, #-0x4] /* If ARM, load word. */
BICEQ R11, R11, #0xFF000000 /* And extract immidiate field (i.e. SVC number). */
/* --------------------------------- SVC Routing --------------------------------- */
/* If SVC Number < #NUM_SYSTEM_CALLS, go to svcSystemCallEnter. */
CMP R11, #NUM_SYSTEM_CALLS
BLT svcSystemCallEnter
/* If SVC Number == #portSVC_SYSTEM_CALL_EXIT, go to svcSystemCallExit. */
CMP R11, #portSVC_SYSTEM_CALL_EXIT
BEQ svcSystemCallExit
/* If SVC Number == #portSVC_YIELD, go to svcPortYield. */
CMP R11, #portSVC_YIELD
BEQ svcPortYield
svcHandlerExit:
POP { R11-R12 }
MOVS PC, LR /* Copies the SPSR into the CPSR, performing the mode swap. */
svcPortYield:
POP { R11-R12 }
portSAVE_CONTEXT
BL vTaskSwitchContext
portRESTORE_CONTEXT
svcSystemCallExit:
LDR R11, =pxCurrentTCB /* R11 = &( pxCurrentTCB ). */
LDR R11, [R11] /* R11 = pxCurrentTCB. */
ADD R11, R11, #portSYSTEM_CALL_INFO_OFFSET /* R11 now points to xSystemCallStackInfo in TCB. */
/* Restore the user mode SP and LR. */
LDM R11, { R13-R14 }^
AND R12, R12, #0x0 /* R12 = 0. */
STR R12, [R11] /* xSystemCallStackInfo.pulTaskStackPointer = NULL. */
STR R12, [R11, #0x4] /* xSystemCallStackInfo.pulLinkRegisterAtSystemCallEntry = NULL. */
LDMDB R11, { R12 } /* R12 = ulTaskFlags. */
TST R12, #portTASK_IS_PRIVILEGED_FLAG
/* If the task is privileged, we can exit now. */
BNE svcHandlerExit
/* Otherwise, we need to switch back to User mode. */
MRS R12, SPSR
BIC R12, R12, #0x0F
MSR SPSR_cxsf, R12
B svcHandlerExit
svcSystemCallEnter:
LDR R12, =uxSystemCallImplementations /* R12 = uxSystemCallImplementations. */
/* R12 = uxSystemCallImplementations[ R12 + ( R11 << 2 ) ].
* R12 now contains the address of the system call impl function. */
LDR R12, [R12, R11, lsl #2]
/* If R12 == NULL, exit. */
CMP R12, #0x0
BEQ svcHandlerExit
/* It is okay to clobber LR here because we do not need to return to the
* SVC enter location anymore. LR now contains the address of the system
* call impl function. */
MOV LR, R12
LDR R11, =pxCurrentTCB /* R11 = &( pxCurrentTCB ). */
LDR R11, [R11] /* R11 = pxCurrentTCB. */
ADD R11, R11, #portSYSTEM_CALL_INFO_OFFSET /* R11 now points to xSystemCallStackInfo in TCB. */
/* Store User mode SP and LR in xSystemCallStackInfo.pulTaskStackPointer and
* xSystemCallStackInfo.pulLinkRegisterAtSystemCallEntry. */
STM R11, { R13-R14 }^
ADD R11, R11, 0x8
/* Load User mode SP an LR with xSystemCallStackInfo.pulSystemCallStackPointer
* and xSystemCallStackInfo.pulSystemCallExitAddress. */
LDM R11, { R13-R14 }^
/* Change to SYS_MODE for the System Call. */
MRS R12, SPSR
ORR R12, R12, #SYS_MODE
MSR SPSR_cxsf, R12
B svcHandlerExit
/* ----------------------------------------------------------------------------------- */
/*
* void vPortDisableInterrupts( void );
*/
.align 4
.global vPortDisableInterrupts
.type vPortDisableInterrupts, %function
vPortDisableInterrupts:
CPSID I
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vPortEnableInterrupts( void );
*/
.align 4
.global vPortEnableInterrupts
.type vPortEnableInterrupts, %function
vPortEnableInterrupts:
CPSIE I
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vMPUSetRegion( uint32_t ulRegionNumber,
* uint32_t ulBaseAddress,
* uint32_t ulRegionSize,
* uint32_t ulRegionPermissions );
*
* According to the Procedure Call Standard for the ARM Architecture (AAPCS),
* paramters are passed in the following registers:
* R0 = ulRegionNumber.
* R1 = ulBaseAddress.
* R2 = ulRegionSize.
* R3 = ulRegionPermissions.
*/
.align 4
.global vMPUSetRegion
.type vMPUSetRegion, %function
vMPUSetRegion:
AND R0, R0, #0x0F /* R0 = R0 & 0x0F. Max possible region number is 15. */
MCR p15, #0, R0, c6, c2, #0 /* MPU Region Number Register. */
MCR p15, #0, R1, c6, c1, #0 /* MPU Region Base Address Register. */
MCR p15, #0, R3, c6, c1, #4 /* MPU Region Access Control Register. */
MCR p15, #0, R2, c6, c1, #2 /* MPU Region Size and Enable Register. */
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vMPUEnable( void );
*/
.align 4
.global vMPUEnable
.type vMPUEnable, %function
vMPUEnable:
PUSH { R0 }
MRC p15, #0, R0, c1, c0, #0 /* R0 = System Control Register (SCTLR). */
ORR R0, R0, #0x1 /* R0 = R0 | 0x1. Set the M bit in SCTLR. */
DSB
MCR p15, #0, R0, c1, c0, #0 /* SCTLR = R0. */
ISB
POP { R0 }
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vMPUDisable( void );
*/
.align 4
.global vMPUDisable
.type vMPUDisable, %function
vMPUDisable:
PUSH { R0 }
MRC p15, #0, R0, c1, c0, #0 /* R0 = System Control Register (SCTLR). */
BIC R0, R0, #1 /* R0 = R0 & ~0x1. Clear the M bit in SCTLR. */
/* Wait for all pending data accesses to complete. */
DSB
MCR p15, #0, R0, c1, c0, #0 /* SCTLR = R0. */
/* Flush the pipeline and prefetch buffer(s) in the processor to ensure that
* all following instructions are fetched from cache or memory. */
ISB
POP { R0 }
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vMPUEnableBackgroundRegion( void );
*/
.align 4
.global vMPUEnableBackgroundRegion
.type vMPUEnableBackgroundRegion, %function
vMPUEnableBackgroundRegion:
PUSH { R0 }
MRC p15, #0, R0, c1, c0, #0 /* R0 = System Control Register (SCTLR). */
ORR R0, R0, #0x20000 /* R0 = R0 | 0x20000. Set the BR bit in SCTLR. */
MCR p15, #0, R0, c1, c0, #0 /* SCTLR = R0. */
POP { R0 }
BX LR
/* ----------------------------------------------------------------------------------- */
/*
* void vMPUDisableBackgroundRegion( void );
*/
.align 4
.global vMPUDisableBackgroundRegion
.type vMPUDisableBackgroundRegion, %function
vMPUDisableBackgroundRegion:
PUSH { R0 }
MRC p15, 0, R0, c1, c0, 0 /* R0 = System Control Register (SCTLR). */
BIC R0, R0, #0x20000 /* R0 = R0 & ~0x20000. Clear the BR bit in SCTLR. */
MCR p15, 0, R0, c1, c0, 0 /* SCTLR = R0. */
POP { R0 }
BX LR
/* ----------------------------------------------------------------------------------- */
.align 4
.global FreeRTOS_IRQ_Handler
.type FreeRTOS_IRQ_Handler, %function
FreeRTOS_IRQ_Handler:
SUB LR, LR, #4 /* Return to the interrupted instruction. */
SRSDB SP!, #IRQ_MODE /* Save return state (i.e. SPSR_irq and LR_irq) to the IRQ stack. */
/* Change to supervisor mode to allow reentry. It is necessary to ensure
* that a BL instruction within the interrupt handler code does not
* overwrite LR_irq. */
CPS #SVC_MODE
PUSH { R0-R3, R12 } /* Push AAPCS callee saved registers. */
/* Update interrupt nesting count. */
LDR R0, =ulPortInterruptNesting /* R0 = &( ulPortInterruptNesting ). */
LDR R1, [R0] /* R1 = ulPortInterruptNesting. */
ADD R2, R1, #1 /* R2 = R1 + 1. */
STR R2, [R0] /* Store the updated nesting count. */
/* Call the application provided IRQ handler. */
PUSH { R0-R3, LR }
BL vApplicationIRQHandler
POP { R0-R3, LR }
/* Disable IRQs incase vApplicationIRQHandler enabled them for re-entry. */
CPSID I
DSB
ISB
/* Restore the old interrupt nesting count. R0 holds the address of
* ulPortInterruptNesting and R1 holds original value of
* ulPortInterruptNesting. */
STR R1, [R0]
/* Context switch is only performed when interrupt nesting count is 0. */
CMP R1, #0
BNE exit_without_switch
/* Check ulPortInterruptNesting to see if the interrupt requested a context
* switch. */
LDR R1, =ulPortYieldRequired /* R1 = &( ulPortYieldRequired ). */
LDR R0, [R1] /* R0 = ulPortYieldRequired. */
/* If ulPortYieldRequired != 0, goto switch_before_exit. */
CMP R0, #0
BNE switch_before_exit
exit_without_switch:
POP { R0-R3, R12 } /* Restore AAPCS callee saved registers. */
CPS #IRQ_MODE
RFE SP!
switch_before_exit:
/* A context switch is to be performed. Clear ulPortYieldRequired. R1 holds
* the address of ulPortYieldRequired. */
MOV R0, #0
STR R0, [R1]
/* Restore AAPCS callee saved registers, SPSR_irq and LR_irq before saving
* the task context. */
POP { R0-R3, R12 }
CPS #IRQ_MODE
/* The contents of the IRQ stack at this point is the following:
* +----------+
* SP+4 | SPSR_irq |
* +----------+
* SP | LR_irq |
* +----------+
*/
LDMIB SP!, { LR }
MSR SPSR_cxsf, LR
LDMDB SP, { LR }
ADD SP, SP, 0x4
portSAVE_CONTEXT
/* Call the function that selects the new task to execute. */
BLX vTaskSwitchContext
/* Restore the context of, and branch to, the task selected to execute
* next. */
portRESTORE_CONTEXT
/* ----------------------------------------------------------------------------------- */
.end

View file

@ -0,0 +1,529 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
#ifndef PORTMACRO_H
#define PORTMACRO_H
/**
* @brief Functions, Defines, and Structs for use in the ARM_CRx_MPU FreeRTOS-Port
* @file portmacro.h
* @note The settings in this file configure FreeRTOS correctly for the given
* hardware and compiler. These settings should not be altered.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* Include stdint for integer types of specific bit widths. */
#include <stdint.h>
/* ------------------------------ FreeRTOS Config Check ------------------------------ */
#ifndef configSYSTEM_CALL_STACK_SIZE
#error "Define configSYSTEM_CALL_STACK_SIZE to a length, in bytes, " \
"to use when an unprivileged task makes a FreeRTOS Kernel call. "
#endif /* configSYSTEM_CALL_STACK_SIZE */
#if( configUSE_MPU_WRAPPERS_V1 == 1 )
#error This port is usable with MPU wrappers V2 only.
#endif /* configUSE_MPU_WRAPPERS_V1 */
#ifndef configSETUP_TICK_INTERRUPT
#error "configSETUP_TICK_INTERRUPT() must be defined in FreeRTOSConfig.h " \
"to call the function that sets up the tick interrupt."
#endif /* configSETUP_TICK_INTERRUPT */
/* ----------------------------------------------------------------------------------- */
#if( configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 )
/* Check the configuration. */
#if( configMAX_PRIORITIES > 32 )
#error "configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when " \
"configMAX_PRIORITIES is less than or equal to 32. " \
"It is very rare that a system requires more than 10 to 15 difference " \
"priorities as tasks that share a priority will time slice."
#endif /* ( configMAX_PRIORITIES > 32 ) */
/**
* @brief Mark that a task of the given priority is ready.
*
* @ingroup Scheduler
*
* @param[in] uxPriority Priority of the task that is ready.
* @param[in] uxTopReadyPriority Bitmap of the ready tasks priorities.
*/
#define portRECORD_READY_PRIORITY( uxPriority, uxTopReadyPriority ) \
( uxTopReadyPriority ) |= ( 1UL << ( uxPriority ) )
/**
* @brief Mark that a task of the given priority is no longer ready.
*
* @ingroup Scheduler
*
* @param[in] uxPriority Priority of the task that is no longer ready.
* @param[in] uxTopReadyPriority Bitmap of the ready tasks priorities.
*/
#define portRESET_READY_PRIORITY( uxPriority, uxTopReadyPriority ) \
( uxTopReadyPriority ) &= ~( 1UL << ( uxPriority ) )
/**
* @brief Determine the highest priority ready task's priority.
*
* @ingroup Scheduler
*
* @param[in] uxTopReadyPriority Bitmap of the ready tasks priorities.
* @param[in] uxTopPriority The highest priority ready task's priority.
*/
#define portGET_HIGHEST_PRIORITY( uxTopPriority, uxTopReadyPriority ) \
( uxTopPriority ) = ( 31UL - ulPortCountLeadingZeros( ( uxTopReadyPriority ) ) )
#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */
/* ------------------------------ Port Type Definitions ------------------------------ */
#include "portmacro_asm.h"
/**
* @brief Critical section nesting value.
*
* @ingroup Critical Sections
*
* @note A task exits critical section and enables IRQs when its nesting count
* reaches this value.
*/
#define portNO_CRITICAL_NESTING ( ( uint32_t ) 0x0 )
/**
* @brief Bit in Current Program Status Register (CPSR) to indicate that CPU is
* in Thumb State.
*
* @ingroup Task Context
*/
#define portTHUMB_MODE_BIT ( ( StackType_t ) 0x20 )
/**
* @brief Bitmask to check if an address is of Thumb Code.
*
* @ingroup Task Context
*/
#define portTHUMB_MODE_ADDRESS ( 0x01UL )
/**
* @brief Data type used to represent a stack word.
*
* @ingroup Port Interface Specifications
*/
typedef uint32_t StackType_t;
/**
* @brief Signed data type equal to the data word operating size of the CPU.
*
* @ingroup Port Interface Specifications
*/
typedef int32_t BaseType_t;
/**
* @brief Unsigned data type equal to the data word operating size of the CPU.
*
* @ingroup Port Interface Specifications
*/
typedef uint32_t UBaseType_t;
/**
* @brief Data type used for the FreeRTOS Tick Counter.
*
* @note Using 32-bit tick type on a 32-bit architecture ensures that reads of
* the tick count do not need to be guarded with a critical section.
*/
typedef uint32_t TickType_t;
/**
* @brief Marks the direction the stack grows on the targeted CPU.
*
* @ingroup Port Interface Specifications
*/
#define portSTACK_GROWTH ( -1 )
/**
* @brief Specifies stack pointer alignment requirements of the target CPU.
*
* @ingroup Port Interface Specifications
*/
#define portBYTE_ALIGNMENT 8U
/**
* @brief Task function prototype macro as described on FreeRTOS.org.
*
* @ingroup Port Interface Specifications
*
* @note This is not required for this port but included in case common demo
* code uses it.
*/
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) \
void vFunction( void * pvParameters )
/**
* @brief Task function prototype macro as described on FreeRTOS.org.
*
* @ingroup Port Interface Specifications
*
* @note This is not required for this port but included in case common demo
* code uses it.
*/
#define portTASK_FUNCTION( vFunction, pvParameters ) \
void vFunction( void * pvParameters )
/**
* @brief The no-op ARM assembly instruction.
*
* @ingroup Port Interface Specifications
*/
#define portNOP() __asm volatile( "NOP" )
/**
* @brief The inline GCC label.
*
* @ingroup Port Interface Specifications
*/
#define portINLINE __inline
/**
* @brief The memory access synchronization barrier.
*
* @ingroup Port Interface Specifications
*/
#define portMEMORY_BARRIER() __asm volatile( "" ::: "memory" )
/**
* @brief Ensure a symbol isn't removed from the compilation unit.
*
* @ingroup Port Interface Specifications
*/
#define portDONT_DISCARD __attribute__( ( used ) )
/**
* @brief Defines if the tick count can be accessed atomically.
*
* @ingroup System Clock
*/
#define portTICK_TYPE_IS_ATOMIC 1
/**
* @brief The number of miliseconds between system ticks.
*
* @ingroup System Clock
*/
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000UL / configTICK_RATE_HZ )
/**
* @brief The largest possible delay value for any FreeRTOS API.
*
* @ingroup System Clock
*/
#define portMAX_DELAY ( TickType_t ) 0xFFFFFFFFUL
/* ----------------------------- Port Assembly Functions ----------------------------- */
/**
* @brief FreeRTOS Supervisor Call (SVC) Handler.
*
* @ingroup Scheduler
*/
void FreeRTOS_SVC_Handler( void );
/**
* @brief FreeRTOS Interrupt Handler.
*
* @ingroup Scheduler
*/
void FreeRTOS_IRQ_Handler( void );
/**
* @brief Yield the CPU.
*
* @ingroup Scheduler
*/
void vPortYield( void );
#define portYIELD() vPortYield()
/**
* @brief Enable interrupts.
*
* @ingroup Interrupt Management
*/
void vPortEnableInterrupts( void );
#define portENABLE_INTERRUPTS() vPortEnableInterrupts()
/**
* @brief Disable interrupts.
*
* @ingroup Interrupt Management
*/
void vPortDisableInterrupts( void );
#define portDISABLE_INTERRUPTS() vPortDisableInterrupts()
/**
* @brief Exit from a FreeRTO System Call.
*
* @ingroup Port Privilege
*/
void vPortSystemCallExit( void );
/**
* @brief Start executing first task.
*
* @ingroup Scheduler
*/
void vPortStartFirstTask( void );
/**
* @brief Enable the onboard MPU.
*
* @ingroup MPU Control
*/
void vMPUEnable( void );
/**
* @brief Disable the onboard MPU.
*
* @ingroup MPU Control
*/
void vMPUDisable( void );
/**
* @brief Enable the MPU Background Region.
*
* @ingroup MPU Control
*/
void vMPUEnableBackgroundRegion( void );
/**
* @brief Disable the MPU Background Region.
*
* @ingroup MPU Control
*/
void vMPUDisableBackgroundRegion( void );
/**
* @brief Set permissions for an MPU Region.
*
* @ingroup MPU Control
*
* @param[in] ulRegionNumber The MPU Region Number to set permissions for.
* @param[in] ulBaseAddress The base address of the MPU Region.
* @param[in] ulRegionSize The size of the MPU Region in bytes.
* @param[in] ulRegionPermissions The permissions associated with the MPU Region.
*
* @note This is an internal function and assumes that the inputs to this
* function are checked before calling this function.
*/
void vMPUSetRegion( uint32_t ulRegionNumber,
uint32_t ulBaseAddress,
uint32_t ulRegionSize,
uint32_t ulRegionPermissions );
/* ------------------------------- Port.c Declarations ------------------------------- */
/**
* @brief Enter critical section.
*
* @ingroup Critical Section
*/
void vPortEnterCritical( void );
#define portENTER_CRITICAL() vPortEnterCritical()
/**
* @brief Exit critical section.
*
* @ingroup Critical Section
*/
void vPortExitCritical( void );
#define portEXIT_CRITICAL() vPortExitCritical()
/**
* @brief Checks whether or not the processor is privileged.
*
* @ingroup Port Privilege
*
* @note The processor privilege level is determined by checking the
* mode bits [4:0] of the Current Program Status Register (CPSR).
*
* @return pdTRUE, if the processer is privileged, pdFALSE otherwise.
*/
BaseType_t xPortIsPrivileged( void );
#define portIS_PRIVILEGED() xPortIsPrivileged()
/**
* @brief Checks whether or not a task is privileged.
*
* @ingroup Port Privilege
*
* @note A task's privilege level is associated with the task and is different from
* the processor's privilege level returned by xPortIsPrivileged. For example,
* the processor is privileged when an unprivileged task executes a system call.
*
* @return pdTRUE if the task is privileged, pdFALSE otherwise.
*/
BaseType_t xPortIsTaskPrivileged( void );
#define portIS_TASK_PRIVILEGED() xPortIsTaskPrivileged()
/**
* @brief Default return address for tasks.
*
* @ingroup Task Context
*
* @note This function is used as the default return address for tasks if
* configTASK_RETURN_ADDRESS is not defined in FreeRTOSConfig.h.
*/
void prvTaskExitError( void );
#ifdef configTASK_RETURN_ADDRESS
#define portTASK_RETURN_ADDRESS configTASK_RETURN_ADDRESS
#else
#define portTASK_RETURN_ADDRESS prvTaskExitError
#endif /* configTASK_RETURN_ADDRESS */
/**
* @brief Returns the number of leading zeros in a 32 bit variable.
*
* @param[in] ulBitmap 32-Bit number to count leading zeros in.
*
* @return The number of leading zeros in ulBitmap.
*/
UBaseType_t ulPortCountLeadingZeros( UBaseType_t ulBitmap );
/**
* @brief End the FreeRTOS scheduler.
*
* Not implemented on this port.
*
* @ingroup Scheduler
*/
void vPortEndScheduler( void );
/* --------------------------------- MPU Definitions --------------------------------- */
/**
* @brief Mark that this port utilizes the onboard ARM MPU.
*
* @ingroup MPU Control
*/
#define portUSING_MPU_WRAPPERS 1
/**
* @brief Used to mark if a task should be created as a privileged task.
*
* @ingroup Task Context
* @ingroup MPU Control
*
* @note A privileged task is created by performing a bitwise OR of this value and
* the task priority. For example, to create a privileged task at priority 2, the
* uxPriority parameter should be set to ( 2 | portPRIVILEGE_BIT ).
*/
#define portPRIVILEGE_BIT ( 0x80000000UL )
/**
* @brief Size of an Access Control List (ACL) entry in bits.
*/
#define portACL_ENTRY_SIZE_BITS ( 32UL )
/**
* @brief Structure to hold the MPU Register Values.
*
* @struct xMPU_REGION_REGISTERS
*
* @ingroup MPU Control
*
* @note The ordering of this struct MUST be in sync with the ordering in
* portRESTORE_CONTEXT.
*/
typedef struct MPU_REGION_REGISTERS
{
uint32_t ulRegionSize; /* Information for MPU Region Size and Enable Register. */
uint32_t ulRegionAttribute; /* Information for MPU Region Access Control Register. */
uint32_t ulRegionBaseAddress; /* Information for MPU Region Base Address Register. */
} xMPU_REGION_REGISTERS;
/**
* @brief Structure to hold per-task System Call Stack information.
*
* @struct xSYSTEM_CALL_STACK_INFO
*
* @ingroup Port Privilege
*
* @note The ordering of this structure MUST be in sync with the assembly code
* of the port.
*/
typedef struct SYSTEM_CALL_STACK_INFO
{
uint32_t * pulTaskStackPointer; /**< Stack Pointer of the task when it made a FreeRTOS System Call. */
uint32_t * pulLinkRegisterAtSystemCallEntry; /**< Link Register of the task when it made a FreeRTOS System Call. */
uint32_t * pulSystemCallStackPointer; /**< Stack Pointer to use for executing a FreeRTOS System Call. */
uint32_t * pulSystemCallExitAddress; /**< System call exit address. */
uint32_t ulSystemCallStackBuffer[ configSYSTEM_CALL_STACK_SIZE ]; /**< Buffer to be used as stack when performing a FreeRTOS System Call. */
} xSYSTEM_CALL_STACK_INFO;
/**
* @brief Per-Task MPU settings structure stored in the TCB.
* @struct xMPU_SETTINGS
*
* @ingroup MPU Control
* @ingroup Task Context
* @ingroup Port Privilege
*
* @note The ordering of this structure MUST be in sync with the assembly code
* of the port.
*/
typedef struct MPU_SETTINGS
{
xMPU_REGION_REGISTERS xRegion[ portTOTAL_NUM_REGIONS_IN_TCB ];
uint32_t ulTaskFlags;
xSYSTEM_CALL_STACK_INFO xSystemCallStackInfo;
uint32_t ulContext[ CONTEXT_SIZE ]; /**< Buffer used to store task context. */
#if( configENABLE_ACCESS_CONTROL_LIST == 1 )
uint32_t ulAccessControlList[ ( configPROTECTED_KERNEL_OBJECT_POOL_SIZE
/ portACL_ENTRY_SIZE_BITS )
+ 1UL ];
#endif
} xMPU_SETTINGS;
#ifdef __cplusplus
} /* extern C */
#endif
#endif /* PORTMACRO_H */

View file

@ -0,0 +1,279 @@
/*
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
* Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: MIT
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
#ifndef PORTMACRO_ASM_H
#define PORTMACRO_ASM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "FreeRTOSConfig.h"
#ifndef configTOTAL_MPU_REGIONS
#error "Set configTOTAL_MPU_REGIONS to the humber of MPU regions in FreeRTOSConfig.h"
#elif( configTOTAL_MPU_REGIONS == 12 )
#define portMPU_TOTAL_REGIONS ( 12UL )
#elif( configTOTAL_MPU_REGIONS == 16 )
#define portMPU_TOTAL_REGIONS ( 16UL )
#else
#error "Set configTOTAL_MPU_REGIONS to the number of MPU regions in FreeRTOSConfig.h"
#endif /* configTOTAL_MPU_REGIONS */
/*
* The application write can disable Floating Point Unit (FPU) support by
* setting configENABLE_FPU to 0. Floating point context stored in TCB
* comprises of 32 floating point registers (D0-D31) and FPSCR register.
* Disabling FPU, therefore, reduces the per-task RAM usage by
* ( 32 + 1 ) * 4 = 132 bytes per task.
*
* BE CAREFUL DISABLING THIS: Certain standard library APIs try to optimize
* themselves by using the floating point registers. If the FPU support is
* disabled, the use of such APIs may result in memory corruption.
*/
#ifndef configENABLE_FPU
#define configENABLE_FPU 1
#endif /* configENABLE_FPU */
#define portENABLE_FPU configENABLE_FPU
/* On the ArmV7-R Architecture the Operating mode of the Processor is set
* using the Current Program Status Register (CPSR) Mode bits, [4:0]. The only
* unprivileged mode is User Mode.
*
* Additional information about the Processor Modes can be found here:
* https://developer.arm.com/documentation/ddi0406/cb/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-processor-modes?lang=en
*
*/
/**
* @brief CPSR bits for various processor modes.
*
* @ingroup Port Privilege
*/
#define USER_MODE 0x10U
#define FIQ_MODE 0x11U
#define IRQ_MODE 0x12U
#define SVC_MODE 0x13U
#define MON_MODE 0x16U
#define ABT_MODE 0x17U
#define HYP_MODE 0x1AU
#define UND_MODE 0x1BU
#define SYS_MODE 0x1FU
/**
* @brief Flag used to mark that a FreeRTOS Task is privileged.
*
* @ingroup Port Privilege
*/
#define portTASK_IS_PRIVILEGED_FLAG ( 1UL << 1UL )
/**
* @brief SVC numbers for various scheduler operations.
*
* @ingroup Scheduler
*
* @note These value must not be used in mpu_syscall_numbers.h.
*/
#define portSVC_YIELD 0x0100U
#define portSVC_SYSTEM_CALL_EXIT 0x0104U
/**
* @brief Macros required to manipulate MPU.
*
* Further information about MPU can be found in Arm's documentation
* https://developer.arm.com/documentation/ddi0363/g/System-Control/Register-descriptions/c6--MPU-memory-region-programming-registers
*
*/
/* MPU sub-region disable settings. This information is encoded in the MPU
* Region Size and Enable Register. */
#define portMPU_SUBREGION_0_DISABLE ( 0x1UL << 8UL )
#define portMPU_SUBREGION_1_DISABLE ( 0x1UL << 9UL )
#define portMPU_SUBREGION_2_DISABLE ( 0x1UL << 10UL )
#define portMPU_SUBREGION_3_DISABLE ( 0x1UL << 11UL )
#define portMPU_SUBREGION_4_DISABLE ( 0x1UL << 12UL )
#define portMPU_SUBREGION_5_DISABLE ( 0x1UL << 13UL )
#define portMPU_SUBREGION_6_DISABLE ( 0x1UL << 14UL )
#define portMPU_SUBREGION_7_DISABLE ( 0x1UL << 15UL )
/* Default MPU regions. */
#define portFIRST_CONFIGURABLE_REGION ( 0 )
#define portLAST_CONFIGURABLE_REGION ( portMPU_TOTAL_REGIONS - 5UL )
#define portSTACK_REGION ( portMPU_TOTAL_REGIONS - 4UL )
#define portUNPRIVILEGED_FLASH_REGION ( portMPU_TOTAL_REGIONS - 3UL )
#define portPRIVILEGED_FLASH_REGION ( portMPU_TOTAL_REGIONS - 2UL )
#define portPRIVILEGED_RAM_REGION ( portMPU_TOTAL_REGIONS - 1UL )
#define portNUM_CONFIGURABLE_REGIONS \
( ( portLAST_CONFIGURABLE_REGION - portFIRST_CONFIGURABLE_REGION ) + 1UL )
/* Plus one to make space for the stack region. */
#define portTOTAL_NUM_REGIONS_IN_TCB ( portNUM_CONFIGURABLE_REGIONS + 1UL )
/* MPU region sizes. This information is encoded in the MPU Region Size and
* Enable Register. */
#define portMPU_REGION_SIZE_32B ( 0x04UL << 1UL )
#define portMPU_REGION_SIZE_64B ( 0x05UL << 1UL )
#define portMPU_REGION_SIZE_128B ( 0x06UL << 1UL )
#define portMPU_REGION_SIZE_256B ( 0x07UL << 1UL )
#define portMPU_REGION_SIZE_512B ( 0x08UL << 1UL )
#define portMPU_REGION_SIZE_1KB ( 0x09UL << 1UL )
#define portMPU_REGION_SIZE_2KB ( 0x0AUL << 1UL )
#define portMPU_REGION_SIZE_4KB ( 0x0BUL << 1UL )
#define portMPU_REGION_SIZE_8KB ( 0x0CUL << 1UL )
#define portMPU_REGION_SIZE_16KB ( 0x0DUL << 1UL )
#define portMPU_REGION_SIZE_32KB ( 0x0EUL << 1UL )
#define portMPU_REGION_SIZE_64KB ( 0x0FUL << 1UL )
#define portMPU_REGION_SIZE_128KB ( 0x10UL << 1UL )
#define portMPU_REGION_SIZE_256KB ( 0x11UL << 1UL )
#define portMPU_REGION_SIZE_512KB ( 0x12UL << 1UL )
#define portMPU_REGION_SIZE_1MB ( 0x13UL << 1UL )
#define portMPU_REGION_SIZE_2MB ( 0x14UL << 1UL )
#define portMPU_REGION_SIZE_4MB ( 0x15UL << 1UL )
#define portMPU_REGION_SIZE_8MB ( 0x16UL << 1UL )
#define portMPU_REGION_SIZE_16MB ( 0x17UL << 1UL )
#define portMPU_REGION_SIZE_32MB ( 0x18UL << 1UL )
#define portMPU_REGION_SIZE_64MB ( 0x19UL << 1UL )
#define portMPU_REGION_SIZE_128MB ( 0x1AUL << 1UL )
#define portMPU_REGION_SIZE_256MB ( 0x1BUL << 1UL )
#define portMPU_REGION_SIZE_512MB ( 0x1CUL << 1UL )
#define portMPU_REGION_SIZE_1GB ( 0x1DUL << 1UL )
#define portMPU_REGION_SIZE_2GB ( 0x1EUL << 1UL )
#define portMPU_REGION_SIZE_4GB ( 0x1FUL << 1UL )
/* MPU memory types. This information is encoded in the TEX, S, C and B bits
* of the MPU Region Access Control Register. */
#define portMPU_REGION_STRONGLY_ORDERED_SHAREABLE ( 0x00UL ) /* TEX=000, S=NA, C=0, B=0. */
#define portMPU_REGION_DEVICE_SHAREABLE ( 0x01UL ) /* TEX=000, S=NA, C=0, B=1. */
#define portMPU_REGION_NORMAL_OIWTNOWA_NONSHARED ( 0x02UL ) /* TEX=000, S=0, C=1, B=0. */
#define portMPU_REGION_NORMAL_OIWTNOWA_SHARED ( 0x06UL ) /* TEX=000, S=1, C=1, B=0. */
#define portMPU_REGION_NORMAL_OIWBNOWA_NONSHARED ( 0x03UL ) /* TEX=000, S=0, C=1, B=1. */
#define portMPU_REGION_NORMAL_OIWBNOWA_SHARED ( 0x07UL ) /* TEX=000, S=1, C=1, B=1. */
#define portMPU_REGION_NORMAL_OINC_NONSHARED ( 0x08UL ) /* TEX=001, S=0, C=0, B=0. */
#define portMPU_REGION_NORMAL_OINC_SHARED ( 0x0CUL ) /* TEX=001, S=1, C=0, B=0. */
#define portMPU_REGION_NORMAL_OIWBWA_NONSHARED ( 0x0BUL ) /* TEX=001, S=0, C=1, B=1. */
#define portMPU_REGION_NORMAL_OIWBWA_SHARED ( 0x0FUL ) /* TEX=001, S=1, C=1, B=1. */
#define portMPU_REGION_DEVICE_NONSHAREABLE ( 0x10UL ) /* TEX=010, S=NA, C=0, B=0. */
/* MPU access permissions. This information is encoded in the XN and AP bits of
* the MPU Region Access Control Register. */
#define portMPU_REGION_AP_BITMASK ( 0x07UL << 8UL )
#define portMPU_REGION_XN_BITMASK ( 0x01UL << 12UL )
#define portMPU_REGION_PRIV_NA_USER_NA ( 0x00UL << 8UL )
#define portMPU_REGION_PRIV_NA_USER_NA_EXEC ( portMPU_REGION_PRIV_NA_USER_NA ) /* Priv: X, Unpriv: X. */
#define portMPU_REGION_PRIV_NA_USER_NA_NOEXEC ( portMPU_REGION_PRIV_NA_USER_NA | \
portMPU_REGION_XN_BITMASK ) /* Priv: No Access, Unpriv: No Access. */
#define portMPU_REGION_PRIV_RW_USER_NA ( 0x01UL << 8UL )
#define portMPU_REGION_PRIV_RW_USER_NA_EXEC ( portMPU_REGION_PRIV_RW_USER_NA ) /* Priv: RWX, Unpriv: X. */
#define portMPU_REGION_PRIV_RW_USER_NA_NOEXEC ( portMPU_REGION_PRIV_RW_USER_NA | \
portMPU_REGION_XN_BITMASK ) /* Priv: RW, Unpriv: No access. */
#define portMPU_REGION_PRIV_RW_USER_RO ( 0x02UL << 8UL )
#define portMPU_REGION_PRIV_RW_USER_RO_EXEC ( portMPU_REGION_PRIV_RW_USER_RO ) /* Priv: RWX, Unpriv: RX. */
#define portMPU_REGION_PRIV_RW_USER_RO_NOEXEC ( portMPU_REGION_PRIV_RW_USER_RO | \
portMPU_REGION_XN_BITMASK ) /* Priv: RW, Unpriv: R. */
#define portMPU_REGION_PRIV_RW_USER_RW ( 0x03UL << 8UL )
#define portMPU_REGION_PRIV_RW_USER_RW_EXEC ( portMPU_REGION_PRIV_RW_USER_RW ) /* Priv: RWX, Unpriv: RWX. */
#define portMPU_REGION_PRIV_RW_USER_RW_NOEXEC ( portMPU_REGION_PRIV_RW_USER_RW | \
portMPU_REGION_XN_BITMASK ) /* Priv: RW, Unpriv: RW. */
#define portMPU_REGION_PRIV_RO_USER_NA ( 0x05UL << 8UL )
#define portMPU_REGION_PRIV_RO_USER_NA_EXEC ( portMPU_REGION_PRIV_RO_USER_NA ) /* Priv: RX, Unpriv: X. */
#define portMPU_REGION_PRIV_RO_USER_NA_NOEXEC ( portMPU_REGION_PRIV_RO_USER_NA | \
portMPU_REGION_XN_BITMASK ) /* Priv: R, Unpriv: No access. */
#define portMPU_REGION_PRIV_RO_USER_RO ( 0x06UL << 8UL )
#define portMPU_REGION_PRIV_RO_USER_RO_EXEC ( portMPU_REGION_PRIV_RO_USER_RO ) /* Priv: RX, Unpriv: RX. */
#define portMPU_REGION_PRIV_RO_USER_RO_NOEXEC ( portMPU_REGION_PRIV_RO_USER_RO | \
portMPU_REGION_XN_BITMASK ) /* Priv: R, Unpriv: R. */
/* MPU region management. */
#define portMPU_REGION_EXECUTE_NEVER ( 0x01UL << 12UL )
#define portMPU_REGION_ENABLE ( 0x01UL )
/**
* @brief The size (in words) of a task context.
*
* An array of this size is allocated in TCB where a task's context is saved
* when it is switched out.
*
* Information about Floating Point Unit (FPU):
* https://developer.arm.com/documentation/den0042/a/Floating-Point
*
* Additional information related to the Cortex R4-F's FPU Implementation:
* https://developer.arm.com/documentation/ddi0363/e/fpu-programmer-s-model
*
* Additional information related to the Cortex R5-F's FPU Implementation:
* https://developer.arm.com/documentation/ddi0460/d/FPU-Programmers-Model
*
* Additional information related to the ArmV7-R CPSR:
* https://developer.arm.com/documentation/ddi0406/cb/Application-Level-Architecture/Application-Level-Programmers--Model/The-Application-Program-Status-Register--APSR-?lang=en
*
* Additional information related to the GPRs:
* https://developer.arm.com/documentation/ddi0406/cb/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-core-registers?lang=en
*
*/
#if( portENABLE_FPU == 1 )
/*
* +-------------------+-------+----------+--------+----------+----------+----------+------+
* | ulCriticalNesting | FPSCR | S0-S31 | R0-R12 | SP (R13) | LR (R14) | PC (R15) | CPSR |
* +-------------------+-------+----------+--------+----------+----------+----------+------+
*
* <------------------><------><---------><--------><---------><--------><----------><----->
* 1 1 32 13 1 1 1 1
*/
#define CONTEXT_SIZE 51U
#else
/*
* +-------------------+--------+----------+----------+----------+------+
* | ulCriticalNesting | R0-R12 | SP (R13) | LR (R14) | PC (R15) | CPSR |
* +-------------------+--------+----------+----------+----------+------+
*
* <------------------><--------><---------><--------><----------><----->
* 1 13 1 1 1 1
*/
#define CONTEXT_SIZE 18U
#endif /* CONTEXT_SIZE */
/**
* @brief Offset of xSystemCallStackInfo from the start of a TCB.
*/
#define portSYSTEM_CALL_INFO_OFFSET \
( ( 1U /* pxTopOfStack. */ + \
( portTOTAL_NUM_REGIONS_IN_TCB * 3U ) + \
1U /* ulTaskFlags. */ \
) * 4U )
#ifdef __cplusplus
} /* extern C */
#endif
#endif /* PORTMACRO_ASM_H */

View file

@ -223,7 +223,7 @@ exit_without_switch:
MOVS PC, LR MOVS PC, LR
switch_before_exit: switch_before_exit:
/* A context swtich is to be performed. Clear the context switch pending /* A context switch is to be performed. Clear the context switch pending
flag. */ flag. */
MOV r0, #0 MOV r0, #0
STR r0, [r1] STR r0, [r1]

View file

@ -180,7 +180,7 @@ static void prvTaskExitError( void )
BaseType_t xPortStartScheduler( void ) BaseType_t xPortStartScheduler( void )
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the function xPortPendSVHandler for PendSV * 1. Direct Routing - Install the function xPortPendSVHandler for PendSV
* interrupt. * interrupt.
* 2. Indirect Routing - Install separate handler for PendSV interrupt and * 2. Indirect Routing - Install separate handler for PendSV interrupt and

View file

@ -48,12 +48,11 @@ MPU_xTaskDelayUntil:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0, r1}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -63,12 +62,11 @@ MPU_xTaskAbortDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0, r1}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -78,12 +76,11 @@ MPU_vTaskDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0, r1}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -93,12 +90,11 @@ MPU_uxTaskPriorityGet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0, r1}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -108,12 +104,11 @@ MPU_eTaskGetState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0, r1}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -123,12 +118,11 @@ MPU_vTaskGetInfo:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0, r1}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -138,12 +132,11 @@ MPU_xTaskGetIdleTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -153,12 +146,11 @@ MPU_vTaskSuspend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0, r1}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -168,12 +160,11 @@ MPU_vTaskResume:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0, r1}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -183,12 +174,11 @@ MPU_xTaskGetTickCount:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0, r1}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -198,12 +188,11 @@ MPU_uxTaskGetNumberOfTasks:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0, r1}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -213,12 +202,11 @@ MPU_ulTaskGetRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -228,12 +216,11 @@ MPU_ulTaskGetRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +230,11 @@ MPU_ulTaskGetIdleRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -258,12 +244,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -273,12 +258,11 @@ MPU_vTaskSetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -288,12 +272,11 @@ MPU_xTaskGetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -303,12 +286,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -318,12 +300,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -333,12 +314,11 @@ MPU_uxTaskGetSystemState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0, r1}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -348,12 +328,11 @@ MPU_uxTaskGetStackHighWaterMark:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -363,12 +342,11 @@ MPU_uxTaskGetStackHighWaterMark2:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -378,12 +356,11 @@ MPU_xTaskGetCurrentTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -393,12 +370,11 @@ MPU_xTaskGetSchedulerState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0, r1}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -408,12 +384,11 @@ MPU_vTaskSetTimeOutState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0, r1}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -423,12 +398,11 @@ MPU_xTaskCheckForTimeOut:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0, r1}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -438,12 +412,11 @@ MPU_xTaskGenericNotifyEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +426,11 @@ MPU_xTaskGenericNotifyWaitEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -468,12 +440,11 @@ MPU_ulTaskGenericNotifyTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -483,12 +454,11 @@ MPU_xTaskGenericNotifyStateClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -498,12 +468,11 @@ MPU_ulTaskGenericNotifyValueClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -513,12 +482,11 @@ MPU_xQueueGenericSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0, r1}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -528,12 +496,11 @@ MPU_uxQueueMessagesWaiting:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0, r1}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -543,12 +510,11 @@ MPU_uxQueueSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0, r1}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -558,12 +524,11 @@ MPU_xQueueReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0, r1}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -573,12 +538,11 @@ MPU_xQueuePeek:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0, r1}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -588,12 +552,11 @@ MPU_xQueueSemaphoreTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0, r1}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -603,12 +566,11 @@ MPU_xQueueGetMutexHolder:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0, r1}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -618,12 +580,11 @@ MPU_xQueueTakeMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -633,12 +594,11 @@ MPU_xQueueGiveMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -648,12 +608,11 @@ MPU_xQueueSelectFromSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0, r1}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +622,11 @@ MPU_xQueueAddToSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0, r1}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -678,12 +636,11 @@ MPU_vQueueAddToRegistry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0, r1}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -693,12 +650,11 @@ MPU_vQueueUnregisterQueue:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0, r1}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -708,12 +664,11 @@ MPU_pcQueueGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0, r1}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -723,12 +678,11 @@ MPU_pvTimerGetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0, r1}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -738,12 +692,11 @@ MPU_vTimerSetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0, r1}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -753,12 +706,11 @@ MPU_xTimerIsTimerActive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0, r1}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -768,12 +720,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0, r1}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -783,12 +734,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -798,12 +748,11 @@ MPU_pcTimerGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0, r1}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -813,12 +762,11 @@ MPU_vTimerSetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0, r1}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -828,12 +776,11 @@ MPU_xTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -843,12 +790,11 @@ MPU_uxTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -858,12 +804,11 @@ MPU_xTimerGetPeriod:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0, r1}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +818,11 @@ MPU_xTimerGetExpiryTime:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0, r1}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -888,12 +832,11 @@ MPU_xEventGroupWaitBitsEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0, r1}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -903,12 +846,11 @@ MPU_xEventGroupClearBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0, r1}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -918,12 +860,11 @@ MPU_xEventGroupSetBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0, r1}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -933,12 +874,11 @@ MPU_xEventGroupSync:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0, r1}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -948,12 +888,11 @@ MPU_uxEventGroupGetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0, r1}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -963,12 +902,11 @@ MPU_vEventGroupSetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0, r1}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -978,12 +916,11 @@ MPU_xStreamBufferSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0, r1}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -993,12 +930,11 @@ MPU_xStreamBufferReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0, r1}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1008,12 +944,11 @@ MPU_xStreamBufferIsFull:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1023,12 +958,11 @@ MPU_xStreamBufferIsEmpty:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1038,12 +972,11 @@ MPU_xStreamBufferSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1053,12 +986,11 @@ MPU_xStreamBufferBytesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1068,12 +1000,11 @@ MPU_xStreamBufferSetTriggerLevel:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0, r1}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1083,12 +1014,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0, r1}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -48,12 +48,11 @@ MPU_xTaskDelayUntil:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0, r1}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -63,12 +62,11 @@ MPU_xTaskAbortDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0, r1}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -78,12 +76,11 @@ MPU_vTaskDelay:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0, r1}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -93,12 +90,11 @@ MPU_uxTaskPriorityGet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0, r1}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -108,12 +104,11 @@ MPU_eTaskGetState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0, r1}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -123,12 +118,11 @@ MPU_vTaskGetInfo:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0, r1}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -138,12 +132,11 @@ MPU_xTaskGetIdleTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -153,12 +146,11 @@ MPU_vTaskSuspend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0, r1}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -168,12 +160,11 @@ MPU_vTaskResume:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0, r1}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -183,12 +174,11 @@ MPU_xTaskGetTickCount:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0, r1}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -198,12 +188,11 @@ MPU_uxTaskGetNumberOfTasks:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0, r1}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -213,12 +202,11 @@ MPU_ulTaskGetRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -228,12 +216,11 @@ MPU_ulTaskGetRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +230,11 @@ MPU_ulTaskGetIdleRunTimePercent:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -258,12 +244,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0, r1}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -273,12 +258,11 @@ MPU_vTaskSetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -288,12 +272,11 @@ MPU_xTaskGetApplicationTaskTag:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0, r1}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -303,12 +286,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -318,12 +300,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0, r1}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -333,12 +314,11 @@ MPU_uxTaskGetSystemState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0, r1}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -348,12 +328,11 @@ MPU_uxTaskGetStackHighWaterMark:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -363,12 +342,11 @@ MPU_uxTaskGetStackHighWaterMark2:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0, r1}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -378,12 +356,11 @@ MPU_xTaskGetCurrentTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0, r1}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -393,12 +370,11 @@ MPU_xTaskGetSchedulerState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0, r1}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -408,12 +384,11 @@ MPU_vTaskSetTimeOutState:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0, r1}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -423,12 +398,11 @@ MPU_xTaskCheckForTimeOut:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0, r1}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -438,12 +412,11 @@ MPU_xTaskGenericNotifyEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +426,11 @@ MPU_xTaskGenericNotifyWaitEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -468,12 +440,11 @@ MPU_ulTaskGenericNotifyTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -483,12 +454,11 @@ MPU_xTaskGenericNotifyStateClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0, r1}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -498,12 +468,11 @@ MPU_ulTaskGenericNotifyValueClear:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0, r1}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -513,12 +482,11 @@ MPU_xQueueGenericSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0, r1}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -528,12 +496,11 @@ MPU_uxQueueMessagesWaiting:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0, r1}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -543,12 +510,11 @@ MPU_uxQueueSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0, r1}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -558,12 +524,11 @@ MPU_xQueueReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0, r1}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -573,12 +538,11 @@ MPU_xQueuePeek:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0, r1}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -588,12 +552,11 @@ MPU_xQueueSemaphoreTake:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0, r1}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -603,12 +566,11 @@ MPU_xQueueGetMutexHolder:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0, r1}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -618,12 +580,11 @@ MPU_xQueueTakeMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -633,12 +594,11 @@ MPU_xQueueGiveMutexRecursive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0, r1}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -648,12 +608,11 @@ MPU_xQueueSelectFromSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0, r1}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +622,11 @@ MPU_xQueueAddToSet:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0, r1}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -678,12 +636,11 @@ MPU_vQueueAddToRegistry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0, r1}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -693,12 +650,11 @@ MPU_vQueueUnregisterQueue:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0, r1}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -708,12 +664,11 @@ MPU_pcQueueGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0, r1}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -723,12 +678,11 @@ MPU_pvTimerGetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0, r1}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -738,12 +692,11 @@ MPU_vTimerSetTimerID:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0, r1}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -753,12 +706,11 @@ MPU_xTimerIsTimerActive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0, r1}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -768,12 +720,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0, r1}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -783,12 +734,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0, r1}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -798,12 +748,11 @@ MPU_pcTimerGetName:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0, r1}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -813,12 +762,11 @@ MPU_vTimerSetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0, r1}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -828,12 +776,11 @@ MPU_xTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -843,12 +790,11 @@ MPU_uxTimerGetReloadMode:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0, r1}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -858,12 +804,11 @@ MPU_xTimerGetPeriod:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0, r1}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +818,11 @@ MPU_xTimerGetExpiryTime:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0, r1}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -888,12 +832,11 @@ MPU_xEventGroupWaitBitsEntry:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0, r1}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -903,12 +846,11 @@ MPU_xEventGroupClearBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0, r1}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -918,12 +860,11 @@ MPU_xEventGroupSetBits:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0, r1}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -933,12 +874,11 @@ MPU_xEventGroupSync:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0, r1}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -948,12 +888,11 @@ MPU_uxEventGroupGetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0, r1}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -963,12 +902,11 @@ MPU_vEventGroupSetNumber:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0, r1}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -978,12 +916,11 @@ MPU_xStreamBufferSend:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0, r1}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -993,12 +930,11 @@ MPU_xStreamBufferReceive:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0, r1}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1008,12 +944,11 @@ MPU_xStreamBufferIsFull:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1023,12 +958,11 @@ MPU_xStreamBufferIsEmpty:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0, r1}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1038,12 +972,11 @@ MPU_xStreamBufferSpacesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1053,12 +986,11 @@ MPU_xStreamBufferBytesAvailable:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0, r1}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1068,12 +1000,11 @@ MPU_xStreamBufferSetTriggerLevel:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0, r1}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1083,12 +1014,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
tst r0, r1 tst r0, r1
pop {r0, r1}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0, r1}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -223,7 +223,7 @@ static void prvTaskExitError( void )
BaseType_t xPortStartScheduler( void ) BaseType_t xPortStartScheduler( void )
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions vPortSVCHandler and * 1. Direct Routing - Install the functions vPortSVCHandler and
* xPortPendSVHandler for SVCall and PendSV interrupts respectively. * xPortPendSVHandler for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV

View file

@ -47,12 +47,11 @@ MPU_xTaskDelayUntil:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -61,12 +60,11 @@ MPU_xTaskAbortDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -75,12 +73,11 @@ MPU_vTaskDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -89,12 +86,11 @@ MPU_uxTaskPriorityGet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -103,12 +99,11 @@ MPU_eTaskGetState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -117,12 +112,11 @@ MPU_vTaskGetInfo:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -131,12 +125,11 @@ MPU_xTaskGetIdleTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -145,12 +138,11 @@ MPU_vTaskSuspend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -159,12 +151,11 @@ MPU_vTaskResume:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -173,12 +164,11 @@ MPU_xTaskGetTickCount:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -187,12 +177,11 @@ MPU_uxTaskGetNumberOfTasks:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -201,12 +190,11 @@ MPU_ulTaskGetRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -215,12 +203,11 @@ MPU_ulTaskGetRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -229,12 +216,11 @@ MPU_ulTaskGetIdleRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +229,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -257,12 +242,11 @@ MPU_vTaskSetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -271,12 +255,11 @@ MPU_xTaskGetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -285,12 +268,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -299,12 +281,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -313,12 +294,11 @@ MPU_uxTaskGetSystemState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -327,12 +307,11 @@ MPU_uxTaskGetStackHighWaterMark:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -341,12 +320,11 @@ MPU_uxTaskGetStackHighWaterMark2:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -355,12 +333,11 @@ MPU_xTaskGetCurrentTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -369,12 +346,11 @@ MPU_xTaskGetSchedulerState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -383,12 +359,11 @@ MPU_vTaskSetTimeOutState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -397,12 +372,11 @@ MPU_xTaskCheckForTimeOut:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -411,12 +385,11 @@ MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -425,12 +398,11 @@ MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -439,12 +411,11 @@ MPU_ulTaskGenericNotifyTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +424,11 @@ MPU_xTaskGenericNotifyStateClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -467,12 +437,11 @@ MPU_ulTaskGenericNotifyValueClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -481,12 +450,11 @@ MPU_xQueueGenericSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -495,12 +463,11 @@ MPU_uxQueueMessagesWaiting:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -509,12 +476,11 @@ MPU_uxQueueSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -523,12 +489,11 @@ MPU_xQueueReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -537,12 +502,11 @@ MPU_xQueuePeek:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -551,12 +515,11 @@ MPU_xQueueSemaphoreTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -565,12 +528,11 @@ MPU_xQueueGetMutexHolder:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -579,12 +541,11 @@ MPU_xQueueTakeMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -593,12 +554,11 @@ MPU_xQueueGiveMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -607,12 +567,11 @@ MPU_xQueueSelectFromSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -621,12 +580,11 @@ MPU_xQueueAddToSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -635,12 +593,11 @@ MPU_vQueueAddToRegistry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -649,12 +606,11 @@ MPU_vQueueUnregisterQueue:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +619,11 @@ MPU_pcQueueGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -677,12 +632,11 @@ MPU_pvTimerGetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -691,12 +645,11 @@ MPU_vTimerSetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -705,12 +658,11 @@ MPU_xTimerIsTimerActive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -719,12 +671,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -733,12 +684,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -747,12 +697,11 @@ MPU_pcTimerGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -761,12 +710,11 @@ MPU_vTimerSetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -775,12 +723,11 @@ MPU_xTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -789,12 +736,11 @@ MPU_uxTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -803,12 +749,11 @@ MPU_xTimerGetPeriod:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -817,12 +762,11 @@ MPU_xTimerGetExpiryTime:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -831,12 +775,11 @@ MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -845,12 +788,11 @@ MPU_xEventGroupClearBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -859,12 +801,11 @@ MPU_xEventGroupSetBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +814,11 @@ MPU_xEventGroupSync:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -887,12 +827,11 @@ MPU_uxEventGroupGetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,12 +840,11 @@ MPU_vEventGroupSetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -915,12 +853,11 @@ MPU_xStreamBufferSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,12 +866,11 @@ MPU_xStreamBufferReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -943,12 +879,11 @@ MPU_xStreamBufferIsFull:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -957,12 +892,11 @@ MPU_xStreamBufferIsEmpty:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -971,12 +905,11 @@ MPU_xStreamBufferSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -985,12 +918,11 @@ MPU_xStreamBufferBytesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -999,12 +931,11 @@ MPU_xStreamBufferSetTriggerLevel:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1013,12 +944,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -496,14 +496,14 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
#endif /* configENABLE_MPU == 1 */ #endif /* configENABLE_MPU == 1 */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief This variable is set to pdTRUE when the scheduler is started. * @brief This variable is set to pdTRUE when the scheduler is started.
*/ */
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE; PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
@ -555,6 +555,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TICKLESS_IDLE == 1 ) #if ( configUSE_TICKLESS_IDLE == 1 )
__attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) __attribute__( ( weak ) ) void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
{ {
uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft; uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickDecrementsLeft;
@ -770,6 +771,7 @@ PRIVILEGED_DATA static volatile uint32_t ulCriticalNesting = 0xaaaaaaaaUL;
__asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "cpsie i" ::: "memory" );
} }
} }
#endif /* configUSE_TICKLESS_IDLE */ #endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -827,6 +829,7 @@ static void prvTaskExitError( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */ static uint32_t prvGetRegionAccessPermissions( uint32_t ulRBARValue ) /* PRIVILEGED_FUNCTION */
{ {
uint32_t ulAccessPermissions = 0; uint32_t ulAccessPermissions = 0;
@ -843,10 +846,12 @@ static void prvTaskExitError( void )
return ulAccessPermissions; return ulAccessPermissions;
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
@ -935,10 +940,12 @@ static void prvTaskExitError( void )
portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT ); portMPU_CTRL_REG |= ( portMPU_PRIV_BACKGROUND_ENABLE_BIT | portMPU_ENABLE_BIT );
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_FPU == 1 ) #if ( configENABLE_FPU == 1 )
static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupFPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if ( configENABLE_TRUSTZONE == 1 ) #if ( configENABLE_TRUSTZONE == 1 )
@ -960,6 +967,7 @@ static void prvTaskExitError( void )
* LSPEN = 1 ==> Enable lazy context save of FP state. */ * LSPEN = 1 ==> Enable lazy context save of FP state. */
*( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK ); *( portFPCCR ) |= ( portFPCCR_ASPEN_MASK | portFPCCR_LSPEN_MASK );
} }
#endif /* configENABLE_FPU */ #endif /* configENABLE_FPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1613,7 +1621,7 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
{ {
/* An application can install FreeRTOS interrupt handlers in one of the /* An application can install FreeRTOS interrupt handlers in one of the
* folllowing ways: * following ways:
* 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler * 1. Direct Routing - Install the functions SVC_Handler and PendSV_Handler
* for SVCall and PendSV interrupts respectively. * for SVCall and PendSV interrupts respectively.
* 2. Indirect Routing - Install separate handlers for SVCall and PendSV * 2. Indirect Routing - Install separate handlers for SVCall and PendSV
@ -1740,11 +1748,11 @@ BaseType_t xPortStartScheduler( void ) /* PRIVILEGED_FUNCTION */
/* Initialize the critical nesting count ready for the first task. */ /* Initialize the critical nesting count ready for the first task. */
ulCriticalNesting = 0; ulCriticalNesting = 0;
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
{ {
xSchedulerRunning = pdTRUE; xSchedulerRunning = pdTRUE;
} }
#endif #endif /* ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1772,6 +1780,7 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( configENABLE_MPU == 1 )
void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings, void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
const struct xMEMORY_REGION * const xRegions, const struct xMEMORY_REGION * const xRegions,
StackType_t * pxBottomOfStack, StackType_t * pxBottomOfStack,
@ -1893,10 +1902,12 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
lIndex++; lIndex++;
} }
} }
#endif /* configENABLE_MPU */ #endif /* configENABLE_MPU */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configENABLE_MPU == 1 ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer, BaseType_t xPortIsAuthorizedToAccessBuffer( const void * pvBuffer,
uint32_t ulBufferLength, uint32_t ulBufferLength,
uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */ uint32_t ulAccessRequested ) /* PRIVILEGED_FUNCTION */
@ -1949,7 +1960,8 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
return xAccessGranted; return xAccessGranted;
} }
#endif /* configENABLE_MPU */
#endif /* #if ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
BaseType_t xPortIsInsideInterrupt( void ) BaseType_t xPortIsInsideInterrupt( void )

View file

@ -47,12 +47,11 @@ MPU_xTaskDelayUntil:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskDelayUntil_Unpriv bne MPU_xTaskDelayUntil_Unpriv
MPU_xTaskDelayUntil_Priv: MPU_xTaskDelayUntil_Priv:
pop {r0}
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskDelayUntil svc #SYSTEM_CALL_xTaskDelayUntil
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -61,12 +60,11 @@ MPU_xTaskAbortDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskAbortDelay_Unpriv bne MPU_xTaskAbortDelay_Unpriv
MPU_xTaskAbortDelay_Priv: MPU_xTaskAbortDelay_Priv:
pop {r0}
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskAbortDelay svc #SYSTEM_CALL_xTaskAbortDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -75,12 +73,11 @@ MPU_vTaskDelay:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskDelay_Unpriv bne MPU_vTaskDelay_Unpriv
MPU_vTaskDelay_Priv: MPU_vTaskDelay_Priv:
pop {r0}
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskDelay svc #SYSTEM_CALL_vTaskDelay
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -89,12 +86,11 @@ MPU_uxTaskPriorityGet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskPriorityGet_Unpriv bne MPU_uxTaskPriorityGet_Unpriv
MPU_uxTaskPriorityGet_Priv: MPU_uxTaskPriorityGet_Priv:
pop {r0}
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskPriorityGet svc #SYSTEM_CALL_uxTaskPriorityGet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -103,12 +99,11 @@ MPU_eTaskGetState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_eTaskGetState_Unpriv bne MPU_eTaskGetState_Unpriv
MPU_eTaskGetState_Priv: MPU_eTaskGetState_Priv:
pop {r0}
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_eTaskGetState svc #SYSTEM_CALL_eTaskGetState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -117,12 +112,11 @@ MPU_vTaskGetInfo:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskGetInfo_Unpriv bne MPU_vTaskGetInfo_Unpriv
MPU_vTaskGetInfo_Priv: MPU_vTaskGetInfo_Priv:
pop {r0}
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskGetInfo svc #SYSTEM_CALL_vTaskGetInfo
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -131,12 +125,11 @@ MPU_xTaskGetIdleTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetIdleTaskHandle_Unpriv bne MPU_xTaskGetIdleTaskHandle_Unpriv
MPU_xTaskGetIdleTaskHandle_Priv: MPU_xTaskGetIdleTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetIdleTaskHandle svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -145,12 +138,11 @@ MPU_vTaskSuspend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSuspend_Unpriv bne MPU_vTaskSuspend_Unpriv
MPU_vTaskSuspend_Priv: MPU_vTaskSuspend_Priv:
pop {r0}
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSuspend svc #SYSTEM_CALL_vTaskSuspend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -159,12 +151,11 @@ MPU_vTaskResume:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskResume_Unpriv bne MPU_vTaskResume_Unpriv
MPU_vTaskResume_Priv: MPU_vTaskResume_Priv:
pop {r0}
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskResume svc #SYSTEM_CALL_vTaskResume
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -173,12 +164,11 @@ MPU_xTaskGetTickCount:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetTickCount_Unpriv bne MPU_xTaskGetTickCount_Unpriv
MPU_xTaskGetTickCount_Priv: MPU_xTaskGetTickCount_Priv:
pop {r0}
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetTickCount svc #SYSTEM_CALL_xTaskGetTickCount
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -187,12 +177,11 @@ MPU_uxTaskGetNumberOfTasks:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetNumberOfTasks_Unpriv bne MPU_uxTaskGetNumberOfTasks_Unpriv
MPU_uxTaskGetNumberOfTasks_Priv: MPU_uxTaskGetNumberOfTasks_Priv:
pop {r0}
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetNumberOfTasks svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -201,12 +190,11 @@ MPU_ulTaskGetRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimeCounter_Unpriv bne MPU_ulTaskGetRunTimeCounter_Unpriv
MPU_ulTaskGetRunTimeCounter_Priv: MPU_ulTaskGetRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimeCounter svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -215,12 +203,11 @@ MPU_ulTaskGetRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetRunTimePercent_Unpriv bne MPU_ulTaskGetRunTimePercent_Unpriv
MPU_ulTaskGetRunTimePercent_Priv: MPU_ulTaskGetRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetRunTimePercent svc #SYSTEM_CALL_ulTaskGetRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -229,12 +216,11 @@ MPU_ulTaskGetIdleRunTimePercent:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimePercent_Unpriv bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
MPU_ulTaskGetIdleRunTimePercent_Priv: MPU_ulTaskGetIdleRunTimePercent_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -243,12 +229,11 @@ MPU_ulTaskGetIdleRunTimeCounter:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
MPU_ulTaskGetIdleRunTimeCounter_Priv: MPU_ulTaskGetIdleRunTimeCounter_Priv:
pop {r0}
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -257,12 +242,11 @@ MPU_vTaskSetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetApplicationTaskTag_Unpriv bne MPU_vTaskSetApplicationTaskTag_Unpriv
MPU_vTaskSetApplicationTaskTag_Priv: MPU_vTaskSetApplicationTaskTag_Priv:
pop {r0}
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetApplicationTaskTag svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -271,12 +255,11 @@ MPU_xTaskGetApplicationTaskTag:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetApplicationTaskTag_Unpriv bne MPU_xTaskGetApplicationTaskTag_Unpriv
MPU_xTaskGetApplicationTaskTag_Priv: MPU_xTaskGetApplicationTaskTag_Priv:
pop {r0}
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetApplicationTaskTag svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -285,12 +268,11 @@ MPU_vTaskSetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
MPU_vTaskSetThreadLocalStoragePointer_Priv: MPU_vTaskSetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -299,12 +281,11 @@ MPU_pvTaskGetThreadLocalStoragePointer:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
MPU_pvTaskGetThreadLocalStoragePointer_Priv: MPU_pvTaskGetThreadLocalStoragePointer_Priv:
pop {r0}
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -313,12 +294,11 @@ MPU_uxTaskGetSystemState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetSystemState_Unpriv bne MPU_uxTaskGetSystemState_Unpriv
MPU_uxTaskGetSystemState_Priv: MPU_uxTaskGetSystemState_Priv:
pop {r0}
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetSystemState svc #SYSTEM_CALL_uxTaskGetSystemState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -327,12 +307,11 @@ MPU_uxTaskGetStackHighWaterMark:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark_Unpriv bne MPU_uxTaskGetStackHighWaterMark_Unpriv
MPU_uxTaskGetStackHighWaterMark_Priv: MPU_uxTaskGetStackHighWaterMark_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -341,12 +320,11 @@ MPU_uxTaskGetStackHighWaterMark2:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTaskGetStackHighWaterMark2_Unpriv bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
MPU_uxTaskGetStackHighWaterMark2_Priv: MPU_uxTaskGetStackHighWaterMark2_Priv:
pop {r0}
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2 svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -355,12 +333,11 @@ MPU_xTaskGetCurrentTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetCurrentTaskHandle_Unpriv bne MPU_xTaskGetCurrentTaskHandle_Unpriv
MPU_xTaskGetCurrentTaskHandle_Priv: MPU_xTaskGetCurrentTaskHandle_Priv:
pop {r0}
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -369,12 +346,11 @@ MPU_xTaskGetSchedulerState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGetSchedulerState_Unpriv bne MPU_xTaskGetSchedulerState_Unpriv
MPU_xTaskGetSchedulerState_Priv: MPU_xTaskGetSchedulerState_Priv:
pop {r0}
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGetSchedulerState svc #SYSTEM_CALL_xTaskGetSchedulerState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -383,12 +359,11 @@ MPU_vTaskSetTimeOutState:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTaskSetTimeOutState_Unpriv bne MPU_vTaskSetTimeOutState_Unpriv
MPU_vTaskSetTimeOutState_Priv: MPU_vTaskSetTimeOutState_Priv:
pop {r0}
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTaskSetTimeOutState svc #SYSTEM_CALL_vTaskSetTimeOutState
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -397,12 +372,11 @@ MPU_xTaskCheckForTimeOut:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskCheckForTimeOut_Unpriv bne MPU_xTaskCheckForTimeOut_Unpriv
MPU_xTaskCheckForTimeOut_Priv: MPU_xTaskCheckForTimeOut_Priv:
pop {r0}
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskCheckForTimeOut svc #SYSTEM_CALL_xTaskCheckForTimeOut
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -411,12 +385,11 @@ MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotify_Unpriv bne MPU_xTaskGenericNotify_Unpriv
MPU_xTaskGenericNotify_Priv: MPU_xTaskGenericNotify_Priv:
pop {r0}
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotify svc #SYSTEM_CALL_xTaskGenericNotify
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -425,12 +398,11 @@ MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyWait_Unpriv bne MPU_xTaskGenericNotifyWait_Unpriv
MPU_xTaskGenericNotifyWait_Priv: MPU_xTaskGenericNotifyWait_Priv:
pop {r0}
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyWait svc #SYSTEM_CALL_xTaskGenericNotifyWait
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -439,12 +411,11 @@ MPU_ulTaskGenericNotifyTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyTake_Unpriv bne MPU_ulTaskGenericNotifyTake_Unpriv
MPU_ulTaskGenericNotifyTake_Priv: MPU_ulTaskGenericNotifyTake_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyTake svc #SYSTEM_CALL_ulTaskGenericNotifyTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -453,12 +424,11 @@ MPU_xTaskGenericNotifyStateClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTaskGenericNotifyStateClear_Unpriv bne MPU_xTaskGenericNotifyStateClear_Unpriv
MPU_xTaskGenericNotifyStateClear_Priv: MPU_xTaskGenericNotifyStateClear_Priv:
pop {r0}
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTaskGenericNotifyStateClear svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -467,12 +437,11 @@ MPU_ulTaskGenericNotifyValueClear:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_ulTaskGenericNotifyValueClear_Unpriv bne MPU_ulTaskGenericNotifyValueClear_Unpriv
MPU_ulTaskGenericNotifyValueClear_Priv: MPU_ulTaskGenericNotifyValueClear_Priv:
pop {r0}
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0}
svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -481,12 +450,11 @@ MPU_xQueueGenericSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGenericSend_Unpriv bne MPU_xQueueGenericSend_Unpriv
MPU_xQueueGenericSend_Priv: MPU_xQueueGenericSend_Priv:
pop {r0}
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGenericSend svc #SYSTEM_CALL_xQueueGenericSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -495,12 +463,11 @@ MPU_uxQueueMessagesWaiting:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueMessagesWaiting_Unpriv bne MPU_uxQueueMessagesWaiting_Unpriv
MPU_uxQueueMessagesWaiting_Priv: MPU_uxQueueMessagesWaiting_Priv:
pop {r0}
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueMessagesWaiting svc #SYSTEM_CALL_uxQueueMessagesWaiting
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -509,12 +476,11 @@ MPU_uxQueueSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxQueueSpacesAvailable_Unpriv bne MPU_uxQueueSpacesAvailable_Unpriv
MPU_uxQueueSpacesAvailable_Priv: MPU_uxQueueSpacesAvailable_Priv:
pop {r0}
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxQueueSpacesAvailable svc #SYSTEM_CALL_uxQueueSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -523,12 +489,11 @@ MPU_xQueueReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueReceive_Unpriv bne MPU_xQueueReceive_Unpriv
MPU_xQueueReceive_Priv: MPU_xQueueReceive_Priv:
pop {r0}
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueReceive svc #SYSTEM_CALL_xQueueReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -537,12 +502,11 @@ MPU_xQueuePeek:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueuePeek_Unpriv bne MPU_xQueuePeek_Unpriv
MPU_xQueuePeek_Priv: MPU_xQueuePeek_Priv:
pop {r0}
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueuePeek svc #SYSTEM_CALL_xQueuePeek
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -551,12 +515,11 @@ MPU_xQueueSemaphoreTake:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSemaphoreTake_Unpriv bne MPU_xQueueSemaphoreTake_Unpriv
MPU_xQueueSemaphoreTake_Priv: MPU_xQueueSemaphoreTake_Priv:
pop {r0}
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSemaphoreTake svc #SYSTEM_CALL_xQueueSemaphoreTake
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -565,12 +528,11 @@ MPU_xQueueGetMutexHolder:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGetMutexHolder_Unpriv bne MPU_xQueueGetMutexHolder_Unpriv
MPU_xQueueGetMutexHolder_Priv: MPU_xQueueGetMutexHolder_Priv:
pop {r0}
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGetMutexHolder svc #SYSTEM_CALL_xQueueGetMutexHolder
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -579,12 +541,11 @@ MPU_xQueueTakeMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueTakeMutexRecursive_Unpriv bne MPU_xQueueTakeMutexRecursive_Unpriv
MPU_xQueueTakeMutexRecursive_Priv: MPU_xQueueTakeMutexRecursive_Priv:
pop {r0}
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueTakeMutexRecursive svc #SYSTEM_CALL_xQueueTakeMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -593,12 +554,11 @@ MPU_xQueueGiveMutexRecursive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueGiveMutexRecursive_Unpriv bne MPU_xQueueGiveMutexRecursive_Unpriv
MPU_xQueueGiveMutexRecursive_Priv: MPU_xQueueGiveMutexRecursive_Priv:
pop {r0}
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueGiveMutexRecursive svc #SYSTEM_CALL_xQueueGiveMutexRecursive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -607,12 +567,11 @@ MPU_xQueueSelectFromSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueSelectFromSet_Unpriv bne MPU_xQueueSelectFromSet_Unpriv
MPU_xQueueSelectFromSet_Priv: MPU_xQueueSelectFromSet_Priv:
pop {r0}
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueSelectFromSet svc #SYSTEM_CALL_xQueueSelectFromSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -621,12 +580,11 @@ MPU_xQueueAddToSet:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xQueueAddToSet_Unpriv bne MPU_xQueueAddToSet_Unpriv
MPU_xQueueAddToSet_Priv: MPU_xQueueAddToSet_Priv:
pop {r0}
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xQueueAddToSet svc #SYSTEM_CALL_xQueueAddToSet
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -635,12 +593,11 @@ MPU_vQueueAddToRegistry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueAddToRegistry_Unpriv bne MPU_vQueueAddToRegistry_Unpriv
MPU_vQueueAddToRegistry_Priv: MPU_vQueueAddToRegistry_Priv:
pop {r0}
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueAddToRegistry svc #SYSTEM_CALL_vQueueAddToRegistry
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -649,12 +606,11 @@ MPU_vQueueUnregisterQueue:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vQueueUnregisterQueue_Unpriv bne MPU_vQueueUnregisterQueue_Unpriv
MPU_vQueueUnregisterQueue_Priv: MPU_vQueueUnregisterQueue_Priv:
pop {r0}
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vQueueUnregisterQueue svc #SYSTEM_CALL_vQueueUnregisterQueue
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -663,12 +619,11 @@ MPU_pcQueueGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcQueueGetName_Unpriv bne MPU_pcQueueGetName_Unpriv
MPU_pcQueueGetName_Priv: MPU_pcQueueGetName_Priv:
pop {r0}
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcQueueGetName svc #SYSTEM_CALL_pcQueueGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -677,12 +632,11 @@ MPU_pvTimerGetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pvTimerGetTimerID_Unpriv bne MPU_pvTimerGetTimerID_Unpriv
MPU_pvTimerGetTimerID_Priv: MPU_pvTimerGetTimerID_Priv:
pop {r0}
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pvTimerGetTimerID svc #SYSTEM_CALL_pvTimerGetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -691,12 +645,11 @@ MPU_vTimerSetTimerID:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetTimerID_Unpriv bne MPU_vTimerSetTimerID_Unpriv
MPU_vTimerSetTimerID_Priv: MPU_vTimerSetTimerID_Priv:
pop {r0}
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetTimerID svc #SYSTEM_CALL_vTimerSetTimerID
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -705,12 +658,11 @@ MPU_xTimerIsTimerActive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerIsTimerActive_Unpriv bne MPU_xTimerIsTimerActive_Unpriv
MPU_xTimerIsTimerActive_Priv: MPU_xTimerIsTimerActive_Priv:
pop {r0}
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerIsTimerActive svc #SYSTEM_CALL_xTimerIsTimerActive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -719,12 +671,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
MPU_xTimerGetTimerDaemonTaskHandle_Priv: MPU_xTimerGetTimerDaemonTaskHandle_Priv:
pop {r0}
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -733,12 +684,11 @@ MPU_xTimerGenericCommandFromTaskEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGenericCommandFromTask_Unpriv bne MPU_xTimerGenericCommandFromTask_Unpriv
MPU_xTimerGenericCommandFromTask_Priv: MPU_xTimerGenericCommandFromTask_Priv:
pop {r0}
b MPU_xTimerGenericCommandFromTaskImpl b MPU_xTimerGenericCommandFromTaskImpl
MPU_xTimerGenericCommandFromTask_Unpriv: MPU_xTimerGenericCommandFromTask_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGenericCommandFromTask svc #SYSTEM_CALL_xTimerGenericCommandFromTask
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -747,12 +697,11 @@ MPU_pcTimerGetName:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_pcTimerGetName_Unpriv bne MPU_pcTimerGetName_Unpriv
MPU_pcTimerGetName_Priv: MPU_pcTimerGetName_Priv:
pop {r0}
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0}
svc #SYSTEM_CALL_pcTimerGetName svc #SYSTEM_CALL_pcTimerGetName
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -761,12 +710,11 @@ MPU_vTimerSetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vTimerSetReloadMode_Unpriv bne MPU_vTimerSetReloadMode_Unpriv
MPU_vTimerSetReloadMode_Priv: MPU_vTimerSetReloadMode_Priv:
pop {r0}
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vTimerSetReloadMode svc #SYSTEM_CALL_vTimerSetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -775,12 +723,11 @@ MPU_xTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetReloadMode_Unpriv bne MPU_xTimerGetReloadMode_Unpriv
MPU_xTimerGetReloadMode_Priv: MPU_xTimerGetReloadMode_Priv:
pop {r0}
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetReloadMode svc #SYSTEM_CALL_xTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -789,12 +736,11 @@ MPU_uxTimerGetReloadMode:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxTimerGetReloadMode_Unpriv bne MPU_uxTimerGetReloadMode_Unpriv
MPU_uxTimerGetReloadMode_Priv: MPU_uxTimerGetReloadMode_Priv:
pop {r0}
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxTimerGetReloadMode svc #SYSTEM_CALL_uxTimerGetReloadMode
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -803,12 +749,11 @@ MPU_xTimerGetPeriod:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetPeriod_Unpriv bne MPU_xTimerGetPeriod_Unpriv
MPU_xTimerGetPeriod_Priv: MPU_xTimerGetPeriod_Priv:
pop {r0}
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetPeriod svc #SYSTEM_CALL_xTimerGetPeriod
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -817,12 +762,11 @@ MPU_xTimerGetExpiryTime:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xTimerGetExpiryTime_Unpriv bne MPU_xTimerGetExpiryTime_Unpriv
MPU_xTimerGetExpiryTime_Priv: MPU_xTimerGetExpiryTime_Priv:
pop {r0}
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xTimerGetExpiryTime svc #SYSTEM_CALL_xTimerGetExpiryTime
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -831,12 +775,11 @@ MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupWaitBits_Unpriv bne MPU_xEventGroupWaitBits_Unpriv
MPU_xEventGroupWaitBits_Priv: MPU_xEventGroupWaitBits_Priv:
pop {r0}
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupWaitBits svc #SYSTEM_CALL_xEventGroupWaitBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -845,12 +788,11 @@ MPU_xEventGroupClearBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupClearBits_Unpriv bne MPU_xEventGroupClearBits_Unpriv
MPU_xEventGroupClearBits_Priv: MPU_xEventGroupClearBits_Priv:
pop {r0}
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupClearBits svc #SYSTEM_CALL_xEventGroupClearBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -859,12 +801,11 @@ MPU_xEventGroupSetBits:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSetBits_Unpriv bne MPU_xEventGroupSetBits_Unpriv
MPU_xEventGroupSetBits_Priv: MPU_xEventGroupSetBits_Priv:
pop {r0}
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSetBits svc #SYSTEM_CALL_xEventGroupSetBits
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -873,12 +814,11 @@ MPU_xEventGroupSync:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xEventGroupSync_Unpriv bne MPU_xEventGroupSync_Unpriv
MPU_xEventGroupSync_Priv: MPU_xEventGroupSync_Priv:
pop {r0}
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xEventGroupSync svc #SYSTEM_CALL_xEventGroupSync
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -887,12 +827,11 @@ MPU_uxEventGroupGetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_uxEventGroupGetNumber_Unpriv bne MPU_uxEventGroupGetNumber_Unpriv
MPU_uxEventGroupGetNumber_Priv: MPU_uxEventGroupGetNumber_Priv:
pop {r0}
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_uxEventGroupGetNumber svc #SYSTEM_CALL_uxEventGroupGetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,12 +840,11 @@ MPU_vEventGroupSetNumber:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_vEventGroupSetNumber_Unpriv bne MPU_vEventGroupSetNumber_Unpriv
MPU_vEventGroupSetNumber_Priv: MPU_vEventGroupSetNumber_Priv:
pop {r0}
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0}
svc #SYSTEM_CALL_vEventGroupSetNumber svc #SYSTEM_CALL_vEventGroupSetNumber
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -915,12 +853,11 @@ MPU_xStreamBufferSend:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSend_Unpriv bne MPU_xStreamBufferSend_Unpriv
MPU_xStreamBufferSend_Priv: MPU_xStreamBufferSend_Priv:
pop {r0}
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSend svc #SYSTEM_CALL_xStreamBufferSend
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,12 +866,11 @@ MPU_xStreamBufferReceive:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferReceive_Unpriv bne MPU_xStreamBufferReceive_Unpriv
MPU_xStreamBufferReceive_Priv: MPU_xStreamBufferReceive_Priv:
pop {r0}
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferReceive svc #SYSTEM_CALL_xStreamBufferReceive
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -943,12 +879,11 @@ MPU_xStreamBufferIsFull:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsFull_Unpriv bne MPU_xStreamBufferIsFull_Unpriv
MPU_xStreamBufferIsFull_Priv: MPU_xStreamBufferIsFull_Priv:
pop {r0}
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsFull svc #SYSTEM_CALL_xStreamBufferIsFull
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -957,12 +892,11 @@ MPU_xStreamBufferIsEmpty:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferIsEmpty_Unpriv bne MPU_xStreamBufferIsEmpty_Unpriv
MPU_xStreamBufferIsEmpty_Priv: MPU_xStreamBufferIsEmpty_Priv:
pop {r0}
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferIsEmpty svc #SYSTEM_CALL_xStreamBufferIsEmpty
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -971,12 +905,11 @@ MPU_xStreamBufferSpacesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSpacesAvailable_Unpriv bne MPU_xStreamBufferSpacesAvailable_Unpriv
MPU_xStreamBufferSpacesAvailable_Priv: MPU_xStreamBufferSpacesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSpacesAvailable svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -985,12 +918,11 @@ MPU_xStreamBufferBytesAvailable:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferBytesAvailable_Unpriv bne MPU_xStreamBufferBytesAvailable_Unpriv
MPU_xStreamBufferBytesAvailable_Priv: MPU_xStreamBufferBytesAvailable_Priv:
pop {r0}
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferBytesAvailable svc #SYSTEM_CALL_xStreamBufferBytesAvailable
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -999,12 +931,11 @@ MPU_xStreamBufferSetTriggerLevel:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferSetTriggerLevel_Unpriv bne MPU_xStreamBufferSetTriggerLevel_Unpriv
MPU_xStreamBufferSetTriggerLevel_Priv: MPU_xStreamBufferSetTriggerLevel_Priv:
pop {r0}
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1013,12 +944,11 @@ MPU_xStreamBufferNextMessageLengthBytes:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
pop {r0}
bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
MPU_xStreamBufferNextMessageLengthBytes_Priv: MPU_xStreamBufferNextMessageLengthBytes_Priv:
pop {r0}
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0}
svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

Some files were not shown because too many files have changed in this diff Show more