草庐IT

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

<font>痞子衡嵌入式 2023-03-28 原文

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

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

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

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

唠两句

今天是清明,历史上的今天:1815年4月5日,印度尼西亚坦博拉火山喷发,是人类历史上有记载的最猛烈火山爆发事件。

本期共收录 3个项目、3个工具,希望对你有帮助!

项目类

1、Qfplib - 专为ARM Cortex-M内核设计的浮点库

Qfplib 是 ARM Cortex-M 内核的 IEEE 754 浮点库家族。Qfplib 有三个分支针对不同的内核,并以不同的优化目标编写。

Qfplib-M0-tiny: 针对ARM Cortex-M0,高度优化的代码大小,仅单精度。
Qfplib-M0-full: 针对ARM Cortex-M0,优化了代码大小和速度,单精度和双精度。
Qfplib-M3: 针对ARM Cortex-M3,高度优化的速度,单精度。

下表比较了 Qfplib-M3 与其他库的循环计数。 Qfplib-M3 计时结果是显示的参数值范围内的近似平均值,包括3个周期的调用开销。 它们是使用 LPC1763 微控制器从(单周期)RAM执行的:

2、Opus - 高灵活度的开源音频编解码器

Opus 是用 C 语言开发的一个高灵活度的音频编码器,针对 ARM、x86 有特殊优化。Opus 在各方面都有着明显优势,它同时支持语音与音乐的编码,融合了 SILK 编码方法和 CELT 编码方法。SILK 原本被用于 Skype 中,基于语音信号的线性预测分析(LPC),对音乐支持并不好。而 CELT 尽管适用于全带宽音频,但对低比特率语音的编码效率不高,所以两者在 Opus 中形成了互补。

Opus 特点包括:

1. 比特率从 6kb/s 到 510 kb/s
2. 采样率从 8kHz(窄带)到 48kHz(全频段)
3. 帧大小从 2.5ms 到 60ms
4. 支持恒定比特率(CBR)和可变比特率(VBR)
5. 从窄带到全频带的音频带宽
6. 支持语音和音乐
7. 支持单声道和立体声
8. 支持多达255个通道(多流帧)
9. 动态可调比特率,音频带宽和帧大小
10. 良好的稳健性和隐蔽性
11. 浮点和定点实现

3、NumWorks - 一款基于STM32F412设计的图形计算器

在时尚智能手机盛行的时代,传统的图形计算器看起来就像是黑暗时代的遗物。这就是为什么这款被称为NumWorks的计算器采用了极简设计和明亮的显示屏,很有意义。

研发团队一开始使用 STM32F429 Discoververy 开始原型设计。2.4″LCD屏幕和USB调试端口启动了开发,设计师很快意识到他们的最终产品不需要 SDRAM 或集成的 LCD 控制器。因此,他们最终确定主控为 STM32F412VG。

工具类

1、Tracealyzer - RTOS可视化追踪调试软件

Tracealyzer是 Percepio 公司开发的一款用于RTOS或基于linux的嵌入式软件系统的可视化跟踪工具,对系统运行时的行为提供了前所未有的洞察方法。帮助开发人员加快固件的开发,减少对系统验证和性能优化所需要的时间。

目前Tracealyzer提供了30多种相互关联的运行时行为视图,包括任务调度、中断、任务之间的相互作用,以及从应用程序代码中记录的用户事件。Tracealyzer作为传统调试的补充,提供更高层次的调试视图,非常适合理解典型的实时问题。

Tracealyzer支持的OS包括:

FreeRTOS、Embedded Studio、Keil RTX5、Linux、On Time RTOS-32、ThreadX、µC/OS-III、VxWorks

2、Virtual Eval - ADI公司ADC产品在线评估工具

Virtual Eval(虚拟评估)是ADI公司推出的一款综合性在线产品评估工具。Virtual Eval采用详细软件模型来模拟器件关键性能特征,而不要求购买硬件。辛苦劳累的工程师可以配置不同的工作条件和器件特性来建立自定义使用案例。配置设置被发送到ADI公司服务器以执行仿真作业。数秒之内,完成后的仿真结果就会以图表和性能指标的形式显示在浏览器窗口中。

3、Mbed Simulator - 在线 Mbed 模拟器

Mbed 为了方便开发,推出了一个仿真器,可以模拟运行效果,加快开发速度。这个功能有点像 proteus,但是 proteus 对 arm 的支持还不好,而 mbed simulator 可以很好的和 mbed 结合起来。

注意: Mbed Simulator是 Mbed Labs 的一部分。Mbed 实验室项目展示了由 Mbed 工程师开发的有趣的项目。然而,这些项目并没有得到 Arm 的积极支持,并且可能随时被添加,删除或中断。

欢迎订阅

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

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

