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

东莞各类免费建站服装设计学院

东莞各类免费建站,服装设计学院,免费的资料网站,手机上自己设计房子软件目录 FreeRTOS学习第8篇--同步和互斥操作引子同步和互斥概念实现同步和互斥的机制PrintTask_Task任务相关代码片段CalcTask_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第8篇–同步和互斥操作引子 本文目标#xff1a;学习与使用FreeRTOS中的同步和互斥操… 目录 FreeRTOS学习第8篇--同步和互斥操作引子同步和互斥概念实现同步和互斥的机制PrintTask_Task任务相关代码片段CalcTask_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第8篇–同步和互斥操作引子 本文目标学习与使用FreeRTOS中的同步和互斥操作引子 按照本文的描述应该可以跑通实验并举一反三。 本文实验条件拥有C语言基础装有编译和集成的开发环境比如Keil uVision5 同步和互斥概念 同步用于控制任务执行顺序和时间例如等待其他任务完成某项操作。 互斥用于保护共享资源确保一次只有一个任务能够修改或访问这些资源。 实现同步和互斥的机制 任务通知task notification用于任务之间的等待和唤醒可以传递数据和状态。队列queue用于传递数据任务和ISR都可以放入数据从中读出数据。信号量semaphore用于维持资源的个数生产者和消费者都可以使用。互斥量mutex用于保护共享资源的访问确保一次只有一个任务能够修改资源。 这些知识点后续会继续进行学习。 基于上面的知识点在我自己硬件板子上进行实验完成这个实验的体验。在本次实验中设计两个两个任务任务PrintTask负责打印一些信息任务CalcTask进行计算当计算任务完成计算时将结果传递给任务PrintTask进行显示。 PrintTask_Task任务相关代码片段 void PrintTask(void *params) {struct TaskPrintInfo *pInfo params;OLED_Init();while (1){ // vTaskDelay(3000); // 进入blockwhile (g_calc_end 0); // 等待计算任务完成/* 打印信息 */if (g_LCDCanUse){g_LCDCanUse 0;OLED_ShowString(pInfo-x,pInfo-y,Sum:,16);OLED_ShowNum((pInfo-x 8 * 6),pInfo-y,g_sum,10,16);OLED_ShowString(pInfo-x,pInfo-y 16,Time(ms): ,16);OLED_ShowNum((pInfo-x 8 * 10),pInfo-y 16,g_time / 1000000,4,16);g_LCDCanUse 1;}OLED_Refresh(); vTaskDelete(NULL);} }xTaskCreate(PrintTask, task1, 128, g_Task1Info, osPriorityNormal, NULL);static struct TaskPrintInfo g_Task1Info {0, 0, Task1};CalcTask_Task任务相关代码片段 void CalcTask(void *params) {uint32_t i 0;OLED_ShowString(0, 0, Waiting,16);OLED_Refresh(); g_time system_get_ns();for (i 0; i 10000000; i){g_sum i;}g_calc_end 1; // 计算完成标志g_time system_get_ns() - g_time;vTaskDelete(NULL); } xTaskCreate(CalcTask, task2, 128, g_Task2Info, osPriorityNormal, NULL);static struct TaskPrintInfo g_Task2Info {0, 16, Task2};实验现象 下载代码到板子上可以看到计算的结果在第一行中进行显示在第二行那里显示了计算这么多个数所需要的时间打印任务PrintTask在计算任务CalcTask没计算完时也抢占cpu资源导致计算会有些慢这里我根据计算的结果简单粗暴的加了相应的延迟vTaskDelay(3000); // 进入block使打印任务一开始先阻塞着不抢占cpu资源计算速度会快一些。当然这只是一种例子有一定的缺陷当作学习使用。 本文完 本文中使用的测试工程
http://www.dnsts.com.cn/news/220042.html

相关文章:

  • asp网站开发教程北京十大展览展示公司
  • 昆明网站公司建设电商平台运营方案
  • 株洲手机网站建设湖北短视频seo
  • 那个网站做字体建设项目验收网站公示
  • 网站建设的大公司排名织梦系统网站首页空白
  • 天津网站备案去哪做一个企业网站要多久
  • 西丽网站建设设计证书在线制作生成器
  • 禹城网站制作局域网搭建的步骤
  • 那个网站做境外自由行便宜网站建设上市公司
  • 怎么免费建立自己的网站步骤wordpress获取某个分类下所有分类
  • 如何增加网站访问量会展展厅设计
  • 网站建设英语要几级房产网站建设方案的论文
  • 开发网站的申请怎么写定制软件公司
  • 多语言网站怎么实现亚马逊全球开店app下载
  • 专题网站建设策划书ppt免费模板官网
  • 余姚做百度网站腾讯视频网站建设维护
  • 河西做网站成都网页设计班
  • 湛江市国外网站建设报价建立网站需要多少人
  • 个人网站什么语言做专网建设是什么
  • 国内高端大气的网站设计成都网站建设电话咨询
  • 河南浪博网站建设wordpress鼠标样式
  • 如何海外网站建设get attached file wordpress
  • 电商网站开发平台有哪些上海中心
  • 怎么制作自己公司网站租赁网站开发
  • 移动端网站建设wordpress报名表单
  • 网站开发后端用什么用wordpress建站的好处
  • 上国外网站用什么机箱好电商网站是什么意思
  • 建一个漫画网站网站开发工具是什么
  • 南京市秦淮区建设局网站单页网站制作程序
  • 怎样建一个自己的网站网页制作与网页设计简历