《安富莱嵌入式周报》第346期:开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波,开源固件安全分析器, 开源口袋电源,开源健康测量,FreeCAD

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!

视频:

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

《安富莱嵌入式周报》第346期:开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波,开源固件安全分析器, 开源口袋电源,开源健康测量,FreeCAD


目录:

1、开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波器
2、开源嵌入式固件安全分析器
3、TI分享的8通道隔离 ±12.288 V 模拟采集参考设计,符合涌瞬态抗扰度 EN 61000-4-5 2 类标准(±1 kV,24 A)
4、C编译器原理书籍
5、FreeCAD V1.0版本发布
6、两年未更新的FatFS发布V0.15a版本
7、开源USB Type-C口袋电源,支持3.3 -20 V,最大5 A
8、IDE相关
(1)Embedded Studio发布V8.20版本
(2)新唐自家所有M内核芯片免费使用MDK专业版,授权到2027年9月
9、【实测】使用STM32H7板子FatFS文件系统每秒读写2MB文件,实时写入7450个文件不出错,写满16GB SD卡
10、开源血压信号,PPG,ECG,听诊信号测量设备
11、H7-TOOL本周进展
(1)脱机烧录
         增加NXP车轨芯片S32K312脱机烧录支持
         增加英飞凌车轨芯片CYT4B和CYT3B脱机烧录支持
        增加航顺HK32C030系列
(2)加紧H7-TOOL的LUA API手册制作,与2.27版本固件同时发布


1、开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波器

软件和硬件全开源

这个是早期Haasoscope开源项目的升级版,不过这次升级与之前版本已经没有任何关系,只是示波器名字没变。但性能是质的飞跃

GitHub - drandyhaas/HaasoscopePro: An Affordable 2 GHz 3.2 GS/s 12 bit open-source open-hardware expandable USB oscilloscope
https://www.crowdsupply.com/andy-haas/haasoscope-pro

软硬件软件包:HaasoscopePro-main.zip (292.75MB)

2GHz探头软件包:  oshw-active-probe-master.zip (3.94 MB)

效果:

规格:

两个设备同步,可以做到6.4Gsps采样率

由于示波器带宽比较高,普通探头是无法满足需求的,所以专门设计了一个2GHz带宽探头


2、开源嵌入式固件安全分析器

GitHub - e-m-b-a/emba: EMBA - The firmware security analyzer

EMBA 会自动发现固件中可能存在的弱点和漏洞。例如,不安全的二进制文件、旧的和过时的软件组件、可能易受攻击的脚本或硬编码的密码。EMBA 是一个命令行工具,可以生成易于使用的 Web 报告以供进一步分析

视频效果:

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

有详细的文档说明:

Home · e-m-b-a/emba Wiki · GitHub


3、TI分享的8通道隔离 ±12.288 V 模拟采集参考设计,符合涌瞬态抗扰度 EN 61000-4-5 2 类标准(±1 kV,24 A)

 设计指南.pdf (1.64 MB)

 原理图.pdf (1.67 MB)

TIDA-00764 reference design | TI.com

此参考设计是具有 8 个通道的高压模拟输入模块。每个通道都可用于电压和电流测量。该设计使用 16 位模数转换器 (ADC) ADS8681,可处理 ±12.288 V 的输入电压。此外,该设计的四个通道能够处理高达 ±160 V 的共模电压。因此,用户无需担心接地回路或补偿电流在连接的输入之间流动。

±12.288 V 的高压输入
每个通道的电压和电流测量
4 个通道,共模电压高达 ±160 V
-85dB 的邻道串扰抑制
100 MΩ 输入阻抗
浪涌瞬态抗扰度符合 EN 61000-4-5 2 类标准(±1 kV,24 A)


4、C编译器原理书籍

有助于深入了解C以及编译原理

 Modern Compiler Implementation in C.pdf (5.17 MB)

https://github.com/ethanhe42/Mod ... on-in-C/tree/master

每个章节配套例题


5、FreeCAD V1.0版本发布

FreeCAD Version 1.0 Released | Hackaday

经过 22 年的发展,FreeCAD 终于达到了 1.0 版的里程碑

各大平台都提供了下载

视频:

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


6、两年未更新的FatFS发布V0.15a版本

http://elm-chan.org/fsw/ff/

上一次更新还是2022年的11月份.

 ff15a.zip

ffsample.zip

更新记录:


7、开源USB Type-C口袋电源,支持3.3 -20V,最大5A

GitHub - CentyLab/PocketPD: Opensource firmware for PocketPD
https://www.crowdsupply.com/centylab/pocketpd

电压和电流可调,电压支持3.3V-20V,单步50mV可调。电流1A-5A可调,单步50mA可调。

规格


8、IDE相关

1、Embedded Studio发布V8.20版本

SEGGER - The Embedded Experts - Downloads - Embedded Studio

