《痞子衡嵌入式半月刊》 第 116 期

news/2025/1/11 17:53:00/文章来源:https://www.cnblogs.com/henjay724/p/18666052

痞子衡嵌入式半月刊: 第 116 期

这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。

本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。

上期回顾 :《痞子衡嵌入式半月刊: 第 115 期》

唠两句

历史上的今天:1787年1月11日,天王星的两颗卫星被发现。

本期共 4 个项目,希望对你有帮助!

项目类

1、CosyOS - 零中断延迟的RTOS

CosyOS 是一款来自中国的开源实时操作系统,从经典的 8051 内核,到流行的 Arm Cortex-M 内核,均可实现全局不关总中断、零中断延迟,适用于对系统实时性及中断响应速度有较高要求的场合。CosyOS 以极具浪漫主义色彩的宏定义,实现了高度的面向对象及良好的易用性。CosyOS 以零中断延迟为宗旨,突破创新为方针,简单易用为原则。

  • 项目地址:https://gitee.com/cosyos/cosyos

CosyOS 零中断延迟基本原理:

- 服务层中,SysTick、PendSV、任务临界区,三者间是互斥访问的。换言之,整个服务层是一个大临界区(服务层临界区)。
- 所有内核服务(中断本地服务除外),均在 “服务层临界区” 执行,从而保证服务的 “操作流” 不会被打断。
- 中断本地服务采用互斥访问机制。

2、EFSMC - 一个基于事件驱动的有限状态机

