当前位置: 首页 > news >正文

h5做的网站it培训机构哪个好

h5做的网站,it培训机构哪个好,手机app下载免费安装,wordpress搭建实时聊天网站Q: 什么是任务? A: 任务可以理解为进程/线程,创建一个任务,就会在内存开辟一个空间。 比如: 玩游戏,打篮球,开车,都可以视为任务。 Windows 系统中的 MarkText 、谷歌浏览器、记事本&#xff0…

Q: 什么是任务?

A: 任务可以理解为进程/线程,创建一个任务,就会在内存开辟一个空间。

比如: 玩游戏,打篮球,开车,都可以视为任务。

Windows 系统中的 MarkText 、谷歌浏览器、记事本,都是任务。

任务通常都含有 while(1) 死循环。

任务创建与删除相关函数

  • xTaskCreate() 动态方式创建任务
  • xTaskCreateStatic() 静态方式创建任务
  • vTaskDelete() 删除任务

任务动态创建与静态创建的区别: 

动态创建任务的 堆栈 由系统分配,而静态创建任务的 堆栈 用户自己传递通常情况下使用动态方式创建任务

xTaskCreate 函数原型

1. pvTaskCode:指向任务函数的指针,任务必须实现为永不返回(即连续循环);

2. pcName:任务的名字,主要是用来调试,默认情况下最大长度是16;

3. pvParameters:指定的任务栈的大小;

4. uxPriority:任务优先级,数值越大,优先级越大(和中断优先级的概念相反)

5. pxCreatedTask:用于返回已创建任务的句柄可以被引用。

官方案例:

 

 vTaskDelete 函数原型

只需将待删除的任务句柄传入该函数,即可将该任务删除。

当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)。

实操演示

C:\mjm_CubeMX_proj 路径下,复制一份Cube的母版并重命名为 :mjm_freeRTOS_credel_Task:

打开相应的Cube文件,找到左侧的Middleware --> FREERTOS,然后在下方找到"Task and Queues":

 可见,系统已经默认创建了一个任务“defaultTask”,点击可以编辑:

在这个弹窗里的选项,其实就对应了刚刚上面 xTaskCreate 函数 的 传入参数:

此处,如果想要动态的创建一个任务,并保持一般的优先级的话,就只需要修改“Task Name"和"Entry Function":

以同样的方式,再创建一个任务:(注意,此时的默认优先级是IDLE,即最低,所以要把他改成normal):

 创建完成两个任务:

 在GPIO中,设置PB8和PB9并拉高:

然后生成代码,打开Keil:

打开左侧的freertos.c:

可以找到刚刚定义的入口函数和任务函数:

 

 但是注意到,创建任务的函数却不是xTaskCreate 函数:

 但是实际上,如果跳转这个所谓的osThreadCreate函数就会发现,这是Cube自动封装的一个函数,里面本质上还是在调用xTaskCreate 函数:

可见,就是两个if,区分了是否 动态创建 的情况而已。

而观察传入 xTaskCreate 函数 的参数可知,Cube还封装了一个叫"osThreadDef_t"的结构体,其中的成员正是 xTaskCreate的传入参数:

那么显而易见,任务的代码就写在任务函数中:

void StartTaskLED_1(void const * argument)
{for(;;) //相当于一个while(1){HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_8);//翻转LED1的状态osDelay(500); //一个Cube封装的Delay函数,毫秒为单位}
}void StartTaskLED_2(void const * argument)
{for(;;){HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);//翻转LED2的状态osDelay(1000);}
}

实现效果:

 

可见,LED1和LED2各自按照Delay的时间,以不同的频率闪烁。

这看似是一件很正常的事情,实际上,这解决了一个很大的痛点,在之前使用STM32裸机开发时,经常会碰到“遇到一个while(1),程序就会卡死”的问题,为了解决这个问题,使用了中断,但是中断也只是暂时的打断,如果中断中有while(1),程序同样也会卡死。

但是,通过FreeRTOS创建两个任务,这就使得同时运行两个 while(1)成为了现实!

 

http://www.tj-hxxt.cn/news/43169.html

相关文章:

  • 做网站推广好做吗成品影视app开发
  • 四川网站建设平台福州seo网络推广
  • 小公司网站建设费用软文如何推广
  • 外贸网站做几种产品企业seo排名哪家好
  • 网站 ca证书怎么做在哪里打广告效果最好
  • 装修公司找哪家比较好关键词排名优化怎么样
  • 品牌产品网站怎么做北京网站优化
  • 东营市做网站的公司百度云搜索引擎入口 百度网盘
  • 地方门户网站运营方案网络宣传的方法渠道
  • 网站权重排行海淀区seo全面优化
  • 网页站点不安全怎么办百度电脑网页版入口
  • 网站建设方案ppt模板网站排名优化推广
  • 日本做a的动画视频网站有哪些武汉seo招聘信息
  • 日照便宜做网站百度客服中心人工在线
  • 做新闻h5网站软文平台
  • 做网站跟赚钱嘛网站seo策划
  • Wordpress图文博客插件广州市口碑seo推广外包
  • 湘潭公司做网站怎么注册自己的网址
  • 有哪些公司的网站做的比较好利用搜索引擎营销成功的案例
  • 网络推广方法怎么做seo推广方案怎么做
  • wordpress 添加图片水印seo学堂
  • 临桂区建设局网站网站建设免费
  • 全国做网站的公司百度关键词优化平台
  • 哈尔滨公司网站建设营销平台有哪些
  • 网站建设员企业文化
  • 建设公共网站的目的廊坊关键词优化报价
  • 网站结构优化的内容和方法找关键词的方法与技巧
  • 百度做公司网站需要多少钱今日军事新闻最新消息中国
  • 免费网站设计定制网络推广代运营公司
  • 安装wordpress报错seo需要掌握哪些技术