2、新唐自家所有M内核芯片免费使用MDK专业版,授权到2027年9月

各家芯片厂商都在折腾GCC + eclipse/vscode免费方案的时候,新唐不折腾这些了,直接让大家免费使用MDK。

新闻如下:

Keil MDK Nuvoton Edition – Full Cortex-M - Nuvoton

Arm 与新唐科技为软件开发者提供免费的Keil® MDK专业工具:Keil MDK Nuvoton Edition - Full Cortex-M,此服务可支持所有基于 Arm® Cortex-M 处理器为内核的新唐产品,包括 Arm Cortex-M0/M0+/M23/M33/M4/M55/M7/M85,并可用于商业用途。

此服务亦包含 Arm Keil MDK v6 提供的所有工具和软件套件,包括 Arm C/C++ 编译程序、Arm Keil Studio Pack - the Visual Studio Code extensions、Keil µVision 与除错环境。

此免费服务的使用范围仅适用于 Keil MDK 5.37(含) 或更高的版本,并且仅支持 Arm Compiler 6。

安装说明:

Keil Download - Nuvoton


9、【实测】使用STM32H7板子FatFS文件系统每秒读写2MB文件,实时写入7450个文件不出错,写满16GB SD卡

【测试平台】

STM32-V7开发板

【测试例子】

【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至95章(2024-05-06) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!

V7-025_FatFS文件系统例子(SD卡 V1.2)

【测试条件和校验】

运行例子里面的命令6,命令6是个测速函数,每次写入2MB文件,同时读取出来校验,保证写入的没问题。

/*
*********************************************************************************************************
*        函 数 名: WriteFileTest
*        功能说明: 测试文件读写速度
*        形    参:无
*        返 回 值: 无
*********************************************************************************************************
*/
static void WriteFileTest(void)
{
        FRESULT result;
        char path[64]; 
        uint32_t bw;
        uint32_t i,k;
        uint32_t runtime1,runtime2,timelen;
        uint8_t err = 0;
        static uint32_t s_ucTestSn = 0;
  
          
        for (i = 0; i < sizeof(g_TestBuf); i++)
        {
                g_TestBuf[i] = (i / 512) + '0';
        }
  
          /* 挂载文件系统 */
        result = f_mount(&fs, DiskPath, 0);                        /* Mount a logical drive */
        if (result != FR_OK)
        {
                printf("挂载文件系统失败 (%s)\r\n", FR_Table[result]);
        }
  
        /* 打开文件 */
        sprintf(path, "%sS%05d.txt", DiskPath, s_ucTestSn++); /* 每写1次,序号递增 */      
        result = f_open(&file, path, FA_CREATE_ALWAYS | FA_WRITE);
  
        /* 写一串数据 */
        printf("开始写文件%s %dKB ...\r\n", path, TEST_FILE_LEN / 1024);
          
        runtime1 = bsp_GetRunTime();        /* 读取系统运行时间 */
        for (i = 0; i < TEST_FILE_LEN / BUF_SIZE; i++)
        {
                result = f_write(&file, g_TestBuf, sizeof(g_TestBuf), &bw);
                if (result == FR_OK)
                {
                        if (((i + 1) % 8) == 0)
                        {
                                printf(".");
                        }
                }
                else
                {
                        err = 1;
                        printf("%s文件写失败\r\n", path);
                        break;
                }
        }
        runtime2 = bsp_GetRunTime();        /* 读取系统运行时间 */
          
        if (err == 0)
        {
                timelen = (runtime2 - runtime1);
                printf("\r\n  写耗时 : %dms   平均写速度 : %dB/S (%dKB/S)\r\n",
                        timelen,
                        (TEST_FILE_LEN * 1000) / timelen,
                        ((TEST_FILE_LEN / 1024) * 1000) / timelen);
        }
  
        f_close(&file);                /* 关闭文件*/
  
  
        /* 开始读文件测试 */
        result = f_open(&file, path, FA_OPEN_EXISTING | FA_READ);
        if (result !=  FR_OK)
        {
                printf("没有找到文件: %s\r\n", path);
                return;
        }
  
        printf("开始读文件 %dKB ...\r\n", TEST_FILE_LEN / 1024);
          
        runtime1 = bsp_GetRunTime();        /* 读取系统运行时间 */
        for (i = 0; i < TEST_FILE_LEN / BUF_SIZE; i++)
        {
                result = f_read(&file, g_TestBuf, sizeof(g_TestBuf), &bw);
                if (result == FR_OK)
                {
                        if (((i + 1) % 8) == 0)
                        {
                                printf(".");
                        }
  
                        /* 比较写入的数据是否正确,此语句会导致读卡速度结果降低到 3.5MBytes/S */
                        for (k = 0; k < sizeof(g_TestBuf); k++)
                        {
                                if (g_TestBuf[k] != (k / 512) + '0')
                                {
                                          err = 1;
                                        printf("Speed1.txt 文件读成功,但是数据出错\r\n");
                                        break;
                                }
                        }
                        if (err == 1)
                        {
                                break;
                        }
                }
                else
                {
                        err = 1;
                        printf("Speed1.txt 文件读失败\r\n");
                        break;
                }
        }
  
        runtime2 = bsp_GetRunTime();        /* 读取系统运行时间 */
          
        if (err == 0)
        {
                timelen = (runtime2 - runtime1);
                printf("\r\n  读耗时 : %dms   平均读速度 : %dB/S (%dKB/S)\r\n", timelen,
                        (TEST_FILE_LEN * 1000) / timelen, ((TEST_FILE_LEN / 1024) * 1000) / timelen);
        }
  
        /* 关闭文件*/
        f_close(&file);
  
        /* 卸载文件系统 */
        f_mount(NULL, DiskPath, 0);
}

