Nuttx SMP实现的一个BUG
BUG 实现 一个
2023-09-11 14:15:46 时间
核心问题在于,在enter_critical_section函数的实现上,Nuttx存在打脸行为,具体点说,就是SMP版本的enter_critical_section和UP(单核)版本的enter_critical_section语义不一致。
UP版本的enter_critical_section实现:
单核版本的enter_critical_section实现符合经典的RTOS实现策略,就是关闭中断,在单核系统中,中断一关闭代表所有的异步执行流都被控制住了,后面的执行流就可以完全被软件控制了,也就是everything is in the control.,RTT, Zephyr,UCOS等系统都是这么干的,没什么问题。
但是在来看看奇葩的SMP版的实现:
相关文章
- [Windows 驱动开发] 使用 verifier 测试驱动 bug
- 【Bug】Data is Null. This method or property cannot be called on Null values.
- Google Earth Engine(GEE)——Ssentinel-2影像的union()的使用出现bug
- 我非要把这个bug优雅的解决掉 | k8s记录events报错:Could not construct referenc
- uni-app - 满意度调查评价功能,表情图片打分评分组件(非星星评分组件,类似抖音商品满意度推荐、一般、不推荐评价功能)代码干净整洁注释详细无 BUG,无任何第三方插件依赖,完整功能实例源码插件
- uni-app - 子组件中实现 onShow() 生命周期,监听页面 onShow() 实时刷新子组件内的数据(子组件中模拟页面 onShow 钩子函数,当页面显示时自动执行函数)全端兼容无 BUG
- BUG现形记(二)——偷工减料的复制构造函数
- MySQL的语法解析 bug 一例
- 别忙着改BUG了,先干了这碗鸡汤!
- SwiftUI 实用组件之List实现多选并保存状态解决editmode bug(教程含代码)
- debian ipxe-qemu (version 1.0.0+git-20190125.36a4c85-5 bug and install kvm+qemu+libvirt+virt-manager
- QT就是别人好心帮你做一些枯燥,并且很重复的代码编写工作,让你更好的把精力投入到你界面的逻辑和功能的实现的功能库(否则写了上万行代码了,才写出个BUG一大堆的毛坯)
- DQN2013代码尝试复现版(存在各种实现问题及Bug,个人尝试复现版,没有follow价值)
- 【2023unity游戏制作-mango的冒险】-前六章API,细节,BUG总结小结
- 外部中断无法进入,删代码再还原就好......记录这个想不到的bug
- 我是这样搞懂一个神奇的BUG
- IOS开发之Bug--View是懒加载导致出误以为是UI加载的bug