Skip to content

Commit aded661

Browse files
authored
Merge branch 'main' into tickless-idle-improvements
2 parents 85015c7 + 0345a20 commit aded661

File tree

507 files changed

+7016
-13253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

507 files changed

+7016
-13253
lines changed

.github/CODEOWNERS

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Each line is a file pattern followed by one or more owners.
2+
3+
# These owners will be the default owners for everything in
4+
# the repo. Unless a later match takes precedence,
5+
# @global-owner1 and @global-owner2 will be requested for
6+
# review when someone opens a pull request.
7+
* @FreeRTOS/pr-bar-raiser
8+
9+
# Order is important; the last matching pattern takes the most
10+
# precedence. When someone opens a pull request that only
11+
# modifies JS files, only @js-owner and not the global
12+
# owner(s) will be requested for a review.
13+
# *.c FreeRTOS/pr-bar-raiser
14+
15+
# You can also use email addresses if you prefer. They'll be
16+
# used to look up users just like we do for commit author
17+
# emails.
18+
19+
20+
# In this example, @doctocat owns any files in the build/logs
21+
# directory at the root of the repository and any of its
22+
# subdirectories.
23+
# /build/logs/ @doctocat
24+
25+
# The `docs/*` pattern will match files like
26+
# `docs/getting-started.md` but not further nested files like
27+
# `docs/build-app/troubleshooting.md`.
28+
29+
30+
# In this example, @octocat owns any file in an apps directory
31+
# anywhere in your repository.
32+
# apps/ @octocat
33+
34+
# In this example, @doctocat owns any file in the `/docs`
35+
# directory in the root of your repository and any of its
36+
# subdirectories.
37+
# /docs/ @doctocat
38+
39+

.github/lexicon.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1630,6 +1630,7 @@ pvyieldevent
16301630
pwdtc
16311631
pwm
16321632
pwmc
1633+
pxtaskcode
16331634
pxblock
16341635
pxblocktoinsert
16351636
pxcallbackfunction
@@ -2651,6 +2652,7 @@ wu
26512652
www
26522653
wwwfreertos
26532654
wxr
2655+
xtasktodelete
26542656
xa
26552657
xaa
26562658
xaaaa

.github/scripts/kernel_checker.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#!/usr/bin/env python3
2+
3+
import os
4+
from common.header_checker import HeaderChecker
5+
6+
#--------------------------------------------------------------------------------------------------
7+
# CONFIG
8+
#--------------------------------------------------------------------------------------------------
9+
KERNEL_IGNORED_FILES = [
10+
'FreeRTOS-openocd.c'
11+
]
12+
13+
KERNEL_IGNORED_EXTENSIONS = [
14+
'.yml',
15+
'.css',
16+
'.idx',
17+
'.md',
18+
'.url',
19+
'.sty',
20+
'.0-rc2',
21+
'.s82',
22+
'.js',
23+
'.out',
24+
'.pack',
25+
'.2',
26+
'.1-kernel-only',
27+
'.0-kernel-only',
28+
'.0-rc1',
29+
'.readme',
30+
'.tex',
31+
'.png',
32+
'.bat',
33+
'.sh'
34+
]
35+
36+
KERNEL_IGNORED_PATTERNS = [
37+
r'.*\.git.*',
38+
r'.*portable.*Xtensa_ESP32\/include\/portmacro\.h',
39+
r'.*portable.*Xtensa_ESP32.*port\.c',
40+
r'.*portable.*Xtensa_ESP32.*portasm\.S',
41+
r'.*portable.*Xtensa_ESP32.*xtensa_.*',
42+
r'.*portable.*Xtensa_ESP32.*portmux_impl.*',
43+
r'.*portable.*Xtensa_ESP32.*xt_asm_utils\.h'
44+
]
45+
46+
KERNEL_HEADER = [
47+
'/*\n',
48+
' * FreeRTOS Kernel V10.4.3\n',
49+
' * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n',
50+
' *\n',
51+
' * Permission is hereby granted, free of charge, to any person obtaining a copy of\n',
52+
' * this software and associated documentation files (the "Software"), to deal in\n',
53+
' * the Software without restriction, including without limitation the rights to\n',
54+
' * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n',
55+
' * the Software, and to permit persons to whom the Software is furnished to do so,\n',
56+
' * subject to the following conditions:\n',
57+
' *\n',
58+
' * The above copyright notice and this permission notice shall be included in all\n',
59+
' * copies or substantial portions of the Software.\n',
60+
' *\n',
61+
' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n',
62+
' * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n',
63+
' * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n',
64+
' * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n',
65+
' * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n',
66+
' * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
67+
' *\n',
68+
' * https://www.FreeRTOS.org\n',
69+
' * https://github.com/FreeRTOS\n',
70+
' *\n',
71+
' */\n',
72+
]
73+
74+
75+
def main():
76+
parser = HeaderChecker.configArgParser()
77+
args = parser.parse_args()
78+
79+
# Configure the checks then run
80+
checker = HeaderChecker(KERNEL_HEADER)
81+
checker.ignoreExtension(*KERNEL_IGNORED_EXTENSIONS)
82+
checker.ignorePattern(*KERNEL_IGNORED_PATTERNS)
83+
checker.ignoreFile(*KERNEL_IGNORED_FILES)
84+
checker.ignoreFile(os.path.split(__file__)[-1])
85+
86+
rc = checker.processArgs(args)
87+
if rc:
88+
checker.showHelp(__file__)
89+
90+
return rc
91+
92+
if __name__ == '__main__':
93+
exit(main())
94+

