• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

RTOS任务设计划分

skawu 2017-10-31 浏览量:1968
以前都是裸奔代码,现在学习RTOS,原有的裸奔代码应该怎么划分任务,怎么移植进RTOS里面?有什么原则或者约定吗?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 把裸机里的每个功能分别单独写成一个任务。没一个功能写任务的时候,都假设CPU是自己独占的。任务间同步或者通讯,使用信号量、邮箱等。

    举个简单的例子:按键控制LED亮灭。

    任务1:LED任务等待信号量A,接收到信号量才执行LED反转

    任务2:始终扫描按键,如果检测到按键则向任务1发送信号量A

    每个任务都是死循环。

    • 发布于 2017-11-02
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 我用的是freeRTOS,移植跟一般代码类似,调用头文件,函数化,原则上是任务划分要有功能性,用时要尽可能的短
    • 发布于2017-11-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :一个是组件,一个就是socket (https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Customer+Drawing%7F201144%7FAV3%7Fpdf%7FEnglish%7FENG_CD_201144_AV3.pdf%7F201144-1 回复

  • 代码的功能要分块,而且要独立。每个任务的优先级要把握好,这才是最主要的

    还有任务之间的通信。

    • 发布于2017-11-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 一、
    按功能分,但是有个问题,如果两个功能(比如显示与存储)都使用了SPI或是IIC,那么如果不使用信号量进行互锁的话,会产生冲突。
    二、
    按硬件层分,即把使用SPI的功能写在一个任务里,但是这样比较混乱了就。
    三、
    所以,要综合一下,对于程序将硬件层的尽量只是留下接口函数,按功能分,使用信号量进行互锁。
    • 发布于2017-11-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该先把需要实现的功能列出来,按照功能区分任务。

    优先级:要求实时性搞得任务,优先级设置高一点。

    信号量:共同访问同一数据或者内存的任务加入信号量保护。


    • 发布于2017-11-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :两型号温度范围不一样, -5PX :-55 ~125,符合ROHS 5P:-10-70,不符合ROHS 能不能替代看客户需求 回复

  • 一般都是按流程分的,比如步骤一放在一个任务里面,步骤二放在一个任务里面
    • 发布于2017-11-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

RTOS任务设计划分