├── .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 --------------------------------------------------------------------------------