《安富莱嵌入式周报》第303期:微软推出嵌入式安全物联网RTOS CHERIoT,超强的产品级开源电机控制器项目,含上位机,蓝牙标准V5.4,玩转与或非编程操作

往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104

 

更新一期视频教程:
DSP视频教程第11期:插补算法,曲线拟合丝滑顺畅,统计函数和基础函数加速实现,汇集SIMD,饱和和MAC乘累加应用实战(2023-02-12)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=117842

视频版:

https://www.bilibili.com/video/BV17j411N7Cr/

 



1、微软推出嵌入式安全物联网RTOS CHERIoT

知识补充:

CHERI的全称是Capability Hardware Enhanced RISC Instructions,硬件增强RISC指令,由英国剑桥大学与美国SRI International的合作研究项目

https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

CHERIoT RTOS

小型嵌入式内核几乎没有空间用于安全功能,且基本都用不安全语言编写的代码,并且越来越多地暴露在敌对的互联网中。CHERIoT(用于物联网的RISC-V功能硬件扩展)建立在CHERI和RISC-V之上,提供ISA和软件模型,让依赖于对象粒度空间的软件在内存释放后具有确定性和安全性,直接暴露给 C/C++ 语言模型的轻量级划分。这可以在全新的RTOS上运行现有的嵌入式软件组件,该RTOS可扩展到大量隔离(安全通信)空间,即使在SRAM低于256 KB的系统上也是如此。

源码,这目前是一个开源的研究项目,以实现更广泛的合作

https://github.com/Microsoft/cheriot-rtos

cheri-ibex是32位RISC-V微控制器,除了RV32IMCB之外,它还实现了CheriIoT ISA扩展。与原始的 ibex 核心相同,该设计可以配置 2 级或 3 级管道。它已通过初步仿真和FPGA验证,目前正在微软进行进一步验证和PPA分析

https://github.com/Microsoft/cheriot-ibex

CHERIoT Sail指令集模型

https://github.com/Microsoft/cheriot-sail

去年年初的时候,由Arm,微软,剑桥大学和其他公司领导的研究项目Morello原型架构上线。Morello是CHERI扩展的第一个高性能实现

https://msrc.microsoft.com/blog/2022/01/an_armful_of_cheris/


2、超强的产品级开源电机控制器项目,硬件,软件和上位机全开源

https://vesc-project.com/

VESC已经解决了广泛的工程挑战,从需要数十瓦的微型多旋翼飞行器到消耗数百千瓦的电动客机。 如今,VESC电机控制器广泛用于各种不同的设备,包括机器人,多旋翼飞行器,飞机,相机稳定器,电动自行车,电动滑板,RC设备和许多工业应用

VESC并不是普通的开源电机项目,面向解决尖端电力系统的先进软件和硬件实施,可以直接用来开发产品的。VESC生态系统设置简单易用,并包含大量自动检测和配置向导。

所有的这些都是作者 Benjamin业余时间设计的,所以也接受大家捐款。

硬件效果和开源地址:
https://vesc-project.com/node/311
https://github.com/vedderb/bldc-hardware

软件开源,包含DC/BLDC/FOC控制,RTOS采用ChibiOS
https://github.com/vedderb/bldc/

BMS锂电池管理开源,RTOS采用ChibiOS
https://github.com/vedderb/vesc_bms_fw

上位机开源,快平台 Linux, Windows, MacOS, Android 和 iOS
https://github.com/vedderb/vesc_tool

还支持直接编程脚本测试验证


3、Nordic的wifi6双频芯片nRF7002套件发布,支持SPI和QSPI通信

https://www.nordicsemi.com/Products/Development-hardware/nRF7002-DK

上上周就发布了,忘了给大家分享消息了,这次补上,支持SPI/QSPI通信还是比较方便的


4、Microchip分享的一篇单片机精确测量电流博文

https://www.microchip.com/en-us/about/media-center/blog/2023/accurately-measuring-current-with-microcontrollers

这篇博文介绍了这些错误源以及如何减少和消除它们。


5、大量的位图字体下载

现在电脑基本都使用矢量字体了,早期的旧式计算机用的是位图字体

这里作者搜集了大量旧式电脑上的位图字体
https://github.com/robhagemans/hoard-of-bitfonts

位图查看器:
http://robhagemans.github.io/monobit/

位图转二进制软件
https://github.com/robhagemans/monobit


6、现代Cmake详细入门介绍文档

https://cliutils.gitlab.io/modern-cmake/

可以在线查看,也可以下载PDF板


7、树莓派单片机

(1)树莓派单片机SDK升级至V1.5.0,大更新,全面支持Pico W的蓝牙和WIFI通信

https://github.com/raspberrypi/pico-sdk

(2) 超强树莓派单片机的24通道,100Msps的逻辑分析仪开源升级至V3.5.0.1,

支持了Pico W的WiFi通信方式,采样深度提升到128KB。全面支持了跨平台

https://www.armbbs.cn/forum.php?mod=viewthread&tid=113621

https://github.com/gusmanb/logicanalyzer/releases


8、ST发布的电源管理指南

https://www.st.com/resource/en/brochure/power-management-guide.pdf

目录:

结合给大家分享的数字电源指南一起看,有大量的参考开发板设计

https://www.armbbs.cn/forum.php?mod=viewthread&tid=112616


9、MicroEJ动态APP管理开始支持C,Javascript和Java

MicroEJ在整活方面,确实会折腾,从最早的C+Java混合开放,炫酷GUI让单片机像Android机一样从远程商店下载各种应用,再到Android Studio生成单片机GUI APP

这次又带来新玩法,动态APP支持多种编程语言玩法

https://developer.microej.com/managed-code/


10、蓝牙标准V5.4发布

https://www.bluetooth.com/bluetooth-resources/bluetooth-core-specification-version-5-4-technical-overview/

2301_5.4_Tech_Overview_FINAL.pdf (757.18KB)

新规范引入了两项新功能,它们共同支持无线接入点 AP和数千个超低功耗终端节点之间的安全双向通信


11、罗姆推出智能低边开关取代机械继电器和 MOSFET

https://www.rohm.de/news-detail?news-title=rohms-kompakte-intelligente-low-side-schalter-geringere-verlustleistung-und-sicherer-betrieb-durch-propriet%25C3%25A4re-tdacc%25E2%2584%25A2-schaltungs-und-baut&defaultGroupId=false

产品:

与继电器相比:

与Mosfet相比

高边和底边开关比较


12、开源字体库FreeType V2.13发布

https://freetype.org/

emWin的矢量字体库就是用的这个开源库


13、emWin的新版VNC远程软件升级至V1.2,测试了下,比之前稳定

https://www.segger.com/downloads/emwin/

测试了下之前给V6开发板做的二代示波器:

https://www.armbbs.cn/forum.php?mod=viewthread&tid=89526


14、玩转与或非操作

https://terathon.com/binary_fund.pdf

作者Eric Lengyel

里面的位操作和屏蔽操作很不错


15、H7-TOOL本周进展

H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934

(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
  --量程取值 013.8V 16.4V 23.2V 31.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)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=114792

【根据出错地址锁定源文件位置】

前面分享的方法还需要大家在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的寄存器状态,更好的方式展示出来,方便查看执行异常和错误分析,初步效果,本周继续升级下

 

posted @ 2023-02-15 15:21  硬汉嵌入式  阅读(255)  评论(0编辑  收藏  举报