/*
FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
/* Standard includes. */
#include <stdlib.h>
#include <string.h>
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
all the API functions to use the MPU wrappers. That should only be done when
task.h is included from an application file. */
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "StackMacros.h"
/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the
header files above, but not in this file, in order to generate the correct
privileged Vs unprivileged linkage and placement. */
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */
/* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting
functions but without including stdio.h here. */
#if ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 )
/* At the bottom of this file are two optional functions that can be used
to generate human readable text from the raw data generated by the
uxTaskGetSystemState() function. Note the formatting functions are provided
for convenience only, and are NOT considered part of the kernel. */
#include <stdio.h>
#endif /* configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) */
#if( configUSE_PREEMPTION == 0 )
/* If the cooperative scheduler is being used then a yield should not be
performed just because a higher priority task has been woken. */
#define taskYIELD_IF_USING_PREEMPTION()
#else
#define taskYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
#endif
/* Values that can be assigned to the ucNotifyState member of the TCB. */
#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 )
#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 )
#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 )
/*
* The value used to fill the stack of a task when the task is created. This
* is used purely for checking the high water mark for tasks.
*/
#define tskSTACK_FILL_BYTE ( 0xa5U )
/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
dynamically allocated RAM, in which case when any task is deleted it is known
that both the task's stack and TCB need to be freed. Sometimes the
FreeRTOSConfig.h settings only allow a task to be created using statically
allocated RAM, in which case when any task is deleted it is known that neither
the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h
settings allow a task to be created using either statically or dynamically
allocated RAM, in which case a member of the TCB is used to record whether the
stack and/or TCB were allocated statically or dynamically, so when a task is
deleted the RAM that was allocated dynamically is freed again and no attempt is
made to free the RAM that was allocated statically.
tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
task to be created using either statically or dynamically allocated RAM. Note
that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
a statically allocated stack and a dynamically allocated TCB. */
#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) || ( portUSING_MPU_WRAPPERS == 1 ) )
#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 )
#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 )
#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 )
/*
* Macros used by vListTask to indicate which state a task is in.
*/
#define tskBLOCKED_CHAR ( 'B' )
#define tskREADY_CHAR ( 'R' )
#define tskDELETED_CHAR ( 'D' )
#define tskSUSPENDED_CHAR ( 'S' )
/*
* Some kernel aware debuggers require the data the debugger needs access to be
* global, rather than file scope.
*/
#ifdef portREMOVE_STATIC_QUALIFIER
#define static
#endif
#if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 )
/* If configUSE_PORT_OPTIMISED_TASK_SELECT
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
F1C100S FreeRTOS例程,真实可用 (4351个子文件)
0013fb3165040f3aee41815cceeca79675c71e 83B
001d53438ae81ee86af34b3b0d80aae435ab4b 2KB
001ef2806bec29cd59a0dfb44fb3ccc7871bc6 5KB
001f942a0e771bbffa135dfe88ef96fcc8d9f3 686B
003a0bae40478e519f7c0174a7927a1a80f226 8KB
003bf2295a42d6a06d939b45c071a3f992643c 1KB
00466e73788c86a753f1d5611a137cc76aa737 854B
006d0386db7499db1a7ab15a168dfc392eceb3 9KB
006e15531c73383c51f61901f70731037ac5ec 2KB
006f823e871e9df8b8fe41bf911b68aac1090c 4KB
00703e25b53e7d975f50fa740333527c04b7ac 1KB
0072bf6fd90922c83a4ac829793e625ff9b747 693B
007537e53f941af3aad75fabcfd33f0a090377 940B
0091ca98f0551046d451ffcb27a86700943d41 1KB
009c4bb02502cda51ae6ad26809dbfc0c67521 754B
00a2b80b938d08e16a5f806499616cf4221327 11KB
00c85400763d9d42c370cb2c06cd5dfabbec99 961B
00eb9c3f0595818e8bccf41e93c882947c8609 720B
0121c7acfc5550740baf4f642d968a76aae8db 2KB
013be986c6cf7dbbc783c789e7e57cf86c678c 4KB
0142499b2113159c40243190327dc0c89c8b22 2KB
0151cc3862e5ee98f9635d0d22023164fd9f0b 806B
016bec98a65692e80ab3ff061e1f1eb0c4dd24 15KB
01703bda5263ba09eedf423594c2fb22b3d61c 113KB
017ac40caf5d5badd53320cc3d82c37667f6ca 927B
0198873daad323f2f0bb2911d52a4e1b09dd08 2KB
01abf97bbd6177b8e42346fb6c3c88f97e3b69 226B
01e153926a6a50661c1cecef7e2ee4acaa2b5e 10KB
01f89d95ee84df8eca3f79011049c5066d31b0 4KB
01fb1b62bcd8c18b07b14bd2f217f4641252ce 4KB
01fe1b397813b69dcbbb01b54b961b2b377da6 310B
01ff0f3abd88090a9cd219d5dd58d9f1f9ae2a 503B
0204740e9bcc26dacd3aa6a3e06cde35b1412f 15KB
021d1a673ce0e1a1c07f4532f15f881b817545 22KB
021f19a320ae0f2003e153ca2681b24a2fddd4 1KB
022be947d70530f882a04301c2bfaff9dcd743 641B
0230ba53b3358f769b84cad04a02a9d2e4f14f 1KB
02572b9912c02f09e69c930a7b23e5c7e9f040 8KB
0261c680b6b09dff8d394baed868c1caa32759 933B
0267dcbe5058207e33096c7dec14a1b8315bbe 22KB
0271a4f62062a0e5ad1c6d9d7301978e569551 544B
02833a550be9c757126cd8e1b1e3c5cd8d926d 3KB
0285fde71d8bb433ceb9cf845d074692a41843 796B
029059cd4e1bbbf6d6ee5188bd094e9e6d0736 827B
0294eaf190abc70af2217bda3b60831f7f82ad 1KB
02c0828392c789117dac9b2ce04c91409eb12d 978B
0304d053a4ed0dcb35d570cb7dbae4fa4c65ed 1KB
031e58e5989f5b9944209b1da9028dec8e93b1 3KB
033259d9d21a7fdd8e446d5135ce34c5f4bfd5 1KB
033a52bee746ab11f4599d3e905aa569605c28 670B
0341b9b7ab50a05a44bf4d6119c9bcd64e66b6 4KB
0342f40329c8d924a8c5393018e2a98ab04ec0 12KB
03537424bc87178971581c3ded64ddc0a9894e 686B
035a0f37fe9608f63f240f42dd41ebaa8eed29 1KB
0372a165d5148ec8365a304e5d11b6f0e0ec97 909B
037eebdcb288aa7cf060c861327e0509fc625f 868B
03993dda943db79815544b314675c6e247fb23 2KB
03ab4ac1a5dc90eee1b202dd40862b72943620 6KB
03aeffd3ef2a1e5b2d1fb46a4740e472891e35 657B
03cfb06fcde3ce4516005f3527e4f6f87b688b 4KB
03d8bf795decc57bfa8e362798a8329ff28ec6 2KB
03d9aa8ea018df198ba85a88562d3405926ab8 878B
03de2413b1e4ece0e9485c15881534bb5848f2 1KB
03e71d544fd1dd5b6ea6746ec0b08d2519b86d 8KB
03ea4358684bc1e7727f75ca138409ce8a8a46 2KB
03eeb2b9910ac6ac31f82943451352bffb2f3d 521B
03fd9eb05ededa5f8f4d4d1707c67d089e4ac0 1005B
042e4e5d5fb27595f2f9f1d6f05fe78dd8af75 2KB
04370ce1731d3a7901d22cc455ae557cd79924 2KB
0447840fbf651a9fc5ad0fe2c4b8289476cefa 5KB
0448afc3f4bb081e31e1e867d0c65be1cb3f08 545B
047727cbc853b49c1829d3e2408616571b9c90 2KB
04906e193ba1f30b5c235a26d34944cc2f75ee 9KB
049794ccca37e1bdadc4e54ad8ce3d05d25d19 896B
049e268746af4aee1ae638c2d9ed25bd2b8239 6KB
049fdaf3072f132e88cd8ff67ef28b66e7be6e 553B
04f7973875bb8a8a904563a52a471ce3709418 1KB
0539645b59f9673925be123bc4a12ba7dec584 3KB
054714ebfcd029c78a5f7f2eff71cd6658aecf 658B
055014fae3419b9cd76929f72164180646c907 1KB
055ae7933803de2029920b888c6be1c77bf2ba 10KB
0589a9a86f332ea009f4fea4c25bf5a7cbfb0c 542B
059293c6d0ae35e45871275433e7631340345c 8KB
059f1c663437e6a4676fef6837d68bd34051e1 3KB
05c7983d6eac25fd068abc45316d3e93014851 32KB
05d093912f305b44a4ede499cf35eca6b82291 533B
05dd716f73f18d32c14b4f68bcadc105726f35 29KB
05f45d9c56ae6884abba09503f6e694daad07e 2KB
05fecbd93da9830955b2bab385d188c0214f71 5KB
060a505bbd652e988c2ac4f183b41d41cbc0f8 769B
061b7795b3cfd47b35bb563989c0de4ca49a53 1KB
063949996c87785bfe227a357c66be5b58fbd9 137B
065600d0ffc32703cfef916a801606b422f0da 12KB
065fd69b2d67c4c213c08717dfb44c01df0e60 48B
06711a401330d24cd7992d6862e52e931e11a7 5KB
067c0b4bdbf164938c10cd8832f2b1b8161f9b 910B
06891a01d0bc4efe96a153832f4118c46f6433 2KB
0697f7c10a1f780c4ae05c9c1a4a7f4a5bc0d0 2KB
06a1a666307df1fba51db3d144dfd3cc64572e 44KB
06a2fd4fd381793df66e2c061c0a3ef5351857 481B
共 4351 条
- 1
- 2
- 3
- 4
- 5
- 6
- 44
资源评论
- qq_182276552023-02-01不错,学习下
- bidezhi77772023-06-26不错的学习资料,谢谢分享!!
单片机的码农
- 粉丝: 68
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功