EFSM (event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。

  • 项目地址:https://gitee.com/simpost/EFSMC

EFSM 的设计原则是:简单!EFSM 的使用者只需要关心:

- 当事件到来时,通过EFSM取得对应事件的处理方法;
- 当特定事件到来,或者条件满足时,调用状态切换方法进行状态切换。

由于 EFSM 的巧妙设计,避免了命名冲突的问题,用户可以在一个程序中定义多个状态机;要是能对不同状态进行组织,还可以做出层次状态机的结构。

3、eLab - 集成多种开源项目和多个技术特性的嵌入式开发平台

eLab 是一个集成了多种开源项目和多个技术特性的嵌入式开发平台。作者在这个项目里汇集了多年来在产品开发中的开发理念和经验,以现有的开源软件为主,以作者自己开发的组件为辅,打造一个统一而完善的开发平台。

  • 项目地址:https://gitee.com/event-os/elab

eLab 项目,侧重两大技术方向,一是产品级的嵌入式软件开发,二是跨平台的嵌入式软件开发。这两个技术方向,最终目的,都是为了让工程师的开发效率,得到颠覆性的提升。尤其很多非软件或者非计算机专业毕业的嵌入式工程师们,不必在错误或者跑偏的技术方向上苦苦探索,从而减少技术进阶的年限,早日进入更高的职业阶段。

4、YMCV - 跨平台迷你计算视觉库

YMCV 库名中文简称妖米CV,英文全称 your mini computer vision,意为你的迷你计算机视觉,含义有双重,第一重含义是:一个迷你的CV库;第二重含义是:可用于迷你计算机(如嵌入式计算机)的视觉库。YMCV 库是跨平台的,源码由C语言编写,可以在任意平台编译,这个库也可以通过选择开启部分功能从而实现将库裁剪到你所必须的大小,降低对小型计算机的源码空间占用。

  • 项目地址:https://gitee.com/yao_mi/ymcv

YMCV 项目分为三层架构,顶层是用户层,它是对核心层的包裹,方便用户对它进行调用,核心层的内容为左边那列内容,其中黑体的 QRcode 是二维码相关的编码和解码功能,这部分作者是将第三方库进行了压缩打包,底层 congfig 是配置信息,内存管理以及 IO 文件接口的定义。

欢迎订阅

文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867841.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DNS攻防】深入探讨DNS数据包注入与DNS中毒攻击检测 (C/C++代码实现)

DNS数据包注入和DNS中毒攻击是网络安全领域中的两个重要主题。DNS(域名系统)是互联网中的一项核心服务,负责将域名转换为与之相对应的IP地址。 DNS数据包注入是指攻击者通过篡改或伪造DNS请求或响应数据包来干扰或破坏DNS服务的过程。攻击者可通过注入恶意数据包来改变DNS解…

代码随想录算法训练营第4天 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II,链表总结篇

一、刷题部分 1.1 24. 两两交换链表中的节点原文链接:代码随想录 题目链接:24. 两两交换链表中的节点 - 力扣(LeetCode)1.1.1 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交…

windows7老爷机安装蓝牙适配器遇到的坑

连续买了3个蓝牙接收器,都无法在我的win7电脑上使用,最后询问小二、加上自己上网查询,最终解决。 首先,安装蓝牙驱动,重启电脑。 然后,说明书上说,右下角的系统托盘理应有个蓝牙图标,但是我这里不显示,所以,要另寻它法。 右键点击网络图标,【打开网络和共享中心】看…

Ribbon XML Editor 2024.05.15

Ribbon XML Editor是一款自定义功能区的辅助工具。 最新版支持在Outlook、Publisher、Project、Visio等组件中预览。 下面是Excel中的效果。 下面是在Visio中创建自定义功能区的效果。PID绘制

深度强化学习

深度强化学习 表格来存储每一个状态state和Q值显然是不现实的,除了存储开销,搜索开销也非常巨大。深度强化学习(Deep Q Network)是强化学习与深度学习的结合,利用神经网络作为函数逼近器来解决高维或复杂状态空间下的强化学习问题。 其关键特征就是使用深度神经网络(DNN)…

接上文,卸载ib网卡、显卡驱动、coda

嗨嗨嗨 亲们!!小橘又来啦,今天分享的干货是卸载 ib 网卡、显卡驱动、coda,昨天咱们学习了安装,有啥不明白的欢迎留言,我会知无不答。言归正传,当宝子们需要升级ib网卡、显卡驱动、coda时,先把旧版本的卸载后再安装新版本!

Windows下Dll在Unity中使用的一般方式

Unity中虽然已经有广泛的库和插件,但是相较于C++的库生态而言,还是有一定的差距;因此本篇博文记录Windows下将C++函数打包成动态链接库在Unity中使用的一般方法。Windows下Dll在Unity中使用的一般方式 Unity中虽然已经有广泛的库和插件,但是相较于C++的库生态而言,还是有一…

C# WinForm 托盘程序

添加控件 将NotifyIcon和一个ContextMenuStrip控件。拖到主窗体中本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/18665897

中考英语优秀范文-热点话题-传统文化-002 Spreading Traditional Chinese Culture 传播中国传统文化

1 写作要求 近日,在公共场所,人们身着汉服拍照,演奏古筝、二胡等传统乐器;校园里,学生吟诵古典诗词,写毛笔字……处处彰显着中国传统文化的魅力。你校英文报正在组织题为Spreading Traditional Chinese Culture 的征文活动,请你选择下表中的一种传统文化的形式,写一篇短…

Rider 报错 Error MSB4216 : 无法运行“GenerateResource”任务

Rider 打开设计器界面报错: rider Error MSB4216 : 无法运行“GenerateResource”任务,..... 打开设置,搜索 ms build另选一个版本试下发现可以了。

在 Rider 中使用 C# 创建 Windows 窗体应用 Winforms

1,创建项目 new solution 创建一个解决方案2,打开设计器 在 Form1.cs 上右键打开设计器认识一下 Rider 的界面参考微软官方的例子,添加如下属性:注:这里 Listbox 的大小设置成 120, 94 失败,默认的是 120, 89。可以将 DrawMode 改为 OwnerDrawVariable,就可以更改大小,…

BurpSuite实操之对比器功能使用

通常是通过一些相关的请求和响应得到两项数据的一个可视化“差异“,此功能主要用于执人行任意两个请求,响应或任何其他形式的数据之间的比较。使用的场合有:枚举用户名的过程,对比分析登录和失败时,服务器端返回结果的区别 使用Intruder进行攻击时,对于不同的服务器端响应…