这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。
本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。
上期回顾 :《痞子衡嵌入式半月刊: 第 61 期》
历史上的今天:1830年9月18日,第一台美国人制造的火车头,彼得·库拍的“大拇指汤姆号”在返回巴尔的摩途中与一匹马赛跑失败。
本期共收录 3 个项目、2 个工具,希望对你有帮助!
Lua RTOS 是一个实时操作系统,设计在嵌入式系统上运行,对 FLASH 和 RAM 内存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平台,并可以轻松移植到其他32位平台。
Lua RTOS 有 3 层设计:
- 在顶层有一个Lua 5.3.4解释器,它为程序员提供Lua编程语言提供的所有资源,以及用于访问硬件的特殊模块(PIO、ADC、I2C、RTC等),以及Lua RTOS提供的中间件服务(Lua Threads、LoRa WAN、MQTT等)。
- 中间层是一个由FreeRTOS驱动的实时微内核。这就是事情在预期时间内发生的责任。
- 底层是硬件抽象层,它与平台硬件直接通信。
SOEM是一个用C语言编写的EtherCAT主库,其目的是学习和使用。邀请所有用户研究源,以了解EtherCAT主控器如何工作以及它如何与EtherCAT从器相互作用。由于所有的应用程序都是不同的,SOEM尽量不强加任何设计架构。在Linux下,它可以在一般用户模式、PREEMPT_RT或Xenomai下使用。在Windows下可以作为用户模式程序使用。
SOES (简单开源EtherCAT从栈)是一种非常容易使用且占用空间小的开源从栈。它是市场上更复杂的堆栈的一个很好的替代方案。
MBED里有该项目的移植,EasyCAT LAB是一个完整的教育和实验EtherCAT®系统,由一个主系统和两个从系统组成。
一个基于 STM32F1/F3 的开源万用表设计,具有双量程的V/I, RMS测量,连续性,组件测试等功能。作者将全部设计文件都开源了,非常适合 DIY 入门。
特性如下:
1. voltage measurement: ±60 V, ±6 V, ±600 mV, ±60 m ranges, with DC or RMS data acquisition
2. current measurement: ±250 or ±2500 mA ranges, again with DC or RMS
3. can measure voltage and current simultaneously and display the product, ie power
4. measures continuity and displays the resistance and voltage drop
5. can perform simple component testing
6. frequency measurement up to 10 MHz
Power Profiler Kit II (PPK2)是一个独立的单元,除了外部硬件外,它可以测量并可选地提供所有 Nordic DK 板上从sub-uA到高达1A的电流。
PPK2具有先进的模拟测量单元,具有较高的动态测量范围。这使得在低功耗嵌入式应用程序中可以精确测量整个范围的功耗,从单个μ a到1A。根据测量范围的不同,分辨率在100nA和1mA之间变化,并且足够高,可以检测在低功率优化系统中经常看到的小峰值。
PPK2还可以使用数字输入作为低端逻辑分析器,支持代码同步测量。这可以通过将数字输入连接到被测外部设备(DUT)上的I/O引脚来实现。
ChipWhisperer 是 NewAE 公司推出的用于侧通道功率分析和故障攻击的完整的开源工具链。工具链含硬件,上位机软件,硬件芯片固件,均在 Github 上开源,这套设备主要是致力于硬件安全研究。
下图是在 NXP 汽车级芯片上的做的爆破演示,展示了绕过了芯片的安全启动,直接进入主程序,但攻击和理解结果的可移植性的想法适用于整个领域。
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

我有这个可以为我生成一个超链接:我希望它显示在td标签中,所以我想使用这个content_tag来帮助我:"example")%>我想要我的td中的超链接,所以我有这样的东西:,:class=>"example")%>但是我收到语法错误,我该怎么办? 最佳答案 内联:'example')%>或block形式:'example')do%> 关于ruby-on-rails-如何在RoR中使用content_tag嵌入标签?,我们在StackOverflow上找到一个类似的问题:
我需要快速可靠的Ruby键值存储。有没有类似的东西?要求它完全在Ruby进程内运行,不需要任何外部进程。它可能在显式磁盘刷新的内存中。它需要具有最小的键值检索时间,写入时间可能不太好。存储的数据量不会很糟糕,大约几十万个键,每个键都有~1kb的文本值。 最佳答案 事实证明,对我来说最好的选择是使用纯Hash和Marshal将其序列化到磁盘。对于那么多的对象,YAML肯定太慢了。感谢@ian-armit加强了我对核心Ruby库的信任。 关于ruby-Ruby是否有任何可嵌入的键值存储?,我
给定一个任意的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
我需要将嵌入式文档转换成它自己的集合,以便它可以从另一个集合中引用。假设我有一个Parent嵌入了许多Child。我在想一些事情:Parent.all.eachdo|p|p.childs.all.eachdo|c|c.raw_attributes['parent_id']=p.idendp.save!#willsaveparentandcascadepersistallchildsontotheirowncollend这是一个选项吗?理想情况下,我会在控制台中运行它,我只会将mongoid映射从embed_*更改为has_*,因此我不需要更改其余代码或使用另一个集合作为暂存。
在PHP中,可以这样做:">是否可以像使用或不使用Rails那样将Ruby嵌入到HTML中? 最佳答案 您将需要使用像Ruby模板(ERB)这样的模板引擎。这是一个example.Rails使用ERB,因此您可以在每个模板中轻松地执行此操作。 关于ruby-在HTML中嵌入Ruby代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3486664/
如何在yaml中存储带有嵌入变量的ruby字符串,但仅当我从yaml获取字符串时才插入变量值? 最佳答案 str="Hi%{name},%{msg}.Bye%{name}."#yamlit,de-yamlitbacktostringh={:name=>"John",:msg=>"thismessageisforyou"}putsstr%h#=>HiJohn,Thismessageisforyou.ByeJohn. 关于带有嵌入变量的Ruby字符串,我们在StackOverflow上找
关闭。这个问题不符合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/
最近做了一个平台项目,需要进行动态代码测试,入门了嵌入式单元测试工具Tessy,总结了一些简单的测试技巧。当前网上的教程普遍只写内容概要,真正入手还得自己认真摸索一番。为此,特意总结了一些Tessy测试技巧以供有缘人参考。提几个Tessy工具使用的问题。1.如何导入工程的头文件?2.如何解决文件内存在汇编语言代码分析时候报错的问题?3.如何规避本文件创建却不使用的函数,宏和变量,在执行executetest出现的undefinedreferencetoxx的问题?4.如何创建测试用例testcase?5.为什么testcase的结果输出与期望不一致?6.创建testcase的方法有几种?7.C
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)是一种串行异步收发
1、创建一个QT工程newproject—>Application—>QtWidgetsApplication—>choose…(注意不要有中文路径)填写名称(我写的名称为class2)和创建路径(D:\qt\qt_demo\class2)—>填写类名,这里基类要选择“QWidget”,这样一个QT工程就创建好啦。qt的移植性非常强,一套代码我们不用修改太多,直接通用所有的平台。说明:QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口。QWidget:它是所有具有可视界面的基类,选择QWidget创建的界面对各种界面组件都可以支持。QDialog