├── .gitmodules
├── .markdownlint.json
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE-SAMPLECODE
├── LICENSE-SUMMARY
├── README.md
├── SECURITY.md
├── abbreviations.md
├── booktitle.md
├── ch01.md
├── ch02.md
├── ch03.md
├── ch04.md
├── ch05.md
├── ch06.md
├── ch07.md
├── ch08.md
├── ch09.md
├── ch10.md
├── ch11.md
├── ch12.md
├── ch13.md
├── copyright.md
├── dedication.md
├── examples
├── .gitignore
├── Win32-simulator-MSVC
│ ├── Examples
│ │ ├── Example001
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example001.vcxproj
│ │ │ │ ├── Example001.vcxproj.filters
│ │ │ │ └── Example001.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example002
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example002.vcxproj
│ │ │ │ ├── Example002.vcxproj.filters
│ │ │ │ └── Example002.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example003
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example003.vcxproj
│ │ │ │ ├── Example003.vcxproj.filters
│ │ │ │ └── Example003.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example004
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example004.vcxproj
│ │ │ │ ├── Example004.vcxproj.filters
│ │ │ │ └── Example004.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example005
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example005.vcxproj
│ │ │ │ ├── Example005.vcxproj.filters
│ │ │ │ └── Example005.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example006
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example006.vcxproj
│ │ │ │ ├── Example006.vcxproj.filters
│ │ │ │ └── Example006.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example007
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example007.vcxproj
│ │ │ │ ├── Example007.vcxproj.filters
│ │ │ │ └── Example007.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example008
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example008.vcxproj
│ │ │ │ ├── Example008.vcxproj.filters
│ │ │ │ └── Example008.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example009
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example009.vcxproj
│ │ │ │ ├── Example009.vcxproj.filters
│ │ │ │ └── Example009.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example010
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example010.vcxproj
│ │ │ │ ├── Example010.vcxproj.filters
│ │ │ │ └── Example010.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example011
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example011.vcxproj
│ │ │ │ ├── Example011.vcxproj.filters
│ │ │ │ └── Example011.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example012
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example012.vcxproj
│ │ │ │ ├── Example012.vcxproj.filters
│ │ │ │ └── Example012.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example013
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example013.vcxproj
│ │ │ │ ├── Example013.vcxproj.filters
│ │ │ │ └── Example013.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example014
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example014.vcxproj
│ │ │ │ ├── Example014.vcxproj.filters
│ │ │ │ └── Example014.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example015
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example015.vcxproj
│ │ │ │ ├── Example015.vcxproj.filters
│ │ │ │ └── Example015.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example016
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example016.vcxproj
│ │ │ │ ├── Example016.vcxproj.filters
│ │ │ │ └── Example016.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example017
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example017.vcxproj
│ │ │ │ ├── Example017.vcxproj.filters
│ │ │ │ └── Example017.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example018
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example018.vcxproj
│ │ │ │ ├── Example018.vcxproj.filters
│ │ │ │ └── Example018.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example019
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example019.vcxproj
│ │ │ │ ├── Example019.vcxproj.filters
│ │ │ │ └── Example019.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example020
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example020.vcxproj
│ │ │ │ ├── Example020.vcxproj.filters
│ │ │ │ └── Example020.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example021
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example021.vcxproj
│ │ │ │ ├── Example021.vcxproj.filters
│ │ │ │ └── Example021.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example022
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example022.vcxproj
│ │ │ │ ├── Example022.vcxproj.filters
│ │ │ │ └── Example022.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example023
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example023.vcxproj
│ │ │ │ ├── Example023.vcxproj.filters
│ │ │ │ └── Example023.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example024
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example024.vcxproj
│ │ │ │ ├── Example024.vcxproj.filters
│ │ │ │ └── Example024.vcxproj.user
│ │ │ └── main.c
│ │ ├── Example025
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ │ ├── Example025.vcxproj
│ │ │ │ ├── Example025.vcxproj.filters
│ │ │ │ └── Example025.vcxproj.user
│ │ │ └── main.c
│ │ └── Example026
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── MSVC
│ │ │ ├── Example026.vcxproj
│ │ │ ├── Example026.vcxproj.filters
│ │ │ └── Example026.vcxproj.user
│ │ │ └── main.c
│ ├── RTOSDemo.sln
│ ├── RTOSDemo.suo
│ ├── ReadMe-Instructions.txt
│ └── Supporting_Functions
│ │ ├── supporting_functions.c
│ │ └── supporting_functions.h
└── uncrustify.cfg
├── media
├── amazon-logo.jpg
├── amazon-smiley-logo.png
├── aws-logo-hr.png
├── aws-logo-lr.png
├── aws-logo.png
├── figure_4.10_example_4.4_state_machine.png
├── figure_4.11_example_4.6_execution_pattern.png
├── figure_4.14_example_4.8_execution_sequence.png
├── figure_4.17_example_4.9_execution_sequence.png
├── figure_4.18_preemption_execution_pattern.png
├── figure_4.19_time_slicing_execution_pattern.png
├── figure_4.1_top_level_task_states.png
├── figure_4.20_time_slicing_with_yield_execution_pattern.png
├── figure_4.21_equal_priority_without_time_slicing_execution_pattern.png
├── figure_4.22_cooperative_scheduler_execution_pattern.png
├── figure_4.3_example_4.1_execution_pattern.png
├── figure_4.4_expanded_execution_sequence_with_tick_interrupt.png
├── figure_4.6_execution_pattern_higher_priority_task.png
├── figure_4.7_full_task_state_machine.png
├── figure_4.9_vTaskDelay_execution_sequence.png
├── freeRTOS.png
├── image05.png
├── image06.png
├── image07.png
├── image08.png
├── image31.png
├── image32.jpg
├── image33.png
├── image34.png
├── image35.jpg
├── image36.png
├── image37.jpg
├── image38.png
├── image39.png
├── image40.png
├── image41.png
├── image42.png
├── image43.png
├── image44.jpg
├── image45.jpg
├── image46.png
├── image47.jpg
├── image48.png
├── image49.png
├── image50.png
├── image51.jpg
├── image52.png
├── image53.png
├── image54.png
├── image55.png
├── image56.jpg
├── image57.jpg
├── image58.png
├── image59.jpg
├── image60.png
├── image61.png
├── image62.png
├── image63.png
├── image64.jpg
├── image65.png
├── image66.png
├── image67.png
├── image68.png
├── image69.png
├── image70.jpg
├── image71.png
├── image72.png
├── image73.jpg
├── image74.jpg
├── image75.jpg
├── image76.png
├── image77.png
├── image78.png
├── image79.png
├── image80.jpg
├── image81.png
├── image82.png
├── image83.png
├── image84.png
├── image85.png
├── image86.png
├── image87.png
├── image88.png
├── image89.png
├── image90.png
└── image91.png
└── toc.md
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "examples/Win32-simulator-MSVC/FreeRTOS-Kernel"]
2 | path = examples/Win32-simulator-MSVC/FreeRTOS-Kernel
3 | url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git
4 |
--------------------------------------------------------------------------------
/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "MD036": false,
3 | "MD045": false
4 | }
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guidelines
2 |
3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
4 | documentation, we greatly value feedback and contributions from our community.
5 |
6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
7 | information to effectively respond to your bug report or contribution.
8 |
9 |
10 | ## Reporting Bugs/Feature Requests
11 |
12 | We welcome you to use the GitHub issue tracker to report bugs or suggest features.
13 |
14 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
15 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
16 |
17 | * A reproducible test case or series of steps
18 | * The version of our code being used
19 | * Any modifications you've made relevant to the bug
20 | * Anything unusual about your environment or deployment
21 |
22 |
23 | ## Contributing via Pull Requests
24 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
25 |
26 | 1. You are working against the latest source on the *main* branch.
27 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
28 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
29 |
30 | To send us a pull request, please:
31 |
32 | 1. Fork the repository.
33 | 2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
34 | 3. Ensure local tests pass.
35 | 4. Commit to your fork using clear commit messages.
36 | 5. Send us a pull request, answering any default questions in the pull request interface.
37 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
38 |
39 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
40 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
41 |
42 |
43 | ## Finding contributions to work on
44 | Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.
45 |
46 |
47 | ## Code of Conduct
48 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
49 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
50 | opensource-codeofconduct@amazon.com with any additional questions or comments.
51 |
52 |
53 | ## Security issue notifications
54 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
55 |
56 |
57 | ## Licensing
58 |
59 | See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
60 |
--------------------------------------------------------------------------------
/LICENSE-SAMPLECODE:
--------------------------------------------------------------------------------
1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | software and associated documentation files (the "Software"), to deal in the Software
5 | without restriction, including without limitation the rights to use, copy, modify,
6 | merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7 | permit persons to whom the Software is furnished to do so.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
10 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
11 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
12 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
13 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
14 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15 |
--------------------------------------------------------------------------------
/LICENSE-SUMMARY:
--------------------------------------------------------------------------------
1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 |
3 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file.
4 |
5 | The sample code within this documentation, and accompanying examples, are made available under a modified MIT license. See the LICENSE-SAMPLECODE file.
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FreeRTOS-Kernel-Book
2 |
3 | This repo contains the contents of [FreeRTOS Kernel Book](./toc.md).
4 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | ## Reporting a Vulnerability
2 |
3 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security
4 | via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/) or directly via email to aws-security@amazon.com.
5 | Please do **not** create a public github issue.
6 |
7 |
--------------------------------------------------------------------------------
/abbreviations.md:
--------------------------------------------------------------------------------
1 | ### List of Abbreviations
2 |
3 | | Abbreviation | Meaning |
4 | |------|---------------------------------------------|
5 | | ADC | Analog to Digital Converter |
6 | | API | Application Programming Interface |
7 | | DMA | Direct Memory Access |
8 | | FAQ | Frequently Asked Question |
9 | | FIFO | First In First Out |
10 | | HMI | Human Machine Interface |
11 | | IDE | Integrated Development Environment |
12 | | IRQ | Interrupt Request |
13 | | ISR | Interrupt Service Routine |
14 | | LCD | Liquid Crystal Display |
15 | | MCU | Microcontroller |
16 | | RMS | Rate Monotonic Scheduling |
17 | | RTOS | Real-time Operating System |
18 | | SIL | Safety Integrity Level |
19 | | SPI | Serial Peripheral Interface |
20 | | TCB | Task Control Block |
21 | | UART | Universal Asynchronous Receiver/Transmitter |
22 | * * *
23 |
--------------------------------------------------------------------------------
/booktitle.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | # Mastering the FreeRTOS™[^1][^2] Real Time Kernel
10 |
11 | ## A Hands-On Tutorial Guide ##
12 |
13 | ### Richard Barry -and- The FreeRTOS Team ###
14 |
15 | **Release Version - 1.0**
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | [^1]: FreeRTOS™, FreeRTOS.org™ and the FreeRTOS logo are trademarks of Amazon Web Services.
53 | [^2]: OPEN**RTOS**® and SAFE**RTOS**® are trademarks of WITTENSTEIN High Integrity Systems Ltd. All other brands or product names are the property of their respective holders.
54 |
55 |
56 |
--------------------------------------------------------------------------------
/copyright.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | *All text, source code, and diagrams are the exclusive property of Amazon Web Services unless otherwise noted inline.*
13 |
14 | © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | * * *
53 |
54 | *This text is provided for free. **In return we ask that you create a pull request to provide corrections**.*
55 |
56 | *Post feedback and comments to [https://forums.FreeRTOS.org](https://forums.FreeRTOS.org).*
57 |
58 | * * *
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/dedication.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ***To Caroline, India and Max.*** **- R.B.**
14 |
15 | ***Dedicated to the next generation of great systems powered by FreeRTOS.*** **- J.J.**
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/examples/.gitignore:
--------------------------------------------------------------------------------
1 | # Build Artifacts.
2 | Debug/
3 | .vs/
4 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example001/MSVC/Example001.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {CC20699F-194B-483E-BAE5-1D0589FBF13E}
15 | Win32Proj
16 | Example001
17 | Example001
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example001/MSVC/Example001.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example001/MSVC/Example001.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example001/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* Used as a loop counter to create a very crude delay. */
23 | #define mainDELAY_LOOP_COUNT ( 0xffffff )
24 |
25 | /* The task functions. */
26 | void vTask1( void * pvParameters );
27 | void vTask2( void * pvParameters );
28 |
29 | /*-----------------------------------------------------------*/
30 |
31 | int main( void )
32 | {
33 | /* Create one of the two tasks. */
34 | xTaskCreate( vTask1, /* Pointer to the function that implements the task. */
35 | "Task 1", /* Text name for the task. This is to facilitate debugging only. */
36 | 1000, /* Stack depth - most small microcontrollers will use much less stack than this. */
37 | NULL, /* We are not using the task parameter. */
38 | 1, /* This task will run at priority 1. */
39 | NULL ); /* We are not using the task handle. */
40 |
41 | /* Create the other task in exactly the same way. */
42 | xTaskCreate( vTask2, "Task 2", 1000, NULL, 1, NULL );
43 |
44 | /* Start the scheduler to start the tasks executing. */
45 | vTaskStartScheduler();
46 |
47 | /* The following line should never be reached because vTaskStartScheduler()
48 | * will only return if there was not enough FreeRTOS heap memory available to
49 | * create the Idle and (if configured) Timer tasks. Heap management, and
50 | * techniques for trapping heap exhaustion, are described in the book text. */
51 | for( ; ; )
52 | {
53 | }
54 |
55 | return 0;
56 | }
57 | /*-----------------------------------------------------------*/
58 |
59 | void vTask1( void * pvParameters )
60 | {
61 | const char * pcTaskName = "Task 1 is running\r\n";
62 | volatile uint32_t ul;
63 |
64 | /* As per most tasks, this task is implemented in an infinite loop. */
65 | for( ; ; )
66 | {
67 | /* Print out the name of this task. */
68 | vPrintString( pcTaskName );
69 |
70 | /* Delay for a period. */
71 | for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
72 | {
73 | /* This loop is just a very crude delay implementation. There is
74 | * nothing to do in here. Later exercises will replace this crude
75 | * loop with a proper delay/sleep function. */
76 | }
77 | }
78 | }
79 | /*-----------------------------------------------------------*/
80 |
81 | void vTask2( void * pvParameters )
82 | {
83 | const char * pcTaskName = "Task 2 is running\r\n";
84 | volatile uint32_t ul;
85 |
86 | /* As per most tasks, this task is implemented in an infinite loop. */
87 | for( ; ; )
88 | {
89 | /* Print out the name of this task. */
90 | vPrintString( pcTaskName );
91 |
92 | /* Delay for a period. */
93 | for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
94 | {
95 | /* This loop is just a very crude delay implementation. There is
96 | * nothing to do in here. Later exercises will replace this crude
97 | * loop with a proper delay/sleep function. */
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example002/MSVC/Example002.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {35B09741-7C4C-43CA-B159-2249C562D781}
15 | Win32Proj
16 | Example002
17 | Example002
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example002/MSVC/Example002.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example002/MSVC/Example002.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example002/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* Used as a loop counter to create a very crude delay. */
23 | #define mainDELAY_LOOP_COUNT ( 0xffffff )
24 |
25 | /* The task function. */
26 | void vTaskFunction( void * pvParameters );
27 |
28 | /* Define the strings that will be passed in as the task parameters. These are
29 | * defined const and off the stack to ensure they remain valid when the tasks are
30 | * executing. */
31 | const char * pcTextForTask1 = "Task 1 is running\r\n";
32 | const char * pcTextForTask2 = "Task 2 is running\r\n";
33 |
34 | /*-----------------------------------------------------------*/
35 |
36 | int main( void )
37 | {
38 | /* Create one of the two tasks. */
39 | xTaskCreate( vTaskFunction, /* Pointer to the function that implements the task. */
40 | "Task 1", /* Text name for the task. This is to facilitate debugging only. */
41 | 1000, /* Stack depth - most small microcontrollers will use much less stack than this. */
42 | ( void * ) pcTextForTask1, /* Pass the text to be printed in as the task parameter. */
43 | 1, /* This task will run at priority 1. */
44 | NULL ); /* We are not using the task handle. */
45 |
46 | /* Create the other task in exactly the same way. Note this time that we
47 | * are creating the SAME task, but passing in a different parameter. We are
48 | * creating two instances of a single task implementation. */
49 | xTaskCreate( vTaskFunction, "Task 2", 1000, ( void * ) pcTextForTask2, 1, NULL );
50 |
51 | /* Start the scheduler to start the tasks executing. */
52 | vTaskStartScheduler();
53 |
54 | /* The following line should never be reached because vTaskStartScheduler()
55 | * will only return if there was not enough FreeRTOS heap memory available to
56 | * create the Idle and (if configured) Timer tasks. Heap management, and
57 | * techniques for trapping heap exhaustion, are described in the book text. */
58 | for( ; ; )
59 | {
60 | }
61 |
62 | return 0;
63 | }
64 | /*-----------------------------------------------------------*/
65 |
66 | void vTaskFunction( void * pvParameters )
67 | {
68 | char * pcTaskName;
69 | volatile uint32_t ul;
70 |
71 | /* The string to print out is passed in via the parameter. Cast this to a
72 | * character pointer. */
73 | pcTaskName = ( char * ) pvParameters;
74 |
75 | /* As per most tasks, this task is implemented in an infinite loop. */
76 | for( ; ; )
77 | {
78 | /* Print out the name of this task. */
79 | vPrintString( pcTaskName );
80 |
81 | /* Delay for a period. */
82 | for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
83 | {
84 | /* This loop is just a very crude delay implementation. There is
85 | * nothing to do in here. Later exercises will replace this crude
86 | * loop with a proper delay/sleep function. */
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example003/MSVC/Example003.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {FFF2B5B4-B859-4484-AEA5-8B1CA9D61621}
15 | Win32Proj
16 | Example003
17 | Example003
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example003/MSVC/Example003.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example003/MSVC/Example003.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example003/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* Used as a loop counter to create a very crude delay. */
23 | #define mainDELAY_LOOP_COUNT ( 0xffffff )
24 |
25 | /* The task function. */
26 | void vTaskFunction( void * pvParameters );
27 |
28 | /* Define the strings that will be passed in as the task parameters. These are
29 | * defined const and off the stack to ensure they remain valid when the tasks are
30 | * executing. */
31 | const char * pcTextForTask1 = "Task 1 is running\r\n";
32 | const char * pcTextForTask2 = "Task 2 is running\r\n";
33 |
34 | /*-----------------------------------------------------------*/
35 |
36 | int main( void )
37 | {
38 | /* Create the first task at priority 1... */
39 | xTaskCreate( vTaskFunction, "Task 1", 1000, ( void * ) pcTextForTask1, 1, NULL );
40 |
41 | /* ... and the second task at priority 2. The priority is the second to
42 | * last parameter. */
43 | xTaskCreate( vTaskFunction, "Task 2", 1000, ( void * ) pcTextForTask2, 2, NULL );
44 |
45 | /* Start the scheduler to start the tasks executing. */
46 | vTaskStartScheduler();
47 |
48 | /* The following line should never be reached because vTaskStartScheduler()
49 | * will only return if there was not enough FreeRTOS heap memory available to
50 | * create the Idle and (if configured) Timer tasks. Heap management, and
51 | * techniques for trapping heap exhaustion, are described in the book text. */
52 | for( ; ; )
53 | {
54 | }
55 |
56 | return 0;
57 | }
58 | /*-----------------------------------------------------------*/
59 |
60 | void vTaskFunction( void * pvParameters )
61 | {
62 | char * pcTaskName;
63 | volatile uint32_t ul;
64 |
65 | /* The string to print out is passed in via the parameter. Cast this to a
66 | * character pointer. */
67 | pcTaskName = ( char * ) pvParameters;
68 |
69 | /* As per most tasks, this task is implemented in an infinite loop. */
70 | for( ; ; )
71 | {
72 | /* Print out the name of this task. */
73 | vPrintString( pcTaskName );
74 |
75 | /* Delay for a period. */
76 | for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
77 | {
78 | /* This loop is just a very crude delay implementation. There is
79 | * nothing to do in here. Later exercises will replace this crude
80 | * loop with a proper delay/sleep function. */
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example004/MSVC/Example004.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {F791EE6D-5F57-4E4C-9AAC-9B2D5B0EF0F2}
15 | Win32Proj
16 | Example004
17 | Example004
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example004/MSVC/Example004.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example004/MSVC/Example004.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example004/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The task function. */
23 | void vTaskFunction( void * pvParameters );
24 |
25 | /* Define the strings that will be passed in as the task parameters. These are
26 | * defined const and off the stack to ensure they remain valid when the tasks are
27 | * executing. */
28 | const char * pcTextForTask1 = "Task 1 is running\r\n";
29 | const char * pcTextForTask2 = "Task 2 is running\r\n";
30 |
31 | /*-----------------------------------------------------------*/
32 |
33 | int main( void )
34 | {
35 | /* Create the first task at priority 1... */
36 | xTaskCreate( vTaskFunction, "Task 1", 1000, ( void * ) pcTextForTask1, 1, NULL );
37 |
38 | /* ... and the second task at priority 2. The priority is the second to
39 | * last parameter. */
40 | xTaskCreate( vTaskFunction, "Task 2", 1000, ( void * ) pcTextForTask2, 2, NULL );
41 |
42 | /* Start the scheduler to start the tasks executing. */
43 | vTaskStartScheduler();
44 |
45 | /* The following line should never be reached because vTaskStartScheduler()
46 | * will only return if there was not enough FreeRTOS heap memory available to
47 | * create the Idle and (if configured) Timer tasks. Heap management, and
48 | * techniques for trapping heap exhaustion, are described in the book text. */
49 | for( ; ; )
50 | {
51 | }
52 |
53 | return 0;
54 | }
55 | /*-----------------------------------------------------------*/
56 |
57 | void vTaskFunction( void * pvParameters )
58 | {
59 | char * pcTaskName;
60 | const TickType_t xDelay250ms = pdMS_TO_TICKS( 250UL );
61 |
62 | /* The string to print out is passed in via the parameter. Cast this to a
63 | * character pointer. */
64 | pcTaskName = ( char * ) pvParameters;
65 |
66 | /* As per most tasks, this task is implemented in an infinite loop. */
67 | for( ; ; )
68 | {
69 | /* Print out the name of this task. */
70 | vPrintString( pcTaskName );
71 |
72 | /* Delay for a period. This time a call to vTaskDelay() is used which
73 | * places the task into the Blocked state until the delay period has
74 | * expired. The parameter takes a time specified in 'ticks', and the
75 | * pdMS_TO_TICKS() macro is used (where the xDelay250ms constant is
76 | * declared) to convert 250 milliseconds into an equivalent time in
77 | * ticks. */
78 | vTaskDelay( xDelay250ms );
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example005/MSVC/Example005.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {07D91A6F-ED3E-4B75-9C6C-0006E88B64B1}
15 | Win32Proj
16 | Example005
17 | Example005
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example005/MSVC/Example005.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example005/MSVC/Example005.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example005/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The task function. */
23 | void vTaskFunction( void * pvParameters );
24 |
25 | /* Define the strings that will be passed in as the task parameters. These are
26 | * defined const and off the stack to ensure they remain valid when the tasks are
27 | * executing. */
28 | const char * pcTextForTask1 = "Task 1 is running\r\n";
29 | const char * pcTextForTask2 = "Task 2 is running\r\n";
30 |
31 | /*-----------------------------------------------------------*/
32 |
33 | int main( void )
34 | {
35 | /* Create the first task at priority 1... */
36 | xTaskCreate( vTaskFunction, "Task 1", 1000, ( void * ) pcTextForTask1, 1, NULL );
37 |
38 | /* ... and the second task at priority 2. The priority is the second to
39 | * last parameter. */
40 | xTaskCreate( vTaskFunction, "Task 2", 1000, ( void * ) pcTextForTask2, 2, NULL );
41 |
42 | /* Start the scheduler to start the tasks executing. */
43 | vTaskStartScheduler();
44 |
45 | /* The following line should never be reached because vTaskStartScheduler()
46 | * will only return if there was not enough FreeRTOS heap memory available to
47 | * create the Idle and (if configured) Timer tasks. Heap management, and
48 | * techniques for trapping heap exhaustion, are described in the book text. */
49 | for( ; ; )
50 | {
51 | }
52 |
53 | return 0;
54 | }
55 | /*-----------------------------------------------------------*/
56 |
57 | void vTaskFunction( void * pvParameters )
58 | {
59 | char * pcTaskName;
60 | TickType_t xLastWakeTime;
61 | const TickType_t xDelay250ms = pdMS_TO_TICKS( 250UL );
62 |
63 | /* The string to print out is passed in via the parameter. Cast this to a
64 | * character pointer. */
65 | pcTaskName = ( char * ) pvParameters;
66 |
67 | /* The xLastWakeTime variable needs to be initialized with the current tick
68 | * count. Note that this is the only time we access this variable. From this
69 | * point on xLastWakeTime is managed automatically by the vTaskDelayUntil()
70 | * API function. */
71 | xLastWakeTime = xTaskGetTickCount();
72 |
73 | /* As per most tasks, this task is implemented in an infinite loop. */
74 | for( ; ; )
75 | {
76 | /* Print out the name of this task. */
77 | vPrintString( pcTaskName );
78 |
79 | /* We want this task to execute exactly every 250 milliseconds. As per
80 | * the vTaskDelay() function, time is measured in ticks, and the
81 | * pdMS_TO_TICKS() macro is used to convert this to milliseconds.
82 | * xLastWakeTime is automatically updated within vTaskDelayUntil() so does not
83 | * have to be updated by this task code. */
84 | vTaskDelayUntil( &xLastWakeTime, xDelay250ms );
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example006/MSVC/Example006.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {CC68B78B-8323-4EC4-B373-F1CC8C0B2A40}
15 | Win32Proj
16 | Example006
17 | Example006
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example006/MSVC/Example006.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example006/MSVC/Example006.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example006/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The task functions. */
23 | void vContinuousProcessingTask( void * pvParameters );
24 | void vPeriodicTask( void * pvParameters );
25 |
26 | /* Define the strings that will be passed in as the task parameters. These are
27 | * defined const and off the stack to ensure they remain valid when the tasks are
28 | * executing. */
29 | const char * pcTextForTask1 = "Continuous task 1 running\r\n";
30 | const char * pcTextForTask2 = "Continuous task 2 running\r\n";
31 | const char * pcTextForPeriodicTask = "Periodic task is running\r\n";
32 |
33 | /*-----------------------------------------------------------*/
34 |
35 | int main( void )
36 | {
37 | /* Create two instances of the continuous processing task, both at priority 1. */
38 | xTaskCreate( vContinuousProcessingTask, "Task 1", 1000, ( void * ) pcTextForTask1, 1, NULL );
39 | xTaskCreate( vContinuousProcessingTask, "Task 2", 1000, ( void * ) pcTextForTask2, 1, NULL );
40 |
41 | /* Create one instance of the periodic task at priority 2. */
42 | xTaskCreate( vPeriodicTask, "Task 3", 1000, ( void * ) pcTextForPeriodicTask, 2, NULL );
43 |
44 | /* Start the scheduler to start the tasks executing. */
45 | vTaskStartScheduler();
46 |
47 | /* The following line should never be reached because vTaskStartScheduler()
48 | * will only return if there was not enough FreeRTOS heap memory available to
49 | * create the Idle and (if configured) Timer tasks. Heap management, and
50 | * techniques for trapping heap exhaustion, are described in the book text. */
51 | for( ; ; )
52 | {
53 | }
54 |
55 | return 0;
56 | }
57 | /*-----------------------------------------------------------*/
58 |
59 | void vContinuousProcessingTask( void * pvParameters )
60 | {
61 | char * pcTaskName;
62 |
63 | /* The string to print out is passed in via the parameter. Cast this to a
64 | * character pointer. */
65 | pcTaskName = ( char * ) pvParameters;
66 |
67 | /* As per most tasks, this task is implemented in an infinite loop. */
68 | for( ; ; )
69 | {
70 | /* Print out the name of this task. This task just does this repeatedly
71 | * without ever blocking or delaying. */
72 | vPrintString( pcTaskName );
73 | }
74 | }
75 | /*-----------------------------------------------------------*/
76 |
77 | void vPeriodicTask( void * pvParameters )
78 | {
79 | TickType_t xLastWakeTime;
80 | const TickType_t xDelay5ms = pdMS_TO_TICKS( 3UL );
81 |
82 | /* The xLastWakeTime variable needs to be initialized with the current tick
83 | * count. Note that this is the only time we access this variable. From this
84 | * point on xLastWakeTime is managed automatically by the vTaskDelayUntil()
85 | * API function. */
86 | xLastWakeTime = xTaskGetTickCount();
87 |
88 | /* As per most tasks, this task is implemented in an infinite loop. */
89 | for( ; ; )
90 | {
91 | /* Print out the name of this task. */
92 | vPrintString( "Periodic task is running\r\n" );
93 |
94 | /* We want this task to execute exactly every 10 milliseconds. */
95 | vTaskDelayUntil( &xLastWakeTime, xDelay5ms );
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example007/MSVC/Example007.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {34446EC8-4C23-42FD-BDE9-5BD167DF376E}
15 | Win32Proj
16 | Example007
17 | Example007
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example007/MSVC/Example007.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example007/MSVC/Example007.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example007/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The task function. */
23 | void vTaskFunction( void * pvParameters );
24 |
25 | /* A variable that is incremented by the idle task hook function. */
26 | static uint32_t ulIdleCycleCount = 0UL;
27 |
28 | /* Define the strings that will be passed in as the task parameters. These are
29 | * defined const and off the stack to ensure they remain valid when the tasks are
30 | * executing. */
31 | const char * pcTextForTask1 = "Task 1 is running\r\n";
32 | const char * pcTextForTask2 = "Task 2 is running\r\n";
33 |
34 | /*-----------------------------------------------------------*/
35 |
36 | int main( void )
37 | {
38 | /* Create the first task at priority 1... */
39 | xTaskCreate( vTaskFunction, "Task 1", 1000, ( void * ) pcTextForTask1, 1, NULL );
40 |
41 | /* ... and the second task at priority 2. The priority is the second to
42 | * last parameter. */
43 | xTaskCreate( vTaskFunction, "Task 2", 1000, ( void * ) pcTextForTask2, 2, NULL );
44 |
45 | /* Start the scheduler to start the tasks executing. */
46 | vTaskStartScheduler();
47 |
48 | /* The following line should never be reached because vTaskStartScheduler()
49 | * will only return if there was not enough FreeRTOS heap memory available to
50 | * create the Idle and (if configured) Timer tasks. Heap management, and
51 | * techniques for trapping heap exhaustion, are described in the book text. */
52 | for( ; ; )
53 | {
54 | }
55 |
56 | return 0;
57 | }
58 | /*-----------------------------------------------------------*/
59 |
60 | void vTaskFunction( void * pvParameters )
61 | {
62 | char * pcTaskName;
63 | const TickType_t xDelay250ms = pdMS_TO_TICKS( 250UL );
64 |
65 | /* The string to print out is passed in via the parameter. Cast this to a
66 | * character pointer. */
67 | pcTaskName = ( char * ) pvParameters;
68 |
69 | /* As per most tasks, this task is implemented in an infinite loop. */
70 | for( ; ; )
71 | {
72 | /* Print out the name of this task AND the number of times ulIdleCycleCount
73 | * has been incremented. */
74 | vPrintStringAndNumber( pcTaskName, ulIdleCycleCount );
75 |
76 | /* Delay for a period. This time we use a call to vTaskDelay() which
77 | * puts the task into the Blocked state until the delay period has expired.
78 | * The delay period is specified in 'ticks'. */
79 | vTaskDelay( xDelay250ms );
80 | }
81 | }
82 | /*-----------------------------------------------------------*/
83 |
84 | /* Idle hook functions MUST be called vApplicationIdleHook(), take no parameters,
85 | * and return void. */
86 | void vApplicationIdleHook( void )
87 | {
88 | /* This hook function does nothing but increment a counter. */
89 | ulIdleCycleCount++;
90 | }
91 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example008/MSVC/Example008.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example008/MSVC/Example008.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example008/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The two task functions. */
23 | void vTask1( void * pvParameters );
24 | void vTask2( void * pvParameters );
25 |
26 | /* Used to hold the handle of Task2. */
27 | TaskHandle_t xTask2Handle;
28 |
29 | /*-----------------------------------------------------------*/
30 |
31 | int main( void )
32 | {
33 | /* Create the first task at priority 2. This time the task parameter is
34 | * not used and is set to NULL. The task handle is also not used so likewise
35 | * is also set to NULL. */
36 | xTaskCreate( vTask1, "Task 1", 1000, NULL, 2, NULL );
37 | /* The task is created at priority 2 ^. */
38 |
39 | /* Create the second task at priority 1 - which is lower than the priority
40 | * given to Task1. Again the task parameter is not used so is set to NULL -
41 | * BUT this time we want to obtain a handle to the task so pass in the address
42 | * of the xTask2Handle variable. */
43 | xTaskCreate( vTask2, "Task 2", 1000, NULL, 1, &xTask2Handle );
44 | /* The task handle is the last parameter ^^^^^^^^^^^^^ */
45 |
46 | /* Start the scheduler to start the tasks executing. */
47 | vTaskStartScheduler();
48 |
49 | /* The following line should never be reached because vTaskStartScheduler()
50 | * will only return if there was not enough FreeRTOS heap memory available to
51 | * create the Idle and (if configured) Timer tasks. Heap management, and
52 | * techniques for trapping heap exhaustion, are described in the book text. */
53 | for( ; ; )
54 | {
55 | }
56 |
57 | return 0;
58 | }
59 | /*-----------------------------------------------------------*/
60 |
61 | void vTask1( void * pvParameters )
62 | {
63 | UBaseType_t uxPriority;
64 |
65 | /* This task will always run before Task2 as it has the higher priority.
66 | * Neither Task1 nor Task2 ever block so both will always be in either the
67 | * Running or the Ready state.
68 | *
69 | * Query the priority at which this task is running - passing in NULL means
70 | * "return our own priority". */
71 | uxPriority = uxTaskPriorityGet( NULL );
72 |
73 | for( ; ; )
74 | {
75 | /* Print out the name of this task. */
76 | vPrintString( "Task1 is running\r\n" );
77 |
78 | /* Setting the Task2 priority above the Task1 priority will cause
79 | * Task2 to immediately start running (as then Task2 will have the higher
80 | * priority of the two created tasks). */
81 | vPrintString( "About to raise the Task2 priority\r\n" );
82 | vTaskPrioritySet( xTask2Handle, ( uxPriority + 1 ) );
83 |
84 | /* Task1 will only run when it has a priority higher than Task2.
85 | * Therefore, for this task to reach this point Task2 must already have
86 | * executed and set its priority back down to 0. */
87 | }
88 | }
89 |
90 | /*-----------------------------------------------------------*/
91 |
92 | void vTask2( void * pvParameters )
93 | {
94 | UBaseType_t uxPriority;
95 |
96 | /* Task1 will always run before this task as Task1 has the higher priority.
97 | * Neither Task1 nor Task2 ever block so will always be in either the
98 | * Running or the Ready state.
99 | *
100 | * Query the priority at which this task is running - passing in NULL means
101 | * "return our own priority". */
102 | uxPriority = uxTaskPriorityGet( NULL );
103 |
104 | for( ; ; )
105 | {
106 | /* For this task to reach this point Task1 must have already run and
107 | * set the priority of this task higher than its own.
108 | *
109 | * Print out the name of this task. */
110 | vPrintString( "Task2 is running\r\n" );
111 |
112 | /* Set our priority back down to its original value. Passing in NULL
113 | * as the task handle means "change our own priority". Setting the
114 | * priority below that of Task1 will cause Task1 to immediately start
115 | * running again. */
116 | vPrintString( "About to lower the Task2 priority\r\n" );
117 | vTaskPrioritySet( NULL, ( uxPriority - 2 ) );
118 | }
119 | }
120 | /*-----------------------------------------------------------*/
121 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example009/MSVC/Example009.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example009/MSVC/Example009.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example009/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 |
19 | /* Demo includes. */
20 | #include "supporting_functions.h"
21 |
22 | /* The two task functions. */
23 | void vTask1( void * pvParameters );
24 | void vTask2( void * pvParameters );
25 |
26 | /* Used to hold the handle of Task2. */
27 | TaskHandle_t xTask2Handle;
28 |
29 | /*-----------------------------------------------------------*/
30 |
31 | int main( void )
32 | {
33 | /* Create the first task at priority 1. This time the task parameter is
34 | * not used and is set to NULL. The task handle is also not used so likewise
35 | * is also set to NULL. */
36 | xTaskCreate( vTask1, "Task 1", 1000, NULL, 1, NULL );
37 | /* The task is created at priority 1 ^. */
38 |
39 | /* Start the scheduler to start the tasks executing. */
40 | vTaskStartScheduler();
41 |
42 | /* The following line should never be reached because vTaskStartScheduler()
43 | * will only return if there was not enough FreeRTOS heap memory available to
44 | * create the Idle and (if configured) Timer tasks. Heap management, and
45 | * techniques for trapping heap exhaustion, are described in the book text. */
46 | for( ; ; )
47 | {
48 | }
49 |
50 | return 0;
51 | }
52 | /*-----------------------------------------------------------*/
53 |
54 | void vTask1( void * pvParameters )
55 | {
56 | const TickType_t xDelay100ms = pdMS_TO_TICKS( 100UL );
57 |
58 | for( ; ; )
59 | {
60 | /* Print out the name of this task. */
61 | vPrintString( "Task1 is running\r\n" );
62 |
63 | /* Create task 2 at a higher priority. Again the task parameter is not
64 | * used so is set to NULL - BUT this time we want to obtain a handle to the
65 | * task so pass in the address of the xTask2Handle variable. */
66 | xTaskCreate( vTask2, "Task 2", 1000, NULL, 2, &xTask2Handle );
67 | /* The task handle is the last parameter ^^^^^^^^^^^^^ */
68 |
69 | /* Task2 has/had the higher priority, so for Task1 to reach here Task2
70 | * must have already executed and deleted itself. Delay for 100
71 | * milliseconds. */
72 | vTaskDelay( xDelay100ms );
73 | }
74 | }
75 |
76 | /*-----------------------------------------------------------*/
77 |
78 | void vTask2( void * pvParameters )
79 | {
80 | /* Task2 does nothing but delete itself. To do this it could call vTaskDelete()
81 | * using a NULL parameter, but instead and purely for demonstration purposes it
82 | * instead calls vTaskDelete() with its own task handle. */
83 | vPrintString( "Task2 is running and about to delete itself\r\n" );
84 | vTaskDelete( xTask2Handle );
85 | }
86 | /*-----------------------------------------------------------*/
87 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example010/MSVC/Example010.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example010/MSVC/Example010.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example011/MSVC/Example011.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example011/MSVC/Example011.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example012/MSVC/Example012.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example012/MSVC/Example012.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example013/MSVC/Example013.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files
69 |
70 |
71 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example013/MSVC/Example013.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example013/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* FreeRTOS.org includes. */
16 | #include "FreeRTOS.h"
17 | #include "task.h"
18 | #include "timers.h"
19 |
20 | /* Demo includes. */
21 | #include "supporting_functions.h"
22 |
23 | /* The periods assigned to the one-shot and auto-reload timers respectively. */
24 | #define mainONE_SHOT_TIMER_PERIOD ( pdMS_TO_TICKS( 3333UL ) )
25 | #define mainAUTO_RELOAD_TIMER_PERIOD ( pdMS_TO_TICKS( 500UL ) )
26 |
27 | /*-----------------------------------------------------------*/
28 |
29 | /*
30 | * The callback functions used by the one-shot and auto-reload timers
31 | * respectively.
32 | */
33 | static void prvOneShotTimerCallback( TimerHandle_t xTimer );
34 | static void prvAutoReloadTimerCallback( TimerHandle_t xTimer );
35 |
36 | /*-----------------------------------------------------------*/
37 |
38 | int main( void )
39 | {
40 | TimerHandle_t xAutoReloadTimer, xOneShotTimer;
41 | BaseType_t xTimer1Started, xTimer2Started;
42 |
43 | /* Create the one shot software timer, storing the handle to the created
44 | * software timer in xOneShotTimer. */
45 | xOneShotTimer = xTimerCreate( "OneShot", /* Text name for the software timer - not used by FreeRTOS. */
46 | mainONE_SHOT_TIMER_PERIOD, /* The software timer's period in ticks. */
47 | pdFALSE, /* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */
48 | 0, /* This example does not use the timer id. */
49 | prvOneShotTimerCallback ); /* The callback function to be used by the software timer being created. */
50 |
51 | /* Create the auto-reload software timer, storing the handle to the created
52 | * software timer in xAutoReloadTimer. */
53 | xAutoReloadTimer = xTimerCreate( "AutoReload", /* Text name for the software timer - not used by FreeRTOS. */
54 | mainAUTO_RELOAD_TIMER_PERIOD, /* The software timer's period in ticks. */
55 | pdTRUE, /* Set uxAutoRealod to pdTRUE to create an auto-reload software timer. */
56 | 0, /* This example does not use the timer id. */
57 | prvAutoReloadTimerCallback ); /* The callback function to be used by the software timer being created. */
58 |
59 | /* Check the timers were created. */
60 | if( ( xOneShotTimer != NULL ) && ( xAutoReloadTimer != NULL ) )
61 | {
62 | /* Start the software timers, using a block time of 0 (no block time).
63 | * The scheduler has not been started yet so any block time specified here
64 | * would be ignored anyway. */
65 | xTimer1Started = xTimerStart( xOneShotTimer, 0 );
66 | xTimer2Started = xTimerStart( xAutoReloadTimer, 0 );
67 |
68 | /* The implementation of xTimerStart() uses the timer command queue, and
69 | * xTimerStart() will fail if the timer command queue gets full. The timer
70 | * service task does not get created until the scheduler is started, so all
71 | * commands sent to the command queue will stay in the queue until after
72 | * the scheduler has been started. Check both calls to xTimerStart()
73 | * passed. */
74 | if( ( xTimer1Started == pdPASS ) && ( xTimer2Started == pdPASS ) )
75 | {
76 | /* Start the scheduler. */
77 | vTaskStartScheduler();
78 | }
79 | }
80 |
81 | /* If the scheduler was started then the following line should never be
82 | * reached because vTaskStartScheduler() will only return if there was not
83 | * enough FreeRTOS heap memory available to create the Idle and (if configured)
84 | * Timer tasks. Heap management, and techniques for trapping heap exhaustion,
85 | * are described in the book text. */
86 | for( ; ; )
87 | {
88 | }
89 |
90 | return 0;
91 | }
92 | /*-----------------------------------------------------------*/
93 |
94 | static void prvOneShotTimerCallback( TimerHandle_t xTimer )
95 | {
96 | static TickType_t xTimeNow;
97 |
98 | /* Obtain the current tick count. */
99 | xTimeNow = xTaskGetTickCount();
100 |
101 | /* Output a string to show the time at which the callback was executed. */
102 | vPrintStringAndNumber( "One-shot timer callback executing", xTimeNow );
103 | }
104 | /*-----------------------------------------------------------*/
105 |
106 | static void prvAutoReloadTimerCallback( TimerHandle_t xTimer )
107 | {
108 | static TickType_t xTimeNow;
109 |
110 | /* Obtain the current tick count. */
111 | xTimeNow = xTaskGetTickCount();
112 |
113 | /* Output a string to show the time at which the callback was executed. */
114 | vPrintStringAndNumber( "Auto-reload timer callback executing", xTimeNow );
115 | }
116 | /*-----------------------------------------------------------*/
117 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example014/MSVC/Example014.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files
69 |
70 |
71 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example014/MSVC/Example014.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example015/MSVC/Example015.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files
69 |
70 |
71 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example015/MSVC/Example015.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example016/MSVC/Example016.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example016/MSVC/Example016.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example017/MSVC/Example017.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example017/MSVC/Example017.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example018/MSVC/Example018.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files
69 |
70 |
71 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example018/MSVC/Example018.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example019/MSVC/Example019.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example019/MSVC/Example019.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example020/MSVC/Example020.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example020/MSVC/Example020.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example020/main.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
3 | *
4 | * SPDX-License-Identifier: MIT-0
5 | *
6 | * VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
7 | *
8 | * This file is part of the FreeRTOS distribution.
9 | *
10 | * This contains the Windows port implementation of the examples listed in the
11 | * FreeRTOS book Mastering_the_FreeRTOS_Real_Time_Kernel.
12 | *
13 | */
14 |
15 | /* Standard includes. */
16 | #include
17 | #include
18 |
19 | /* FreeRTOS.org includes. */
20 | #include "FreeRTOS.h"
21 | #include "task.h"
22 | #include "semphr.h"
23 |
24 | /* Demo includes. */
25 | #include "supporting_functions.h"
26 |
27 | /* The task to be created. Two instances of this task are created. */
28 | static void prvPrintTask( void * pvParameters );
29 |
30 | /* The function that uses a mutex to control access to standard out. */
31 | static void prvNewPrintString( const char * pcString );
32 |
33 | /*-----------------------------------------------------------*/
34 |
35 | /* Declare a variable of type SemaphoreHandle_t. This is used to reference the
36 | * mutex type semaphore that is used to ensure mutual exclusive access to stdout. */
37 | SemaphoreHandle_t xMutex;
38 |
39 | /* The tasks block for a pseudo random time between 0 and xMaxBlockTime ticks. */
40 | const TickType_t xMaxBlockTimeTicks = 0x20;
41 |
42 | int main( void )
43 | {
44 | /* Before a semaphore is used it must be explicitly created. In this example
45 | * a mutex type semaphore is created. */
46 | xMutex = xSemaphoreCreateMutex();
47 |
48 | /* Check the semaphore was created successfully. */
49 | if( xMutex != NULL )
50 | {
51 | /* Create two instances of the tasks that attempt to write stdout. The
52 | * string they attempt to write is passed into the task as the task's
53 | * parameter. The tasks are created at different priorities so some
54 | * pre-emption will occur. */
55 | xTaskCreate( prvPrintTask, "Print1", 1000, "Task 1 ******************************************\r\n", 1, NULL );
56 | xTaskCreate( prvPrintTask, "Print2", 1000, "Task 2 ------------------------------------------\r\n", 2, NULL );
57 |
58 | /* Start the scheduler so the created tasks start executing. */
59 | vTaskStartScheduler();
60 | }
61 |
62 | /* The following line should never be reached because vTaskStartScheduler()
63 | * will only return if there was not enough FreeRTOS heap memory available to
64 | * create the Idle and (if configured) Timer tasks. Heap management, and
65 | * techniques for trapping heap exhaustion, are described in the book text. */
66 | for( ; ; )
67 | {
68 | }
69 |
70 | return 0;
71 | }
72 | /*-----------------------------------------------------------*/
73 |
74 | static void prvNewPrintString( const char * pcString )
75 | {
76 | /* The semaphore is created before the scheduler is started so already
77 | * exists by the time this task executes.
78 | *
79 | * Attempt to take the semaphore, blocking indefinitely if the mutex is not
80 | * available immediately. The call to xSemaphoreTake() will only return when
81 | * the semaphore has been successfully obtained so there is no need to check the
82 | * return value. If any other delay period was used then the code must check
83 | * that xSemaphoreTake() returns pdTRUE before accessing the resource (in this
84 | * case standard out. */
85 | xSemaphoreTake( xMutex, portMAX_DELAY );
86 | {
87 | /* The following line will only execute once the semaphore has been
88 | * successfully obtained - so standard out can be accessed freely. */
89 | printf( "%s", pcString );
90 | fflush( stdout );
91 | }
92 | xSemaphoreGive( xMutex );
93 |
94 | /* Allow any key to stop the application running. A real application that
95 | * actually used the key value should protect access to the keyboard too. A
96 | * real application is very unlikely to have more than one task processing
97 | * key presses though! */
98 | if( _kbhit() != 0 )
99 | {
100 | vTaskEndScheduler();
101 | }
102 | }
103 | /*-----------------------------------------------------------*/
104 |
105 | static void prvPrintTask( void * pvParameters )
106 | {
107 | char * pcStringToPrint;
108 | const TickType_t xSlowDownDelay = pdMS_TO_TICKS( 5UL );
109 |
110 | /* Two instances of this task are created. The string printed by the task
111 | * is passed into the task using the task's parameter. The parameter is cast
112 | * to the required type. */
113 | pcStringToPrint = ( char * ) pvParameters;
114 |
115 | for( ; ; )
116 | {
117 | /* Print out the string using the newly defined function. */
118 | prvNewPrintString( pcStringToPrint );
119 |
120 | /* Wait a pseudo random time. Note that rand() is not necessarily
121 | * re-entrant, but in this case it does not really matter as the code does
122 | * not care what value is returned. In a more secure application a version
123 | * of rand() that is known to be re-entrant should be used - or calls to
124 | * rand() should be protected using a critical section. */
125 | vTaskDelay( rand() % xMaxBlockTimeTicks );
126 |
127 | /* Just to ensure the scrolling is not too fast! */
128 | vTaskDelay( xSlowDownDelay );
129 | }
130 | }
131 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example021/MSVC/Example021.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {4E1B3FAA-7A43-475C-9464-85AD26DF1785}
15 | Win32Proj
16 | Example021
17 | Example021
18 |
19 |
20 |
21 | Application
22 | true
23 | Unicode
24 | v143
25 |
26 |
27 | Application
28 | false
29 | true
30 | Unicode
31 | v143
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
56 | $(ProjectDir)\..\..\..\Supporting_Functions;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\portable\MSVC-MingW;$(ProjectDir)\..\..\..\FreeRTOS-Kernel\include;$(ProjectDir)\..;%(AdditionalIncludeDirectories)
57 |
58 |
59 | Console
60 | true
61 |
62 |
63 |
64 |
65 | Level3
66 |
67 |
68 | MaxSpeed
69 | true
70 | true
71 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
72 |
73 |
74 | Console
75 | true
76 | true
77 | true
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example021/MSVC/Example021.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 |
43 |
44 | Source Files\FreeRTOS-Kernel\include
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files
63 |
64 |
65 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example021/MSVC/Example021.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example022/MSVC/Example022.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 | Source Files\FreeRTOS-Kernel
49 |
50 |
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files\FreeRTOS-Kernel\include
69 |
70 |
71 | Source Files
72 |
73 |
74 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example022/MSVC/Example022.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example023/MSVC/Example023.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files\FreeRTOS-Kernel
46 |
47 |
48 | Source Files\FreeRTOS-Kernel
49 |
50 |
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files\FreeRTOS-Kernel\include
66 |
67 |
68 | Source Files\FreeRTOS-Kernel\include
69 |
70 |
71 | Source Files
72 |
73 |
74 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example023/MSVC/Example023.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example024/MSVC/Example024.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example024/MSVC/Example024.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example025/MSVC/Example025.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example025/MSVC/Example025.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example026/MSVC/Example026.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 | {ffa1c60c-b562-4d7d-aaf7-7572b86fc93a}
14 |
15 |
16 | {9eaac105-c1ee-4e7b-b52f-43bd71f8f8ce}
17 |
18 |
19 | {0240c1ee-f8a6-4454-a6d4-d1d804e9daeb}
20 |
21 |
22 |
23 |
24 | Source Files
25 |
26 |
27 | Source Files\FreeRTOS-Kernel
28 |
29 |
30 | Source Files\FreeRTOS-Kernel
31 |
32 |
33 | Source Files\FreeRTOS-Kernel
34 |
35 |
36 | Source Files\FreeRTOS-Kernel\portable
37 |
38 |
39 | Source Files\FreeRTOS-Kernel\portable
40 |
41 |
42 | Source Files
43 |
44 |
45 |
46 |
47 | Source Files\FreeRTOS-Kernel\include
48 |
49 |
50 | Source Files\FreeRTOS-Kernel\include
51 |
52 |
53 | Source Files\FreeRTOS-Kernel\include
54 |
55 |
56 | Source Files\FreeRTOS-Kernel\include
57 |
58 |
59 | Source Files\FreeRTOS-Kernel\include
60 |
61 |
62 | Source Files\FreeRTOS-Kernel\include
63 |
64 |
65 | Source Files
66 |
67 |
68 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Examples/Example026/MSVC/Example026.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/RTOSDemo.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/examples/Win32-simulator-MSVC/RTOSDemo.suo
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/ReadMe-Instructions.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/examples/Win32-simulator-MSVC/ReadMe-Instructions.txt
--------------------------------------------------------------------------------
/examples/Win32-simulator-MSVC/Supporting_Functions/supporting_functions.h:
--------------------------------------------------------------------------------
1 | /*
2 | FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
3 | All rights reserved
4 |
5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
6 |
7 | ***************************************************************************
8 | * *
9 | * FreeRTOS provides completely free yet professionally developed, *
10 | * robust, strictly quality controlled, supported, and cross *
11 | * platform software that has become a de facto standard. *
12 | * *
13 | * Help yourself get started quickly and support the FreeRTOS *
14 | * project by purchasing a FreeRTOS tutorial book, reference *
15 | * manual, or both from: http://www.FreeRTOS.org/Documentation *
16 | * *
17 | * Thank you! *
18 | * *
19 | ***************************************************************************
20 |
21 | This file is part of the FreeRTOS distribution.
22 |
23 | FreeRTOS is free software; you can redistribute it and/or modify it under
24 | the terms of the GNU General Public License (version 2) as published by the
25 | Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
26 |
27 | >>! NOTE: The modification to the GPL is included to allow you to distribute
28 | >>! a combined work that includes FreeRTOS without being obliged to provide
29 | >>! the source code for proprietary components outside of the FreeRTOS
30 | >>! kernel.
31 |
32 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
33 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
34 | FOR A PARTICULAR PURPOSE. Full license text is available from the following
35 | link: http://www.freertos.org/a00114.html
36 |
37 | 1 tab == 4 spaces!
38 |
39 | ***************************************************************************
40 | * *
41 | * Having a problem? Start by reading the FAQ "My application does *
42 | * not run, what could be wrong?" *
43 | * *
44 | * http://www.FreeRTOS.org/FAQHelp.html *
45 | * *
46 | ***************************************************************************
47 |
48 | http://www.FreeRTOS.org - Documentation, books, training, latest versions,
49 | license and Real Time Engineers Ltd. contact details.
50 |
51 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
52 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS
53 | compatible FAT file system, and our tiny thread aware UDP/IP stack.
54 |
55 | http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
56 | Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
57 | licenses offer ticketed support, indemnification and middleware.
58 |
59 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety
60 | engineered and independently SIL3 certified version for use in safety and
61 | mission critical applications that require provable dependability.
62 |
63 | 1 tab == 4 spaces!
64 | */
65 |
66 | #ifndef BASIC_IO_H
67 | #define BASIC_IO_H
68 |
69 | void vPrintString( const char *pcString );
70 | void vPrintStringAndNumber( const char *pcString, uint32_t ulValue );
71 | void vPrintTwoStrings( const char *pcString1, const char *pcString2 );
72 |
73 | #endif
74 |
75 |
--------------------------------------------------------------------------------
/media/amazon-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/amazon-logo.jpg
--------------------------------------------------------------------------------
/media/amazon-smiley-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/amazon-smiley-logo.png
--------------------------------------------------------------------------------
/media/aws-logo-hr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/aws-logo-hr.png
--------------------------------------------------------------------------------
/media/aws-logo-lr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/aws-logo-lr.png
--------------------------------------------------------------------------------
/media/aws-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/aws-logo.png
--------------------------------------------------------------------------------
/media/figure_4.10_example_4.4_state_machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.10_example_4.4_state_machine.png
--------------------------------------------------------------------------------
/media/figure_4.11_example_4.6_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.11_example_4.6_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.14_example_4.8_execution_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.14_example_4.8_execution_sequence.png
--------------------------------------------------------------------------------
/media/figure_4.17_example_4.9_execution_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.17_example_4.9_execution_sequence.png
--------------------------------------------------------------------------------
/media/figure_4.18_preemption_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.18_preemption_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.19_time_slicing_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.19_time_slicing_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.1_top_level_task_states.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.1_top_level_task_states.png
--------------------------------------------------------------------------------
/media/figure_4.20_time_slicing_with_yield_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.20_time_slicing_with_yield_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.21_equal_priority_without_time_slicing_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.21_equal_priority_without_time_slicing_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.22_cooperative_scheduler_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.22_cooperative_scheduler_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.3_example_4.1_execution_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.3_example_4.1_execution_pattern.png
--------------------------------------------------------------------------------
/media/figure_4.4_expanded_execution_sequence_with_tick_interrupt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.4_expanded_execution_sequence_with_tick_interrupt.png
--------------------------------------------------------------------------------
/media/figure_4.6_execution_pattern_higher_priority_task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.6_execution_pattern_higher_priority_task.png
--------------------------------------------------------------------------------
/media/figure_4.7_full_task_state_machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.7_full_task_state_machine.png
--------------------------------------------------------------------------------
/media/figure_4.9_vTaskDelay_execution_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/figure_4.9_vTaskDelay_execution_sequence.png
--------------------------------------------------------------------------------
/media/freeRTOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/freeRTOS.png
--------------------------------------------------------------------------------
/media/image05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image05.png
--------------------------------------------------------------------------------
/media/image06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image06.png
--------------------------------------------------------------------------------
/media/image07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image07.png
--------------------------------------------------------------------------------
/media/image08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image08.png
--------------------------------------------------------------------------------
/media/image31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image31.png
--------------------------------------------------------------------------------
/media/image32.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image32.jpg
--------------------------------------------------------------------------------
/media/image33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image33.png
--------------------------------------------------------------------------------
/media/image34.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image34.png
--------------------------------------------------------------------------------
/media/image35.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image35.jpg
--------------------------------------------------------------------------------
/media/image36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image36.png
--------------------------------------------------------------------------------
/media/image37.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image37.jpg
--------------------------------------------------------------------------------
/media/image38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image38.png
--------------------------------------------------------------------------------
/media/image39.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image39.png
--------------------------------------------------------------------------------
/media/image40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image40.png
--------------------------------------------------------------------------------
/media/image41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image41.png
--------------------------------------------------------------------------------
/media/image42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image42.png
--------------------------------------------------------------------------------
/media/image43.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image43.png
--------------------------------------------------------------------------------
/media/image44.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image44.jpg
--------------------------------------------------------------------------------
/media/image45.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image45.jpg
--------------------------------------------------------------------------------
/media/image46.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image46.png
--------------------------------------------------------------------------------
/media/image47.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image47.jpg
--------------------------------------------------------------------------------
/media/image48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image48.png
--------------------------------------------------------------------------------
/media/image49.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image49.png
--------------------------------------------------------------------------------
/media/image50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image50.png
--------------------------------------------------------------------------------
/media/image51.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image51.jpg
--------------------------------------------------------------------------------
/media/image52.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image52.png
--------------------------------------------------------------------------------
/media/image53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image53.png
--------------------------------------------------------------------------------
/media/image54.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image54.png
--------------------------------------------------------------------------------
/media/image55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image55.png
--------------------------------------------------------------------------------
/media/image56.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image56.jpg
--------------------------------------------------------------------------------
/media/image57.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image57.jpg
--------------------------------------------------------------------------------
/media/image58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image58.png
--------------------------------------------------------------------------------
/media/image59.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image59.jpg
--------------------------------------------------------------------------------
/media/image60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image60.png
--------------------------------------------------------------------------------
/media/image61.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image61.png
--------------------------------------------------------------------------------
/media/image62.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image62.png
--------------------------------------------------------------------------------
/media/image63.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image63.png
--------------------------------------------------------------------------------
/media/image64.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image64.jpg
--------------------------------------------------------------------------------
/media/image65.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image65.png
--------------------------------------------------------------------------------
/media/image66.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image66.png
--------------------------------------------------------------------------------
/media/image67.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image67.png
--------------------------------------------------------------------------------
/media/image68.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image68.png
--------------------------------------------------------------------------------
/media/image69.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image69.png
--------------------------------------------------------------------------------
/media/image70.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image70.jpg
--------------------------------------------------------------------------------
/media/image71.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image71.png
--------------------------------------------------------------------------------
/media/image72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image72.png
--------------------------------------------------------------------------------
/media/image73.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image73.jpg
--------------------------------------------------------------------------------
/media/image74.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image74.jpg
--------------------------------------------------------------------------------
/media/image75.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image75.jpg
--------------------------------------------------------------------------------
/media/image76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image76.png
--------------------------------------------------------------------------------
/media/image77.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image77.png
--------------------------------------------------------------------------------
/media/image78.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image78.png
--------------------------------------------------------------------------------
/media/image79.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image79.png
--------------------------------------------------------------------------------
/media/image80.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image80.jpg
--------------------------------------------------------------------------------
/media/image81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image81.png
--------------------------------------------------------------------------------
/media/image82.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image82.png
--------------------------------------------------------------------------------
/media/image83.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image83.png
--------------------------------------------------------------------------------
/media/image84.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image84.png
--------------------------------------------------------------------------------
/media/image85.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image85.png
--------------------------------------------------------------------------------
/media/image86.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image86.png
--------------------------------------------------------------------------------
/media/image87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image87.png
--------------------------------------------------------------------------------
/media/image88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image88.png
--------------------------------------------------------------------------------
/media/image89.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image89.png
--------------------------------------------------------------------------------
/media/image90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image90.png
--------------------------------------------------------------------------------
/media/image91.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel-Book/a4c1c83289196317db549f1899330c5b9e7ecb73/media/image91.png
--------------------------------------------------------------------------------