【实测】

1500个文件时:

5100个文件时:

写满SD卡,特别注意,但SD卡还剩下一点空间的时候,比如200M时,建议停止再写入,防止写爆后损坏SD卡

10、开源血压信号,PPG,ECG,听诊信号测量设备

之前给大家分享多款这种开源,本次再为大家分享一款

https://github.com/MilosRasic98/ ... gnalMeasuringDevice

软硬件全部开源,包括3D打印的所有 CAD 文件以及数据分析的测试结果。该项目的主要目标是能够记录、存储和分析这些信号。

11、H7-TOOL本周进展

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

1、脱机烧录

(1)增加NXP车轨芯片S32K312脱机烧录支持

(2)增加英飞凌车轨芯片CYT4B和CYT3B脱机烧录支持

详细说明:时隔半年,再次死磕,成功搞定H7-TOOL脱机烧录英飞凌车规级M7多核芯片CYT4B

时隔半年,再次死磕,成功搞定H7-TOOL脱机烧录英飞凌车规级M7多核芯片CYT4B,凌晨发帖纪念(2024-11-21) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!

(3)增加航顺HK32C030系列

2、加紧H7-TOOL的LUA API手册制作,与2.27版本固件同时发布

争取下个月初2.27版本固件发布时,同时发布LUA API手册,方便大家查阅

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/923674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《白帽子讲Web安全》13-14章

《白帽子讲Web安全》13-14章 《白帽子讲Web安全》13-14章13、应用层拒绝服务攻击13.1、DDOS简介13.2、应用层DDOS13.2.1、CC攻击13.2.2、限制请求频率13.2.3、道高一尺&#xff0c;魔高一丈 13.3、验证码的那些事儿13.4、防御应用层DDOS13.5、资源耗尽攻击13.5.1、Slowloris攻击…

51单片机从入门到精通:理论与实践指南(一)

单片机在智能控制领域的应用已非常普遍&#xff0c;发展也很迅猛&#xff0c;学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出&#xff0c;但51单片机价格低廉、易学易用、性能成熟&#xff0c;在家电和工业控制中有一定的应用&#xff0c;而且学好了51单片机&…

相亲交友小程序项目介绍

一、项目背景 在当今快节奏的社会生活中&#xff0c;人们忙于工作和事业&#xff0c;社交圈子相对狭窄&#xff0c;寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式&#xff0c;在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…

Python中的简单爬虫

文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…

uni-app运行 安卓模拟器 MuMu模拟器

最近公司开发移动端系统&#xff0c;使用真机时每次调试的时候换来换去的麻烦&#xff0c;所以使用模拟器来调试方便。记录一下安装和连接的过程 一、安装MuMu模拟器 百度搜索MuMu模拟器并打开官网或者点这里MuMu模拟器官网 点击下载模拟器 安装模拟器&#xff0c;如果系统…

mydocker

Docker容器特点 轻量级&#xff1a;在同一台宿主机上的容器共享系统 Kerel &#xff0c;这使得它们可以迅速启动而且占用内存极少。镜像是以分层文件系统构造的&#xff0c;这可以让它们共享相同的文件&#xff0c;使得磁盘使用率和镜像下载速度得到提高。开放&#xff1a;Doc…

JVM详解:垃圾回收机制

java作为大型服务开发的主流语言&#xff0c;其运行会占用大量的内存空间&#xff0c;那么合理的使用有限的服务器资源至关重要。和大多数翻译性语言一样&#xff0c;java的运行环境jvm也内置垃圾回收机制&#xff0c;其通过一些合理的算法组合&#xff0c;定时来对堆中保存的不…

Kali2024.4切换xfce主题输入法失效问题

目前感觉linux下比较好用的输入法就是google pinyin&#xff0c;常规的安装 sudo apt install fcitx im-configsudo apt install fcitx-googlepinyin然而在切换主题后&#xff0c;输入法不好用了&#xff0c;手动添加输入法也是找不到的状态&#xff0c;进入排查步骤&#xff…

