当前位置:网站首页>FreeRTOS 任务函数里面的死循环
FreeRTOS 任务函数里面的死循环
2022-07-06 09:16:00 【薇远镖局】
任务函数是一个无限循环且不带返回值的函数。
任务必须是死循环,否则任务将经过 LR 返回,如果 LR 指向了非法内存就会产生HardFault_Handler,而 FreeRTOS 指向一个死循环,那么任务返回以后就在死循环中执行,这样子的任务是不安全的。
编程时应避免这种状况,任务通常都是死循环而且无返回值的。
若是单次任务,执行一次以后就进行删除,则不影响系统运行,所以,只执行一次的任务在执行完毕要记得及时删除。即就是在任务结束的时候,加上 vTaskDelete(NULL)。
循环任务里面的延时函数必须使用 FreeRTOS 里面提供的延时函数,并不能使用咱们裸机编程中的那种延时。这两种延时的区别是 FreeRTOS 里面的延时是阻塞延时,即调用vTaskDelay()函数的时候,当前任务会被挂起,调度器会切换到其它就绪的任务,从而实现多任务。若是仍是使用裸机编程中的那种延时,那么整个任务就成为了一个死循环,若是刚好该任务的优先级是最高的,那么系统永远都是在这个任务中运行,比它优先级更低的任务没法运行,根本没法实现多任务。
当任务进入延时的时候,由于没有另外就绪的用户任务,那么系统就会进入空闲任务,空闲任务是 FreeRTOS 系统本身启动的一个任务,优先级最低。当整个系统都没有就绪任务的时候,系统必须保证有一个任务在运行,空闲任务就是为这个设计的。当用户任务延时到期,又会从空闲任务切换回用户任务。
边栏推荐
- Vs2019 desktop app quick start
- 【kerberos】深入理解kerberos票据生命周期
- Heating data in data lake?
- XML文件详解:XML是什么、XML配置文件、XML数据文件、XML文件解析教程
- double转int精度丢失问题
- Learn winpwn (2) -- GS protection from scratch
- ImportError: libmysqlclient. so. 20: Cannot open shared object file: no such file or directory solution
- 小L的试卷
- Codeforces Round #753 (Div. 3)
- [MRCTF2020]套娃
猜你喜欢

【yarn】Yarn container 日志清理

MySQL与c语言连接(vs2019版)

4. Install and deploy spark (spark on Yan mode)

Stage 4 MySQL database

Linux Yum install MySQL

Correspondence between STM32 model and contex M

vs2019 使用向导生成一个MFC应用程序
Reading BMP file with C language

Valentine's Day flirting with girls to force a small way, one can learn

Mtcnn face detection
随机推荐
MTCNN人脸检测
Implementation scheme of distributed transaction
Solution to the practice set of ladder race LV1 (all)
[CDH] modify the default port 7180 of cloudera manager in cdh/cdp environment
2019腾讯暑期实习生正式笔试
vs2019 桌面程序快速入门
分布式节点免密登录
nodejs 详解
ES6 let and const commands
Common regular expression collation
Dependency in dependencymanagement cannot be downloaded and red is reported
2020网鼎杯_朱雀组_Web_nmap
XML文件详解:XML是什么、XML配置文件、XML数据文件、XML文件解析教程
Linux yum安装MySQL
Mysql的索引实现之B树和B+树
XML file explanation: what is XML, XML configuration file, XML data file, XML file parsing tutorial
FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
Internet protocol details
FTP file upload file implementation, regularly scan folders to upload files in the specified format to the server, C language to realize FTP file upload details and code case implementation
{one week summary} take you into the ocean of JS knowledge