周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!
视频版:
https://www.bilibili.com/video/BV1Cr4y1d7Mp/
《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表
1、键盘敲击声解码
https://arxiv.org/abs/2308.01074
键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出来。这篇文章介绍了一种使用最先进的深度学习模型,以便使用手机麦克风对笔记本电脑敲击键盘分析。实际测试训练手机,可以实现97%的准确率,使用Zoom视频会议软件可以实现93%的精度。
2、4轴CNC运动控制器,搭载开源库grblHAL,高度优化的 C 语言编写,能够保持高达300kHz的频率,稳定、无抖动的控制脉冲
https://github.com/phil-barrett/PicoCNC/
可以为机床,铣床等提供CNC运动控制器,
规格:
效果:
软件是采样的开源库grblHA,高度优化的 C 语言编写,能够保持高达300kHz的频率,稳定、无抖动的控制脉冲,当前已经支持了15款单片机。
为了方便使用,也可以在线选择型号,生成固件,无需用户自己折腾
3、开源低功耗4G-LTE GPS车辆跟踪器,具有蓝牙和Wi-Fi连接功能
介绍:https://docs.valetron.com/wiki/p ... k-v4-vts-io-int-lte
原理图:https://docs.valetron.com/wiki/p ... esp32-c3/schematics
固件:https://docs.valetron.com/wiki/p ... s-esp32-c3/firmware
4、软件
(1)是德科技推出PathWave ADS 2024,助力加速 5G 毫米波设计,引领 6G 开发
https://www.keysight.com.cn/cn/z ... 4-to-accelerat.html
是德科技推出PathWave高级设计系统(ADS)2024,这是一款电子设计自动化(EDA)软件套件,为芯片设计人员提供了新的毫米波(mmWave)和亚太赫兹(sub-THz)频率功能,可加速5G毫米波产品设计并预测6G无线通信开发的要求。
(2)兆松科技 ZCC 工具链全面支持 ANDES 晶心科技 RISC-V 处理器
兆松科技 ZCC 工具链全面支持 Andes 晶心科技 RISC-V 处理器 – 兆松科技
晶心科技是 32 及 64 位高效能、低功耗 RISC-V 处理器核心领导供货商、RISC-V 国际协会的创始首席会员。ZCC 工具链相较晶心科技 AndeSight IDE 所提供的 LLVM 编译器,可以进一步将AndesCore AX45 双发射 8 级流水线处理器 CoreMark 分数提升 6%,在 Embench-IoT(-O3)测试中同时实现了 18.9% 的性能提升和 11.8% 的代码密度优化;在 Embench-IoT(-Os)测试同时实现了 10% 的代码密度优化和 9.1% 的性能提升
(3)nRF Connect for VS Code 加速物联网开发
https://devzone.nordicsemi.com/n ... -connect-for-vscode
这个是Nordic新发的一篇博文,开头有一句至理名言:“If the only tool you have is a hammer, you tend to see every problem as a nail”, 如果你拥有的唯一工具是锤子,你往往会把每个问题都视为钉子,为工作选择合适的工具至关重要。
a、丰富的案例
b、设备树可视化编程
c、应用程序KConfig配置
d、调试
e、内存报告
(4) emWin6.34模拟器发布,增加Cortex-M85和A系NEON扩展的硬件逆离散余弦IDCT支持
模拟器含手册下载:
SeggerEval_WIN32_MSVC_MinGW_GUI_V634.zip (80.81MB)
更新记录:
(5)STM32L5的ThreadX全家桶软件包升级至V2.0.0
5、硬件
(1)ST推出汽车机器学习评估板SL-AIAID012401V1
https://blog.st.com/aekd-aicar1/
ST首款可识别四种汽车状态的机器学习解决方案:停车、正常路况、颠簸路面、打滑或转弯
(2) 安世半导体推出纽扣电池长续航管理芯片NBM7100ABQ
https://www.nexperia.com/product ... ics/NBM7100ABQ.html
NBM7100A/B 是一款电池能量管理器件,设计用于需要突发电流负载的低电压、低功耗应用时可最大限度地提高不可充电原电池的可用容量.
NBM7100A/B 包含两级高效 DC-DC 转换和智能学习算法。第一级DC-DC转换以低恒流将能量从锂电池传输到电容存储元件。充电后,第二个 DC-DC 转换周期利用该存储的能量在 VDH 输出引脚上提供具有高脉冲负载电流能力。电池永远不会直接受到大负载脉冲电流的影响,从而延长电池寿命,实现更可预测的电池寿命
(3)雅特力发布首款车规级MCU,AT32A403A通过AEC-Q100车规认证
AT32A403A通过AEC-Q100 Grade2车规级可靠性认证,满足功能安全标准车规级MCU的能力,可用于环境温度范围-40°C到105°C的大部分车载应用环境
(4)思瑞浦推出多通道高精度ADC—TPC517系列!16位分辨率,最高1MSPS采样率
6、军工级系统boot设计
Designing and implementing secure boot for military-grade systems - Military Embedded Systems
这是一篇非常不错的相关知识普及贴,军用级系统需要高级别的安全性来保护敏感信息和操作免遭未经授权的访问、修改。保护此类系统的关键组件之一是安全启动,它确保在系统启动期间只能加载受信任的固件和软件
7、LPython:新颖、快速、可重定向的 Python 编译器
https://github.com/lcompilers/lpython
LPython: Novel, Fast, Retargetable Python Compiler -
LPython是一个Python编译器,可以将type annotated 动态类型的Python代码编译为优化的机器代码。LPython提供了几个后端,如LLVM,C,C++,WASM,Julia和x86。LPython 具有快速编译和运行时性能。LPython还提供即时(JIT)编译以及与CPython的无缝互操作性。
测试代码:
[Python]
from lpython import i32
def main():
x: i32
x = (2+3)*5
print(x)
main()
生成C和LLVM
[C]
$ lpython examples/expr2.py --show-c
#include <inttypes.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <lfortran_intrinsics.h>
void main0();
void __main____global_statements();
// Implementations
void main0()
{
int32_t x;
x = (2 + 3)*5;
printf("%d\n", x);
}
void __main____global_statements()
{
main0();
}
int main(int argc, char* argv[])
{
_lpython_set_argv(argc, argv);
__main____global_statements();
return 0;
[C]
$ lpython examples/expr2.py --show-llvm
; ModuleID = 'LFortran'
source_filename = "LFortran"
@0 = private unnamed_addr constant [2 x i8] c" \00", align 1
@1 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
@2 = private unnamed_addr constant [5 x i8] c"%d%s\00", align 1
define void @__module___main_____main____global_statements() {
.entry:
call void @__module___main___main0()
br label %return
return: ; preds = %.entry
ret void
}
define void @__module___main___main0() {
.entry:
%x = alloca i32, align 4
store i32 25, i32* %x, align 4
%0 = load i32, i32* %x, align 4
call void (i8*, ...) @_lfortran_printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @2, i32 0, i32 0), i32 %0, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @1, i32 0, i32 0))
br label %return
return: ; preds = %.entry
ret void
}
declare void @_lfortran_printf(i8*, ...)
define i32 @main(i32 %0, i8** %1) {
.entry:
call void @_lpython_set_argv(i32 %0, i8** %1)
call void @__module___main_____main____global_statements()
ret i32 0
}
declare void @_lpython_set_argv(i32, i8**)
8、C语言程序设计笔记,适合想提高C/C++编程能力的
根据开头的说明,此笔记不适合初学者,也不适合专家,适合想熟悉C/C++的人。
笔记一共64页,内容不多。
C-notes-en.pdf (598.73 KB)
9、波形图绘制软件waveme
感谢坛友fantasyhpu的分享。
波形图绘制软件waveme - 开发环境 - 硬汉嵌入式论坛 - Powered by Discuz!
waveme是一款免费的波形图绘制软件,可以输出BMP、PNG、SVG、TIFF、PDF等多种格式。
10、H7-TOOL本周进展
H7-TOOL的FreeRTOS,RTX5,ThreadX,uCOS-II和uCOS-III一键链表查看功能全部制作完成
1、之前推出了H7-TOOL的RTOS Trace功能,已经支持RTX5,ThreadX,uCOS-III,uCOS-II和FreeRTOS,特色是不需要目标板额外做任何代码,实时检测RTOS任务执行情况,支持在线和脱机玩法。
【原创】H7-TOOL的RTOS Trace操作说明,不需要目标板额外做任何代码,实时检测RTOS任务执行情况,支持在线和脱机玩法2023-07-14 - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
2、但展示还不够直观,所以花了些时间研究图形化链表方式展示任务管理,从源码的角度来看,OS内核源码就是通过各种链表组装起来的,为了让大家更直观的看内核实现,开始支持一键查看链表,这种链表会让大家心里更有底。
FreeRTOS:
uCOS-II:
uCOS-III:
ThreadX:
RTX5: