OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6389|回复: 9

裸机程序存在多线程问题吗?

[复制链接]

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-7-22
在线时间
126 小时
发表于 2017-1-13 17:10:41 | 显示全部楼层 |阅读模式
10金钱
     最近做的项目遇到一些很难复现很难处理的偶发bug,然后在讨论的时候同事提出来可能是出现了多线程问题。
但是我觉得裸机程序(while(1)跑状态机),不可能出现同一时间争抢统一资源的多线程问题吧。想测底搞清楚,
希望大神出来说道说道。

最佳答案

查看完整内容[请看2#楼]

STM32就不支持多线程,无论你是否使用OS。。。 多线程是指:硬件在同一时间,执执行至少2段代码....
work is work!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-1-13 17:10:42 | 显示全部楼层
STM32就不支持多线程,无论你是否使用OS。。。   多线程是指:硬件在同一时间,执执行至少2段代码....  
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-1-13 17:13:25 | 显示全部楼层
裸机肯定没有线程的概念
回复

使用道具 举报

22

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
878
金钱
878
注册时间
2014-7-7
在线时间
311 小时
发表于 2017-1-13 17:15:42 | 显示全部楼层
本帖最后由 our单片机 于 2017-1-13 17:16 编辑
zuozhongkai 发表于 2017-1-13 17:13
裸机肯定没有线程的概念

其实,是有的,当所有任务进行状态机切换的时候,就会涉及到线程的基本概念!
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7546
金钱
7546
注册时间
2016-11-30
在线时间
642 小时
发表于 2017-1-13 17:21:59 | 显示全部楼层
是有的!
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2017-1-13 17:26:42 | 显示全部楼层
但是,裸机可能存在控制逻辑问题。尤其是全局变量。在N各地方被引用,A改完后,又被B给改了,最后出现意料之外的bug
回复

使用道具 举报

12

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2016-6-12
在线时间
93 小时
发表于 2017-1-13 17:27:56 | 显示全部楼层
并发问题?
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2017-1-13 17:38:51 | 显示全部楼层
我认为状态机也是有线程的,之前看书里说到,裸机与OS的唯一区别,只是任务调度不同,裸机用的是状态机,手动调度,OS有虚拟堆栈,可以实现自动调度。

至于通讯机制,其实状态机和OS是一样的,OS里面需要注意的,状态机一样需要注意,就像楼主说的共享资源问题,状态机里一样存在,要用类似OS的那种机制来保护(比如互斥信号量)。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-7-22
在线时间
126 小时
 楼主| 发表于 2017-1-13 17:49:58 | 显示全部楼层
东北小辉辉 发表于 2017-1-13 17:38
我认为状态机也是有线程的,之前看书里说到,裸机与OS的唯一区别,只是任务调度不同,裸机用的是状态机,手 ...

我同事说不同的中断程序(中断和主程序)就是不同程序执行流,他们之间会产生多线程问题。
work is work!!!
回复

使用道具 举报

1

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-10
在线时间
49 小时
发表于 2017-1-15 00:39:31 | 显示全部楼层

如果是windows系统,关于线程的东西很多。

RTOS本质上就是多线程。

使用多线程技术,主要涉及到数据同步问题,这些东西在原子的ucos里面讲的比较清楚。
逆水行舟不进则退
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 04:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表