.github/workflows/auto-release.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Kernel-Auto-Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
commit_id:
7+
description: 'Commit ID'
8+
required: true
9+
default: 'HEAD'
10+
version_number:
11+
description: 'Version Number (Ex. 10.4.0)'
12+
required: true
13+
default: '10.4.0'
14+
15+
jobs:
16+
release-packager:
17+
name: Release Packager
18+
runs-on: ubuntu-latest
19+
steps:
20+
# Install python 3
21+
- name: Tool Setup
22+
uses: actions/setup-python@v2
23+
with:
24+
python-version: 3.8.5
25+
architecture: x64
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
29+
# Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage
30+
- name: Checkout FreeRTOS Release Tools
31+
uses: actions/checkout@v2
32+
with:
33+
repository: FreeRTOS/FreeRTOS
34+
path: tools
35+
36+
# Simpler git auth if we use checkout action and forward the repo to release script
37+
- name: Checkout FreeRTOS Kernel
38+
uses: actions/checkout@v2
39+
with:
40+
path: local_kernel
41+
fetch-depth: 0
42+
43+
- name: Release
44+
run: |
45+
# Configure repo for push
46+
git config --global user.name ${{ github.actor }}
47+
git config --global user.email ${{ github.actor }}@users.noreply.github.com
48+
49+
# Install deps and run
50+
pip install -r ./tools/.github/scripts/release-requirements.txt
51+
./tools/.github/scripts/release.py FreeRTOS --kernel-repo-path=local_kernel --kernel-commit=${{ github.event.inputs.commit_id }} --new-kernel-version=${{ github.event.inputs.version_number }}
52+
exit $?
53+
env:
54+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
push:
44
branches: ["**"]
55
pull_request:
6-
branches: [master]
6+
branches: [main]
77
workflow_dispatch:
88
jobs:
99
spell-check:
@@ -12,7 +12,7 @@ jobs:
1212
- name: Checkout Parent Repo
1313
uses: actions/checkout@v2
1414
with:
15-
ref: master
15+
ref: main
1616
repository: aws/aws-iot-device-sdk-embedded-C
1717
path: main
1818
- name: Clone This Repo

.github/workflows/kernel-checks.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Kernel-Checker
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
kernel-checker:
7+
name: FreeRTOS Kernel Header Checks
8+
runs-on: ubuntu-latest
9+
steps:
10+
# Install python 3
11+
- name: Tool Setup
12+
uses: actions/setup-python@v2
13+
with:
14+
python-version: 3.8.5
15+
architecture: x64
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
19+
# There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker
20+
- name: Checkout FreeRTOS Tools
21+
uses: actions/checkout@v2
22+
with:
23+
repository: FreeRTOS/FreeRTOS
24+
ref: master
25+
path: tools
26+
27+
# Checkout user pull request changes
28+
- name: Checkout Pull Request
29+
uses: actions/checkout@v2
30+
with:
31+
ref: ${{ github.event.pull_request.head.sha }}
32+
path: inspect
33+
34+
# Collect all affected files
35+
- name: Collecting changed files
36+
uses: lots0logs/[email protected]
37+
with:
38+
token: ${{ secrets.GITHUB_TOKEN }}
39+
40+
# Run checks
41+
- name: Check File Headers
42+
run: |
43+
mv tools/.github/scripts/common inspect/.github/scripts
44+
pip install -r inspect/.github/scripts/common/requirements.txt
45+
cd inspect
46+
.github/scripts/kernel_checker.py --json ${HOME}/files_modified.json ${HOME}/files_added.json ${HOME}/files_renamed.json
47+
exit $?

History.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,39 @@
11
Documentation and download available at https://www.FreeRTOS.org/
22

3+
Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020
4+
5+
V10.4.3 is included in the 202012.00 LTS release. Learn more at https:/freertos.org/lts-libraries.html
6+
7+
See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html
8+
9+
+ Changes to improve robustness and consistency for buffer allocation in
10+
the heap, queue and stream buffer.
11+
+ The following functions can no longer be called from unprivileged code.
12+
- xTaskCreateRestricted
13+
- xTaskCreateRestrictedStatic
14+
- vTaskAllocateMPURegions
15+
16+
17+
Changes between FreeRTOS V10.4.1 and FreeRTOS V10.4.2 released November 10 2020
18+
19+
See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html
20+
21+
+ Fix an issue in the ARMv8-M ports that caused BASEPRI to be masked
22+
between the first task starting to execute and that task making
23+
a FreeRTOS API call.
24+
+ Introduced xTaskDelayUntil(), which is functionally equivalent to
25+
vTaskDelayUntil(), with the addition of returning a value to
26+
indicating whether or not the function placed the calling task into
27+
the Blocked state or not.
28+
+ Update WolfSSL to 4.5.0 and add the FIPS ready demo.
29+
+ Add support for ESP IDF 4.2 to ThirdParty Xtensa port.
30+
+ Re-introduce uxTopUsedPriority to support OpenOCD debugging.
31+
+ Convert most dependent libraries in FreeRTOS/FreeRTOS to submodules.
32+
+ Various general maintenance and improvements to MISRA compliance.
33+
34+
335
Changes between FreeRTOS V10.4.0 and FreeRTOS V10.4.1 released September 17 2020
36+
437
See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html
538

