从零开始学硬件<9>demo源码OceanOS-CM0-B7解读
B7课程互斥锁上一课B6讲的是临界区。临界区的做法比较硬把调度器锁住这段时间别的任务插不进来。能解决问题但代价也明显——锁得时间一长实时性就差了。B7换了个思路任务该阻塞就阻塞别把整个系统冻住。这就是互斥锁mutex。多任务共用一个资源本例是串口时如何保证同一时刻只有一个任务在用。图一工程跑在APM32Cortex-M0上应用层主要看al_main_task.c。main里关掉中断初始化OS创建一个优先级为1的main_task然后os_start()。真正干活的逻辑都在al_main_task里配SysTick1ms、USART1、LEDos_mutex_init(g_mutex)再创建两个优先级都是2的任务task1、task2void al_task1(void *arg){while (1){os_mutex_lock(g_mutex, OS_PEND_FOREVER);printf(11111\n);al_busy_delay(5000*1000);os_mutex_unlock(g_mutex);}}void al_task2(void *arg){os_tick_delay(100);while (1){os_mutex_lock(g_mutex, OS_PEND_FOREVER);printf(22222\n);al_busy_delay(5000*1000);os_mutex_unlock(g_mutex);}}共享资源就是串口。printf底层走fputc一个字符一个字符往USART塞。如果两个任务同时打字串口输出很容易搅在一起。锁把「打印 busy delay」包起来谁拿到锁谁独占这段输出。task2开头故意os_tick_delay(100)让task1先跑一会儿现象更直观。两个任务优先级相同中间那段al_busy_delay是空转不会主动让出CPU时间片到了还是可能切走但因为锁还在手里另一个任务进不了临界代码最多在外面干等。串口里正常应该看到完整的一行行11111 / 22222不会出现11212...这种穿插。修改完后按预期的打印。后期有兴趣可以研究下os_tick.c底层的机制就会更清晰地了解到为什么会是这个结果了。图二建议自己改一版对比把两个任务里的os_mutex_lock/unlock注释掉重新烧录看串口。大概率输出会糊成一团。再加回锁现象立刻干净。这一步比只看代码印象深。也可以试着把al_busy_delay挪到unlock后面观察两个任务输出切换会不会更密——这能帮你体会「锁住的时间」到底意味着什么。图三

相关新闻

2026年8月最新网盘搜索神器推荐(免费无广告)

2026年8月最新网盘搜索神器推荐(免费无广告)

下面这几个入口更适合普通用户直接用。别一次收藏几十个网站,按资源类型选入口更省事:综合资源先用 GugeSo,夸克资源用 KK 网盘搜和 PanSou 盘搜,影视资源用我们追剧吧。网上很多网盘搜索推荐文章会列 10 个、20 个站点&#xff0…

2026/8/3 6:50:49阅读更多 →
图解人工智能(95)人工智能前沿-开发癌症疫苗

图解人工智能(95)人工智能前沿-开发癌症疫苗

为什么免疫疗法还无法解决所有癌症?人工智能在其中可以起到什么作用?主要是每个人的癌细胞变异情况不同,很难定位到新生抗原。人工智能可以帮助我们从变异的氨基酸序列中快速定位新生抗原,给患者争取了宝贵的时间。只要定位了新生…

2026/8/3 6:50:48阅读更多 →
【YOLO26创新改进】TGRS 2026 | Conv卷积创新改进篇 | 利用 DSEB双流显著性特征增强模块,适合红外小目标检测、遥感小目标检测、小病灶分割任务高效涨点

【YOLO26创新改进】TGRS 2026 | Conv卷积创新改进篇 | 利用 DSEB双流显著性特征增强模块,适合红外小目标检测、遥感小目标检测、小病灶分割任务高效涨点

一、本文介绍 ⭐本文使用 DSE Block 改进YOLO26网络模型,可通过卷积分支保留小目标的边缘、轮廓与局部纹理,并利用四方向选择性扫描分支建立长距离空间依赖,从而同时增强局部细节和全局上下文,提升弱小目标、低对比度目标及复杂背景下的目标—干扰区分能力;其通道注意力、…

2026/8/3 6:50:48阅读更多 →
它不需要休息,只需要一个把地擦干净的任务:力奇CR6商用清洁机器人

它不需要休息,只需要一个把地擦干净的任务:力奇CR6商用清洁机器人

招保洁员越来越难,特别是夜班用工荒;工厂车间的重油污人工根本拖不干净;商场美食街的油污不仅难处理,保洁作业还经常打扰顾客……当传统人力清洁遇到瓶颈,大面积通道怎么实现真正的无人化保洁?作为拥有百年…

2026/8/3 14:56:31阅读更多 →
2026微信投票工具避坑与选型指南|规避隐形消费与刷票风险

2026微信投票工具避坑与选型指南|规避隐形消费与刷票风险

线上评选活动的常见问题,大多并非活动规则本身,而是投票工具带来的各类隐患:页面广告干扰观感、活动收尾无法导出数据、高流量阶段触发限流、核心功能中途收费。这类问题会直接影响评选公信力,增加主办方工作负担。2026年微信端投…

2026/8/3 14:56:31阅读更多 →
RyzenAdj完整指南:3步精准调优AMD锐龙处理器性能与功耗

RyzenAdj完整指南:3步精准调优AMD锐龙处理器性能与功耗

RyzenAdj完整指南:3步精准调优AMD锐龙处理器性能与功耗 【免费下载链接】RyzenAdj Adjust power management settings for Ryzen APUs 项目地址: https://gitcode.com/gh_mirrors/ry/RyzenAdj RyzenAdj是一款开源AMD锐龙处理器电源管理工具,通过直…

2026/8/3 14:56:31阅读更多 →
台账、监控、日志、链路全上了,故障为什么还得靠人肉排查?

台账、监控、日志、链路全上了,故障为什么还得靠人肉排查?

有有台账、有监控、有日志,也接了链路追踪。可一出故障,大家还是要靠人肉在群里拼线索。工具往往已经够多,真正缺的是把发现、定位和处置接起来。下面用 6 张图说清楚。01|先看整条闭环发现异常只是开始。定位、恢复、复盘和预防接…

2026/8/3 14:56:31阅读更多 →
5步掌握PvZ Toolkit开源工具:从入门到精通的完整指南

5步掌握PvZ Toolkit开源工具:从入门到精通的完整指南

5步掌握PvZ Toolkit开源工具:从入门到精通的完整指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 在游戏逆向工程和内存修改领域,经典游戏《植物大战僵尸》一直是技术爱好…

2026/8/3 14:56:31阅读更多 →
嵌入式开发入门:1602字符LCD驱动与双色背光控制实战

嵌入式开发入门:1602字符LCD驱动与双色背光控制实战

1. 项目概述:从“LCD_16-2_字符-绿色黄色背光”说起看到这个标题,很多搞过嵌入式开发的朋友会心一笑,这几乎是我们入门单片机、学习人机交互的“第一课”。它描述了一块非常经典的器件:一块16列2行的字符型LCD显示屏,并…

2026/8/3 14:54:31阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 0:29:53阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/3 0:33:53阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/3 0:20:37阅读更多 →
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:32阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/3 2:32:59阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/3 2:33:01阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/3 2:33:04阅读更多 →