当前位置:网站首页>FreeRTOS 任务函数里面的死循环
FreeRTOS 任务函数里面的死循环
2022-07-06 09:16:00 【薇远镖局】
任务函数是一个无限循环且不带返回值的函数。
任务必须是死循环,否则任务将经过 LR 返回,如果 LR 指向了非法内存就会产生HardFault_Handler,而 FreeRTOS 指向一个死循环,那么任务返回以后就在死循环中执行,这样子的任务是不安全的。
编程时应避免这种状况,任务通常都是死循环而且无返回值的。
若是单次任务,执行一次以后就进行删除,则不影响系统运行,所以,只执行一次的任务在执行完毕要记得及时删除。即就是在任务结束的时候,加上 vTaskDelete(NULL)
。
循环任务里面的延时函数必须使用 FreeRTOS 里面提供的延时函数,并不能使用咱们裸机编程中的那种延时。这两种延时的区别是 FreeRTOS 里面的延时是阻塞延时,即调用vTaskDelay()函数的时候,当前任务会被挂起,调度器会切换到其它就绪的任务,从而实现多任务。若是仍是使用裸机编程中的那种延时,那么整个任务就成为了一个死循环,若是刚好该任务的优先级是最高的,那么系统永远都是在这个任务中运行,比它优先级更低的任务没法运行,根本没法实现多任务。
当任务进入延时的时候,由于没有另外就绪的用户任务,那么系统就会进入空闲任务,空闲任务是 FreeRTOS 系统本身启动的一个任务,优先级最低。当整个系统都没有就绪任务的时候,系统必须保证有一个任务在运行,空闲任务就是为这个设计的。当用户任务延时到期,又会从空闲任务切换回用户任务。
边栏推荐
- 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
- Word typesetting (subtotal)
- Detailed explanation of nodejs
- Double to int precision loss
- Vs2019 desktop app quick start
- 互聯網協議詳解
- 2020网鼎杯_朱雀组_Web_nmap
- MySQL realizes read-write separation
- sklearn之feature_extraction.text.CountVectorizer / TfidVectorizer
- Vert. x: A simple TCP client and server demo
猜你喜欢
Linux yum安装MySQL
Vs2019 desktop app quick start
Basic use of pytest
Face recognition_ recognition
Apprentissage automatique - - régression linéaire (sklearn)
Correspondence between STM32 model and contex M
About string immutability
2019 Tencent summer intern formal written examination
Software I2C based on Hal Library
分布式節點免密登錄
随机推荐
Principle and implementation of MySQL master-slave replication
物联网系统框架学习
vs2019 第一个MFC应用程序
{one week summary} take you into the ocean of JS knowledge
2020 WANGDING cup_ Rosefinch formation_ Web_ nmap
L2-001 emergency rescue (25 points)
E-commerce data analysis -- User Behavior Analysis
ES6 Promise 对象
MySQL与c语言连接(vs2019版)
jS数组+数组方法重构
Word typesetting (subtotal)
Are you monitored by the company for sending resumes and logging in to job search websites? Deeply convinced that the product of "behavior awareness system ba" has not been retrieved on the official w
[Bluebridge cup 2020 preliminary] horizontal segmentation
【CDH】CDH5.16 配置 yarn 任务集中分配设置不生效问题
【presto】presto 参数配置优化
机器学习--决策树(sklearn)
nodejs 详解
电商数据分析--用户行为分析
人脸识别 face_recognition
Stage 4 MySQL database