有关《痞子衡嵌入式半月刊》 第 52 期的更多相关文章

  1. ruby-on-rails - 如何在 RoR 中使用 content_tag 嵌入标签? - 2

    我有这个可以为我生成一个超链接:我希望它显示在td标签中,所以我想使用这个content_tag来帮助我:"example")%>我想要我的td中的超链接,所以我有这样的东西:,:class=>"example")%>但是我收到语法错误,我该怎么办? 最佳答案 内联:'example')%>或block形式:'example')do%> 关于ruby-on-rails-如何在RoR中使用content_tag嵌入标签?,我们在StackOverflow上找到一个类似的问题:

  2. ruby - Ruby 是否有任何可嵌入的键值存储? - 2

    我需要快速可靠的Ruby键值存储。有没有类似的东西?要求它完全在Ruby进程内运行,不需要任何外部进程。它可能在显式磁盘刷新的内存中。它需要具有最小的键值检索时间,写入时间可能不太好。存储的数据量不会很糟糕,大约几十万个键,每个键都有~1kb的文本值。 最佳答案 事实证明,对我来说最好的选择是使用纯Hash和Marshal将其序列化到磁盘。对于那么多的对象,YAML肯定太慢了。感谢@ian-armit加强了我对核心Ruby库的信任。 关于ruby-Ruby是否有任何可嵌入的键值存储?,我

  3. ruby - mongoid 文档 to_json 包括所有嵌入的文档,每个文档都没有 ':include' - 2

    给定一个任意的mongoid文档,我如何将其转换为JSON并包含任何嵌入式结构,而不是在我的to_json语句中特别包含这些结构。例如:#!/usr/bin/envrubyrequire'mongoid'require'json'require'pp'classDocincludeMongoid::DocumentincludeMongoid::Timestampsfield:doc_specific_info,type:Stringembeds_many:personsendclassPersonincludeMongoid::Documentfield:role,type:Stri

  4. ruby - Mongoid:将嵌入式文档转换为引用/自己的集合 - 2

    我需要将嵌入式文档转换成它自己的集合,以便它可以从另一个集合中引用。假设我有一个Parent嵌入了许多Child。我在想一些事情:Parent.all.eachdo|p|p.childs.all.eachdo|c|c.raw_attributes['parent_id']=p.idendp.save!#willsaveparentandcascadepersistallchildsontotheirowncollend这是一个选项吗?理想情况下,我会在控制台中运行它,我只会将mongoid映射从embed_*更改为has_*,因此我不需要更改其余代码或使用另一个集合作为暂存。

  5. ruby - 在 HTML 中嵌入 Ruby 代码? - 2

    在PHP中,可以这样做:">是否可以像使用或不使用Rails那样将Ruby嵌入到HTML中? 最佳答案 您将需要使用像Ruby模板(ERB)这样的模板引擎。这是一个example.Rails使用ERB,因此您可以在每个模板中轻松地执行此操作。 关于ruby-在HTML中嵌入Ruby代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3486664/

  6. 带有嵌入变量的 Ruby 字符串 - 2

    如何在yaml中存储带有嵌入变量的ruby​​字符串,但仅当我从yaml获取字符串时才插入变量值? 最佳答案 str="Hi%{name},%{msg}.Bye%{name}."#yamlit,de-yamlitbacktostringh={:name=>"John",:msg=>"thismessageisforyou"}putsstr%h#=>HiJohn,Thismessageisforyou.ByeJohn. 关于带有嵌入变量的Ruby字符串,我们在StackOverflow上找

  7. c - Ruby 解释器的嵌入 API 的文档在哪里? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找有关将Ruby解释器嵌入到C或C++程序以及用于该目的的API的全面的在线文档资源。Pickaxe书中关于此的部分非常好,但我的版本指的是Ruby1.8,我对当前的ruby​​版本范围很感兴趣,即1.8.x、1.9.x和2.0,并且有很多跨该版本范围的嵌入处理之间的差异。作为引用,有问题的Ruby解释器是来自http://www.ruby-lang.org/

  8. 嵌入式单元测试工具Tessy的一些测试技巧 - 2

    最近做了一个平台项目,需要进行动态代码测试,入门了嵌入式单元测试工具Tessy,总结了一些简单的测试技巧。当前网上的教程普遍只写内容概要,真正入手还得自己认真摸索一番。为此,特意总结了一些Tessy测试技巧以供有缘人参考。提几个Tessy工具使用的问题。1.如何导入工程的头文件?2.如何解决文件内存在汇编语言代码分析时候报错的问题?3.如何规避本文件创建却不使用的函数,宏和变量,在执行executetest出现的undefinedreferencetoxx的问题?4.如何创建测试用例testcase?5.为什么testcase的结果输出与期望不一致?6.创建testcase的方法有几种?7.C

  9. 嵌入式Linux入门-彻底理解UART串口,手把手教你写程序 - 2

    UART串口这个东西,是嵌入式学习上避不开的,不仅在调试中经常用到,还有很多模块通过串口与SOC相连。这篇文章让你彻彻底底,搞明白串口程序的编写。没有基础的先看:嵌入式Linux学习系列全部文章:嵌入式Linux学习—从裸机到应用教程大全 目录1.UART串口1.1UART硬件连接1.2UART软件通信协议2.读手册,编程序2.1找对应引脚2.2设置GPIO为UART功能2.3设置UART(初始化)2.4编写发送接收函数3.完整代码和验证1.UART串口全称:通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter,简称UART)是一种串行异步收发

  10. 嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面) - 2

    1、创建一个QT工程newproject—>Application—>QtWidgetsApplication—>choose…(注意不要有中文路径)填写名称(我写的名称为class2)和创建路径(D:\qt\qt_demo\class2)—>填写类名,这里基类要选择“QWidget”,这样一个QT工程就创建好啦。qt的移植性非常强,一套代码我们不用修改太多,直接通用所有的平台。说明:QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口。QWidget:它是所有具有可视界面的基类,选择QWidget创建的界面对各种界面组件都可以支持。QDialog

随机推荐