往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!
更新一期视频教程:
DSP视频教程第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,饱和和MAC乘累加应用实战(2023-02-12)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=117842
视频版:
https://www.bilibili.com/video/BV17j411N7Cr/
《安富莱嵌入式周报》第303期:微软推出嵌入式安全物联网RTOS CHERIoT,超强的产品级开源电机控制器项目,含上位机,蓝牙标准V5.4,玩转与或非编程操作
1、微软推出嵌入式安全物联网RTOS CHERIoT
知识补充:
CHERI的全称是Capability Hardware Enhanced RISC Instructions,硬件增强RISC指令,由英国剑桥大学与美国SRI International的合作研究项目
CHERIoT RTOS
小型嵌入式内核几乎没有空间用于安全功能,且基本都用不安全语言编写的代码,并且越来越多地暴露在敌对的互联网中。CHERIoT(用于物联网的RISC-V功能硬件扩展)建立在CHERI和RISC-V之上,提供ISA和软件模型,让依赖于对象粒度空间的软件在内存释放后具有确定性和安全性,直接暴露给 C/C++ 语言模型的轻量级划分。这可以在全新的RTOS上运行现有的嵌入式软件组件,该RTOS可扩展到大量隔离(安全通信)空间,即使在SRAM低于256 KB的系统上也是如此。
源码,这目前是一个开源的研究项目,以实现更广泛的合作
GitHub - microsoft/cheriot-rtos: The RTOS components for the CHERIoT research platform
cheri-ibex是32位RISC-V微控制器,除了RV32IMCB之外,它还实现了CheriIoT ISA扩展。与原始的 ibex 核心相同,该设计可以配置 2 级或 3 级管道。它已通过初步仿真和FPGA验证,目前正在微软进行进一步验证和PPA分析
CHERIoT Sail指令集模型
GitHub - microsoft/cheriot-sail: Sail code model of the CHERIoT ISA
去年年初的时候,由Arm,微软,剑桥大学和其他公司领导的研究项目Morello原型架构上线。Morello是CHERI扩展的第一个高性能实现
An Armful of CHERIs | MSRC Blog | Microsoft Security Response Center
2、超强的产品级开源电机控制器项目,硬件,软件和上位机全开源
VESC已经解决了广泛的工程挑战,从需要数十瓦的微型多旋翼飞行器到消耗数百千瓦的电动客机。 如今,VESC电机控制器广泛用于各种不同的设备,包括机器人,多旋翼飞行器,飞机,相机稳定器,电动自行车,电动滑板,RC设备和许多工业应用
VESC并不是普通的开源电机项目,面向解决尖端电力系统的先进软件和硬件实施,可以直接用来开发产品的。VESC生态系统设置简单易用,并包含大量自动检测和配置向导。
所有的这些都是作者 Benjamin业余时间设计的,所以也接受大家捐款。
硬件效果和开源地址:
VESC Hardware | VESC Project
GitHub - vedderb/bldc-hardware: Brushless DC Motor controller from Benjamin Vedder
软件开源,包含DC/BLDC/FOC控制,RTOS采用ChibiOS
GitHub - vedderb/bldc: The VESC motor control firmware
BMS锂电池管理开源,RTOS采用ChibiOS
GitHub - vedderb/vesc_bms_fw: The VESC BMS Firmware
上位机开源,快平台 Linux, Windows, MacOS, Android 和 iOS
GitHub - vedderb/vesc_tool: The source code for VESC Tool. See vesc-project.com
还支持直接编程脚本测试验证
3、Nordic的wifi6双频芯片nRF7002套件发布,支持SPI和QSPI通信
nRF7002 DK - Development kit for the nRF7002, a Wi-Fi 6 companion IC - nordicsemi.com
上上周就发布了,忘了给大家分享消息了,这次补上,支持SPI/QSPI通信还是比较方便的
4、Microchip分享的一篇单片机精确测量电流博文
Accurately Measuring Current With Microcontrollers | Microchip Technology
这篇博文介绍了这些错误源以及如何减少和消除它们。
5、大量的位图字体下载
现在电脑基本都使用矢量字体了,早期的旧式计算机用的是位图字体
这里作者搜集了大量旧式电脑上的位图字体
GitHub - robhagemans/hoard-of-bitfonts: turns out I like bitmap fonts
位图查看器:
Hoard of bitfonts
位图转二进制软件
GitHub - robhagemans/monobit: Tools for working with monochrome bitmap fonts
6、现代Cmake详细入门介绍文档
An Introduction to Modern CMake · Modern CMake
可以在线查看,也可以下载PDF板
7、树莓派单片机
(1)树莓派单片机SDK升级至V1.5.0,大更新,全面支持Pico W的蓝牙和WIFI通信
(2) 超强树莓派单片机的24通道,100Msps的逻辑分析仪开源升级至V3.5.0.1,
支持了Pico W的WiFi通信方式,采样深度提升到128KB。全面支持了跨平台
Releases · gusmanb/logicanalyzer · GitHub
8、ST发布的电源管理指南
https://www.st.com/resource/en/brochure/power-management-guide.pdf
目录:
结合给大家分享的数字电源指南一起看,有大量的参考开发板设计
ST出的数字电源指南 - 综合资料 - 硬汉嵌入式论坛 - Powered by Discuz!
9、MicroEJ动态APP管理开始支持C,Javascript和Java
MicroEJ在整活方面,确实会折腾,从最早的C+Java混合开放,炫酷GUI让单片机像Android机一样从远程商店下载各种应用,再到Android Studio生成单片机GUI APP
这次又带来新玩法,动态APP支持多种编程语言玩法
Managed Code - MicroEJ Developer
10、蓝牙标准V5.4发布
Bluetooth® Core Specification Version 5.4 - Technical Overview | Bluetooth® Technology Website
2301_5.4_Tech_Overview_FINAL.pdf (757.18KB)
新规范引入了两项新功能,它们共同支持无线接入点 AP和数千个超低功耗终端节点之间的安全双向通信
11、罗姆推出智能低边开关取代机械继电器和 MOSFET
产品:
与继电器相比:
与Mosfet相比
高边和底边开关比较
12、开源字体库FreeType V2.13发布
emWin的矢量字体库就是用的这个开源库
13、emWin的新版VNC远程软件升级至V1.2,测试了下,比之前稳定
SEGGER - The Embedded Experts - Downloads - emWin
测试了下之前给V6开发板做的二代示波器:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=89526
14、玩转与或非操作
作者Eric Lengyel
里面的位操作和屏蔽操作很不错
15、H7-TOOL本周进展
(1)添加新的脱机烧录芯片支持,全力准备2.20版固件发布
(2)H7-TOOL的LUA小程序长时间运行稳定性研究
随着H7-TOOL的LUA API不断扩充加大,有必要测试下长时间运行的稳定性了。
有时候大家想使用LUA长时间测试一些数据,这个时候稳定性就非常重要了,所以专门做个系统性的研究。
初步测试了如下代码13个小时,稳定运行
function printf(...)
print(string.format(...))
end
--启动模拟量电路
function start_dso(void)
write_reg16(0x01FF, 2) -- 测量模式 0:示波器 1:负载电流 2:多路低速扫描
write_reg16(0x0200, 1) -- CH1耦合,0:AC 1:DC
write_reg16(0x0201, 1) -- CH2耦合,0:AC 1:DC
--量程取值 0:±13.8V 1:±6.4V 2:±3.2V 3:±1.6V 4:±800mV 5:±400mV 6:±200mV 7:±100mV
write_reg16(0x0202, 0) -- CH1量程
write_reg16(0x0203, 0) -- CH2量程
write_reg16(0x0204, 0) -- CH1通道直流偏值,未用
write_reg16(0x0205, 0) -- CH2通道直流偏值,未用
write_reg16(0x0206, 12) --采样频率 0:100 1:200 2:500 3:1K 4:2K 5:5K 6:10K 7:20K
--8:50K 9:100K 10:200K 11:500K 12:1M 13:2M 14:5M
write_reg16(0x0207, 0) --采样深度 0:1K 1:2K 3:4K 4:8K 5:16K 6:32K
write_reg16(0x0208, 32768) --触发电平ADC 0-65535
write_reg16(0x0209, 50) --触发位置百分比 0-100
write_reg16(0x020A, 0) --触发模式 0:自动 1:普通 2:单次
write_reg16(0x020B, 0) --触发通道 0:CH1 1:CH2
write_reg16(0x020C, 0) --触发边沿 0:下降沿 1:上升沿
write_reg16(0x020D, 0x03) --通道使能控制 bit0 = CH1 bit1 = CH2
write_reg16(0x020E, 1) --采集控制 0:停止 1:启动
end
print("V1.0")
local us = 0
local volt = 0
local cur = 0
local mah = 0
local pre_sec = 0
local sec_cnt = 1
local min_cnt = 1
local cur_sec = 0
start_dso()
pwron_st = get_runtime() -- 系统上电时的时间戳
while(true)
do
cur_ms = check_runtime(pwron_st)
--delayms(500)
if(cur_ms >= 1000) then
cur_sec = cur_sec+ 1
pwron_st = get_runtime()
cur = read_analog(3) --3 - 高端负载电流
volt = read_analog(2) --2 - 高侧负载电压
mah = mah + (cur / 3600)
printf("tp:%.2fs v:%.2fv i:%.2fma w:%.2fmah",cur_sec,volt,cur,mah)
sec_cnt = sec_cnt + 1
if(sec_cnt == 60) then
sec_cnt = 1
min_cnt = min_cnt + 1
printf("tp:%.2fs v:%.2fv i:%.2fma
w:%.2fmah",cur_sec,volt,cur,mah)
end
end
end
(3)H7-TOOL硬件异常黑盒子功能,使用addr2line小软件可以方便锁定出错的源文件位置
【H7-TOOL的黑设置功能使用方法】
基于H7-TOOL的硬件异常黑盒子功能V1.0版本操作说明,持续更新(2022-08-17)
基于H7-TOOL的硬件异常黑盒子功能V1.0版本操作说明,持续更新(2022-08-17) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
【根据出错地址锁定源文件位置】
前面分享的方法还需要大家在IDE调试状态锁定具体位置,不够方便。
通过addr2line小软件,可以方便的锁定位置,比如通过H7-TOOL硬件异常黑盒子功能锁定了出错位置0x0800 1000, 通过下面的命令方便的就锁定了出错源文件的位置
后面想把这个黑盒子功能整合到RTOS Trace里面,这样检测状态出错了,就可以直接锁定出错位置一条龙,上位机直接运行下批处理就可以打印结果。
(4)H7-TOOL通过LUA监测CAN/CANFD全寄存器状态,特别是错误监测整理汇总帖
最近开始准备CAN/CANFD/CANopen专题视频教程第2期,已经发布了第1期
H7-TOOL已经支持了经典CAN和CANFD助手,但是还不够:
我想通过SWD接口全面监测CANFD/CAN的寄存器状态,更好的方式展示出来,方便查看执行异常和错误分析,初步效果,本周继续升级下