4662|9

75

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

无操作系统的bare_metal中多个任务在运行一次后会退出,如何再次运行这些任务呢? [复制链接]

本帖最后由 bjemt 于 2017-7-3 14:18 编辑

NXP提供的BLE wireless_usrt 示例程序分为下图中所示的三个版本:

我对比看了一下:bare_metal和FreeRTOS的代码基本都是一样的,只是差了一个宏的定义:
const uint8_t gUseRtos_c = USE_RTOS;  /* USE_RTOS = 0 for BareMetal and 1 for OS */
对于FreeRTOS分成多个任务好理解,多个伤务之间由操作系统来调度,但是对于bare_metal版本为什么也分成主应用任务:主任务,定时器作务,串口管理任务,系统空闲任务?如下所示是4个任务的处理函数:

void App_Thread (uint32_t param)
void TMR_Task
void SerialManagerTask(osaTaskParam_t argument)
static void App_Idle_Task(osaTaskParam_t argument)


在上面四个任务的最后都有下面一段代码:
        /* For BareMetal break the while(1) after 1 run */
        if (gUseRtos_c == 0)
        {
            break;
        }        

对于无操作系统的bare_metal中每个任务在运行一次后会退出(在FreeRTOS会因为没有中断while(1)而无限循环执行),而程序正常运行是需要周期性的运行这些任务,对于无操作系统的程序是如何再次运行这些任务的呢?

如果我需要增加ADC和DMA处理任务,应该如何把自己定义的任务加入主程序的循环中?


此帖出自NXP MCU论坛

最新回复

不用客气,玩的开心就好  详情 回复 发表于 2017-7-16 18:11
点赞 关注
 

回复
举报

1403

帖子

1

TA的资源

纯净的硅(中级)

推荐
 
前面说的文档中也有说明,中断如何添加:
此帖出自NXP MCU论坛

点评

发只贴科普一下。  详情 回复 发表于 2017-7-9 23:15
 
个人签名HELLO_WATER
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

推荐
 
bm 部分的内容建议你看一下docs/common/Connectivity Framework Reference Manual.pdf 这个文档,nxp定义了一个osa 层,在源码framework/OSAbstraction/fsl_os_abstraction_bm.c 这个文件里有调度源码、任务管理的源码,按理说这个这个调度比rtos的更好理解,rtos是通过中断然后跳离当前任务,而bm则是所有任务外面一个大while循环


所有任务按优先级排列放在一个链表里,从最前面开始执行,执行的标志为haveToRun, 如果设置等待事件,则这个标志为false,自动跳出循环,执行后面的任务,但有事件需要处理的时候,这个标志为true,在下一个调度轮回中处理。
此帖出自NXP MCU论坛

点评

谢谢您的回复,我找到了Connectivity Framework Reference Manual.pdf,之前没有看到这个文档。  详情 回复 发表于 2017-7-16 17:33
发只贴科普一下  详情 回复 发表于 2017-7-9 23:16
 
个人签名HELLO_WATER
 
 

回复

75

帖子

2

TA的资源

一粒金砂(中级)

沙发
 
我理解的bare_meta就是裸机,系统不包括任何底层的控制代码,只有一个优先级较低的主任务进程,各种中断可以触发中断服务进程。
但是也有人说bare_meta并不是没有操作系统,是没有开放给用户的rtos,也是有OS的。
那使用KDS V3开发的KW41Z项目,如果使用的是bare_meta,生成的代码到底有没有OS?
此帖出自NXP MCU论坛
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
定义个软中断, 然后用定时器触发或者main loop里触发。
此帖出自NXP MCU论坛
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

6
 
shinykongcn 发表于 2017-7-9 15:23
前面说的文档中也有说明,中断如何添加:

发只贴科普一下。
此帖出自NXP MCU论坛
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

7
 
shinykongcn 发表于 2017-7-9 15:19
bm 部分的内容建议你看一下docs/common/Connectivity Framework Reference Manual.pdf 这个文档,nxp定义了 ...

发只贴科普一下
此帖出自NXP MCU论坛

点评

不玩bm,只针对性的看了一下,没仔细研究。。。。  详情 回复 发表于 2017-7-10 09:05
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

8
 

不玩bm,只针对性的看了一下,没仔细研究。。。。
此帖出自NXP MCU论坛
 
个人签名HELLO_WATER
 
 

回复

75

帖子

2

TA的资源

一粒金砂(中级)

9
 
shinykongcn 发表于 2017-7-9 15:19
bm 部分的内容建议你看一下docs/common/Connectivity Framework Reference Manual.pdf 这个文档,nxp定义了 ...

谢谢您的回复,我找到了Connectivity Framework Reference Manual.pdf,之前没有看到这个文档。
此帖出自NXP MCU论坛

点评

不用客气,玩的开心就好  详情 回复 发表于 2017-7-16 18:11
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

10
 
bjemt 发表于 2017-7-16 17:33
谢谢您的回复,我找到了Connectivity Framework Reference Manual.pdf,之前没有看到这个文档。

不用客气,玩的开心就好
此帖出自NXP MCU论坛
 
个人签名HELLO_WATER
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表