639
+ Fixed an incorrectly named parameter that prevented the

croutine.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* FreeRTOS Kernel V10.4.1
2+
* FreeRTOS Kernel V10.4.3
33
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a copy of

event_groups.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* FreeRTOS Kernel V10.4.1
2+
* FreeRTOS Kernel V10.4.3
33
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a copy of

include/FreeRTOS.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* FreeRTOS Kernel V10.4.1
2+
* FreeRTOS Kernel V10.4.3
33
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a copy of
@@ -979,7 +979,7 @@
979979

980980
#ifndef configMIN
981981

982-
/* The application writer has not provided their own MAX macro, so define
982+
/* The application writer has not provided their own MIN macro, so define
983983
* the following generic implementation. */
984984
#define configMIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
985985
#endif
@@ -1105,7 +1105,7 @@
11051105
* data hiding policy, so the real structures used by FreeRTOS to maintain the
11061106
* state of tasks, queues, semaphores, etc. are not accessible to the application
11071107
* code. However, if the application writer wants to statically allocate such
1108-
* an object then the size of the object needs to be know. Dummy structures
1108+
* an object then the size of the object needs to be known. Dummy structures
11091109
* that are guaranteed to have the same size and alignment requirements of the
11101110
* real objects are used for this purpose. The dummy list and list item
11111111
* structures below are used for inclusion in such a dummy structure.
@@ -1154,7 +1154,7 @@ typedef struct xSTATIC_LIST
11541154
* strict data hiding policy. This means the Task structure used internally by
11551155
* FreeRTOS is not accessible to application code. However, if the application
11561156
* writer wants to statically allocate the memory required to create a task then
1157-
* the size of the task object needs to be know. The StaticTask_t structure
1157+
* the size of the task object needs to be known. The StaticTask_t structure
11581158
* below is provided for this purpose. Its sizes and alignment requirements are
11591159
* guaranteed to match those of the genuine structure, no matter which
11601160
* architecture is being used, and no matter how the values in FreeRTOSConfig.h
@@ -1217,7 +1217,7 @@ typedef struct xSTATIC_TCB
12171217
* strict data hiding policy. This means the Queue structure used internally by
12181218
* FreeRTOS is not accessible to application code. However, if the application
12191219
* writer wants to statically allocate the memory required to create a queue
1220-
* then the size of the queue object needs to be know. The StaticQueue_t
1220+
* then the size of the queue object needs to be known. The StaticQueue_t
12211221
* structure below is provided for this purpose. Its sizes and alignment
12221222
* requirements are guaranteed to match those of the genuine structure, no
12231223
* matter which architecture is being used, and no matter how the values in
@@ -1288,7 +1288,7 @@ typedef struct xSTATIC_EVENT_GROUP
12881288
* strict data hiding policy. This means the software timer structure used
12891289
* internally by FreeRTOS is not accessible to application code. However, if
12901290
* the application writer wants to statically allocate the memory required to
1291-
* create a software timer then the size of the queue object needs to be know.
1291+
* create a software timer then the size of the queue object needs to be known.
12921292
* The StaticTimer_t structure below is provided for this purpose. Its sizes
12931293
* and alignment requirements are guaranteed to match those of the genuine
12941294
* structure, no matter which architecture is being used, and no matter how the
@@ -1316,12 +1316,12 @@ typedef struct xSTATIC_TIMER
13161316
* internally by FreeRTOS is not accessible to application code. However, if
13171317
* the application writer wants to statically allocate the memory required to
13181318
* create a stream buffer then the size of the stream buffer object needs to be
1319-
* know. The StaticStreamBuffer_t structure below is provided for this purpose.
1320-
* Its size and alignment requirements are guaranteed to match those of the
1321-
* genuine structure, no matter which architecture is being used, and no matter
1322-
* how the values in FreeRTOSConfig.h are set. Its contents are somewhat
1323-
* obfuscated in the hope users will recognise that it would be unwise to make
1324-
* direct use of the structure members.
1319+
* known. The StaticStreamBuffer_t structure below is provided for this
1320+
* purpose. Its size and alignment requirements are guaranteed to match those
1321+
* of the genuine structure, no matter which architecture is being used, and
1322+
* no matter how the values in FreeRTOSConfig.h are set. Its contents are
1323+
* somewhat obfuscated in the hope users will recognise that it would be unwise
1324+
* to make direct use of the structure members.
13251325
*/
13261326
typedef struct xSTATIC_STREAM_BUFFER
13271327
{

0 commit comments

Comments
 (0)