Compare commits

...

21 commits

Author SHA1 Message Date
kar-rahul-aws 18ed8886fe [AUTO][RELEASE]: Update SBOM 2023-11-29 14:13:55 +00:00
kar-rahul-aws 650025f227 [AUTO][RELEASE]: Update version number in manifest.yml 2023-11-29 14:13:52 +00:00
kar-rahul-aws ef7b253b56 [AUTO][RELEASE]: Bump file header version to "10.6.2" 2023-11-29 14:13:51 +00:00
kar-rahul-aws a86ae9b06e [AUTO][RELEASE]: Bump task.h version macros to "10.6.2" 2023-11-29 14:13:50 +00:00
Rahul Kar dfa52a70c5
Update History.txt for V10.6.2 (#912)
* Update History.txt for V10.6.2
2023-11-29 19:42:18 +05:30
Gaurav-Aggarwal-AWS 2f66e475fa
Fix prototype of MPU_vTimerSetReloadMode (#911)
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2023-11-29 19:15:07 +05:30
Gaurav-Aggarwal-AWS 6b7d4cf41b
Add Access Control List to MPU ports (#897)
This PR adds Access Control to kernel objects on a per task basis to MPU
ports. The following needs to be defined in the `FreeRTOSConfig.h` to
enable this feature:

```c
```

This PR adds the following new APIs:

```c
void vGrantAccessToTask( TaskHandle_t xTask,
                         TaskHandle_t xTaskToGrantAccess );
void vRevokeAccessToTask( TaskHandle_t xTask,
                          TaskHandle_t xTaskToRevokeAccess );

void vGrantAccessToSemaphore( TaskHandle_t xTask,
                              SemaphoreHandle_t xSemaphoreToGrantAccess );
void vRevokeAccessToSemaphore( TaskHandle_t xTask,
                               SemaphoreHandle_t xSemaphoreToRevokeAccess );

void vGrantAccessToQueue( TaskHandle_t xTask,
                          QueueHandle_t xQueueToGrantAccess );
void vRevokeAccessToQueue( TaskHandle_t xTask,
                           QueueHandle_t xQueueToRevokeAccess );

void vGrantAccessToQueueSet( TaskHandle_t xTask,
                             QueueSetHandle_t xQueueSetToGrantAccess );
void vRevokeAccessToQueueSet( TaskHandle_t xTask,
                              QueueSetHandle_t xQueueSetToRevokeAccess );

void vGrantAccessToEventGroup( TaskHandle_t xTask,
                               EventGroupHandle_t xEventGroupToGrantAccess );
void vRevokeAccessToEventGroup( TaskHandle_t xTask,
                                EventGroupHandle_t xEventGroupToRevokeAccess );

void vGrantAccessToStreamBuffer( TaskHandle_t xTask,
                                 StreamBufferHandle_t xStreamBufferToGrantAccess );
void vRevokeAccessToStreamBuffer( TaskHandle_t xTask,
                                  StreamBufferHandle_t xStreamBufferToRevokeAccess );

void vGrantAccessToMessageBuffer( TaskHandle_t xTask,
                                  MessageBufferHandle_t xMessageBufferToGrantAccess );
void vRevokeAccessToMessageBuffer( TaskHandle_t xTask,
                                   MessageBufferHandle_t xMessageBufferToRevokeAccess );

void vGrantAccessToTimer( TaskHandle_t xTask,
                          TimerHandle_t xTimerToGrantAccess );
void vRevokeAccessToTimer( TaskHandle_t xTask,
                           TimerHandle_t xTimerToRevokeAccess );
```

An unprivileged task by default has access to itself only and no other
kernel object. The application writer needs to explicitly grant an
unprivileged task access to all the kernel objects it needs. The best
place to do that is before starting the scheduler when all the kernel
objects are created.

For example, let's say an unprivileged tasks needs access to a queue and
an event group, the application writer needs to do the following:

```c
vGrantAccessToQueue( xUnprivilegedTaskHandle, xQueue );
vGrantAccessToEventGroup( xUnprivilegedTaskHandle, xEventGroup );
```

The application writer MUST revoke all the accesses before deleting a
task. Failing to do so will result in undefined behavior. In the above
example, the application writer needs to make the following 2 calls
before deleting the task:

```c
vRevokeAccessToQueue( xUnprivilegedTaskHandle, xQueue );
vRevokeAccessToEventGroup( xUnprivilegedTaskHandle, xEventGroup );

```
2023-11-23 10:45:58 +05:30
Gaurav-Aggarwal-AWS 9bfd85a253
Update system call entry mechanism (#896)
Earlier the System Call entry from an unprivileged task looked like:

1. SVC for entering system call.
2. System call implementation.
3. SVC for exiting system call.

Now, the system call entry needs to make only one system call
and everything else is handled internally.

This PR also makes the following small changes:

1. Add one struct param for system calls with 5 parameters. This
   removes the need for special handling for system calls with 5
   parameters.
2. Remove raise privilege SVC when MPU wrapper v2 is used.
3. Add additional run time parameter checks to MPU wrappers
   for xTaskGenericNotify and xQueueTakeMutexRecursive APIs.

These changes are tested on the following platforms:
1. STM32H743ZI (Cortex-M7)
2. STM32L152RE (Cortex-M3)
3. Nuvoton M2351 (Cortex-M23)
4. NXP LPC55S69 (Cortex-M33)
2023-11-21 18:42:23 +05:30
Gaurav-Aggarwal-AWS 52c1c6e578
Covert object type check to runtime check (#847)
It was checked using assert earlier.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2023-10-20 22:08:19 +05:30
Rahul Kar d9fc48bced
Backport PR 839 to FreeRTOS-Kernel V10.6.1 (#840)
* Fix size alignment in the integer overflow issue

* Remove CORTEX_M3_MPS2_QEMU demo in the V10.6.x branch to sync with the main branch.
2023-10-19 11:21:27 +05:30
Gaurav-Aggarwal-AWS 7003ba73ed
Backport PR 836 to FreeRTOS-Kernel V10.6.1 (#837)
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2023-10-17 23:49:09 +05:30
kar-rahul-aws 0264280230 [AUTO][RELEASE]: Update SBOM 2023-08-17 17:14:08 +00:00
kar-rahul-aws ab6744c08c [AUTO][RELEASE]: Update version number in manifest.yml 2023-08-17 17:14:06 +00:00
kar-rahul-aws c5edc980c5 [AUTO][RELEASE]: Bump file header version to "10.6.1" 2023-08-17 17:14:06 +00:00
kar-rahul-aws 76a4a16800 [AUTO][RELEASE]: Bump task.h version macros to "10.6.1" 2023-08-17 17:14:04 +00:00
kar-rahul-aws 5678e7a27c
Update History.txt for V10.6.1 (#759)
Update History.txt for V10.6.1

Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
2023-08-17 22:42:41 +05:30
kar-rahul-aws ace6b39fa0
Add runtime parameter checks (#758)
* Add runtime parameter checks

This commit adds runtime checks for function parameters
to mpu_wrappers_v2 file. The same checks are performed
in the API implementation using asserts.

Signed-off-by: kar-rahul-aws <karahulx@amazon.com>
2023-08-17 18:53:42 +05:30
kar-rahul-aws 0d871946ab
Update version number in manifest.yml (#756)
Add automation to update version number in manifest.yml. Also,
bring required commits from main.
2023-08-17 17:20:53 +05:30
kar-rahul-aws fe005419f0 Update SBOM 2023-07-13 11:45:34 +00:00
kar-rahul-aws aec827831a [AUTO][RELEASE]: Bump file header version to "10.6.0" 2023-07-13 11:45:32 +00:00
kar-rahul-aws 81a2a656d1 [AUTO][RELEASE]: Bump task.h version macros to "10.6.0" 2023-07-13 11:45:30 +00:00
666 changed files with 52512 additions and 55676 deletions

1
.github/lexicon.txt vendored
View file

@ -2469,6 +2469,7 @@ uxpriority
uxprioritytouse uxprioritytouse
uxqueue uxqueue
uxqueuegetqueueitemsize uxqueuegetqueueitemsize
uxqueuegetqueuelength
uxqueuelength uxqueuelength
uxqueuemessageswaiting uxqueuemessageswaiting
uxqueuespacesavailable uxqueuespacesavailable

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
#/* #/*
# * FreeRTOS Kernel <DEVELOPMENT BRANCH> # * FreeRTOS Kernel V10.6.2
# * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. # * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# * # *
# * SPDX-License-Identifier: MIT # * SPDX-License-Identifier: MIT
@ -99,7 +99,7 @@ KERNEL_THIRD_PARTY_PATTERNS = [
KERNEL_HEADER = [ KERNEL_HEADER = [
'/*\n', '/*\n',
' * FreeRTOS Kernel <DEVELOPMENT BRANCH>\n', ' * FreeRTOS Kernel V10.6.2\n',
' * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n', ' * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n',
' *\n', ' *\n',
' * SPDX-License-Identifier: MIT\n', ' * SPDX-License-Identifier: MIT\n',

32
.github/scripts/manifest_updater.py vendored Executable file
View file

@ -0,0 +1,32 @@
#!/usr/bin/env python3
import os
import argparse
THIS_FILE_PATH = os.path.dirname(os.path.abspath(__file__))
MANIFEST_FILE = os.path.join(THIS_FILE_PATH, '..', '..', 'manifest.yml')
def update_manifest_file(new_version_number):
updated_lines = []
with open(MANIFEST_FILE, 'r') as f:
for line in f:
line = line.strip()
if line.startswith('version'):
updated_lines.append(f'version: "v{new_version_number}"\n')
else:
updated_lines.append(f'{line}\n')
with open(MANIFEST_FILE, 'w') as f:
f.writelines(updated_lines)
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--version', required=True, help='New version number.')
args = parser.parse_args()
return args
def main():
args = parse_args()
update_manifest_file(args.version)
if __name__ == '__main__':
main()

View file

@ -63,6 +63,19 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name : Update version number in manifest.yml
working-directory: ./local_kernel
run: |
./.github/scripts/manifest_updater.py -v ${{ github.event.inputs.version_number }}
exit $?
- name : Commit version number change in manifest.yml
working-directory: ./local_kernel
run: |
git add .
git commit -m '[AUTO][RELEASE]: Update version number in manifest.yml'
git push -u origin ${{ github.event.inputs.version_number }}
- name: Generate SBOM - name: Generate SBOM
uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main
with: with:
@ -73,7 +86,7 @@ jobs:
working-directory: ./local_kernel working-directory: ./local_kernel
run: | run: |
git add . git add .
git commit -m 'Update SBOM' git commit -m '[AUTO][RELEASE]: Update SBOM'
git push -u origin ${{ github.event.inputs.version_number }} git push -u origin ${{ github.event.inputs.version_number }}
echo "COMMIT_SHA_2=$(git rev-parse HEAD)" >> $GITHUB_ENV echo "COMMIT_SHA_2=$(git rev-parse HEAD)" >> $GITHUB_ENV
@ -81,7 +94,7 @@ jobs:
run: | run: |
# Install deps and run # Install deps and run
pip install -r ./tools/.github/scripts/release-requirements.txt pip install -r ./tools/.github/scripts/release-requirements.txt
./tools/.github/scripts/release.py FreeRTOS --kernel-repo-path=local_kernel --kernel-commit=${{ env.COMMIT_SHA_2 }} --new-kernel-version=${{ github.event.inputs.version_number }} --new-kernel-main-br-version=${{ github.event.inputs.main_br_version }} ./tools/.github/scripts/release.py ${{ github.repository_owner }} --kernel-repo-path=local_kernel --kernel-commit=${{ env.COMMIT_SHA_2 }} --new-kernel-version=${{ github.event.inputs.version_number }} --new-kernel-main-br-version=${{ github.event.inputs.main_br_version }}
exit $? exit $?
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -123,9 +123,22 @@ jobs:
with: with:
ref: main ref: main
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
submodules: 'recursive'
fetch-depth: 1 fetch-depth: 1
- name: Fetch Community-Supported-Demos Submodule
shell: bash
run: |
# Fetch Community-Supported-Demos Submodule
echo "::group::Fetch Community-Supported-Demos Submodule"
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
echo "::engdroup::"
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@v2 uses: actions/checkout@v2
@ -148,20 +161,6 @@ jobs:
working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC
run: make -j run: make -j
- name: Build CORTEX_M3_MPS2_QEMU_GCC Demo
shell: bash
working-directory: FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC
run: |
make clean
make -j
- name: Build CORTEX_M3_MPS2_QEMU_GCC Demo
shell: bash
working-directory: FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC
run: |
make clean
make FULL_DEMO=1 -j
- name: Build CORTEX_LM3S811_GCC Demo - name: Build CORTEX_LM3S811_GCC Demo
shell: bash shell: bash
working-directory: FreeRTOS/Demo/CORTEX_LM3S811_GCC working-directory: FreeRTOS/Demo/CORTEX_LM3S811_GCC
@ -169,7 +168,7 @@ jobs:
- name: Build CORTEX_M0+_RP2040 Demos - name: Build CORTEX_M0+_RP2040 Demos
shell: bash shell: bash
working-directory: FreeRTOS/Demo/ThirdParty/Community-Supported/CORTEX_M0+_RP2040 working-directory: FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/CORTEX_M0+_RP2040
run: | run: |
git clone https://github.com/raspberrypi/pico-sdk.git git clone https://github.com/raspberrypi/pico-sdk.git
cmake -B build -DPICO_SDK_PATH=pico-sdk -GNinja cmake -B build -DPICO_SDK_PATH=pico-sdk -GNinja

View file

@ -8,7 +8,7 @@ jobs:
- name: Checkout Parent Repository - name: Checkout Parent Repository
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
ref: main ref: 80db00d98bfac8b22289a2668d9e6b0265946d24
repository: FreeRTOS/FreeRTOS repository: FreeRTOS/FreeRTOS
submodules: 'recursive' submodules: 'recursive'
fetch-depth: 1 fetch-depth: 1

View file

@ -1,6 +1,32 @@
Documentation and download available at https://www.FreeRTOS.org/ Documentation and download available at https://www.FreeRTOS.org/
Changes between FreeRTOS V10.5.1 and FreeRTOS 10.6.0 released July 13, 2023 Changes between FreeRTOS V10.6.1 and FreeRTOS V10.6.2 released November 29, 2023
+ Add the following improvements to the new MPU wrapper (mpu_wrappers_v2.c)
introduced in version 10.6.0:
- Introduce Access Control List (ACL) feature to allow the application
writer to control an unprivileged tasks access to kernel objects.
- Update the system call entry mechanism to only require one Supervisor
Call (SVC) instruction.
- Wrap parameters for system calls with more than four parameters in a
struct to avoid special handling during system call entry.
- Fix 2 possible integer overflows.
- Convert some asserts to run time parameter checks.
Changes between FreeRTOS V10.6.0 and FreeRTOS V10.6.1 released August 17, 2023
+ Add runtime parameter checks to functions in mpu_wrappers_v2.c file.
The same checks are already performed in API implementations using
asserts.
We thank the following people for their inputs in these changes:
- Lan Luo, Zixia Liu of School of Computer Science and Technology,
Anhui University of Technology, China.
- Xinwen Fu of Department of Computer Science, University of
Massachusetts Lowell, USA.
- Xinhui Shao, Yumeng Wei, Huaiyu Yan, Zhen Ling of School of
Computer Science and Engineering, Southeast University, China.
Changes between FreeRTOS V10.5.1 and FreeRTOS V10.6.0 released July 13, 2023
+ Add a new MPU wrapper that places additional restrictions on unprivileged + Add a new MPU wrapper that places additional restrictions on unprivileged
tasks. The following is the list of changes introduced with the new MPU tasks. The following is the list of changes introduced with the new MPU

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -46,26 +46,6 @@
* correct privileged Vs unprivileged linkage and placement. */ * correct privileged Vs unprivileged linkage and placement. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021 See comment above. */ #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021 See comment above. */
/* The following bit fields convey control information in a task's event list
* item value. It is important they don't clash with the
* taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */
#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100U
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200U
#define eventWAIT_FOR_ALL_BITS 0x0400U
#define eventEVENT_BITS_CONTROL_BYTES 0xff00U
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x01000000UL
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x02000000UL
#define eventWAIT_FOR_ALL_BITS 0x04000000UL
#define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_64_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100000000000000ULL
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200000000000000ULL
#define eventWAIT_FOR_ALL_BITS 0x0400000000000000ULL
#define eventEVENT_BITS_CONTROL_BYTES 0xff00000000000000ULL
#endif /* if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS ) */
typedef struct EventGroupDef_t typedef struct EventGroupDef_t
{ {
EventBits_t uxEventBits; EventBits_t uxEventBits;

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -86,6 +86,11 @@
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
/* Set configENABLE_ACCESS_CONTROL_LIST to 1 to enable access control list support. */
#ifndef configENABLE_ACCESS_CONTROL_LIST
#define configENABLE_ACCESS_CONTROL_LIST 0
#endif
/* Basic FreeRTOS definitions. */ /* Basic FreeRTOS definitions. */
#include "projdefs.h" #include "projdefs.h"

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -36,6 +36,26 @@
/* FreeRTOS includes. */ /* FreeRTOS includes. */
#include "timers.h" #include "timers.h"
/* The following bit fields convey control information in a task's event list
* item value. It is important they don't clash with the
* taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */
#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100U
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200U
#define eventWAIT_FOR_ALL_BITS 0x0400U
#define eventEVENT_BITS_CONTROL_BYTES 0xff00U
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x01000000UL
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x02000000UL
#define eventWAIT_FOR_ALL_BITS 0x04000000UL
#define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL
#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_64_BITS )
#define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100000000000000ULL
#define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200000000000000ULL
#define eventWAIT_FOR_ALL_BITS 0x0400000000000000ULL
#define eventEVENT_BITS_CONTROL_BYTES 0xff00000000000000ULL
#endif /* if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS ) */
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -38,6 +38,42 @@
#ifndef MPU_PROTOTYPES_H #ifndef MPU_PROTOTYPES_H
#define MPU_PROTOTYPES_H #define MPU_PROTOTYPES_H
typedef struct xTaskGenericNotifyParams
{
TaskHandle_t xTaskToNotify;
UBaseType_t uxIndexToNotify;
uint32_t ulValue;
eNotifyAction eAction;
uint32_t * pulPreviousNotificationValue;
} xTaskGenericNotifyParams_t;
typedef struct xTaskGenericNotifyWaitParams
{
UBaseType_t uxIndexToWaitOn;
uint32_t ulBitsToClearOnEntry;
uint32_t ulBitsToClearOnExit;
uint32_t * pulNotificationValue;
TickType_t xTicksToWait;
} xTaskGenericNotifyWaitParams_t;
typedef struct xTimerGenericCommandParams
{
TimerHandle_t xTimer;
BaseType_t xCommandID;
TickType_t xOptionalValue;
BaseType_t * pxHigherPriorityTaskWoken;
TickType_t xTicksToWait;
} xTimerGenericCommandParams_t;
typedef struct xEventGroupWaitBitsParams
{
EventGroupHandle_t xEventGroup;
EventBits_t uxBitsToWaitFor;
BaseType_t xClearOnExit;
BaseType_t xWaitForAllBits;
TickType_t xTicksToWait;
} xEventGroupWaitBitsParams_t;
/* MPU versions of task.h API functions. */ /* MPU versions of task.h API functions. */
void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL; void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime, BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
@ -77,11 +113,13 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
uint32_t ulValue, uint32_t ulValue,
eNotifyAction eAction, eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) FREERTOS_SYSTEM_CALL; uint32_t * pulPreviousNotificationValue ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit, uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue, uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL; TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn, uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
BaseType_t xClearCountOnExit, BaseType_t xClearCountOnExit,
TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL; TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
@ -228,9 +266,10 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
const TickType_t xOptionalValue, const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken, BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL; const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL; const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
void MPU_vTimerSetReloadMode( TimerHandle_t xTimer, void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
const UBaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL; const BaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL; BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL; UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL; TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
@ -259,6 +298,7 @@ EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
const BaseType_t xClearOnExit, const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits, const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL; TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
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;
EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,

View file

@ -0,0 +1,106 @@
/*
* FreeRTOS Kernel V10.6.2
* 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 MPU_SYSCALL_NUMBERS_H
#define MPU_SYSCALL_NUMBERS_H
/* Numbers assigned to various system calls. */
#define SYSTEM_CALL_xTaskGenericNotify 0
#define SYSTEM_CALL_xTaskGenericNotifyWait 1
#define SYSTEM_CALL_xTimerGenericCommand 2
#define SYSTEM_CALL_xEventGroupWaitBits 3
#define SYSTEM_CALL_xTaskDelayUntil 4
#define SYSTEM_CALL_xTaskAbortDelay 5
#define SYSTEM_CALL_vTaskDelay 6
#define SYSTEM_CALL_uxTaskPriorityGet 7
#define SYSTEM_CALL_eTaskGetState 8
#define SYSTEM_CALL_vTaskGetInfo 9
#define SYSTEM_CALL_xTaskGetIdleTaskHandle 10
#define SYSTEM_CALL_vTaskSuspend 11
#define SYSTEM_CALL_vTaskResume 12
#define SYSTEM_CALL_xTaskGetTickCount 13
#define SYSTEM_CALL_uxTaskGetNumberOfTasks 14
#define SYSTEM_CALL_pcTaskGetName 15
#define SYSTEM_CALL_ulTaskGetRunTimeCounter 16
#define SYSTEM_CALL_ulTaskGetRunTimePercent 17
#define SYSTEM_CALL_ulTaskGetIdleRunTimePercent 18
#define SYSTEM_CALL_ulTaskGetIdleRunTimeCounter 19
#define SYSTEM_CALL_vTaskSetApplicationTaskTag 20
#define SYSTEM_CALL_xTaskGetApplicationTaskTag 21
#define SYSTEM_CALL_vTaskSetThreadLocalStoragePointer 22
#define SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer 23
#define SYSTEM_CALL_uxTaskGetSystemState 24
#define SYSTEM_CALL_uxTaskGetStackHighWaterMark 25
#define SYSTEM_CALL_uxTaskGetStackHighWaterMark2 26
#define SYSTEM_CALL_xTaskGetCurrentTaskHandle 27
#define SYSTEM_CALL_xTaskGetSchedulerState 28
#define SYSTEM_CALL_vTaskSetTimeOutState 29
#define SYSTEM_CALL_xTaskCheckForTimeOut 30
#define SYSTEM_CALL_ulTaskGenericNotifyTake 31
#define SYSTEM_CALL_xTaskGenericNotifyStateClear 32
#define SYSTEM_CALL_ulTaskGenericNotifyValueClear 33
#define SYSTEM_CALL_xQueueGenericSend 34
#define SYSTEM_CALL_uxQueueMessagesWaiting 35
#define SYSTEM_CALL_uxQueueSpacesAvailable 36
#define SYSTEM_CALL_xQueueReceive 37
#define SYSTEM_CALL_xQueuePeek 38
#define SYSTEM_CALL_xQueueSemaphoreTake 39
#define SYSTEM_CALL_xQueueGetMutexHolder 40
#define SYSTEM_CALL_xQueueTakeMutexRecursive 41
#define SYSTEM_CALL_xQueueGiveMutexRecursive 42
#define SYSTEM_CALL_xQueueSelectFromSet 43
#define SYSTEM_CALL_xQueueAddToSet 44
#define SYSTEM_CALL_vQueueAddToRegistry 45
#define SYSTEM_CALL_vQueueUnregisterQueue 46
#define SYSTEM_CALL_pcQueueGetName 47
#define SYSTEM_CALL_pvTimerGetTimerID 48
#define SYSTEM_CALL_vTimerSetTimerID 49
#define SYSTEM_CALL_xTimerIsTimerActive 50
#define SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle 51
#define SYSTEM_CALL_pcTimerGetName 52
#define SYSTEM_CALL_vTimerSetReloadMode 53
#define SYSTEM_CALL_xTimerGetReloadMode 54
#define SYSTEM_CALL_uxTimerGetReloadMode 55
#define SYSTEM_CALL_xTimerGetPeriod 56
#define SYSTEM_CALL_xTimerGetExpiryTime 57
#define SYSTEM_CALL_xEventGroupClearBits 58
#define SYSTEM_CALL_xEventGroupSetBits 59
#define SYSTEM_CALL_xEventGroupSync 60
#define SYSTEM_CALL_uxEventGroupGetNumber 61
#define SYSTEM_CALL_vEventGroupSetNumber 62
#define SYSTEM_CALL_xStreamBufferSend 63
#define SYSTEM_CALL_xStreamBufferReceive 64
#define SYSTEM_CALL_xStreamBufferIsFull 65
#define SYSTEM_CALL_xStreamBufferIsEmpty 66
#define SYSTEM_CALL_xStreamBufferSpacesAvailable 67
#define SYSTEM_CALL_xStreamBufferBytesAvailable 68
#define SYSTEM_CALL_xStreamBufferSetTriggerLevel 69
#define SYSTEM_CALL_xStreamBufferNextMessageLengthBytes 70
#define NUM_SYSTEM_CALLS 71 /* Total number of system calls. */
#endif /* MPU_SYSCALL_NUMBERS_H */

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -233,6 +233,35 @@
#define PRIVILEGED_DATA __attribute__( ( section( "privileged_data" ) ) ) #define PRIVILEGED_DATA __attribute__( ( section( "privileged_data" ) ) )
#define FREERTOS_SYSTEM_CALL #define FREERTOS_SYSTEM_CALL
#if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) )
#define vGrantAccessToTask( xTask, xTaskToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xTaskToGrantAccess ) )
#define vRevokeAccessToTask( xTask, xTaskToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xTaskToRevokeAccess ) )
#define vGrantAccessToSemaphore( xTask, xSemaphoreToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xSemaphoreToGrantAccess ) )
#define vRevokeAccessToSemaphore( xTask, xSemaphoreToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xSemaphoreToRevokeAccess ) )
#define vGrantAccessToQueue( xTask, xQueueToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xQueueToGrantAccess ) )
#define vRevokeAccessToQueue( xTask, xQueueToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xQueueToRevokeAccess ) )
#define vGrantAccessToQueueSet( xTask, xQueueSetToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xQueueSetToGrantAccess ) )
#define vRevokeAccessToQueueSet( xTask, xQueueSetToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xQueueSetToRevokeAccess ) )
#define vGrantAccessToEventGroup( xTask, xEventGroupToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xEventGroupToGrantAccess ) )
#define vRevokeAccessToEventGroup( xTask, xEventGroupToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xEventGroupToRevokeAccess ) )
#define vGrantAccessToStreamBuffer( xTask, xStreamBufferToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xStreamBufferToGrantAccess ) )
#define vRevokeAccessToStreamBuffer( xTask, xStreamBufferToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xStreamBufferToRevokeAccess ) )
#define vGrantAccessToMessageBuffer( xTask, xMessageBufferToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xMessageBufferToGrantAccess ) )
#define vRevokeAccessToMessageBuffer( xTask, xMessageBufferToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xMessageBufferToRevokeAccess ) )
#define vGrantAccessToTimer( xTask, xTimerToGrantAccess ) vGrantAccessToKernelObject( ( xTask ), ( int32_t ) ( xTimerToGrantAccess ) )
#define vRevokeAccessToTimer( xTask, xTimerToRevokeAccess ) vRevokeAccessToKernelObject( ( xTask ), ( int32_t ) ( xTimerToRevokeAccess ) )
#endif /* #if ( ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) */
#else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
/* Ensure API functions go in the privileged execution section. */ /* Ensure API functions go in the privileged execution section. */

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -247,6 +247,21 @@ void vPortEndScheduler( void ) PRIVILEGED_FUNCTION;
uint32_t ulAccessRequested ) PRIVILEGED_FUNCTION; uint32_t ulAccessRequested ) PRIVILEGED_FUNCTION;
#endif #endif
/**
* @brief Checks if the calling task is authorized to access the given kernel object.
*
* @param lInternalIndexOfKernelObject The index of the kernel object in the kernel
* object handle pool.
*
* @return pdTRUE if the calling task is authorized to access the kernel object,
* pdFALSE otherwise.
*/
#if ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
BaseType_t xPortIsAuthorizedToAccessKernelObject( int32_t lInternalIndexOfKernelObject ) PRIVILEGED_FUNCTION;
#endif
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -1753,6 +1753,7 @@ void vQueueSetQueueNumber( QueueHandle_t xQueue,
UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
UBaseType_t uxQueueGetQueueItemSize( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; UBaseType_t uxQueueGetQueueItemSize( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
UBaseType_t uxQueueGetQueueLength( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -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 "V10.6.2"
#define tskKERNEL_VERSION_MAJOR 10 #define tskKERNEL_VERSION_MAJOR 10
#define tskKERNEL_VERSION_MINOR 4 #define tskKERNEL_VERSION_MINOR 6
#define tskKERNEL_VERSION_BUILD 4 #define tskKERNEL_VERSION_BUILD 2
/* MPU region parameters passed in ulParameters /* MPU region parameters passed in ulParameters
* of MemoryRegion_t struct. */ * of MemoryRegion_t struct. */
@ -3206,6 +3206,27 @@ void vTaskInternalSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNC
#endif /* portUSING_MPU_WRAPPERS */ #endif /* portUSING_MPU_WRAPPERS */
#if ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) )
/*
* For internal use only. Grant/Revoke a task's access to a kernel object.
*/
void vGrantAccessToKernelObject( TaskHandle_t xExternalTaskHandle,
int32_t lExternalKernelObjectHandle ) PRIVILEGED_FUNCTION;
void vRevokeAccessToKernelObject( TaskHandle_t xExternalTaskHandle,
int32_t lExternalKernelObjectHandle ) PRIVILEGED_FUNCTION;
/*
* For internal use only. Grant/Revoke a task's access to a kernel object.
*/
void vPortGrantAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject ) PRIVILEGED_FUNCTION;
void vPortRevokeAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject ) PRIVILEGED_FUNCTION;
#endif /* #if ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) */
/* *INDENT-OFF* */ /* *INDENT-OFF* */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

2
list.c
View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

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

View file

@ -1,5 +1,5 @@
#/* #/*
# * FreeRTOS Kernel <DEVELOPMENT BRANCH> # * FreeRTOS Kernel V10.6.2
# * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. # * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# * # *
# * SPDX-License-Identifier: MIT # * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -35,8 +35,9 @@
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h" #include "task.h"
/* MPU wrappers includes. */ /* MPU includes. */
#include "mpu_wrappers.h" #include "mpu_wrappers.h"
#include "mpu_syscall_numbers.h"
/* Portasm includes. */ /* Portasm includes. */
#include "portasm.h" #include "portasm.h"
@ -426,27 +427,22 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
* @brief Sets up the system call stack so that upon returning from * @brief Sets up the system call stack so that upon returning from
* SVC, the system call stack is used. * SVC, the system call stack is used.
* *
* It is used for the system calls with up to 4 parameters.
*
* @param pulTaskStack The current SP when the SVC was raised. * @param pulTaskStack The current SP when the SVC was raised.
* @param ulLR The value of Link Register (EXC_RETURN) in the SVC handler. * @param ulLR The value of Link Register (EXC_RETURN) in the SVC handler.
* @param ucSystemCallNumber The system call number of the system call.
*/ */
void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) PRIVILEGED_FUNCTION; void vSystemCallEnter( uint32_t * pulTaskStack,
uint32_t ulLR,
uint8_t ucSystemCallNumber ) PRIVILEGED_FUNCTION;
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */ #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
/** /**
* @brief Sets up the system call stack so that upon returning from * @brief Raise SVC for exiting from a system call.
* SVC, the system call stack is used.
*
* It is used for the system calls with 5 parameters.
*
* @param pulTaskStack The current SP when the SVC was raised.
* @param ulLR The value of Link Register (EXC_RETURN) in the SVC handler.
*/ */
void vSystemCallEnter_1( uint32_t * pulTaskStack, uint32_t ulLR ) PRIVILEGED_FUNCTION; void vRequestSystemCallExit( void ) __attribute__( ( naked ) ) PRIVILEGED_FUNCTION;
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */ #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
@ -459,7 +455,8 @@ portDONT_DISCARD void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) PRIV
* @param pulSystemCallStack The current SP when the SVC was raised. * @param pulSystemCallStack The current SP when the SVC was raised.
* @param ulLR The value of Link Register (EXC_RETURN) in the SVC handler. * @param ulLR The value of Link Register (EXC_RETURN) in the SVC handler.
*/ */
void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) PRIVILEGED_FUNCTION; void vSystemCallExit( uint32_t * pulSystemCallStack,
uint32_t ulLR ) PRIVILEGED_FUNCTION;
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */ #endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
@ -475,6 +472,15 @@ 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 ) )
/**
* @brief This variable is set to pdTRUE when the scheduler is started.
*/
PRIVILEGED_DATA static BaseType_t xSchedulerRunning = pdFALSE;
#endif
/** /**
* @brief Each task maintains its own interrupt status in the critical nesting * @brief Each task maintains its own interrupt status in the critical nesting
* variable. * variable.
@ -813,7 +819,6 @@ static void prvTaskExitError( void )
static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */ static void prvSetupMPU( void ) /* PRIVILEGED_FUNCTION */
{ {
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being /* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */ * exported from linker scripts. */
extern uint32_t * __privileged_functions_start__; extern uint32_t * __privileged_functions_start__;
@ -983,7 +988,6 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
{ {
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 1 ) )
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being /* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */ * exported from linker scripts. */
extern uint32_t * __syscalls_flash_start__; extern uint32_t * __syscalls_flash_start__;
@ -1101,12 +1105,16 @@ void vPortSVCHandler_C( uint32_t * pulCallerStackAddress ) /* PRIVILEGED_FUNCTIO
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FUNCTION */ void vSystemCallEnter( uint32_t * pulTaskStack,
uint32_t ulLR,
uint8_t ucSystemCallNumber ) /* PRIVILEGED_FUNCTION */
{ {
extern TaskHandle_t pxCurrentTCB; extern TaskHandle_t pxCurrentTCB;
extern UBaseType_t uxSystemCallImplementations[ NUM_SYSTEM_CALLS ];
xMPU_SETTINGS * pxMpuSettings; xMPU_SETTINGS * pxMpuSettings;
uint32_t * pulSystemCallStack; uint32_t * pulSystemCallStack;
uint32_t ulStackFrameSize, ulSystemCallLocation, i; uint32_t ulStackFrameSize, ulSystemCallLocation, i;
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being /* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */ * exported from linker scripts. */
@ -1119,16 +1127,26 @@ void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FU
#endif /* #if defined( __ARMCC_VERSION ) */ #endif /* #if defined( __ARMCC_VERSION ) */
ulSystemCallLocation = pulTaskStack[ portOFFSET_TO_PC ]; ulSystemCallLocation = pulTaskStack[ portOFFSET_TO_PC ];
/* If the request did not come from the system call section, do nothing. */
if( ( ulSystemCallLocation >= ( uint32_t ) __syscalls_flash_start__ ) &&
( ulSystemCallLocation <= ( uint32_t ) __syscalls_flash_end__ ) )
{
pxMpuSettings = xTaskGetMPUSettings( pxCurrentTCB ); pxMpuSettings = xTaskGetMPUSettings( pxCurrentTCB );
pulSystemCallStack = pxMpuSettings->xSystemCallStackInfo.pulSystemCallStack;
/* This is not NULL only for the duration of the system call. */ /* Checks:
configASSERT( pxMpuSettings->xSystemCallStackInfo.pulTaskStack == NULL ); * 1. SVC is raised from the system call section (i.e. application is
* not raising SVC directly).
* 2. pxMpuSettings->xSystemCallStackInfo.pulTaskStack must be NULL as
* it is non-NULL only during the execution of a system call (i.e.
* between system call enter and exit).
* 3. System call is not for a kernel API disabled by the configuration
* in FreeRTOSConfig.h.
* 4. We do not need to check that ucSystemCallNumber is within range
* because the assembly SVC handler checks that before calling
* this function.
*/
if( ( ulSystemCallLocation >= ( uint32_t ) __syscalls_flash_start__ ) &&
( ulSystemCallLocation <= ( uint32_t ) __syscalls_flash_end__ ) &&
( pxMpuSettings->xSystemCallStackInfo.pulTaskStack == NULL ) &&
( uxSystemCallImplementations[ ucSystemCallNumber ] != ( UBaseType_t ) 0 ) )
{
pulSystemCallStack = pxMpuSettings->xSystemCallStackInfo.pulSystemCallStack;
#if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) #if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) )
{ {
@ -1136,7 +1154,8 @@ void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FU
{ {
/* Extended frame i.e. FPU in use. */ /* Extended frame i.e. FPU in use. */
ulStackFrameSize = 26; ulStackFrameSize = 26;
__asm volatile ( __asm volatile
(
" vpush {s0} \n" /* Trigger lazy stacking. */ " vpush {s0} \n" /* Trigger lazy stacking. */
" vpop {s0} \n" /* Nullify the affect of the above instruction. */ " vpop {s0} \n" /* Nullify the affect of the above instruction. */
::: "memory" ::: "memory"
@ -1148,11 +1167,11 @@ void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FU
ulStackFrameSize = 8; ulStackFrameSize = 8;
} }
} }
#else #else /* if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) */
{ {
ulStackFrameSize = 8; ulStackFrameSize = 8;
} }
#endif /* configENABLE_FPU || configENABLE_MVE */ #endif /* if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) */
/* Make space on the system call stack for the stack frame. */ /* Make space on the system call stack for the stack frame. */
pulSystemCallStack = pulSystemCallStack - ulStackFrameSize; pulSystemCallStack = pulSystemCallStack - ulStackFrameSize;
@ -1163,152 +1182,50 @@ void vSystemCallEnter( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FU
pulSystemCallStack[ i ] = pulTaskStack[ i ]; pulSystemCallStack[ i ] = pulTaskStack[ i ];
} }
/* Store the value of the LR and PSPLIM registers before the SVC was raised. We need to /* Store the value of the Link Register before the SVC was raised.
* restore it when we exit from the system call. */ * It contains the address of the caller of the System Call entry
* point (i.e. the caller of the MPU_<API>). We need to restore it
* when we exit from the system call. */
pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry = pulTaskStack[ portOFFSET_TO_LR ]; pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry = pulTaskStack[ portOFFSET_TO_LR ];
__asm volatile ( "mrs %0, psplim" : "=r" ( pxMpuSettings->xSystemCallStackInfo.ulStackLimitRegisterAtSystemCallEntry ) );
/* Use the pulSystemCallStack in thread mode. */ /* Store the value of the PSPLIM register before the SVC was raised.
__asm volatile ( "msr psp, %0" : : "r" ( pulSystemCallStack ) );
__asm volatile ( "msr psplim, %0" : : "r" ( pxMpuSettings->xSystemCallStackInfo.pulSystemCallStackLimit ) );
/* Remember the location where we should copy the stack frame when we exit from
* the system call. */
pxMpuSettings->xSystemCallStackInfo.pulTaskStack = pulTaskStack + ulStackFrameSize;
/* Record if the hardware used padding to force the stack pointer
* to be double word aligned. */
if( ( pulTaskStack[ portOFFSET_TO_PSR ] & portPSR_STACK_PADDING_MASK ) == portPSR_STACK_PADDING_MASK )
{
pxMpuSettings->ulTaskFlags |= portSTACK_FRAME_HAS_PADDING_FLAG;
}
else
{
pxMpuSettings->ulTaskFlags &= ( ~portSTACK_FRAME_HAS_PADDING_FLAG );
}
/* We ensure in pxPortInitialiseStack that the system call stack is
* double word aligned and therefore, there is no need of padding.
* Clear the bit[9] of stacked xPSR. */
pulSystemCallStack[ portOFFSET_TO_PSR ] &= ( ~portPSR_STACK_PADDING_MASK );
/* Raise the privilege for the duration of the system call. */
__asm volatile (
" mrs r0, control \n" /* Obtain current control value. */
" movs r1, #1 \n" /* r1 = 1. */
" bics r0, r1 \n" /* Clear nPRIV bit. */
" msr control, r0 \n" /* Write back new control value. */
::: "r0", "r1", "memory"
);
}
}
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
void vSystemCallEnter_1( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_FUNCTION */
{
extern TaskHandle_t pxCurrentTCB;
xMPU_SETTINGS * pxMpuSettings;
uint32_t * pulSystemCallStack;
uint32_t ulStackFrameSize, ulSystemCallLocation, i;
#if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */
extern uint32_t * __syscalls_flash_start__;
extern uint32_t * __syscalls_flash_end__;
#else
/* Declaration when these variable are exported from linker scripts. */
extern uint32_t __syscalls_flash_start__[];
extern uint32_t __syscalls_flash_end__[];
#endif /* #if defined( __ARMCC_VERSION ) */
ulSystemCallLocation = pulTaskStack[ portOFFSET_TO_PC ];
/* If the request did not come from the system call section, do nothing. */
if( ( ulSystemCallLocation >= ( uint32_t ) __syscalls_flash_start__ ) &&
( ulSystemCallLocation <= ( uint32_t ) __syscalls_flash_end__ ) )
{
pxMpuSettings = xTaskGetMPUSettings( pxCurrentTCB );
pulSystemCallStack = pxMpuSettings->xSystemCallStackInfo.pulSystemCallStack;
/* This is not NULL only for the duration of the system call. */
configASSERT( pxMpuSettings->xSystemCallStackInfo.pulTaskStack == NULL );
#if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) )
{
if( ( ulLR & portEXC_RETURN_STACK_FRAME_TYPE_MASK ) == 0UL )
{
/* Extended frame i.e. FPU in use. */
ulStackFrameSize = 26;
__asm volatile (
" vpush {s0} \n" /* Trigger lazy stacking. */
" vpop {s0} \n" /* Nullify the affect of the above instruction. */
::: "memory"
);
}
else
{
/* Standard frame i.e. FPU not in use. */
ulStackFrameSize = 8;
}
}
#else
{
ulStackFrameSize = 8;
}
#endif /* configENABLE_FPU || configENABLE_MVE */
/* Make space on the system call stack for the stack frame and
* the parameter passed on the stack. We only need to copy one
* parameter but we still reserve 2 spaces to keep the stack
* double word aligned. */
pulSystemCallStack = pulSystemCallStack - ulStackFrameSize - 2UL;
/* Copy the stack frame. */
for( i = 0; i < ulStackFrameSize; i++ )
{
pulSystemCallStack[ i ] = pulTaskStack[ i ];
}
/* Copy the parameter which is passed the stack. */
if( ( pulTaskStack[ portOFFSET_TO_PSR ] & portPSR_STACK_PADDING_MASK ) == portPSR_STACK_PADDING_MASK )
{
pulSystemCallStack[ ulStackFrameSize ] = pulTaskStack[ ulStackFrameSize + 1 ];
/* Record if the hardware used padding to force the stack pointer
* to be double word aligned. */
pxMpuSettings->ulTaskFlags |= portSTACK_FRAME_HAS_PADDING_FLAG;
}
else
{
pulSystemCallStack[ ulStackFrameSize ] = pulTaskStack[ ulStackFrameSize ];
/* Record if the hardware used padding to force the stack pointer
* to be double word aligned. */
pxMpuSettings->ulTaskFlags &= ( ~portSTACK_FRAME_HAS_PADDING_FLAG );
}
/* Store the value of the LR and PSPLIM registers before the SVC was raised.
* We need to restore it when we exit from the system call. */ * We need to restore it when we exit from the system call. */
pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry = pulTaskStack[ portOFFSET_TO_LR ];
__asm volatile ( "mrs %0, psplim" : "=r" ( pxMpuSettings->xSystemCallStackInfo.ulStackLimitRegisterAtSystemCallEntry ) ); __asm volatile ( "mrs %0, psplim" : "=r" ( pxMpuSettings->xSystemCallStackInfo.ulStackLimitRegisterAtSystemCallEntry ) );
/* Use the pulSystemCallStack in thread mode. */ /* Use the pulSystemCallStack in thread mode. */
__asm volatile ( "msr psp, %0" : : "r" ( pulSystemCallStack ) ); __asm volatile ( "msr psp, %0" : : "r" ( pulSystemCallStack ) );
__asm volatile ( "msr psplim, %0" : : "r" ( pxMpuSettings->xSystemCallStackInfo.pulSystemCallStackLimit ) ); __asm volatile ( "msr psplim, %0" : : "r" ( pxMpuSettings->xSystemCallStackInfo.pulSystemCallStackLimit ) );
/* Start executing the system call upon returning from this handler. */
pulSystemCallStack[ portOFFSET_TO_PC ] = uxSystemCallImplementations[ ucSystemCallNumber ];
/* Raise a request to exit from the system call upon finishing the
* system call. */
pulSystemCallStack[ portOFFSET_TO_LR ] = ( uint32_t ) vRequestSystemCallExit;
/* Remember the location where we should copy the stack frame when we exit from /* Remember the location where we should copy the stack frame when we exit from
* the system call. */ * the system call. */
pxMpuSettings->xSystemCallStackInfo.pulTaskStack = pulTaskStack + ulStackFrameSize; pxMpuSettings->xSystemCallStackInfo.pulTaskStack = pulTaskStack + ulStackFrameSize;
/* Record if the hardware used padding to force the stack pointer
* to be double word aligned. */
if( ( pulTaskStack[ portOFFSET_TO_PSR ] & portPSR_STACK_PADDING_MASK ) == portPSR_STACK_PADDING_MASK )
{
pxMpuSettings->ulTaskFlags |= portSTACK_FRAME_HAS_PADDING_FLAG;
}
else
{
pxMpuSettings->ulTaskFlags &= ( ~portSTACK_FRAME_HAS_PADDING_FLAG );
}
/* We ensure in pxPortInitialiseStack that the system call stack is /* We ensure in pxPortInitialiseStack that the system call stack is
* double word aligned and therefore, there is no need of padding. * double word aligned and therefore, there is no need of padding.
* Clear the bit[9] of stacked xPSR. */ * Clear the bit[9] of stacked xPSR. */
pulSystemCallStack[ portOFFSET_TO_PSR ] &= ( ~portPSR_STACK_PADDING_MASK ); pulSystemCallStack[ portOFFSET_TO_PSR ] &= ( ~portPSR_STACK_PADDING_MASK );
/* Raise the privilege for the duration of the system call. */ /* Raise the privilege for the duration of the system call. */
__asm volatile ( __asm volatile
(
" mrs r0, control \n" /* Obtain current control value. */ " mrs r0, control \n" /* Obtain current control value. */
" movs r1, #1 \n" /* r1 = 1. */ " movs r1, #1 \n" /* r1 = 1. */
" bics r0, r1 \n" /* Clear nPRIV bit. */ " bics r0, r1 \n" /* Clear nPRIV bit. */
@ -1323,30 +1240,51 @@ void vSystemCallEnter_1( uint32_t * pulTaskStack, uint32_t ulLR ) /* PRIVILEGED_
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) /* PRIVILEGED_FUNCTION */ void vRequestSystemCallExit( void ) /* __attribute__( ( naked ) ) PRIVILEGED_FUNCTION */
{
__asm volatile ( "svc %0 \n" ::"i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" );
}
#endif /* ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
void vSystemCallExit( uint32_t * pulSystemCallStack,
uint32_t ulLR ) /* PRIVILEGED_FUNCTION */
{ {
extern TaskHandle_t pxCurrentTCB; extern TaskHandle_t pxCurrentTCB;
xMPU_SETTINGS * pxMpuSettings; xMPU_SETTINGS * pxMpuSettings;
uint32_t * pulTaskStack; uint32_t * pulTaskStack;
uint32_t ulStackFrameSize, ulSystemCallLocation, i; uint32_t ulStackFrameSize, ulSystemCallLocation, i;
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being /* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */ * exported from linker scripts. */
extern uint32_t * __syscalls_flash_start__; extern uint32_t * __privileged_functions_start__;
extern uint32_t * __syscalls_flash_end__; extern uint32_t * __privileged_functions_end__;
#else #else
/* Declaration when these variable are exported from linker scripts. */ /* Declaration when these variable are exported from linker scripts. */
extern uint32_t __syscalls_flash_start__[]; extern uint32_t __privileged_functions_start__[];
extern uint32_t __syscalls_flash_end__[]; extern uint32_t __privileged_functions_end__[];
#endif /* #if defined( __ARMCC_VERSION ) */ #endif /* #if defined( __ARMCC_VERSION ) */
ulSystemCallLocation = pulSystemCallStack[ portOFFSET_TO_PC ]; ulSystemCallLocation = pulSystemCallStack[ portOFFSET_TO_PC ];
/* If the request did not come from the system call section, do nothing. */
if( ( ulSystemCallLocation >= ( uint32_t ) __syscalls_flash_start__ ) &&
( ulSystemCallLocation <= ( uint32_t ) __syscalls_flash_end__ ) )
{
pxMpuSettings = xTaskGetMPUSettings( pxCurrentTCB ); pxMpuSettings = xTaskGetMPUSettings( pxCurrentTCB );
/* Checks:
* 1. SVC is raised from the privileged code (i.e. application is not
* raising SVC directly). This SVC is only raised from
* vRequestSystemCallExit which is in the privileged code section.
* 2. pxMpuSettings->xSystemCallStackInfo.pulTaskStack must not be NULL -
* this means that we previously entered a system call and the
* application is not attempting to exit without entering a system
* call.
*/
if( ( ulSystemCallLocation >= ( uint32_t ) __privileged_functions_start__ ) &&
( ulSystemCallLocation <= ( uint32_t ) __privileged_functions_end__ ) &&
( pxMpuSettings->xSystemCallStackInfo.pulTaskStack != NULL ) )
{
pulTaskStack = pxMpuSettings->xSystemCallStackInfo.pulTaskStack; pulTaskStack = pxMpuSettings->xSystemCallStackInfo.pulTaskStack;
#if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) #if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) )
@ -1355,7 +1293,8 @@ void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) /* PRIVILEG
{ {
/* Extended frame i.e. FPU in use. */ /* Extended frame i.e. FPU in use. */
ulStackFrameSize = 26; ulStackFrameSize = 26;
__asm volatile ( __asm volatile
(
" vpush {s0} \n" /* Trigger lazy stacking. */ " vpush {s0} \n" /* Trigger lazy stacking. */
" vpop {s0} \n" /* Nullify the affect of the above instruction. */ " vpop {s0} \n" /* Nullify the affect of the above instruction. */
::: "memory" ::: "memory"
@ -1367,11 +1306,11 @@ void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) /* PRIVILEG
ulStackFrameSize = 8; ulStackFrameSize = 8;
} }
} }
#else #else /* if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) */
{ {
ulStackFrameSize = 8; ulStackFrameSize = 8;
} }
#endif /* configENABLE_FPU || configENABLE_MVE */ #endif /* if ( ( configENABLE_FPU == 1 ) || ( configENABLE_MVE == 1 ) ) */
/* Make space on the task stack for the stack frame. */ /* Make space on the task stack for the stack frame. */
pulTaskStack = pulTaskStack - ulStackFrameSize; pulTaskStack = pulTaskStack - ulStackFrameSize;
@ -1385,9 +1324,14 @@ void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) /* PRIVILEG
/* Use the pulTaskStack in thread mode. */ /* Use the pulTaskStack in thread mode. */
__asm volatile ( "msr psp, %0" : : "r" ( pulTaskStack ) ); __asm volatile ( "msr psp, %0" : : "r" ( pulTaskStack ) );
/* Restore the LR and PSPLIM to what they were at the time of /* Return to the caller of the System Call entry point (i.e. the
* system call entry. */ * caller of the MPU_<API>). */
pulTaskStack[ portOFFSET_TO_PC ] = pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry;
/* Ensure that LR has a valid value.*/
pulTaskStack[ portOFFSET_TO_LR ] = pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry; pulTaskStack[ portOFFSET_TO_LR ] = pxMpuSettings->xSystemCallStackInfo.ulLinkRegisterAtSystemCallEntry;
/* Restore the PSPLIM register to what it was at the time of
* system call entry. */
__asm volatile ( "msr psplim, %0" : : "r" ( pxMpuSettings->xSystemCallStackInfo.ulStackLimitRegisterAtSystemCallEntry ) ); __asm volatile ( "msr psplim, %0" : : "r" ( pxMpuSettings->xSystemCallStackInfo.ulStackLimitRegisterAtSystemCallEntry ) );
/* If the hardware used padding to force the stack pointer /* If the hardware used padding to force the stack pointer
@ -1406,7 +1350,8 @@ void vSystemCallExit( uint32_t * pulSystemCallStack, uint32_t ulLR ) /* PRIVILEG
pxMpuSettings->xSystemCallStackInfo.pulTaskStack = NULL; pxMpuSettings->xSystemCallStackInfo.pulTaskStack = NULL;
/* Drop the privilege before returning to the thread mode. */ /* Drop the privilege before returning to the thread mode. */
__asm volatile ( __asm volatile
(
" mrs r0, control \n" /* Obtain current control value. */ " mrs r0, control \n" /* Obtain current control value. */
" movs r1, #1 \n" /* r1 = 1. */ " movs r1, #1 \n" /* r1 = 1. */
" orrs r0, r1 \n" /* Set nPRIV bit. */ " orrs r0, r1 \n" /* Set nPRIV bit. */
@ -1715,6 +1660,12 @@ 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 ) )
{
xSchedulerRunning = pdTRUE;
}
#endif
/* Start the first task. */ /* Start the first task. */
vStartFirstTask(); vStartFirstTask();
@ -1750,7 +1701,6 @@ void vPortEndScheduler( void ) /* PRIVILEGED_FUNCTION */
int32_t lIndex = 0; int32_t lIndex = 0;
#if defined( __ARMCC_VERSION ) #if defined( __ARMCC_VERSION )
/* Declaration when these variable are defined in code instead of being /* Declaration when these variable are defined in code instead of being
* exported from linker scripts. */ * exported from linker scripts. */
extern uint32_t * __privileged_sram_start__; extern uint32_t * __privileged_sram_start__;
@ -1996,3 +1946,98 @@ BaseType_t xPortIsInsideInterrupt( void )
#endif /* #if ( ( configASSERT_DEFINED == 1 ) && ( portHAS_BASEPRI == 1 ) ) */ #endif /* #if ( ( configASSERT_DEFINED == 1 ) && ( portHAS_BASEPRI == 1 ) ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) )
void vPortGrantAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject ) /* PRIVILEGED_FUNCTION */
{
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_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) )
void vPortRevokeAccessToKernelObject( TaskHandle_t xInternalTaskHandle,
int32_t lInternalIndexOfKernelObject ) /* PRIVILEGED_FUNCTION */
{
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_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) && ( configENABLE_ACCESS_CONTROL_LIST == 1 ) ) */
/*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
#if ( configENABLE_ACCESS_CONTROL_LIST == 1 )
BaseType_t xPortIsAuthorizedToAccessKernelObject( int32_t lInternalIndexOfKernelObject ) /* PRIVILEGED_FUNCTION */
{
uint32_t ulAccessControlListEntryIndex, ulAccessControlListEntryBit;
BaseType_t xAccessGranted = pdFALSE;
const xMPU_SETTINGS * xTaskMpuSettings;
if( xSchedulerRunning == 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
{
xTaskMpuSettings = xTaskGetMPUSettings( NULL ); /* Calling task's MPU settings. */
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 ) ) != 0 )
{
xAccessGranted = pdTRUE;
}
}
}
return xAccessGranted;
}
#else /* #if ( configENABLE_ACCESS_CONTROL_LIST == 1 ) */
BaseType_t xPortIsAuthorizedToAccessKernelObject( int32_t lInternalIndexOfKernelObject ) /* PRIVILEGED_FUNCTION */
{
( 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 ) */
#endif /* #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) */
/*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -38,6 +38,8 @@
#include "timers.h" #include "timers.h"
#include "event_groups.h" #include "event_groups.h"
#include "stream_buffer.h" #include "stream_buffer.h"
#include "mpu_prototypes.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -68,11 +70,8 @@ BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
); );
} }
@ -101,11 +100,8 @@ BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* __attribute__ (( naked )
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
); );
} }
@ -134,11 +130,8 @@ void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* __attribute__ (( naked
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
); );
} }
@ -167,11 +160,8 @@ UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* __attribute__ (
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
); );
} }
@ -200,11 +190,8 @@ eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* __attribute__ (( naked ))
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
); );
} }
@ -239,11 +226,8 @@ void MPU_vTaskGetInfo( TaskHandle_t xTask,
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
); );
} }
@ -272,11 +256,8 @@ TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* __attribute__ (( naked )) FRE
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
); );
} }
@ -305,11 +286,8 @@ void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* __attribute__ (( naked )
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
); );
} }
@ -338,11 +316,8 @@ void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* __attribute__ (( naked ))
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
); );
} }
@ -369,11 +344,8 @@ TickType_t MPU_xTaskGetTickCount( void ) /* __attribute__ (( naked )) FREERTOS_S
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -398,11 +370,8 @@ UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* __attribute__ (( naked )) FREE
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -427,11 +396,8 @@ char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* __attribute__ (( naked
" MPU_pcTaskGetName_Unpriv: \n" " MPU_pcTaskGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTaskGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTaskGetName ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -458,11 +424,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
); );
} }
@ -491,11 +454,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
); );
} }
@ -524,11 +484,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
); );
} }
@ -557,11 +514,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
); );
} }
@ -592,11 +546,8 @@ void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
); );
} }
@ -625,11 +576,8 @@ TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* __att
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
); );
} }
@ -662,11 +610,8 @@ void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -697,11 +642,8 @@ void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -734,11 +676,8 @@ UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
); );
} }
@ -767,11 +706,8 @@ UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* __attribute
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
); );
} }
@ -800,11 +736,8 @@ configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /*
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
); );
} }
@ -833,11 +766,8 @@ TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* __attribute__ (( naked ))
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
); );
} }
@ -866,11 +796,8 @@ BaseType_t MPU_xTaskGetSchedulerState( void ) /* __attribute__ (( naked )) FREER
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
); );
} }
@ -897,11 +824,8 @@ void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* __attribute__ ((
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -928,28 +852,17 @@ BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -967,11 +880,8 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
); );
} }
@ -980,17 +890,9 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1008,11 +910,8 @@ BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
); );
} }
@ -1045,11 +944,8 @@ uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
); );
} }
@ -1080,11 +976,8 @@ BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
); );
} }
@ -1117,11 +1010,8 @@ uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
); );
} }
@ -1154,11 +1044,8 @@ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1183,11 +1070,8 @@ UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1212,11 +1096,8 @@ UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1245,11 +1126,8 @@ BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1278,11 +1156,8 @@ BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1309,11 +1184,8 @@ BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1340,11 +1212,8 @@ TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* __attribute
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
); );
} }
@ -1375,11 +1244,8 @@ BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
); );
} }
@ -1408,11 +1274,8 @@ BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* __attribute_
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
); );
} }
@ -1443,11 +1306,8 @@ QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
); );
} }
@ -1478,11 +1338,8 @@ BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
); );
} }
@ -1513,11 +1370,8 @@ void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
); );
} }
@ -1546,11 +1400,8 @@ void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* __attribute__ (( naked
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
); );
} }
@ -1579,11 +1430,8 @@ const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* __attribute__ (( nake
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
); );
} }
@ -1612,11 +1460,8 @@ void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
); );
} }
@ -1647,11 +1492,8 @@ void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
); );
} }
@ -1680,11 +1522,8 @@ BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
); );
} }
@ -1713,11 +1552,8 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
); );
} }
@ -1726,22 +1562,14 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 ) #if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
" .syntax unified \n" " .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n" " .extern MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" push {r0, r1} \n" " push {r0, r1} \n"
" mrs r0, ipsr \n" " mrs r0, ipsr \n"
@ -1754,14 +1582,11 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
" MPU_xTimerGenericCommand_Unpriv: \n" " MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n" " MPU_xTimerGenericCommand_Priv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" b MPU_xTimerGenericCommandImpl \n" " b MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommand ) : "memory"
); );
} }
@ -1790,11 +1615,8 @@ const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* __attribute__ (( nake
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
); );
} }
@ -1825,11 +1647,8 @@ void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
); );
} }
@ -1858,11 +1677,8 @@ BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
); );
} }
@ -1891,11 +1707,8 @@ UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ ((
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
); );
} }
@ -1924,11 +1737,8 @@ TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* __attribute__ (( naked
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
); );
} }
@ -1957,28 +1767,17 @@ TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
); );
} }
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1996,11 +1795,8 @@ EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupWaitBits_Unpriv: \n" " MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2027,11 +1823,8 @@ EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupClearBits_Unpriv: \n" " MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2058,11 +1851,8 @@ EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSetBits_Unpriv: \n" " MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2093,11 +1883,8 @@ EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSync_Unpriv: \n" " MPU_xEventGroupSync_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2124,11 +1911,8 @@ UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* __attribute__ ((
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
@ -2159,11 +1943,8 @@ void MPU_vEventGroupSetNumber( void * xEventGroup,
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
@ -2196,11 +1977,8 @@ size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSend_Unpriv: \n" " MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2231,11 +2009,8 @@ size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferReceive_Unpriv: \n" " MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2260,11 +2035,8 @@ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __at
" MPU_xStreamBufferIsFull_Unpriv: \n" " MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2289,11 +2061,8 @@ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __a
" MPU_xStreamBufferIsEmpty_Unpriv: \n" " MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2318,11 +2087,8 @@ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n" " MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2347,11 +2113,8 @@ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferBytesAvailable_Unpriv: \n" " MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2378,11 +2141,8 @@ BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n" " MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2407,11 +2167,8 @@ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuff
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n" " MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -36,6 +36,9 @@
/* Portasm includes. */ /* Portasm includes. */
#include "portasm.h" #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 /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */ * header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -542,7 +545,6 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
".syntax unified \n" ".syntax unified \n"
".extern vPortSVCHandler_C \n" ".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n" ".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n" ".extern vSystemCallExit \n"
" \n" " \n"
"movs r0, #4 \n" "movs r0, #4 \n"
@ -557,26 +559,22 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
" b route_svc \n" " b route_svc \n"
" \n" " \n"
"route_svc: \n" "route_svc: \n"
" ldr r2, [r0, #24] \n" " ldr r3, [r0, #24] \n"
" subs r2, #2 \n" " subs r3, #2 \n"
" ldrb r3, [r2, #0] \n" " ldrb r2, [r3, #0] \n"
" cmp r3, %0 \n" " cmp r2, %0 \n"
" beq system_call_enter \n" " blt system_call_enter \n"
" cmp r3, %1 \n" " cmp r2, %1 \n"
" beq system_call_enter_1 \n"
" cmp r3, %2 \n"
" beq system_call_exit \n" " beq system_call_exit \n"
" b vPortSVCHandler_C \n" " b vPortSVCHandler_C \n"
" \n" " \n"
"system_call_enter: \n" "system_call_enter: \n"
" b vSystemCallEnter \n" " b vSystemCallEnter \n"
"system_call_enter_1: \n"
" b vSystemCallEnter_1 \n"
"system_call_exit: \n" "system_call_exit: \n"
" b vSystemCallExit \n" " b vSystemCallExit \n"
" \n" " \n"
: /* No outputs. */ : /* No outputs. */
:"i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "r3", "memory" : "r0", "r1", "r2", "r3", "memory"
); );
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -38,6 +38,8 @@
#include "timers.h" #include "timers.h"
#include "event_groups.h" #include "event_groups.h"
#include "stream_buffer.h" #include "stream_buffer.h"
#include "mpu_prototypes.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -68,11 +70,8 @@ BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
); );
} }
@ -101,11 +100,8 @@ BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* __attribute__ (( naked )
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
); );
} }
@ -134,11 +130,8 @@ void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* __attribute__ (( naked
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
); );
} }
@ -167,11 +160,8 @@ UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* __attribute__ (
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
); );
} }
@ -200,11 +190,8 @@ eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* __attribute__ (( naked ))
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
); );
} }
@ -239,11 +226,8 @@ void MPU_vTaskGetInfo( TaskHandle_t xTask,
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
); );
} }
@ -272,11 +256,8 @@ TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* __attribute__ (( naked )) FRE
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
); );
} }
@ -305,11 +286,8 @@ void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* __attribute__ (( naked )
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
); );
} }
@ -338,11 +316,8 @@ void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* __attribute__ (( naked ))
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
); );
} }
@ -369,11 +344,8 @@ TickType_t MPU_xTaskGetTickCount( void ) /* __attribute__ (( naked )) FREERTOS_S
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -398,11 +370,8 @@ UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* __attribute__ (( naked )) FREE
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -427,11 +396,8 @@ char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* __attribute__ (( naked
" MPU_pcTaskGetName_Unpriv: \n" " MPU_pcTaskGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTaskGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTaskGetName ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -458,11 +424,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
); );
} }
@ -491,11 +454,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
); );
} }
@ -524,11 +484,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
); );
} }
@ -557,11 +514,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
); );
} }
@ -592,11 +546,8 @@ void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
); );
} }
@ -625,11 +576,8 @@ TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* __att
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
); );
} }
@ -662,11 +610,8 @@ void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -697,11 +642,8 @@ void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -734,11 +676,8 @@ UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
); );
} }
@ -767,11 +706,8 @@ UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* __attribute
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
); );
} }
@ -800,11 +736,8 @@ configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /*
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
); );
} }
@ -833,11 +766,8 @@ TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* __attribute__ (( naked ))
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
); );
} }
@ -866,11 +796,8 @@ BaseType_t MPU_xTaskGetSchedulerState( void ) /* __attribute__ (( naked )) FREER
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
); );
} }
@ -897,11 +824,8 @@ void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* __attribute__ ((
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -928,28 +852,17 @@ BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -967,11 +880,8 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
); );
} }
@ -980,17 +890,9 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1008,11 +910,8 @@ BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
); );
} }
@ -1045,11 +944,8 @@ uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
); );
} }
@ -1080,11 +976,8 @@ BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
); );
} }
@ -1117,11 +1010,8 @@ uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
); );
} }
@ -1154,11 +1044,8 @@ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1183,11 +1070,8 @@ UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1212,11 +1096,8 @@ UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1245,11 +1126,8 @@ BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1278,11 +1156,8 @@ BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1309,11 +1184,8 @@ BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1340,11 +1212,8 @@ TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* __attribute
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
); );
} }
@ -1375,11 +1244,8 @@ BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
); );
} }
@ -1408,11 +1274,8 @@ BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* __attribute_
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
); );
} }
@ -1443,11 +1306,8 @@ QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
); );
} }
@ -1478,11 +1338,8 @@ BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
); );
} }
@ -1513,11 +1370,8 @@ void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
); );
} }
@ -1546,11 +1400,8 @@ void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* __attribute__ (( naked
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
); );
} }
@ -1579,11 +1430,8 @@ const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* __attribute__ (( nake
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
); );
} }
@ -1612,11 +1460,8 @@ void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
); );
} }
@ -1647,11 +1492,8 @@ void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
); );
} }
@ -1680,11 +1522,8 @@ BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
); );
} }
@ -1713,11 +1552,8 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
); );
} }
@ -1726,22 +1562,14 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 ) #if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
" .syntax unified \n" " .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n" " .extern MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" push {r0, r1} \n" " push {r0, r1} \n"
" mrs r0, ipsr \n" " mrs r0, ipsr \n"
@ -1754,14 +1582,11 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
" MPU_xTimerGenericCommand_Unpriv: \n" " MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n" " MPU_xTimerGenericCommand_Priv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" b MPU_xTimerGenericCommandImpl \n" " b MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommand ) : "memory"
); );
} }
@ -1790,11 +1615,8 @@ const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* __attribute__ (( nake
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
); );
} }
@ -1825,11 +1647,8 @@ void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
); );
} }
@ -1858,11 +1677,8 @@ BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
); );
} }
@ -1891,11 +1707,8 @@ UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ ((
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
); );
} }
@ -1924,11 +1737,8 @@ TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* __attribute__ (( naked
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
); );
} }
@ -1957,28 +1767,17 @@ TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
); );
} }
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1996,11 +1795,8 @@ EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupWaitBits_Unpriv: \n" " MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2027,11 +1823,8 @@ EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupClearBits_Unpriv: \n" " MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2058,11 +1851,8 @@ EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSetBits_Unpriv: \n" " MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2093,11 +1883,8 @@ EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSync_Unpriv: \n" " MPU_xEventGroupSync_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2124,11 +1911,8 @@ UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* __attribute__ ((
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
@ -2159,11 +1943,8 @@ void MPU_vEventGroupSetNumber( void * xEventGroup,
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
@ -2196,11 +1977,8 @@ size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSend_Unpriv: \n" " MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2231,11 +2009,8 @@ size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferReceive_Unpriv: \n" " MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2260,11 +2035,8 @@ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __at
" MPU_xStreamBufferIsFull_Unpriv: \n" " MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2289,11 +2061,8 @@ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __a
" MPU_xStreamBufferIsEmpty_Unpriv: \n" " MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2318,11 +2087,8 @@ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n" " MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2347,11 +2113,8 @@ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferBytesAvailable_Unpriv: \n" " MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2378,11 +2141,8 @@ BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n" " MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2407,11 +2167,8 @@ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuff
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n" " MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0, r1} \n" " pop {r0, r1} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -36,6 +36,9 @@
/* Portasm includes. */ /* Portasm includes. */
#include "portasm.h" #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 /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */ * header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -462,7 +465,6 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
".syntax unified \n" ".syntax unified \n"
".extern vPortSVCHandler_C \n" ".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n" ".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n" ".extern vSystemCallExit \n"
" \n" " \n"
"movs r0, #4 \n" "movs r0, #4 \n"
@ -477,26 +479,22 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
" b route_svc \n" " b route_svc \n"
" \n" " \n"
"route_svc: \n" "route_svc: \n"
" ldr r2, [r0, #24] \n" " ldr r3, [r0, #24] \n"
" subs r2, #2 \n" " subs r3, #2 \n"
" ldrb r3, [r2, #0] \n" " ldrb r2, [r3, #0] \n"
" cmp r3, %0 \n" " cmp r2, %0 \n"
" beq system_call_enter \n" " blt system_call_enter \n"
" cmp r3, %1 \n" " cmp r2, %1 \n"
" beq system_call_enter_1 \n"
" cmp r3, %2 \n"
" beq system_call_exit \n" " beq system_call_exit \n"
" b vPortSVCHandler_C \n" " b vPortSVCHandler_C \n"
" \n" " \n"
"system_call_enter: \n" "system_call_enter: \n"
" b vSystemCallEnter \n" " b vSystemCallEnter \n"
"system_call_enter_1: \n"
" b vSystemCallEnter_1 \n"
"system_call_exit: \n" "system_call_exit: \n"
" b vSystemCallExit \n" " b vSystemCallExit \n"
" \n" " \n"
: /* No outputs. */ : /* No outputs. */
:"i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "r3", "memory" : "r0", "r1", "r2", "r3", "memory"
); );
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -38,6 +38,8 @@
#include "timers.h" #include "timers.h"
#include "event_groups.h" #include "event_groups.h"
#include "stream_buffer.h" #include "stream_buffer.h"
#include "mpu_prototypes.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -67,11 +69,8 @@ BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
); );
} }
@ -99,11 +98,8 @@ BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* __attribute__ (( naked )
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
); );
} }
@ -131,11 +127,8 @@ void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* __attribute__ (( naked
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
); );
} }
@ -163,11 +156,8 @@ UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* __attribute__ (
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
); );
} }
@ -195,11 +185,8 @@ eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* __attribute__ (( naked ))
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
); );
} }
@ -233,11 +220,8 @@ void MPU_vTaskGetInfo( TaskHandle_t xTask,
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
); );
} }
@ -265,11 +249,8 @@ TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* __attribute__ (( naked )) FRE
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
); );
} }
@ -297,11 +278,8 @@ void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* __attribute__ (( naked )
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
); );
} }
@ -329,11 +307,8 @@ void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* __attribute__ (( naked ))
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
); );
} }
@ -359,11 +334,8 @@ TickType_t MPU_xTaskGetTickCount( void ) /* __attribute__ (( naked )) FREERTOS_S
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -387,11 +359,8 @@ UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* __attribute__ (( naked )) FREE
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -415,11 +384,8 @@ char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* __attribute__ (( naked
" MPU_pcTaskGetName_Unpriv: \n" " MPU_pcTaskGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTaskGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTaskGetName ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -445,11 +411,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
); );
} }
@ -477,11 +440,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
); );
} }
@ -509,11 +469,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
); );
} }
@ -541,11 +498,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
); );
} }
@ -575,11 +529,8 @@ void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
); );
} }
@ -607,11 +558,8 @@ TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* __att
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
); );
} }
@ -643,11 +591,8 @@ void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -677,11 +622,8 @@ void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -713,11 +655,8 @@ UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
); );
} }
@ -745,11 +684,8 @@ UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* __attribute
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
); );
} }
@ -777,11 +713,8 @@ configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /*
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
); );
} }
@ -809,11 +742,8 @@ TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* __attribute__ (( naked ))
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
); );
} }
@ -841,11 +771,8 @@ BaseType_t MPU_xTaskGetSchedulerState( void ) /* __attribute__ (( naked )) FREER
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
); );
} }
@ -871,11 +798,8 @@ void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* __attribute__ ((
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,28 +825,17 @@ BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -939,11 +852,8 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
); );
} }
@ -952,17 +862,9 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -979,11 +881,8 @@ BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
); );
} }
@ -1015,11 +914,8 @@ uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
); );
} }
@ -1049,11 +945,8 @@ BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
); );
} }
@ -1085,11 +978,8 @@ uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
); );
} }
@ -1121,11 +1011,8 @@ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1149,11 +1036,8 @@ UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1177,11 +1061,8 @@ UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1209,11 +1090,8 @@ BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1241,11 +1119,8 @@ BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1271,11 +1146,8 @@ BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1301,11 +1173,8 @@ TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* __attribute
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
); );
} }
@ -1335,11 +1204,8 @@ BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
); );
} }
@ -1367,11 +1233,8 @@ BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* __attribute_
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
); );
} }
@ -1401,11 +1264,8 @@ QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
); );
} }
@ -1435,11 +1295,8 @@ BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
); );
} }
@ -1469,11 +1326,8 @@ void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
); );
} }
@ -1501,11 +1355,8 @@ void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* __attribute__ (( naked
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
); );
} }
@ -1533,11 +1384,8 @@ const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* __attribute__ (( nake
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
); );
} }
@ -1565,11 +1413,8 @@ void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
); );
} }
@ -1599,11 +1444,8 @@ void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
); );
} }
@ -1631,11 +1473,8 @@ BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
); );
} }
@ -1663,11 +1502,8 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
); );
} }
@ -1676,22 +1512,14 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 ) #if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
" .syntax unified \n" " .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n" " .extern MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" push {r0} \n" " push {r0} \n"
" mrs r0, ipsr \n" " mrs r0, ipsr \n"
@ -1703,15 +1531,12 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
" MPU_xTimerGenericCommand_Unpriv: \n" " MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n" " MPU_xTimerGenericCommand_Priv: \n"
" pop {r0} \n" " pop {r0} \n"
" b MPU_xTimerGenericCommandImpl \n" " b MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommand ) : "memory"
); );
} }
@ -1739,11 +1564,8 @@ const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* __attribute__ (( nake
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
); );
} }
@ -1773,11 +1595,8 @@ void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
); );
} }
@ -1805,11 +1624,8 @@ BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
); );
} }
@ -1837,11 +1653,8 @@ UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ ((
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
); );
} }
@ -1869,11 +1682,8 @@ TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* __attribute__ (( naked
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
); );
} }
@ -1901,28 +1711,17 @@ TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
); );
} }
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1939,11 +1738,8 @@ EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupWaitBits_Unpriv: \n" " MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1969,11 +1765,8 @@ EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupClearBits_Unpriv: \n" " MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1999,11 +1792,8 @@ EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSetBits_Unpriv: \n" " MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2033,11 +1823,8 @@ EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSync_Unpriv: \n" " MPU_xEventGroupSync_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2063,11 +1850,8 @@ UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* __attribute__ ((
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
@ -2097,11 +1881,8 @@ void MPU_vEventGroupSetNumber( void * xEventGroup,
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
@ -2133,11 +1914,8 @@ size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSend_Unpriv: \n" " MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2167,11 +1945,8 @@ size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferReceive_Unpriv: \n" " MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2195,11 +1970,8 @@ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __at
" MPU_xStreamBufferIsFull_Unpriv: \n" " MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2223,11 +1995,8 @@ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __a
" MPU_xStreamBufferIsEmpty_Unpriv: \n" " MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2251,11 +2020,8 @@ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n" " MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2279,11 +2045,8 @@ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferBytesAvailable_Unpriv: \n" " MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2309,11 +2072,8 @@ BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n" " MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2337,11 +2097,8 @@ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuff
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n" " MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -36,6 +36,9 @@
/* Portasm includes. */ /* Portasm includes. */
#include "portasm.h" #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 /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */ * header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -522,7 +525,6 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
".syntax unified \n" ".syntax unified \n"
".extern vPortSVCHandler_C \n" ".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n" ".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n" ".extern vSystemCallExit \n"
" \n" " \n"
"tst lr, #4 \n" "tst lr, #4 \n"
@ -533,10 +535,8 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
"ldr r1, [r0, #24] \n" "ldr r1, [r0, #24] \n"
"ldrb r2, [r1, #-2] \n" "ldrb r2, [r1, #-2] \n"
"cmp r2, %0 \n" "cmp r2, %0 \n"
"beq syscall_enter \n" "blt syscall_enter \n"
"cmp r2, %1 \n" "cmp r2, %1 \n"
"beq syscall_enter_1 \n"
"cmp r2, %2 \n"
"beq syscall_exit \n" "beq syscall_exit \n"
"b vPortSVCHandler_C \n" "b vPortSVCHandler_C \n"
" \n" " \n"
@ -544,16 +544,12 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
" mov r1, lr \n" " mov r1, lr \n"
" b vSystemCallEnter \n" " b vSystemCallEnter \n"
" \n" " \n"
"syscall_enter_1: \n"
" mov r1, lr \n"
" b vSystemCallEnter_1 \n"
" \n"
"syscall_exit: \n" "syscall_exit: \n"
" mov r1, lr \n" " mov r1, lr \n"
" b vSystemCallExit \n" " b vSystemCallExit \n"
" \n" " \n"
: /* No outputs. */ : /* No outputs. */
:"i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "memory" : "r0", "r1", "r2", "memory"
); );
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -38,6 +38,8 @@
#include "timers.h" #include "timers.h"
#include "event_groups.h" #include "event_groups.h"
#include "stream_buffer.h" #include "stream_buffer.h"
#include "mpu_prototypes.h"
#include "mpu_syscall_numbers.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -67,11 +69,8 @@ BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
" MPU_xTaskDelayUntil_Unpriv: \n" " MPU_xTaskDelayUntil_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskDelayUntilImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskDelayUntil ) : "memory"
); );
} }
@ -99,11 +98,8 @@ BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* __attribute__ (( naked )
" MPU_xTaskAbortDelay_Unpriv: \n" " MPU_xTaskAbortDelay_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskAbortDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskAbortDelay ) : "memory"
); );
} }
@ -131,11 +127,8 @@ void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* __attribute__ (( naked
" MPU_vTaskDelay_Unpriv: \n" " MPU_vTaskDelay_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskDelayImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskDelay ) : "memory"
); );
} }
@ -163,11 +156,8 @@ UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* __attribute__ (
" MPU_uxTaskPriorityGet_Unpriv: \n" " MPU_uxTaskPriorityGet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskPriorityGetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskPriorityGet ) : "memory"
); );
} }
@ -195,11 +185,8 @@ eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* __attribute__ (( naked ))
" MPU_eTaskGetState_Unpriv: \n" " MPU_eTaskGetState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_eTaskGetStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_eTaskGetState ) : "memory"
); );
} }
@ -233,11 +220,8 @@ void MPU_vTaskGetInfo( TaskHandle_t xTask,
" MPU_vTaskGetInfo_Unpriv: \n" " MPU_vTaskGetInfo_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskGetInfoImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskGetInfo ) : "memory"
); );
} }
@ -265,11 +249,8 @@ TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* __attribute__ (( naked )) FRE
" MPU_xTaskGetIdleTaskHandle_Unpriv: \n" " MPU_xTaskGetIdleTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetIdleTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetIdleTaskHandle ) : "memory"
); );
} }
@ -297,11 +278,8 @@ void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* __attribute__ (( naked )
" MPU_vTaskSuspend_Unpriv: \n" " MPU_vTaskSuspend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSuspendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSuspend ) : "memory"
); );
} }
@ -329,11 +307,8 @@ void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* __attribute__ (( naked ))
" MPU_vTaskResume_Unpriv: \n" " MPU_vTaskResume_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskResumeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskResume ) : "memory"
); );
} }
@ -359,11 +334,8 @@ TickType_t MPU_xTaskGetTickCount( void ) /* __attribute__ (( naked )) FREERTOS_S
" MPU_xTaskGetTickCount_Unpriv: \n" " MPU_xTaskGetTickCount_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetTickCountImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetTickCount ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -387,11 +359,8 @@ UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* __attribute__ (( naked )) FREE
" MPU_uxTaskGetNumberOfTasks_Unpriv: \n" " MPU_uxTaskGetNumberOfTasks_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetNumberOfTasksImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetNumberOfTasks ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -415,11 +384,8 @@ char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) /* __attribute__ (( naked
" MPU_pcTaskGetName_Unpriv: \n" " MPU_pcTaskGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTaskGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTaskGetName ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -445,11 +411,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetRunTimeCounter_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimeCounter ) : "memory"
); );
} }
@ -477,11 +440,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTas
" MPU_ulTaskGetRunTimePercent_Unpriv: \n" " MPU_ulTaskGetRunTimePercent_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetRunTimePercent ) : "memory"
); );
} }
@ -509,11 +469,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n" " MPU_ulTaskGetIdleRunTimePercent_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimePercentImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimePercent ) : "memory"
); );
} }
@ -541,11 +498,8 @@ configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* __attribu
" MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n" " MPU_ulTaskGetIdleRunTimeCounter_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGetIdleRunTimeCounterImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGetIdleRunTimeCounter ) : "memory"
); );
} }
@ -575,11 +529,8 @@ void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
" MPU_vTaskSetApplicationTaskTag_Unpriv: \n" " MPU_vTaskSetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetApplicationTaskTag ) : "memory"
); );
} }
@ -607,11 +558,8 @@ TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* __att
" MPU_xTaskGetApplicationTaskTag_Unpriv: \n" " MPU_xTaskGetApplicationTaskTag_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetApplicationTaskTagImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetApplicationTaskTag ) : "memory"
); );
} }
@ -643,11 +591,8 @@ void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
" MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n" " MPU_vTaskSetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -677,11 +622,8 @@ void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
" MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n" " MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTaskGetThreadLocalStoragePointerImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer ) : "memory"
); );
} }
@ -713,11 +655,8 @@ UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
" MPU_uxTaskGetSystemState_Unpriv: \n" " MPU_uxTaskGetSystemState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetSystemStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetSystemState ) : "memory"
); );
} }
@ -745,11 +684,8 @@ UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* __attribute
" MPU_uxTaskGetStackHighWaterMark_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMarkImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark ) : "memory"
); );
} }
@ -777,11 +713,8 @@ configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /*
" MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n" " MPU_uxTaskGetStackHighWaterMark2_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTaskGetStackHighWaterMark2Impl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTaskGetStackHighWaterMark2 ) : "memory"
); );
} }
@ -809,11 +742,8 @@ TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* __attribute__ (( naked ))
" MPU_xTaskGetCurrentTaskHandle_Unpriv: \n" " MPU_xTaskGetCurrentTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetCurrentTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetCurrentTaskHandle ) : "memory"
); );
} }
@ -841,11 +771,8 @@ BaseType_t MPU_xTaskGetSchedulerState( void ) /* __attribute__ (( naked )) FREER
" MPU_xTaskGetSchedulerState_Unpriv: \n" " MPU_xTaskGetSchedulerState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGetSchedulerStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGetSchedulerState ) : "memory"
); );
} }
@ -871,11 +798,8 @@ void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* __attribute__ ((
" MPU_vTaskSetTimeOutState_Unpriv: \n" " MPU_vTaskSetTimeOutState_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTaskSetTimeOutStateImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTaskSetTimeOutState ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -901,28 +825,17 @@ BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
" MPU_xTaskCheckForTimeOut_Unpriv: \n" " MPU_xTaskCheckForTimeOut_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskCheckForTimeOutImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskCheckForTimeOut ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
UBaseType_t uxIndexToNotify,
uint32_t ulValue,
eNotifyAction eAction,
uint32_t * pulPreviousNotificationValue ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -939,11 +852,8 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
" MPU_xTaskGenericNotify_Unpriv: \n" " MPU_xTaskGenericNotify_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotify ) : "memory"
); );
} }
@ -952,17 +862,9 @@ BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,
#if ( configUSE_TASK_NOTIFICATIONS == 1 ) #if ( configUSE_TASK_NOTIFICATIONS == 1 )
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn, BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
uint32_t ulBitsToClearOnEntry,
uint32_t ulBitsToClearOnExit,
uint32_t * pulNotificationValue,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -979,11 +881,8 @@ BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,
" MPU_xTaskGenericNotifyWait_Unpriv: \n" " MPU_xTaskGenericNotifyWait_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyWaitImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyWait ) : "memory"
); );
} }
@ -1015,11 +914,8 @@ uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
" MPU_ulTaskGenericNotifyTake_Unpriv: \n" " MPU_ulTaskGenericNotifyTake_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyTake ) : "memory"
); );
} }
@ -1049,11 +945,8 @@ BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
" MPU_xTaskGenericNotifyStateClear_Unpriv: \n" " MPU_xTaskGenericNotifyStateClear_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTaskGenericNotifyStateClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTaskGenericNotifyStateClear ) : "memory"
); );
} }
@ -1085,11 +978,8 @@ uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
" MPU_ulTaskGenericNotifyValueClear_Unpriv: \n" " MPU_ulTaskGenericNotifyValueClear_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_ulTaskGenericNotifyValueClearImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_ulTaskGenericNotifyValueClear ) : "memory"
); );
} }
@ -1121,11 +1011,8 @@ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
" MPU_xQueueGenericSend_Unpriv: \n" " MPU_xQueueGenericSend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGenericSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGenericSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1149,11 +1036,8 @@ UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueMessagesWaiting_Unpriv: \n" " MPU_uxQueueMessagesWaiting_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueMessagesWaitingImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueMessagesWaiting ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1177,11 +1061,8 @@ UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* __attrib
" MPU_uxQueueSpacesAvailable_Unpriv: \n" " MPU_uxQueueSpacesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxQueueSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxQueueSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1209,11 +1090,8 @@ BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
" MPU_xQueueReceive_Unpriv: \n" " MPU_xQueueReceive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1241,11 +1119,8 @@ BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
" MPU_xQueuePeek_Unpriv: \n" " MPU_xQueuePeek_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueuePeekImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueuePeek ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1271,11 +1146,8 @@ BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
" MPU_xQueueSemaphoreTake_Unpriv: \n" " MPU_xQueueSemaphoreTake_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSemaphoreTakeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSemaphoreTake ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1301,11 +1173,8 @@ TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* __attribute
" MPU_xQueueGetMutexHolder_Unpriv: \n" " MPU_xQueueGetMutexHolder_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGetMutexHolderImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGetMutexHolder ) : "memory"
); );
} }
@ -1335,11 +1204,8 @@ BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
" MPU_xQueueTakeMutexRecursive_Unpriv: \n" " MPU_xQueueTakeMutexRecursive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueTakeMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueTakeMutexRecursive ) : "memory"
); );
} }
@ -1367,11 +1233,8 @@ BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* __attribute_
" MPU_xQueueGiveMutexRecursive_Unpriv: \n" " MPU_xQueueGiveMutexRecursive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueGiveMutexRecursiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueGiveMutexRecursive ) : "memory"
); );
} }
@ -1401,11 +1264,8 @@ QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
" MPU_xQueueSelectFromSet_Unpriv: \n" " MPU_xQueueSelectFromSet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueSelectFromSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueSelectFromSet ) : "memory"
); );
} }
@ -1435,11 +1295,8 @@ BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
" MPU_xQueueAddToSet_Unpriv: \n" " MPU_xQueueAddToSet_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xQueueAddToSetImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xQueueAddToSet ) : "memory"
); );
} }
@ -1469,11 +1326,8 @@ void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
" MPU_vQueueAddToRegistry_Unpriv: \n" " MPU_vQueueAddToRegistry_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueAddToRegistryImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueAddToRegistry ) : "memory"
); );
} }
@ -1501,11 +1355,8 @@ void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* __attribute__ (( naked
" MPU_vQueueUnregisterQueue_Unpriv: \n" " MPU_vQueueUnregisterQueue_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vQueueUnregisterQueueImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vQueueUnregisterQueue ) : "memory"
); );
} }
@ -1533,11 +1384,8 @@ const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* __attribute__ (( nake
" MPU_pcQueueGetName_Unpriv: \n" " MPU_pcQueueGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcQueueGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcQueueGetName ) : "memory"
); );
} }
@ -1565,11 +1413,8 @@ void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_pvTimerGetTimerID_Unpriv: \n" " MPU_pvTimerGetTimerID_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pvTimerGetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pvTimerGetTimerID ) : "memory"
); );
} }
@ -1599,11 +1444,8 @@ void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
" MPU_vTimerSetTimerID_Unpriv: \n" " MPU_vTimerSetTimerID_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetTimerIDImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetTimerID ) : "memory"
); );
} }
@ -1631,11 +1473,8 @@ BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerIsTimerActive_Unpriv: \n" " MPU_xTimerIsTimerActive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerIsTimerActiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerIsTimerActive ) : "memory"
); );
} }
@ -1663,11 +1502,8 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
" MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n" " MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetTimerDaemonTaskHandleImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle ) : "memory"
); );
} }
@ -1676,22 +1512,14 @@ TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* __attribute__ (( nake
#if ( configUSE_TIMERS == 1 ) #if ( configUSE_TIMERS == 1 )
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, BaseType_t MPU_xTimerGenericCommandEntry( const xTimerGenericCommandParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const BaseType_t xCommandID,
const TickType_t xOptionalValue,
BaseType_t * const pxHigherPriorityTaskWoken,
const TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
" .syntax unified \n" " .syntax unified \n"
" .extern MPU_xTimerGenericCommandImpl \n" " .extern MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" push {r0} \n" " push {r0} \n"
" mrs r0, ipsr \n" " mrs r0, ipsr \n"
@ -1703,15 +1531,12 @@ BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,
" MPU_xTimerGenericCommand_Unpriv: \n" " MPU_xTimerGenericCommand_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGenericCommandImpl \n"
" svc %1 \n"
" bx lr \n"
" MPU_xTimerGenericCommand_Priv: \n" " MPU_xTimerGenericCommand_Priv: \n"
" pop {r0} \n" " pop {r0} \n"
" b MPU_xTimerGenericCommandImpl \n" " b MPU_xTimerGenericCommandPrivImpl \n"
" \n" " \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGenericCommand ) : "memory"
); );
} }
@ -1739,11 +1564,8 @@ const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* __attribute__ (( nake
" MPU_pcTimerGetName_Unpriv: \n" " MPU_pcTimerGetName_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_pcTimerGetNameImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_pcTimerGetName ) : "memory"
); );
} }
@ -1773,11 +1595,8 @@ void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
" MPU_vTimerSetReloadMode_Unpriv: \n" " MPU_vTimerSetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vTimerSetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vTimerSetReloadMode ) : "memory"
); );
} }
@ -1805,11 +1624,8 @@ BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetReloadMode_Unpriv: \n" " MPU_xTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetReloadMode ) : "memory"
); );
} }
@ -1837,11 +1653,8 @@ UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* __attribute__ ((
" MPU_uxTimerGetReloadMode_Unpriv: \n" " MPU_uxTimerGetReloadMode_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxTimerGetReloadModeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxTimerGetReloadMode ) : "memory"
); );
} }
@ -1869,11 +1682,8 @@ TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* __attribute__ (( naked
" MPU_xTimerGetPeriod_Unpriv: \n" " MPU_xTimerGetPeriod_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetPeriodImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetPeriod ) : "memory"
); );
} }
@ -1901,28 +1711,17 @@ TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* __attribute__ (( n
" MPU_xTimerGetExpiryTime_Unpriv: \n" " MPU_xTimerGetExpiryTime_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xTimerGetExpiryTimeImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xTimerGetExpiryTime ) : "memory"
); );
} }
#endif /* if ( configUSE_TIMERS == 1 ) */ #endif /* if ( configUSE_TIMERS == 1 ) */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) __attribute__( ( naked ) ) FREERTOS_SYSTEM_CALL;
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) __attribute__ (( naked )) FREERTOS_SYSTEM_CALL;
EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
const EventBits_t uxBitsToWaitFor,
const BaseType_t xClearOnExit,
const BaseType_t xWaitForAllBits,
TickType_t xTicksToWait ) /* __attribute__ (( naked )) FREERTOS_SYSTEM_CALL */
{ {
__asm volatile __asm volatile
( (
@ -1939,11 +1738,8 @@ EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupWaitBits_Unpriv: \n" " MPU_xEventGroupWaitBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupWaitBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupWaitBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1969,11 +1765,8 @@ EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupClearBits_Unpriv: \n" " MPU_xEventGroupClearBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupClearBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupClearBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1999,11 +1792,8 @@ EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSetBits_Unpriv: \n" " MPU_xEventGroupSetBits_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSetBitsImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSetBits ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2033,11 +1823,8 @@ EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
" MPU_xEventGroupSync_Unpriv: \n" " MPU_xEventGroupSync_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xEventGroupSyncImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xEventGroupSync ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2063,11 +1850,8 @@ UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* __attribute__ ((
" MPU_uxEventGroupGetNumber_Unpriv: \n" " MPU_uxEventGroupGetNumber_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_uxEventGroupGetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_uxEventGroupGetNumber ) : "memory"
); );
} }
@ -2097,11 +1881,8 @@ void MPU_vEventGroupSetNumber( void * xEventGroup,
" MPU_vEventGroupSetNumber_Unpriv: \n" " MPU_vEventGroupSetNumber_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_vEventGroupSetNumberImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_vEventGroupSetNumber ) : "memory"
); );
} }
@ -2133,11 +1914,8 @@ size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSend_Unpriv: \n" " MPU_xStreamBufferSend_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSendImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSend ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2167,11 +1945,8 @@ size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferReceive_Unpriv: \n" " MPU_xStreamBufferReceive_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferReceiveImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferReceive ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2195,11 +1970,8 @@ BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* __at
" MPU_xStreamBufferIsFull_Unpriv: \n" " MPU_xStreamBufferIsFull_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsFullImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsFull ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2223,11 +1995,8 @@ BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* __a
" MPU_xStreamBufferIsEmpty_Unpriv: \n" " MPU_xStreamBufferIsEmpty_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferIsEmptyImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferIsEmpty ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2251,11 +2020,8 @@ size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferSpacesAvailable_Unpriv: \n" " MPU_xStreamBufferSpacesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSpacesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSpacesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2279,11 +2045,8 @@ size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /*
" MPU_xStreamBufferBytesAvailable_Unpriv: \n" " MPU_xStreamBufferBytesAvailable_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferBytesAvailableImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferBytesAvailable ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2309,11 +2072,8 @@ BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
" MPU_xStreamBufferSetTriggerLevel_Unpriv: \n" " MPU_xStreamBufferSetTriggerLevel_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferSetTriggerLevelImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferSetTriggerLevel ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2337,11 +2097,8 @@ size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuff
" MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n" " MPU_xStreamBufferNextMessageLengthBytes_Unpriv: \n"
" pop {r0} \n" " pop {r0} \n"
" svc %0 \n" " svc %0 \n"
" bl MPU_xStreamBufferNextMessageLengthBytesImpl \n"
" svc %1 \n"
" bx lr \n"
" \n" " \n"
: : "i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "memory" : : "i" ( SYSTEM_CALL_xStreamBufferNextMessageLengthBytes ) : "memory"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -36,6 +36,9 @@
/* Portasm includes. */ /* Portasm includes. */
#include "portasm.h" #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 /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE is needed to be defined only for the
* header files. */ * header files. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
@ -443,7 +446,6 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
".syntax unified \n" ".syntax unified \n"
".extern vPortSVCHandler_C \n" ".extern vPortSVCHandler_C \n"
".extern vSystemCallEnter \n" ".extern vSystemCallEnter \n"
".extern vSystemCallEnter_1 \n"
".extern vSystemCallExit \n" ".extern vSystemCallExit \n"
" \n" " \n"
"tst lr, #4 \n" "tst lr, #4 \n"
@ -454,10 +456,8 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
"ldr r1, [r0, #24] \n" "ldr r1, [r0, #24] \n"
"ldrb r2, [r1, #-2] \n" "ldrb r2, [r1, #-2] \n"
"cmp r2, %0 \n" "cmp r2, %0 \n"
"beq syscall_enter \n" "blt syscall_enter \n"
"cmp r2, %1 \n" "cmp r2, %1 \n"
"beq syscall_enter_1 \n"
"cmp r2, %2 \n"
"beq syscall_exit \n" "beq syscall_exit \n"
"b vPortSVCHandler_C \n" "b vPortSVCHandler_C \n"
" \n" " \n"
@ -465,16 +465,12 @@ void SVC_Handler( void ) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
" mov r1, lr \n" " mov r1, lr \n"
" b vSystemCallEnter \n" " b vSystemCallEnter \n"
" \n" " \n"
"syscall_enter_1: \n"
" mov r1, lr \n"
" b vSystemCallEnter_1 \n"
" \n"
"syscall_exit: \n" "syscall_exit: \n"
" mov r1, lr \n" " mov r1, lr \n"
" b vSystemCallExit \n" " b vSystemCallExit \n"
" \n" " \n"
: /* No outputs. */ : /* No outputs. */
:"i" ( portSVC_SYSTEM_CALL_ENTER ), "i" ( portSVC_SYSTEM_CALL_ENTER_1 ), "i" ( portSVC_SYSTEM_CALL_EXIT ) : "i" ( NUM_SYSTEM_CALLS ), "i" ( portSVC_SYSTEM_CALL_EXIT )
: "r0", "r1", "r2", "memory" : "r0", "r1", "r2", "memory"
); );
} }

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -57,10 +54,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskDelayUntil
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay PUBLIC MPU_xTaskAbortDelay
@ -75,10 +69,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskAbortDelay
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay PUBLIC MPU_vTaskDelay
@ -93,10 +84,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskDelay
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet PUBLIC MPU_uxTaskPriorityGet
@ -111,10 +99,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskPriorityGet
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState PUBLIC MPU_eTaskGetState
@ -129,10 +114,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_eTaskGetState
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo PUBLIC MPU_vTaskGetInfo
@ -147,10 +129,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskGetInfo
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle PUBLIC MPU_xTaskGetIdleTaskHandle
@ -165,10 +144,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend PUBLIC MPU_vTaskSuspend
@ -183,10 +159,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSuspend
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume PUBLIC MPU_vTaskResume
@ -201,10 +174,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskResume
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount PUBLIC MPU_xTaskGetTickCount
@ -219,10 +189,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetTickCount
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks PUBLIC MPU_uxTaskGetNumberOfTasks
@ -237,10 +204,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcTaskGetName PUBLIC MPU_pcTaskGetName
@ -255,10 +219,7 @@ MPU_pcTaskGetName:
b MPU_pcTaskGetNameImpl b MPU_pcTaskGetNameImpl
MPU_pcTaskGetName_Unpriv: MPU_pcTaskGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTaskGetName
bl MPU_pcTaskGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter PUBLIC MPU_ulTaskGetRunTimeCounter
@ -273,10 +234,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent PUBLIC MPU_ulTaskGetRunTimePercent
@ -291,10 +249,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimePercent
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -309,10 +264,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -327,10 +279,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag PUBLIC MPU_vTaskSetApplicationTaskTag
@ -345,10 +294,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag PUBLIC MPU_xTaskGetApplicationTaskTag
@ -363,10 +309,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -381,10 +324,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -399,10 +339,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState PUBLIC MPU_uxTaskGetSystemState
@ -417,10 +354,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetSystemState
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -435,10 +369,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2 PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -453,10 +384,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -471,10 +399,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState PUBLIC MPU_xTaskGetSchedulerState
@ -489,10 +414,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetSchedulerState
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState PUBLIC MPU_vTaskSetTimeOutState
@ -507,10 +429,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetTimeOutState
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut PUBLIC MPU_xTaskCheckForTimeOut
@ -525,14 +444,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskCheckForTimeOut
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotify: MPU_xTaskGenericNotifyEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -543,14 +459,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotify
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWait: MPU_xTaskGenericNotifyWaitEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -561,10 +474,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotifyWait
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake PUBLIC MPU_ulTaskGenericNotifyTake
@ -579,10 +489,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyTake
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear PUBLIC MPU_xTaskGenericNotifyStateClear
@ -597,10 +504,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -615,10 +519,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend PUBLIC MPU_xQueueGenericSend
@ -633,10 +534,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGenericSend
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting PUBLIC MPU_uxQueueMessagesWaiting
@ -651,10 +549,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueMessagesWaiting
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable PUBLIC MPU_uxQueueSpacesAvailable
@ -669,10 +564,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueSpacesAvailable
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive PUBLIC MPU_xQueueReceive
@ -687,10 +579,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueReceive
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek PUBLIC MPU_xQueuePeek
@ -705,10 +594,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueuePeek
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake PUBLIC MPU_xQueueSemaphoreTake
@ -723,10 +609,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSemaphoreTake
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder PUBLIC MPU_xQueueGetMutexHolder
@ -741,10 +624,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGetMutexHolder
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive PUBLIC MPU_xQueueTakeMutexRecursive
@ -759,10 +639,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueTakeMutexRecursive
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive PUBLIC MPU_xQueueGiveMutexRecursive
@ -777,10 +654,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGiveMutexRecursive
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet PUBLIC MPU_xQueueSelectFromSet
@ -795,10 +669,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSelectFromSet
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet PUBLIC MPU_xQueueAddToSet
@ -813,10 +684,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueAddToSet
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry PUBLIC MPU_vQueueAddToRegistry
@ -831,10 +699,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueAddToRegistry
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue PUBLIC MPU_vQueueUnregisterQueue
@ -849,10 +714,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueUnregisterQueue
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName PUBLIC MPU_pcQueueGetName
@ -867,10 +729,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcQueueGetName
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID PUBLIC MPU_pvTimerGetTimerID
@ -885,10 +744,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTimerGetTimerID
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID PUBLIC MPU_vTimerSetTimerID
@ -903,10 +759,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetTimerID
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive PUBLIC MPU_xTimerIsTimerActive
@ -921,10 +774,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerIsTimerActive
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -939,14 +789,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand PUBLIC MPU_xTimerGenericCommandEntry
MPU_xTimerGenericCommand: MPU_xTimerGenericCommandEntry:
push {r0, r1} push {r0, r1}
/* This function can be called from ISR also and therefore, we need a check /* This function can be called from ISR also and therefore, we need a check
* to take privileged path, if called from ISR. */ * to take privileged path, if called from ISR. */
@ -959,13 +806,10 @@ MPU_xTimerGenericCommand:
beq MPU_xTimerGenericCommand_Priv beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv: MPU_xTimerGenericCommand_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTimerGenericCommand
bl MPU_xTimerGenericCommandImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv: MPU_xTimerGenericCommand_Priv:
pop {r0, r1} pop {r0, r1}
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -981,10 +825,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTimerGetName
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode PUBLIC MPU_vTimerSetReloadMode
@ -999,10 +840,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetReloadMode
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode PUBLIC MPU_xTimerGetReloadMode
@ -1017,10 +855,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetReloadMode
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode PUBLIC MPU_uxTimerGetReloadMode
@ -1035,10 +870,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTimerGetReloadMode
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod PUBLIC MPU_xTimerGetPeriod
@ -1053,10 +885,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetPeriod
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime PUBLIC MPU_xTimerGetExpiryTime
@ -1071,14 +900,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetExpiryTime
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBits: MPU_xEventGroupWaitBitsEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -1089,10 +915,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xEventGroupWaitBits
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits PUBLIC MPU_xEventGroupClearBits
@ -1107,10 +930,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupClearBits
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits PUBLIC MPU_xEventGroupSetBits
@ -1125,10 +945,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSetBits
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync PUBLIC MPU_xEventGroupSync
@ -1143,10 +960,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSync
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber PUBLIC MPU_uxEventGroupGetNumber
@ -1161,10 +975,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxEventGroupGetNumber
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber PUBLIC MPU_vEventGroupSetNumber
@ -1179,10 +990,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vEventGroupSetNumber
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend PUBLIC MPU_xStreamBufferSend
@ -1197,10 +1005,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSend
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive PUBLIC MPU_xStreamBufferReceive
@ -1215,10 +1020,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferReceive
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull PUBLIC MPU_xStreamBufferIsFull
@ -1233,10 +1035,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsFull
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty PUBLIC MPU_xStreamBufferIsEmpty
@ -1251,10 +1050,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsEmpty
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1269,10 +1065,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable PUBLIC MPU_xStreamBufferBytesAvailable
@ -1287,10 +1080,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferBytesAvailable
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1305,10 +1095,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1323,10 +1110,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from /* Default weak implementations in case one is not available from
@ -1532,9 +1316,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl: MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl PUBWEAK MPU_xTimerGenericCommandPrivImpl
MPU_xTimerGenericCommandImpl: MPU_xTimerGenericCommandPrivImpl:
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
PUBWEAK MPU_pcTimerGetNameImpl PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl: MPU_pcTimerGetNameImpl:

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -33,6 +33,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
@ -45,7 +48,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN SecureContext_LoadContext EXTERN SecureContext_LoadContext
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit EXTERN vSystemCallExit
#endif #endif
@ -95,7 +97,7 @@ vResetPrivilege:
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
vPortAllocateSecureContext: vPortAllocateSecureContext:
svc 0 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 0. */ svc 100 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 100. */
bx lr /* Return. */ bx lr /* Return. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -230,7 +232,7 @@ vStartFirstTask:
cpsie i /* Globally enable interrupts. */ cpsie i /* Globally enable interrupts. */
dsb dsb
isb isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */ svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
ulSetInterruptMask: ulSetInterruptMask:
@ -482,21 +484,17 @@ SVC_Handler:
b route_svc b route_svc
route_svc: route_svc:
ldr r2, [r0, #24] ldr r3, [r0, #24]
subs r2, #2 subs r3, #2
ldrb r3, [r2, #0] ldrb r2, [r3, #0]
cmp r3, #4 /* portSVC_SYSTEM_CALL_ENTER. */ cmp r2, #NUM_SYSTEM_CALLS
beq system_call_enter blt system_call_enter
cmp r3, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */ cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_enter_1
cmp r3, #6 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_exit beq system_call_exit
b vPortSVCHandler_C b vPortSVCHandler_C
system_call_enter: system_call_enter:
b vSystemCallEnter b vSystemCallEnter
system_call_enter_1:
b vSystemCallEnter_1
system_call_exit: system_call_exit:
b vSystemCallExit b vSystemCallExit
@ -523,7 +521,7 @@ vPortFreeSecureContext:
bne free_secure_context /* Branch if r1 != 0. */ bne free_secure_context /* Branch if r1 != 0. */
bx lr /* There is no secure context (xSecureContext is NULL). */ bx lr /* There is no secure context (xSecureContext is NULL). */
free_secure_context: free_secure_context:
svc 1 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 1. */ svc 101 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 101. */
bx lr /* Return. */ bx lr /* Return. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -57,10 +54,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskDelayUntil
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay PUBLIC MPU_xTaskAbortDelay
@ -75,10 +69,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskAbortDelay
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay PUBLIC MPU_vTaskDelay
@ -93,10 +84,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskDelay
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet PUBLIC MPU_uxTaskPriorityGet
@ -111,10 +99,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskPriorityGet
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState PUBLIC MPU_eTaskGetState
@ -129,10 +114,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_eTaskGetState
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo PUBLIC MPU_vTaskGetInfo
@ -147,10 +129,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskGetInfo
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle PUBLIC MPU_xTaskGetIdleTaskHandle
@ -165,10 +144,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend PUBLIC MPU_vTaskSuspend
@ -183,10 +159,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSuspend
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume PUBLIC MPU_vTaskResume
@ -201,10 +174,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskResume
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount PUBLIC MPU_xTaskGetTickCount
@ -219,10 +189,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetTickCount
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks PUBLIC MPU_uxTaskGetNumberOfTasks
@ -237,10 +204,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcTaskGetName PUBLIC MPU_pcTaskGetName
@ -255,10 +219,7 @@ MPU_pcTaskGetName:
b MPU_pcTaskGetNameImpl b MPU_pcTaskGetNameImpl
MPU_pcTaskGetName_Unpriv: MPU_pcTaskGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTaskGetName
bl MPU_pcTaskGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter PUBLIC MPU_ulTaskGetRunTimeCounter
@ -273,10 +234,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent PUBLIC MPU_ulTaskGetRunTimePercent
@ -291,10 +249,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimePercent
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -309,10 +264,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -327,10 +279,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag PUBLIC MPU_vTaskSetApplicationTaskTag
@ -345,10 +294,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag PUBLIC MPU_xTaskGetApplicationTaskTag
@ -363,10 +309,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -381,10 +324,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -399,10 +339,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState PUBLIC MPU_uxTaskGetSystemState
@ -417,10 +354,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetSystemState
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -435,10 +369,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2 PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -453,10 +384,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -471,10 +399,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState PUBLIC MPU_xTaskGetSchedulerState
@ -489,10 +414,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetSchedulerState
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState PUBLIC MPU_vTaskSetTimeOutState
@ -507,10 +429,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetTimeOutState
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut PUBLIC MPU_xTaskCheckForTimeOut
@ -525,14 +444,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskCheckForTimeOut
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotify: MPU_xTaskGenericNotifyEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -543,14 +459,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotify
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWait: MPU_xTaskGenericNotifyWaitEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -561,10 +474,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotifyWait
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake PUBLIC MPU_ulTaskGenericNotifyTake
@ -579,10 +489,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyTake
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear PUBLIC MPU_xTaskGenericNotifyStateClear
@ -597,10 +504,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -615,10 +519,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend PUBLIC MPU_xQueueGenericSend
@ -633,10 +534,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGenericSend
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting PUBLIC MPU_uxQueueMessagesWaiting
@ -651,10 +549,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueMessagesWaiting
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable PUBLIC MPU_uxQueueSpacesAvailable
@ -669,10 +564,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueSpacesAvailable
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive PUBLIC MPU_xQueueReceive
@ -687,10 +579,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueReceive
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek PUBLIC MPU_xQueuePeek
@ -705,10 +594,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueuePeek
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake PUBLIC MPU_xQueueSemaphoreTake
@ -723,10 +609,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSemaphoreTake
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder PUBLIC MPU_xQueueGetMutexHolder
@ -741,10 +624,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGetMutexHolder
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive PUBLIC MPU_xQueueTakeMutexRecursive
@ -759,10 +639,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueTakeMutexRecursive
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive PUBLIC MPU_xQueueGiveMutexRecursive
@ -777,10 +654,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGiveMutexRecursive
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet PUBLIC MPU_xQueueSelectFromSet
@ -795,10 +669,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSelectFromSet
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet PUBLIC MPU_xQueueAddToSet
@ -813,10 +684,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueAddToSet
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry PUBLIC MPU_vQueueAddToRegistry
@ -831,10 +699,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueAddToRegistry
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue PUBLIC MPU_vQueueUnregisterQueue
@ -849,10 +714,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueUnregisterQueue
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName PUBLIC MPU_pcQueueGetName
@ -867,10 +729,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcQueueGetName
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID PUBLIC MPU_pvTimerGetTimerID
@ -885,10 +744,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTimerGetTimerID
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID PUBLIC MPU_vTimerSetTimerID
@ -903,10 +759,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetTimerID
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive PUBLIC MPU_xTimerIsTimerActive
@ -921,10 +774,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerIsTimerActive
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -939,14 +789,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand PUBLIC MPU_xTimerGenericCommandEntry
MPU_xTimerGenericCommand: MPU_xTimerGenericCommandEntry:
push {r0, r1} push {r0, r1}
/* This function can be called from ISR also and therefore, we need a check /* This function can be called from ISR also and therefore, we need a check
* to take privileged path, if called from ISR. */ * to take privileged path, if called from ISR. */
@ -959,13 +806,10 @@ MPU_xTimerGenericCommand:
beq MPU_xTimerGenericCommand_Priv beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv: MPU_xTimerGenericCommand_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTimerGenericCommand
bl MPU_xTimerGenericCommandImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv: MPU_xTimerGenericCommand_Priv:
pop {r0, r1} pop {r0, r1}
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -981,10 +825,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTimerGetName
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode PUBLIC MPU_vTimerSetReloadMode
@ -999,10 +840,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetReloadMode
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode PUBLIC MPU_xTimerGetReloadMode
@ -1017,10 +855,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetReloadMode
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode PUBLIC MPU_uxTimerGetReloadMode
@ -1035,10 +870,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTimerGetReloadMode
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod PUBLIC MPU_xTimerGetPeriod
@ -1053,10 +885,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetPeriod
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime PUBLIC MPU_xTimerGetExpiryTime
@ -1071,14 +900,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetExpiryTime
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBits: MPU_xEventGroupWaitBitsEntry:
push {r0, r1} push {r0, r1}
mrs r0, control mrs r0, control
movs r1, #1 movs r1, #1
@ -1089,10 +915,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xEventGroupWaitBits
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits PUBLIC MPU_xEventGroupClearBits
@ -1107,10 +930,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupClearBits
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits PUBLIC MPU_xEventGroupSetBits
@ -1125,10 +945,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSetBits
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync PUBLIC MPU_xEventGroupSync
@ -1143,10 +960,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSync
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber PUBLIC MPU_uxEventGroupGetNumber
@ -1161,10 +975,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxEventGroupGetNumber
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber PUBLIC MPU_vEventGroupSetNumber
@ -1179,10 +990,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vEventGroupSetNumber
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend PUBLIC MPU_xStreamBufferSend
@ -1197,10 +1005,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSend
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive PUBLIC MPU_xStreamBufferReceive
@ -1215,10 +1020,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferReceive
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull PUBLIC MPU_xStreamBufferIsFull
@ -1233,10 +1035,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsFull
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty PUBLIC MPU_xStreamBufferIsEmpty
@ -1251,10 +1050,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsEmpty
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1269,10 +1065,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable PUBLIC MPU_xStreamBufferBytesAvailable
@ -1287,10 +1080,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferBytesAvailable
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1305,10 +1095,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1323,10 +1110,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0, r1} pop {r0, r1}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from /* Default weak implementations in case one is not available from
@ -1532,9 +1316,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl: MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl PUBWEAK MPU_xTimerGenericCommandPrivImpl
MPU_xTimerGenericCommandImpl: MPU_xTimerGenericCommandPrivImpl:
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
PUBWEAK MPU_pcTimerGetNameImpl PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl: MPU_pcTimerGetNameImpl:

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
@ -41,7 +44,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN vPortSVCHandler_C EXTERN vPortSVCHandler_C
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit EXTERN vSystemCallExit
#endif #endif
@ -216,7 +218,7 @@ vStartFirstTask:
cpsie i /* Globally enable interrupts. */ cpsie i /* Globally enable interrupts. */
dsb dsb
isb isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */ svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
nop nop
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -401,21 +403,17 @@ SVC_Handler:
b route_svc b route_svc
route_svc: route_svc:
ldr r2, [r0, #24] ldr r3, [r0, #24]
subs r2, #2 subs r3, #2
ldrb r3, [r2, #0] ldrb r2, [r3, #0]
cmp r3, #4 /* portSVC_SYSTEM_CALL_ENTER. */ cmp r2, #NUM_SYSTEM_CALLS
beq system_call_enter blt system_call_enter
cmp r3, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */ cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_enter_1
cmp r3, #6 /* portSVC_SYSTEM_CALL_EXIT. */
beq system_call_exit beq system_call_exit
b vPortSVCHandler_C b vPortSVCHandler_C
system_call_enter: system_call_enter:
b vSystemCallEnter b vSystemCallEnter
system_call_enter_1:
b vSystemCallEnter_1
system_call_exit: system_call_exit:
b vSystemCallExit b vSystemCallExit

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -56,10 +53,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskDelayUntil
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay PUBLIC MPU_xTaskAbortDelay
@ -73,10 +67,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskAbortDelay
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay PUBLIC MPU_vTaskDelay
@ -90,10 +81,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskDelay
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet PUBLIC MPU_uxTaskPriorityGet
@ -107,10 +95,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskPriorityGet
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState PUBLIC MPU_eTaskGetState
@ -124,10 +109,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_eTaskGetState
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo PUBLIC MPU_vTaskGetInfo
@ -141,10 +123,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskGetInfo
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle PUBLIC MPU_xTaskGetIdleTaskHandle
@ -158,10 +137,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend PUBLIC MPU_vTaskSuspend
@ -175,10 +151,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSuspend
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume PUBLIC MPU_vTaskResume
@ -192,10 +165,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskResume
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount PUBLIC MPU_xTaskGetTickCount
@ -209,10 +179,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetTickCount
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks PUBLIC MPU_uxTaskGetNumberOfTasks
@ -226,10 +193,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcTaskGetName PUBLIC MPU_pcTaskGetName
@ -243,10 +207,7 @@ MPU_pcTaskGetName:
b MPU_pcTaskGetNameImpl b MPU_pcTaskGetNameImpl
MPU_pcTaskGetName_Unpriv: MPU_pcTaskGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTaskGetName
bl MPU_pcTaskGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter PUBLIC MPU_ulTaskGetRunTimeCounter
@ -260,10 +221,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent PUBLIC MPU_ulTaskGetRunTimePercent
@ -277,10 +235,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimePercent
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -294,10 +249,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -311,10 +263,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag PUBLIC MPU_vTaskSetApplicationTaskTag
@ -328,10 +277,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag PUBLIC MPU_xTaskGetApplicationTaskTag
@ -345,10 +291,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -362,10 +305,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -379,10 +319,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState PUBLIC MPU_uxTaskGetSystemState
@ -396,10 +333,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetSystemState
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -413,10 +347,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2 PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -430,10 +361,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -447,10 +375,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState PUBLIC MPU_xTaskGetSchedulerState
@ -464,10 +389,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetSchedulerState
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState PUBLIC MPU_vTaskSetTimeOutState
@ -481,10 +403,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetTimeOutState
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut PUBLIC MPU_xTaskCheckForTimeOut
@ -498,14 +417,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskCheckForTimeOut
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotify: MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -515,14 +431,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotify
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWait: MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -532,10 +445,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotifyWait
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake PUBLIC MPU_ulTaskGenericNotifyTake
@ -549,10 +459,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyTake
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear PUBLIC MPU_xTaskGenericNotifyStateClear
@ -566,10 +473,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -583,10 +487,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend PUBLIC MPU_xQueueGenericSend
@ -600,10 +501,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGenericSend
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting PUBLIC MPU_uxQueueMessagesWaiting
@ -617,10 +515,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueMessagesWaiting
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable PUBLIC MPU_uxQueueSpacesAvailable
@ -634,10 +529,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueSpacesAvailable
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive PUBLIC MPU_xQueueReceive
@ -651,10 +543,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueReceive
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek PUBLIC MPU_xQueuePeek
@ -668,10 +557,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueuePeek
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake PUBLIC MPU_xQueueSemaphoreTake
@ -685,10 +571,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSemaphoreTake
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder PUBLIC MPU_xQueueGetMutexHolder
@ -702,10 +585,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGetMutexHolder
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive PUBLIC MPU_xQueueTakeMutexRecursive
@ -719,10 +599,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueTakeMutexRecursive
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive PUBLIC MPU_xQueueGiveMutexRecursive
@ -736,10 +613,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGiveMutexRecursive
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet PUBLIC MPU_xQueueSelectFromSet
@ -753,10 +627,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSelectFromSet
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet PUBLIC MPU_xQueueAddToSet
@ -770,10 +641,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueAddToSet
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry PUBLIC MPU_vQueueAddToRegistry
@ -787,10 +655,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueAddToRegistry
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue PUBLIC MPU_vQueueUnregisterQueue
@ -804,10 +669,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueUnregisterQueue
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName PUBLIC MPU_pcQueueGetName
@ -821,10 +683,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcQueueGetName
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID PUBLIC MPU_pvTimerGetTimerID
@ -838,10 +697,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTimerGetTimerID
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID PUBLIC MPU_vTimerSetTimerID
@ -855,10 +711,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetTimerID
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive PUBLIC MPU_xTimerIsTimerActive
@ -872,10 +725,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerIsTimerActive
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -889,14 +739,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand PUBLIC MPU_xTimerGenericCommandEntry
MPU_xTimerGenericCommand: MPU_xTimerGenericCommandEntry:
push {r0} push {r0}
/* This function can be called from ISR also and therefore, we need a check /* This function can be called from ISR also and therefore, we need a check
* to take privileged path, if called from ISR. */ * to take privileged path, if called from ISR. */
@ -908,13 +755,10 @@ MPU_xTimerGenericCommand:
beq MPU_xTimerGenericCommand_Priv beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv: MPU_xTimerGenericCommand_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTimerGenericCommand
bl MPU_xTimerGenericCommandImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv: MPU_xTimerGenericCommand_Priv:
pop {r0} pop {r0}
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,10 +773,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTimerGetName
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode PUBLIC MPU_vTimerSetReloadMode
@ -946,10 +787,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetReloadMode
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode PUBLIC MPU_xTimerGetReloadMode
@ -963,10 +801,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetReloadMode
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode PUBLIC MPU_uxTimerGetReloadMode
@ -980,10 +815,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTimerGetReloadMode
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod PUBLIC MPU_xTimerGetPeriod
@ -997,10 +829,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetPeriod
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime PUBLIC MPU_xTimerGetExpiryTime
@ -1014,14 +843,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetExpiryTime
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBits: MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -1031,10 +857,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xEventGroupWaitBits
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits PUBLIC MPU_xEventGroupClearBits
@ -1048,10 +871,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupClearBits
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits PUBLIC MPU_xEventGroupSetBits
@ -1065,10 +885,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSetBits
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync PUBLIC MPU_xEventGroupSync
@ -1082,10 +899,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSync
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber PUBLIC MPU_uxEventGroupGetNumber
@ -1099,10 +913,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxEventGroupGetNumber
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber PUBLIC MPU_vEventGroupSetNumber
@ -1116,10 +927,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vEventGroupSetNumber
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend PUBLIC MPU_xStreamBufferSend
@ -1133,10 +941,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSend
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive PUBLIC MPU_xStreamBufferReceive
@ -1150,10 +955,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferReceive
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull PUBLIC MPU_xStreamBufferIsFull
@ -1167,10 +969,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsFull
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty PUBLIC MPU_xStreamBufferIsEmpty
@ -1184,10 +983,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsEmpty
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1201,10 +997,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable PUBLIC MPU_xStreamBufferBytesAvailable
@ -1218,10 +1011,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferBytesAvailable
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1235,10 +1025,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1252,10 +1039,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from /* Default weak implementations in case one is not available from
@ -1461,9 +1245,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl: MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl PUBWEAK MPU_xTimerGenericCommandPrivImpl
MPU_xTimerGenericCommandImpl: MPU_xTimerGenericCommandPrivImpl:
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
PUBWEAK MPU_pcTimerGetNameImpl PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl: MPU_pcTimerGetNameImpl:

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
@ -44,7 +47,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN SecureContext_LoadContext EXTERN SecureContext_LoadContext
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit EXTERN vSystemCallExit
#endif #endif
@ -86,7 +88,7 @@ vResetPrivilege:
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
vPortAllocateSecureContext: vPortAllocateSecureContext:
svc 0 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 0. */ svc 100 /* Secure context is allocated in the supervisor call. portSVC_ALLOCATE_SECURE_CONTEXT = 100. */
bx lr /* Return. */ bx lr /* Return. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -205,7 +207,7 @@ vStartFirstTask:
cpsie f cpsie f
dsb dsb
isb isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */ svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
ulSetInterruptMask: ulSetInterruptMask:
@ -455,11 +457,9 @@ SVC_Handler:
ldr r1, [r0, #24] ldr r1, [r0, #24]
ldrb r2, [r1, #-2] ldrb r2, [r1, #-2]
cmp r2, #4 /* portSVC_SYSTEM_CALL_ENTER. */ cmp r2, #NUM_SYSTEM_CALLS
beq syscall_enter blt syscall_enter
cmp r2, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */ cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_enter_1
cmp r2, #6 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_exit beq syscall_exit
b vPortSVCHandler_C b vPortSVCHandler_C
@ -467,10 +467,6 @@ SVC_Handler:
mov r1, lr mov r1, lr
b vSystemCallEnter b vSystemCallEnter
syscall_enter_1:
mov r1, lr
b vSystemCallEnter_1
syscall_exit: syscall_exit:
mov r1, lr mov r1, lr
b vSystemCallExit b vSystemCallExit
@ -493,7 +489,7 @@ vPortFreeSecureContext:
ldr r1, [r2] /* The first item on the stack is the task's xSecureContext. */ ldr r1, [r2] /* The first item on the stack is the task's xSecureContext. */
cmp r1, #0 /* Raise svc if task's xSecureContext is not NULL. */ cmp r1, #0 /* Raise svc if task's xSecureContext is not NULL. */
it ne it ne
svcne 1 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 1. */ svcne 101 /* Secure context is freed in the supervisor call. portSVC_FREE_SECURE_CONTEXT = 101. */
bx lr /* Return. */ bx lr /* Return. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,15 +32,12 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
/* These must be in sync with portmacro.h. */
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
@ -56,10 +53,7 @@ MPU_xTaskDelayUntil:
b MPU_xTaskDelayUntilImpl b MPU_xTaskDelayUntilImpl
MPU_xTaskDelayUntil_Unpriv: MPU_xTaskDelayUntil_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskDelayUntil
bl MPU_xTaskDelayUntilImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskAbortDelay PUBLIC MPU_xTaskAbortDelay
@ -73,10 +67,7 @@ MPU_xTaskAbortDelay:
b MPU_xTaskAbortDelayImpl b MPU_xTaskAbortDelayImpl
MPU_xTaskAbortDelay_Unpriv: MPU_xTaskAbortDelay_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskAbortDelay
bl MPU_xTaskAbortDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskDelay PUBLIC MPU_vTaskDelay
@ -90,10 +81,7 @@ MPU_vTaskDelay:
b MPU_vTaskDelayImpl b MPU_vTaskDelayImpl
MPU_vTaskDelay_Unpriv: MPU_vTaskDelay_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskDelay
bl MPU_vTaskDelayImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskPriorityGet PUBLIC MPU_uxTaskPriorityGet
@ -107,10 +95,7 @@ MPU_uxTaskPriorityGet:
b MPU_uxTaskPriorityGetImpl b MPU_uxTaskPriorityGetImpl
MPU_uxTaskPriorityGet_Unpriv: MPU_uxTaskPriorityGet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskPriorityGet
bl MPU_uxTaskPriorityGetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_eTaskGetState PUBLIC MPU_eTaskGetState
@ -124,10 +109,7 @@ MPU_eTaskGetState:
b MPU_eTaskGetStateImpl b MPU_eTaskGetStateImpl
MPU_eTaskGetState_Unpriv: MPU_eTaskGetState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_eTaskGetState
bl MPU_eTaskGetStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskGetInfo PUBLIC MPU_vTaskGetInfo
@ -141,10 +123,7 @@ MPU_vTaskGetInfo:
b MPU_vTaskGetInfoImpl b MPU_vTaskGetInfoImpl
MPU_vTaskGetInfo_Unpriv: MPU_vTaskGetInfo_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskGetInfo
bl MPU_vTaskGetInfoImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetIdleTaskHandle PUBLIC MPU_xTaskGetIdleTaskHandle
@ -158,10 +137,7 @@ MPU_xTaskGetIdleTaskHandle:
b MPU_xTaskGetIdleTaskHandleImpl b MPU_xTaskGetIdleTaskHandleImpl
MPU_xTaskGetIdleTaskHandle_Unpriv: MPU_xTaskGetIdleTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
bl MPU_xTaskGetIdleTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSuspend PUBLIC MPU_vTaskSuspend
@ -175,10 +151,7 @@ MPU_vTaskSuspend:
b MPU_vTaskSuspendImpl b MPU_vTaskSuspendImpl
MPU_vTaskSuspend_Unpriv: MPU_vTaskSuspend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSuspend
bl MPU_vTaskSuspendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskResume PUBLIC MPU_vTaskResume
@ -192,10 +165,7 @@ MPU_vTaskResume:
b MPU_vTaskResumeImpl b MPU_vTaskResumeImpl
MPU_vTaskResume_Unpriv: MPU_vTaskResume_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskResume
bl MPU_vTaskResumeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetTickCount PUBLIC MPU_xTaskGetTickCount
@ -209,10 +179,7 @@ MPU_xTaskGetTickCount:
b MPU_xTaskGetTickCountImpl b MPU_xTaskGetTickCountImpl
MPU_xTaskGetTickCount_Unpriv: MPU_xTaskGetTickCount_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetTickCount
bl MPU_xTaskGetTickCountImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetNumberOfTasks PUBLIC MPU_uxTaskGetNumberOfTasks
@ -226,10 +193,7 @@ MPU_uxTaskGetNumberOfTasks:
b MPU_uxTaskGetNumberOfTasksImpl b MPU_uxTaskGetNumberOfTasksImpl
MPU_uxTaskGetNumberOfTasks_Unpriv: MPU_uxTaskGetNumberOfTasks_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
bl MPU_uxTaskGetNumberOfTasksImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcTaskGetName PUBLIC MPU_pcTaskGetName
@ -243,10 +207,7 @@ MPU_pcTaskGetName:
b MPU_pcTaskGetNameImpl b MPU_pcTaskGetNameImpl
MPU_pcTaskGetName_Unpriv: MPU_pcTaskGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTaskGetName
bl MPU_pcTaskGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimeCounter PUBLIC MPU_ulTaskGetRunTimeCounter
@ -260,10 +221,7 @@ MPU_ulTaskGetRunTimeCounter:
b MPU_ulTaskGetRunTimeCounterImpl b MPU_ulTaskGetRunTimeCounterImpl
MPU_ulTaskGetRunTimeCounter_Unpriv: MPU_ulTaskGetRunTimeCounter_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
bl MPU_ulTaskGetRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetRunTimePercent PUBLIC MPU_ulTaskGetRunTimePercent
@ -277,10 +235,7 @@ MPU_ulTaskGetRunTimePercent:
b MPU_ulTaskGetRunTimePercentImpl b MPU_ulTaskGetRunTimePercentImpl
MPU_ulTaskGetRunTimePercent_Unpriv: MPU_ulTaskGetRunTimePercent_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetRunTimePercent
bl MPU_ulTaskGetRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimePercent PUBLIC MPU_ulTaskGetIdleRunTimePercent
@ -294,10 +249,7 @@ MPU_ulTaskGetIdleRunTimePercent:
b MPU_ulTaskGetIdleRunTimePercentImpl b MPU_ulTaskGetIdleRunTimePercentImpl
MPU_ulTaskGetIdleRunTimePercent_Unpriv: MPU_ulTaskGetIdleRunTimePercent_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
bl MPU_ulTaskGetIdleRunTimePercentImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGetIdleRunTimeCounter PUBLIC MPU_ulTaskGetIdleRunTimeCounter
@ -311,10 +263,7 @@ MPU_ulTaskGetIdleRunTimeCounter:
b MPU_ulTaskGetIdleRunTimeCounterImpl b MPU_ulTaskGetIdleRunTimeCounterImpl
MPU_ulTaskGetIdleRunTimeCounter_Unpriv: MPU_ulTaskGetIdleRunTimeCounter_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
bl MPU_ulTaskGetIdleRunTimeCounterImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetApplicationTaskTag PUBLIC MPU_vTaskSetApplicationTaskTag
@ -328,10 +277,7 @@ MPU_vTaskSetApplicationTaskTag:
b MPU_vTaskSetApplicationTaskTagImpl b MPU_vTaskSetApplicationTaskTagImpl
MPU_vTaskSetApplicationTaskTag_Unpriv: MPU_vTaskSetApplicationTaskTag_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
bl MPU_vTaskSetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetApplicationTaskTag PUBLIC MPU_xTaskGetApplicationTaskTag
@ -345,10 +291,7 @@ MPU_xTaskGetApplicationTaskTag:
b MPU_xTaskGetApplicationTaskTagImpl b MPU_xTaskGetApplicationTaskTagImpl
MPU_xTaskGetApplicationTaskTag_Unpriv: MPU_xTaskGetApplicationTaskTag_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
bl MPU_xTaskGetApplicationTaskTagImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetThreadLocalStoragePointer PUBLIC MPU_vTaskSetThreadLocalStoragePointer
@ -362,10 +305,7 @@ MPU_vTaskSetThreadLocalStoragePointer:
b MPU_vTaskSetThreadLocalStoragePointerImpl b MPU_vTaskSetThreadLocalStoragePointerImpl
MPU_vTaskSetThreadLocalStoragePointer_Unpriv: MPU_vTaskSetThreadLocalStoragePointer_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
bl MPU_vTaskSetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTaskGetThreadLocalStoragePointer PUBLIC MPU_pvTaskGetThreadLocalStoragePointer
@ -379,10 +319,7 @@ MPU_pvTaskGetThreadLocalStoragePointer:
b MPU_pvTaskGetThreadLocalStoragePointerImpl b MPU_pvTaskGetThreadLocalStoragePointerImpl
MPU_pvTaskGetThreadLocalStoragePointer_Unpriv: MPU_pvTaskGetThreadLocalStoragePointer_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
bl MPU_pvTaskGetThreadLocalStoragePointerImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetSystemState PUBLIC MPU_uxTaskGetSystemState
@ -396,10 +333,7 @@ MPU_uxTaskGetSystemState:
b MPU_uxTaskGetSystemStateImpl b MPU_uxTaskGetSystemStateImpl
MPU_uxTaskGetSystemState_Unpriv: MPU_uxTaskGetSystemState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetSystemState
bl MPU_uxTaskGetSystemStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark PUBLIC MPU_uxTaskGetStackHighWaterMark
@ -413,10 +347,7 @@ MPU_uxTaskGetStackHighWaterMark:
b MPU_uxTaskGetStackHighWaterMarkImpl b MPU_uxTaskGetStackHighWaterMarkImpl
MPU_uxTaskGetStackHighWaterMark_Unpriv: MPU_uxTaskGetStackHighWaterMark_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
bl MPU_uxTaskGetStackHighWaterMarkImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTaskGetStackHighWaterMark2 PUBLIC MPU_uxTaskGetStackHighWaterMark2
@ -430,10 +361,7 @@ MPU_uxTaskGetStackHighWaterMark2:
b MPU_uxTaskGetStackHighWaterMark2Impl b MPU_uxTaskGetStackHighWaterMark2Impl
MPU_uxTaskGetStackHighWaterMark2_Unpriv: MPU_uxTaskGetStackHighWaterMark2_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
bl MPU_uxTaskGetStackHighWaterMark2Impl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetCurrentTaskHandle PUBLIC MPU_xTaskGetCurrentTaskHandle
@ -447,10 +375,7 @@ MPU_xTaskGetCurrentTaskHandle:
b MPU_xTaskGetCurrentTaskHandleImpl b MPU_xTaskGetCurrentTaskHandleImpl
MPU_xTaskGetCurrentTaskHandle_Unpriv: MPU_xTaskGetCurrentTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
bl MPU_xTaskGetCurrentTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGetSchedulerState PUBLIC MPU_xTaskGetSchedulerState
@ -464,10 +389,7 @@ MPU_xTaskGetSchedulerState:
b MPU_xTaskGetSchedulerStateImpl b MPU_xTaskGetSchedulerStateImpl
MPU_xTaskGetSchedulerState_Unpriv: MPU_xTaskGetSchedulerState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGetSchedulerState
bl MPU_xTaskGetSchedulerStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTaskSetTimeOutState PUBLIC MPU_vTaskSetTimeOutState
@ -481,10 +403,7 @@ MPU_vTaskSetTimeOutState:
b MPU_vTaskSetTimeOutStateImpl b MPU_vTaskSetTimeOutStateImpl
MPU_vTaskSetTimeOutState_Unpriv: MPU_vTaskSetTimeOutState_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTaskSetTimeOutState
bl MPU_vTaskSetTimeOutStateImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskCheckForTimeOut PUBLIC MPU_xTaskCheckForTimeOut
@ -498,14 +417,11 @@ MPU_xTaskCheckForTimeOut:
b MPU_xTaskCheckForTimeOutImpl b MPU_xTaskCheckForTimeOutImpl
MPU_xTaskCheckForTimeOut_Unpriv: MPU_xTaskCheckForTimeOut_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskCheckForTimeOut
bl MPU_xTaskCheckForTimeOutImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotify PUBLIC MPU_xTaskGenericNotifyEntry
MPU_xTaskGenericNotify: MPU_xTaskGenericNotifyEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -515,14 +431,11 @@ MPU_xTaskGenericNotify:
b MPU_xTaskGenericNotifyImpl b MPU_xTaskGenericNotifyImpl
MPU_xTaskGenericNotify_Unpriv: MPU_xTaskGenericNotify_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotify
bl MPU_xTaskGenericNotifyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyWait PUBLIC MPU_xTaskGenericNotifyWaitEntry
MPU_xTaskGenericNotifyWait: MPU_xTaskGenericNotifyWaitEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -532,10 +445,7 @@ MPU_xTaskGenericNotifyWait:
b MPU_xTaskGenericNotifyWaitImpl b MPU_xTaskGenericNotifyWaitImpl
MPU_xTaskGenericNotifyWait_Unpriv: MPU_xTaskGenericNotifyWait_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTaskGenericNotifyWait
bl MPU_xTaskGenericNotifyWaitImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyTake PUBLIC MPU_ulTaskGenericNotifyTake
@ -549,10 +459,7 @@ MPU_ulTaskGenericNotifyTake:
b MPU_ulTaskGenericNotifyTakeImpl b MPU_ulTaskGenericNotifyTakeImpl
MPU_ulTaskGenericNotifyTake_Unpriv: MPU_ulTaskGenericNotifyTake_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyTake
bl MPU_ulTaskGenericNotifyTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTaskGenericNotifyStateClear PUBLIC MPU_xTaskGenericNotifyStateClear
@ -566,10 +473,7 @@ MPU_xTaskGenericNotifyStateClear:
b MPU_xTaskGenericNotifyStateClearImpl b MPU_xTaskGenericNotifyStateClearImpl
MPU_xTaskGenericNotifyStateClear_Unpriv: MPU_xTaskGenericNotifyStateClear_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
bl MPU_xTaskGenericNotifyStateClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_ulTaskGenericNotifyValueClear PUBLIC MPU_ulTaskGenericNotifyValueClear
@ -583,10 +487,7 @@ MPU_ulTaskGenericNotifyValueClear:
b MPU_ulTaskGenericNotifyValueClearImpl b MPU_ulTaskGenericNotifyValueClearImpl
MPU_ulTaskGenericNotifyValueClear_Unpriv: MPU_ulTaskGenericNotifyValueClear_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
bl MPU_ulTaskGenericNotifyValueClearImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGenericSend PUBLIC MPU_xQueueGenericSend
@ -600,10 +501,7 @@ MPU_xQueueGenericSend:
b MPU_xQueueGenericSendImpl b MPU_xQueueGenericSendImpl
MPU_xQueueGenericSend_Unpriv: MPU_xQueueGenericSend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGenericSend
bl MPU_xQueueGenericSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueMessagesWaiting PUBLIC MPU_uxQueueMessagesWaiting
@ -617,10 +515,7 @@ MPU_uxQueueMessagesWaiting:
b MPU_uxQueueMessagesWaitingImpl b MPU_uxQueueMessagesWaitingImpl
MPU_uxQueueMessagesWaiting_Unpriv: MPU_uxQueueMessagesWaiting_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueMessagesWaiting
bl MPU_uxQueueMessagesWaitingImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxQueueSpacesAvailable PUBLIC MPU_uxQueueSpacesAvailable
@ -634,10 +529,7 @@ MPU_uxQueueSpacesAvailable:
b MPU_uxQueueSpacesAvailableImpl b MPU_uxQueueSpacesAvailableImpl
MPU_uxQueueSpacesAvailable_Unpriv: MPU_uxQueueSpacesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxQueueSpacesAvailable
bl MPU_uxQueueSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueReceive PUBLIC MPU_xQueueReceive
@ -651,10 +543,7 @@ MPU_xQueueReceive:
b MPU_xQueueReceiveImpl b MPU_xQueueReceiveImpl
MPU_xQueueReceive_Unpriv: MPU_xQueueReceive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueReceive
bl MPU_xQueueReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueuePeek PUBLIC MPU_xQueuePeek
@ -668,10 +557,7 @@ MPU_xQueuePeek:
b MPU_xQueuePeekImpl b MPU_xQueuePeekImpl
MPU_xQueuePeek_Unpriv: MPU_xQueuePeek_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueuePeek
bl MPU_xQueuePeekImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSemaphoreTake PUBLIC MPU_xQueueSemaphoreTake
@ -685,10 +571,7 @@ MPU_xQueueSemaphoreTake:
b MPU_xQueueSemaphoreTakeImpl b MPU_xQueueSemaphoreTakeImpl
MPU_xQueueSemaphoreTake_Unpriv: MPU_xQueueSemaphoreTake_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSemaphoreTake
bl MPU_xQueueSemaphoreTakeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGetMutexHolder PUBLIC MPU_xQueueGetMutexHolder
@ -702,10 +585,7 @@ MPU_xQueueGetMutexHolder:
b MPU_xQueueGetMutexHolderImpl b MPU_xQueueGetMutexHolderImpl
MPU_xQueueGetMutexHolder_Unpriv: MPU_xQueueGetMutexHolder_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGetMutexHolder
bl MPU_xQueueGetMutexHolderImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueTakeMutexRecursive PUBLIC MPU_xQueueTakeMutexRecursive
@ -719,10 +599,7 @@ MPU_xQueueTakeMutexRecursive:
b MPU_xQueueTakeMutexRecursiveImpl b MPU_xQueueTakeMutexRecursiveImpl
MPU_xQueueTakeMutexRecursive_Unpriv: MPU_xQueueTakeMutexRecursive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueTakeMutexRecursive
bl MPU_xQueueTakeMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueGiveMutexRecursive PUBLIC MPU_xQueueGiveMutexRecursive
@ -736,10 +613,7 @@ MPU_xQueueGiveMutexRecursive:
b MPU_xQueueGiveMutexRecursiveImpl b MPU_xQueueGiveMutexRecursiveImpl
MPU_xQueueGiveMutexRecursive_Unpriv: MPU_xQueueGiveMutexRecursive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueGiveMutexRecursive
bl MPU_xQueueGiveMutexRecursiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueSelectFromSet PUBLIC MPU_xQueueSelectFromSet
@ -753,10 +627,7 @@ MPU_xQueueSelectFromSet:
b MPU_xQueueSelectFromSetImpl b MPU_xQueueSelectFromSetImpl
MPU_xQueueSelectFromSet_Unpriv: MPU_xQueueSelectFromSet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueSelectFromSet
bl MPU_xQueueSelectFromSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xQueueAddToSet PUBLIC MPU_xQueueAddToSet
@ -770,10 +641,7 @@ MPU_xQueueAddToSet:
b MPU_xQueueAddToSetImpl b MPU_xQueueAddToSetImpl
MPU_xQueueAddToSet_Unpriv: MPU_xQueueAddToSet_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xQueueAddToSet
bl MPU_xQueueAddToSetImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueAddToRegistry PUBLIC MPU_vQueueAddToRegistry
@ -787,10 +655,7 @@ MPU_vQueueAddToRegistry:
b MPU_vQueueAddToRegistryImpl b MPU_vQueueAddToRegistryImpl
MPU_vQueueAddToRegistry_Unpriv: MPU_vQueueAddToRegistry_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueAddToRegistry
bl MPU_vQueueAddToRegistryImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vQueueUnregisterQueue PUBLIC MPU_vQueueUnregisterQueue
@ -804,10 +669,7 @@ MPU_vQueueUnregisterQueue:
b MPU_vQueueUnregisterQueueImpl b MPU_vQueueUnregisterQueueImpl
MPU_vQueueUnregisterQueue_Unpriv: MPU_vQueueUnregisterQueue_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vQueueUnregisterQueue
bl MPU_vQueueUnregisterQueueImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pcQueueGetName PUBLIC MPU_pcQueueGetName
@ -821,10 +683,7 @@ MPU_pcQueueGetName:
b MPU_pcQueueGetNameImpl b MPU_pcQueueGetNameImpl
MPU_pcQueueGetName_Unpriv: MPU_pcQueueGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcQueueGetName
bl MPU_pcQueueGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_pvTimerGetTimerID PUBLIC MPU_pvTimerGetTimerID
@ -838,10 +697,7 @@ MPU_pvTimerGetTimerID:
b MPU_pvTimerGetTimerIDImpl b MPU_pvTimerGetTimerIDImpl
MPU_pvTimerGetTimerID_Unpriv: MPU_pvTimerGetTimerID_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pvTimerGetTimerID
bl MPU_pvTimerGetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetTimerID PUBLIC MPU_vTimerSetTimerID
@ -855,10 +711,7 @@ MPU_vTimerSetTimerID:
b MPU_vTimerSetTimerIDImpl b MPU_vTimerSetTimerIDImpl
MPU_vTimerSetTimerID_Unpriv: MPU_vTimerSetTimerID_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetTimerID
bl MPU_vTimerSetTimerIDImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerIsTimerActive PUBLIC MPU_xTimerIsTimerActive
@ -872,10 +725,7 @@ MPU_xTimerIsTimerActive:
b MPU_xTimerIsTimerActiveImpl b MPU_xTimerIsTimerActiveImpl
MPU_xTimerIsTimerActive_Unpriv: MPU_xTimerIsTimerActive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerIsTimerActive
bl MPU_xTimerIsTimerActiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetTimerDaemonTaskHandle PUBLIC MPU_xTimerGetTimerDaemonTaskHandle
@ -889,14 +739,11 @@ MPU_xTimerGetTimerDaemonTaskHandle:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
MPU_xTimerGetTimerDaemonTaskHandle_Unpriv: MPU_xTimerGetTimerDaemonTaskHandle_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
bl MPU_xTimerGetTimerDaemonTaskHandleImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGenericCommand PUBLIC MPU_xTimerGenericCommandEntry
MPU_xTimerGenericCommand: MPU_xTimerGenericCommandEntry:
push {r0} push {r0}
/* This function can be called from ISR also and therefore, we need a check /* This function can be called from ISR also and therefore, we need a check
* to take privileged path, if called from ISR. */ * to take privileged path, if called from ISR. */
@ -908,13 +755,10 @@ MPU_xTimerGenericCommand:
beq MPU_xTimerGenericCommand_Priv beq MPU_xTimerGenericCommand_Priv
MPU_xTimerGenericCommand_Unpriv: MPU_xTimerGenericCommand_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xTimerGenericCommand
bl MPU_xTimerGenericCommandImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
MPU_xTimerGenericCommand_Priv: MPU_xTimerGenericCommand_Priv:
pop {r0} pop {r0}
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -929,10 +773,7 @@ MPU_pcTimerGetName:
b MPU_pcTimerGetNameImpl b MPU_pcTimerGetNameImpl
MPU_pcTimerGetName_Unpriv: MPU_pcTimerGetName_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_pcTimerGetName
bl MPU_pcTimerGetNameImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vTimerSetReloadMode PUBLIC MPU_vTimerSetReloadMode
@ -946,10 +787,7 @@ MPU_vTimerSetReloadMode:
b MPU_vTimerSetReloadModeImpl b MPU_vTimerSetReloadModeImpl
MPU_vTimerSetReloadMode_Unpriv: MPU_vTimerSetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vTimerSetReloadMode
bl MPU_vTimerSetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetReloadMode PUBLIC MPU_xTimerGetReloadMode
@ -963,10 +801,7 @@ MPU_xTimerGetReloadMode:
b MPU_xTimerGetReloadModeImpl b MPU_xTimerGetReloadModeImpl
MPU_xTimerGetReloadMode_Unpriv: MPU_xTimerGetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetReloadMode
bl MPU_xTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxTimerGetReloadMode PUBLIC MPU_uxTimerGetReloadMode
@ -980,10 +815,7 @@ MPU_uxTimerGetReloadMode:
b MPU_uxTimerGetReloadModeImpl b MPU_uxTimerGetReloadModeImpl
MPU_uxTimerGetReloadMode_Unpriv: MPU_uxTimerGetReloadMode_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxTimerGetReloadMode
bl MPU_uxTimerGetReloadModeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetPeriod PUBLIC MPU_xTimerGetPeriod
@ -997,10 +829,7 @@ MPU_xTimerGetPeriod:
b MPU_xTimerGetPeriodImpl b MPU_xTimerGetPeriodImpl
MPU_xTimerGetPeriod_Unpriv: MPU_xTimerGetPeriod_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetPeriod
bl MPU_xTimerGetPeriodImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xTimerGetExpiryTime PUBLIC MPU_xTimerGetExpiryTime
@ -1014,14 +843,11 @@ MPU_xTimerGetExpiryTime:
b MPU_xTimerGetExpiryTimeImpl b MPU_xTimerGetExpiryTimeImpl
MPU_xTimerGetExpiryTime_Unpriv: MPU_xTimerGetExpiryTime_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xTimerGetExpiryTime
bl MPU_xTimerGetExpiryTimeImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupWaitBits PUBLIC MPU_xEventGroupWaitBitsEntry
MPU_xEventGroupWaitBits: MPU_xEventGroupWaitBitsEntry:
push {r0} push {r0}
mrs r0, control mrs r0, control
tst r0, #1 tst r0, #1
@ -1031,10 +857,7 @@ MPU_xEventGroupWaitBits:
b MPU_xEventGroupWaitBitsImpl b MPU_xEventGroupWaitBitsImpl
MPU_xEventGroupWaitBits_Unpriv: MPU_xEventGroupWaitBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER_1 svc #SYSTEM_CALL_xEventGroupWaitBits
bl MPU_xEventGroupWaitBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupClearBits PUBLIC MPU_xEventGroupClearBits
@ -1048,10 +871,7 @@ MPU_xEventGroupClearBits:
b MPU_xEventGroupClearBitsImpl b MPU_xEventGroupClearBitsImpl
MPU_xEventGroupClearBits_Unpriv: MPU_xEventGroupClearBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupClearBits
bl MPU_xEventGroupClearBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSetBits PUBLIC MPU_xEventGroupSetBits
@ -1065,10 +885,7 @@ MPU_xEventGroupSetBits:
b MPU_xEventGroupSetBitsImpl b MPU_xEventGroupSetBitsImpl
MPU_xEventGroupSetBits_Unpriv: MPU_xEventGroupSetBits_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSetBits
bl MPU_xEventGroupSetBitsImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xEventGroupSync PUBLIC MPU_xEventGroupSync
@ -1082,10 +899,7 @@ MPU_xEventGroupSync:
b MPU_xEventGroupSyncImpl b MPU_xEventGroupSyncImpl
MPU_xEventGroupSync_Unpriv: MPU_xEventGroupSync_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xEventGroupSync
bl MPU_xEventGroupSyncImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_uxEventGroupGetNumber PUBLIC MPU_uxEventGroupGetNumber
@ -1099,10 +913,7 @@ MPU_uxEventGroupGetNumber:
b MPU_uxEventGroupGetNumberImpl b MPU_uxEventGroupGetNumberImpl
MPU_uxEventGroupGetNumber_Unpriv: MPU_uxEventGroupGetNumber_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_uxEventGroupGetNumber
bl MPU_uxEventGroupGetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_vEventGroupSetNumber PUBLIC MPU_vEventGroupSetNumber
@ -1116,10 +927,7 @@ MPU_vEventGroupSetNumber:
b MPU_vEventGroupSetNumberImpl b MPU_vEventGroupSetNumberImpl
MPU_vEventGroupSetNumber_Unpriv: MPU_vEventGroupSetNumber_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_vEventGroupSetNumber
bl MPU_vEventGroupSetNumberImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSend PUBLIC MPU_xStreamBufferSend
@ -1133,10 +941,7 @@ MPU_xStreamBufferSend:
b MPU_xStreamBufferSendImpl b MPU_xStreamBufferSendImpl
MPU_xStreamBufferSend_Unpriv: MPU_xStreamBufferSend_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSend
bl MPU_xStreamBufferSendImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferReceive PUBLIC MPU_xStreamBufferReceive
@ -1150,10 +955,7 @@ MPU_xStreamBufferReceive:
b MPU_xStreamBufferReceiveImpl b MPU_xStreamBufferReceiveImpl
MPU_xStreamBufferReceive_Unpriv: MPU_xStreamBufferReceive_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferReceive
bl MPU_xStreamBufferReceiveImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsFull PUBLIC MPU_xStreamBufferIsFull
@ -1167,10 +969,7 @@ MPU_xStreamBufferIsFull:
b MPU_xStreamBufferIsFullImpl b MPU_xStreamBufferIsFullImpl
MPU_xStreamBufferIsFull_Unpriv: MPU_xStreamBufferIsFull_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsFull
bl MPU_xStreamBufferIsFullImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferIsEmpty PUBLIC MPU_xStreamBufferIsEmpty
@ -1184,10 +983,7 @@ MPU_xStreamBufferIsEmpty:
b MPU_xStreamBufferIsEmptyImpl b MPU_xStreamBufferIsEmptyImpl
MPU_xStreamBufferIsEmpty_Unpriv: MPU_xStreamBufferIsEmpty_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferIsEmpty
bl MPU_xStreamBufferIsEmptyImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSpacesAvailable PUBLIC MPU_xStreamBufferSpacesAvailable
@ -1201,10 +997,7 @@ MPU_xStreamBufferSpacesAvailable:
b MPU_xStreamBufferSpacesAvailableImpl b MPU_xStreamBufferSpacesAvailableImpl
MPU_xStreamBufferSpacesAvailable_Unpriv: MPU_xStreamBufferSpacesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
bl MPU_xStreamBufferSpacesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferBytesAvailable PUBLIC MPU_xStreamBufferBytesAvailable
@ -1218,10 +1011,7 @@ MPU_xStreamBufferBytesAvailable:
b MPU_xStreamBufferBytesAvailableImpl b MPU_xStreamBufferBytesAvailableImpl
MPU_xStreamBufferBytesAvailable_Unpriv: MPU_xStreamBufferBytesAvailable_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferBytesAvailable
bl MPU_xStreamBufferBytesAvailableImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferSetTriggerLevel PUBLIC MPU_xStreamBufferSetTriggerLevel
@ -1235,10 +1025,7 @@ MPU_xStreamBufferSetTriggerLevel:
b MPU_xStreamBufferSetTriggerLevelImpl b MPU_xStreamBufferSetTriggerLevelImpl
MPU_xStreamBufferSetTriggerLevel_Unpriv: MPU_xStreamBufferSetTriggerLevel_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
bl MPU_xStreamBufferSetTriggerLevelImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
PUBLIC MPU_xStreamBufferNextMessageLengthBytes PUBLIC MPU_xStreamBufferNextMessageLengthBytes
@ -1252,10 +1039,7 @@ MPU_xStreamBufferNextMessageLengthBytes:
b MPU_xStreamBufferNextMessageLengthBytesImpl b MPU_xStreamBufferNextMessageLengthBytesImpl
MPU_xStreamBufferNextMessageLengthBytes_Unpriv: MPU_xStreamBufferNextMessageLengthBytes_Unpriv:
pop {r0} pop {r0}
svc #portSVC_SYSTEM_CALL_ENTER svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
bl MPU_xStreamBufferNextMessageLengthBytesImpl
svc #portSVC_SYSTEM_CALL_EXIT
bx lr
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Default weak implementations in case one is not available from /* Default weak implementations in case one is not available from
@ -1461,9 +1245,9 @@ MPU_xTimerIsTimerActiveImpl:
MPU_xTimerGetTimerDaemonTaskHandleImpl: MPU_xTimerGetTimerDaemonTaskHandleImpl:
b MPU_xTimerGetTimerDaemonTaskHandleImpl b MPU_xTimerGetTimerDaemonTaskHandleImpl
PUBWEAK MPU_xTimerGenericCommandImpl PUBWEAK MPU_xTimerGenericCommandPrivImpl
MPU_xTimerGenericCommandImpl: MPU_xTimerGenericCommandPrivImpl:
b MPU_xTimerGenericCommandImpl b MPU_xTimerGenericCommandPrivImpl
PUBWEAK MPU_pcTimerGetNameImpl PUBWEAK MPU_pcTimerGetNameImpl
MPU_pcTimerGetNameImpl: MPU_pcTimerGetNameImpl:

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -32,6 +32,9 @@ the code is included in C files but excluded by the preprocessor in assembly
files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler. */
#include "FreeRTOSConfig.h" #include "FreeRTOSConfig.h"
/* System call numbers includes. */
#include "mpu_syscall_numbers.h"
#ifndef configUSE_MPU_WRAPPERS_V1 #ifndef configUSE_MPU_WRAPPERS_V1
#define configUSE_MPU_WRAPPERS_V1 0 #define configUSE_MPU_WRAPPERS_V1 0
#endif #endif
@ -41,7 +44,6 @@ files (__ICCARM__ is defined by the IAR C compiler but not by the IAR assembler.
EXTERN vPortSVCHandler_C EXTERN vPortSVCHandler_C
#if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) ) #if ( ( configENABLE_MPU == 1 ) && ( configUSE_MPU_WRAPPERS_V1 == 0 ) )
EXTERN vSystemCallEnter EXTERN vSystemCallEnter
EXTERN vSystemCallEnter_1
EXTERN vSystemCallExit EXTERN vSystemCallExit
#endif #endif
@ -191,7 +193,7 @@ vStartFirstTask:
cpsie f cpsie f
dsb dsb
isb isb
svc 2 /* System call to start the first task. portSVC_START_SCHEDULER = 2. */ svc 102 /* System call to start the first task. portSVC_START_SCHEDULER = 102. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
ulSetInterruptMask: ulSetInterruptMask:
@ -371,11 +373,9 @@ SVC_Handler:
ldr r1, [r0, #24] ldr r1, [r0, #24]
ldrb r2, [r1, #-2] ldrb r2, [r1, #-2]
cmp r2, #4 /* portSVC_SYSTEM_CALL_ENTER. */ cmp r2, #NUM_SYSTEM_CALLS
beq syscall_enter blt syscall_enter
cmp r2, #5 /* portSVC_SYSTEM_CALL_ENTER_1. */ cmp r2, #104 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_enter_1
cmp r2, #6 /* portSVC_SYSTEM_CALL_EXIT. */
beq syscall_exit beq syscall_exit
b vPortSVCHandler_C b vPortSVCHandler_C
@ -383,10 +383,6 @@ SVC_Handler:
mov r1, lr mov r1, lr
b vSystemCallEnter b vSystemCallEnter
syscall_enter_1:
mov r1, lr
b vSystemCallEnter_1
syscall_exit: syscall_exit:
mov r1, lr mov r1, lr
b vSystemCallExit b vSystemCallExit

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
@ -287,6 +287,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
#define portSTACK_FRAME_HAS_PADDING_FLAG ( 1UL << 0UL ) #define portSTACK_FRAME_HAS_PADDING_FLAG ( 1UL << 0UL )
#define portTASK_IS_PRIVILEGED_FLAG ( 1UL << 1UL ) #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 typedef struct MPU_SETTINGS
{ {
uint32_t ulMAIR0; /**< MAIR0 for the task containing attributes for all the 4 per task regions. */ uint32_t ulMAIR0; /**< MAIR0 for the task containing attributes for all the 4 per task regions. */
@ -296,6 +299,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
#if ( configUSE_MPU_WRAPPERS_V1 == 0 ) #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
xSYSTEM_CALL_STACK_INFO xSystemCallStackInfo; 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 #endif
} xMPU_SETTINGS; } xMPU_SETTINGS;
@ -316,13 +322,12 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
/** /**
* @brief SVC numbers. * @brief SVC numbers.
*/ */
#define portSVC_ALLOCATE_SECURE_CONTEXT 0 #define portSVC_ALLOCATE_SECURE_CONTEXT 100
#define portSVC_FREE_SECURE_CONTEXT 1 #define portSVC_FREE_SECURE_CONTEXT 101
#define portSVC_START_SCHEDULER 2 #define portSVC_START_SCHEDULER 102
#define portSVC_RAISE_PRIVILEGE 3 #define portSVC_RAISE_PRIVILEGE 103
#define portSVC_SYSTEM_CALL_ENTER 4 /* System calls with upto 4 parameters. */ #define portSVC_SYSTEM_CALL_EXIT 104
#define portSVC_SYSTEM_CALL_ENTER_1 5 /* System calls with 5 parameters. */ #define portSVC_YIELD 105
#define portSVC_SYSTEM_CALL_EXIT 6
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/** /**

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
;/* ;/*
; * FreeRTOS Kernel <DEVELOPMENT BRANCH> ; * FreeRTOS Kernel V10.6.2
; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
; * ; *
; * SPDX-License-Identifier: MIT ; * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
;/* ;/*
; * FreeRTOS Kernel <DEVELOPMENT BRANCH> ; * FreeRTOS Kernel V10.6.2
; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
; * ; *
; * SPDX-License-Identifier: MIT ; * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
;/* ;/*
; * FreeRTOS Kernel <DEVELOPMENT BRANCH> ; * FreeRTOS Kernel V10.6.2
; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
; * ; *
; * SPDX-License-Identifier: MIT ; * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
;/* ;/*
; * FreeRTOS Kernel <DEVELOPMENT BRANCH> ; * FreeRTOS Kernel V10.6.2
; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
; * ; *
; * SPDX-License-Identifier: MIT ; * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
;/* ;/*
; * FreeRTOS Kernel <DEVELOPMENT BRANCH> ; * FreeRTOS Kernel V10.6.2
; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
; * ; *
; * SPDX-License-Identifier: MIT ; * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

View file

@ -1,5 +1,5 @@
/* /*
* FreeRTOS Kernel <DEVELOPMENT BRANCH> * FreeRTOS Kernel V10.6.2
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT

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