C++初阶学习第十三弹——容器适配器和优先级队列的概念

目录 一.容器适配器 1.2deque的原理介绍 1.3deque与vector和list的比较&#xff0c;以及deque的缺陷 1.4为什么选择deque作为stack和queue的底层默认容器&#xff1f; stack的模拟实现 queue的模拟实现 二.优先级队列 2.1priority_queue的使用 三、总结 一.容器适配器 s…

C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)

目录 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口&#xff08;同向双指针&#xff09; 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 题目截图&#xff1a; 此题所说的…

easyui combobox 只能选择第一个问题解决

easyui combobox 只能选择第一个问题解决 问题现象 在拆分开票的时候&#xff0c;弹出框上面有一个下拉框用于选择需要新增的明细行&#xff0c;但是每次只能选择到第一个 选择第二条数据的时候默认选择到第一个了 代码如下 /*新增发票编辑窗口*/function addTicketDialog…

机器学习周志华学习笔记-第6章<支持向量机>

机器学习周志华学习笔记-第6章<支持向量机> 卷王&#xff0c;请看目录 6支持向量机6.1 函数间隔与几何间隔6.1.1 函数间隔6.1.2 几何间隔 6.2 最大间隔与支持向量6.3 对偶问题6.4 核函数6.5 软间隔支持向量机6.6 支持向量机6.7核方法 6支持向量机 支持向量机是一种经典…

111. UE5 GAS RPG 实现角色技能和场景状态保存到存档

实现角色的技能存档保存和加载 首先&#xff0c;我们在LoadScreenSaveGame.h文件里&#xff0c;增加一个结构体&#xff0c;用于存储技能相关的所有信息 //存储技能的相关信息结构体 USTRUCT(BlueprintType) struct FSavedAbility {GENERATED_BODY()//需要存储的技能UPROPERT…

ArcGIS pro中的回归分析浅析(加更)关于广义线性回归工具的补充内容

在回归分析浅析中篇的文章中&#xff0c; 有人问了一个问题&#xff1a; 案例里的calls数据貌似离散&#xff0c;更符合泊松模型&#xff0c;为啥不采用泊松而采用高斯呢&#xff1f; 确实&#xff0c;在中篇中写道&#xff1a; 在这个例子中我们为了更好地解释变量&#x…

从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;二&#xff09;—— 深入探索 CSS 选择器的奥秘 前言一、CSS基本选择器1. 通配选择器2. 元素选择器3. 类选择器4. id选择器5.基本选择器总结 二、CSS复合选择器1. 后代选择器2. 子选择器3. 相邻兄弟选择器4.交集选择器5…

【机器学习chp7】SVM

参考1&#xff0c;笔记 SVM笔记.pdf 参考2&#xff1a;王木头视频 什么是SVM&#xff0c;如何理解软间隔&#xff1f;什么是合叶损失函数、铰链损失函数&#xff1f;SVM与感知机横向对比&#xff0c;挖掘机器学习本质_哔哩哔哩_bilibili 目录 一、SVM模型 二、构建决策函…

【C++】读取数量不定的输入数据

读取数量不定的输入数据 似乎是一个很实用的东西&#xff1f; 问题&#xff1a; 我们如何对用户输入的一组数&#xff08;事先不知道具体有多少个数&#xff09;求和&#xff1f; 这需要不断读取数据直至没有新的输入为止。&#xff08;所以我们的代码就是这样设计的&#x…

HarmonyOS4+NEXT星河版入门与项目实战(20)------状态管理@ObjectLink @Observed

文章目录 1、用法图解2、案例实现1、任务类改造2、参数改造变量3、完整代码4、运行效果4、总结1、用法图解 2、案例实现 上一节的案例中,一直有一个功能没有生效,就是任务完成后对应的任务行变灰,任务字体出现中划线删除的效果。而该功能一直不生效的原因就是要改变的数据值…

2024年工信部大数据分析师证书报考条件是怎样的?有什么用

大数据分析师&#xff0c;乃是这样一类专业人才&#xff0c;他们凭借着先进且高效的数据分析技术以及各类实用工具&#xff0c;对规模庞大、纷繁复杂的海量数据展开全面而细致的清洗、处理、分析以及解读工作。其工作的核心目标在于为企业的决策制定提供有力依据&#xff0c;推…

基于vite创建的react18项目的单元测试

题外话 最近一个小伙伴进了字节外包&#xff0c;第一个活就是让他写一个单元测试。 嗯&#xff0c;说实话&#xff0c;在今天之前我只知道一些理论&#xff0c;但是并没有实操过&#xff0c;于是我就试验了一下。 通过查询资料&#xff0c;大拿们基本都说基于vite的项目&…