OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 148|回复: 3

刚接触RT-Thread系统,有些地方不是很懂

[复制链接]

  离线 

4

主题

10

帖子

0

精华

新手上路

Rank: 1

积分
36
金钱
36
注册时间
2017-1-11
在线时间
4 小时
发表于 2017-10-30 13:35:06 | 显示全部楼层 |阅读模式
2金钱
刚接触操作系统,有一些疑惑:
1、操作系统跑起来后,通过任务调度不断执行各个任务,这时候如果来了硬件中断,如外部中断,串口接收中断,定时器中断,这个时候会打断任务的执行吗?
2、操作系统的中断操作函数 rt_base_t rt_hw_interrupt_disable(void); 会关闭STM32本身的硬件中断吗?
3、如果我用STM32本身的串口中断接收串口数据,然后通过任务读取接收到的任务,会不会出现任务读取到一般数据时,被接收中断打断呢?
4、在RT-Thread系统介绍中看到:
          关闭中断也叫中断锁,是禁止多任务访问临界区最简单的一种方式,即使是在分时操作系统中也是如此。当中断关闭的时候,就意味着当前任务不会被其他事件打断(因为整个系统已经不再响应那些可以触发线程重新调度的外部事件),也就是当前线程不会被抢占,除非这个任务主动放弃了处理器控制权。关闭中断/恢复中断API接口由BSP实现,根据平台的不同其实现方式也大不相同。
          警告: 由于关闭中断会导致整个系统不能响应外部中断,所以在使用关闭中断做为互斥访问临界区的手段时,首先必须需要保证关闭中断的时间非常短,例如数条机器指令。
这里面说的 中断关闭时,就意味着当前任务不会被其他事件打断,是指不会被所有其他中断(硬件定时器中断,串口接收中断等)打断吗?

最佳答案

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

1. 会(但一般ISR中时间并不久) 2. 会 3. 会(同1。但现在MCU性能都挺高,只要不故意写得很慢,不然丢数据或感觉到变慢。) 4. 同2,关了就不会打断(请参考1和3)。
回复

使用道具 举报

  离线 

8

主题

687

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1664
金钱
1664
注册时间
2011-5-23
在线时间
708 小时
发表于 2017-10-30 13:35:07 | 显示全部楼层
1. 会(但一般ISR中时间并不久)

2. 会

3. 会(同1。但现在MCU性能都挺高,只要不故意写得很慢,不然丢数据或感觉到变慢。)

4. 同2,关了就不会打断(请参考1和3)。
回复

使用道具 举报

  离线 

116

主题

429

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1147
金钱
1147
注册时间
2015-9-18
在线时间
400 小时
发表于 2017-10-30 15:06:28 | 显示全部楼层
我补充2点:

<1> 我没玩过rtthread,但是我了解一点freertos. 可以借着freertos介绍下,freertos在关闭中断时,并不是将中断等级提升到0,而是提升到basepri。可见,如果freertos管理的优先级是5~15;那么当某硬件优先级为4,即使当前freertos中断时关闭,该中断也是可以立即响应的。

<2> 很多人以为在关闭中断期间如果产生中断,该中断就会丢失,这种理解很明显是错误的。因为该中断对应挂起位会被置位(只是在关闭中断期间不会立即执行该中断),但是当退出中断临界区后,仍然会立即执行该中断。
电子爱好者
回复

使用道具 举报

  离线 

110

主题

7273

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
10475
金钱
10475
注册时间
2013-9-10
在线时间
297 小时
发表于 2017-10-30 15:59:49 | 显示全部楼层
第三点补充:
UART接收数据,看你程序怎么处理
1、如果你接收一个byte就处理一个byte,ISR的时间又短(小于OS心跳时间),没问题(典型就是FreeModbus了)
2、如果你等待UART空闲之后任务才处理数据,这时候就要处理好两帧数据之间间隔和你处理数据的时间了,不然后漏掉数据没处理,或者接收数据叠加
3、针对第二点,可以做成缓冲阵列,或者环形数据缓冲,这样处理较好
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-22 03:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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