专栏名称: 安富莱电子
由武汉安富莱电子有限公司负责维护。每周发布嵌入式周报,嵌入式领域最新消息和技术分享。内容原创。
目录
相关文章推荐
龙船风电网  ·  利好海上风电!英国推出新计划 ·  昨天  
龙船风电网  ·  利好海上风电!英国推出新计划 ·  昨天  
广东生态环境  ·  DeepSeek如何紧密结合环保工作?看看这 ... ·  2 天前  
广东生态环境  ·  DeepSeek如何紧密结合环保工作?看看这 ... ·  2 天前  
51好读  ›  专栏  ›  安富莱电子

《安富莱嵌入式周报》第342期:2024.08.20--2024.09.10

安富莱电子  · 公众号  ·  · 2024-09-10 08:19

正文

说明:
谢谢大家的关注,继续为大家盘点上三周精彩内容。

1 开源BLE和2.4G无线黑客工具

nRFBOX开源项目旨在提供一套全面的工具来探索 2.4GHz 频谱,包括蓝牙和其他无线协议



软硬件特性:


核心功能:


2 持续关注Hackaday举办的Tiny小游戏开发设计比赛

上次周报给大家分享的时候提交了39个,当前已经增加至72个。又增加了不少有意思的设计:


3 开源的复古手表设计展示

使用老式 LED 指示灯设计的手表,效果还不错




4 ARM架构应用程序接口文档汇总贴

这些文档对于了解编译细节非常重要,特别是Procedure Call Standard for the Arm Architecture(AAPCS),  能让大家更好的了解编译细节:


5 蓝牙技术联盟发布低功耗蓝牙入门手册升级至V1.2,同时发布蓝牙BLE6.0规范

1、入门手册
低功耗蓝牙入门手册解释了蓝牙协议栈的每一层,从底部的物理层开始,到顶部的通用访问配置文件结束。还涵盖了与协议栈分层体系结构相关的主题,例如安全性。
如果不熟悉低功耗蓝牙并希望从技术角度了解该技术,本手册为此而生:



目录:


2、蓝牙规范V6.0发布
内容比较多,熟悉蓝牙的可以看看

6 12bit分辨率示波器还没有完全普及,是德科技将推出1GHz带宽的14bit分辨率示波器

在各家都在如火如荼的推出12bit分辨率示波器之际,是德科技推出14bit分辨率示波器。这个主要是想给大家分享下当前示波器更新趋势。



视频效果:

7 太方便了,VS Code也可以识别并使用MDK的配置向导方式来设置程序了

刷RTX5中间件更新记录,看到他们正式为中间件的配置提供了VSCode配置向导支持,这种配置向导使用非常方便。
大大简化了大家的程序配置:





对应的VS Code支持


8 记录个STM32H7在DTCM空间调用汇编指令STRBT造成异常问题原因探究

这是和一位网友探讨交流的问题,初步做的分析。
【问题由来】
程序在MDK AC6的O0优化等级下运行是正常的,而在O2优化下,运行就不正常了,锁定到是下面这个代码造成。
注:O0和O2调用的汇编指令不同。

__asm("ldr r5,=0x20010402");__asm("ldr r7,=0x55f4");__asm("strbt r7,[r5,#6]");

硬件异常错误类型:


【原因分析】
问题分析采用了优先各种情况测试,然后缩写范围的方式。
问题起初的检查方向差点搞错,起初我并不认为是MPU的配置问题,因为操作出问题的这个空间是DTCM,这个空间和CPU的主频一样,基本不需要配置MPU的,实际应用中,也从来没有配置过,但问题恰恰就出在这里了。
1、测试H7芯片所有4GB空间开启MPU可以正常运行了。
2、进一步缩小范围,测试DTCM的0x2000 0000地址开始128KB空间配置MPU S,B,C各种设置也没有触发这个问题了。
3、再进一步测试发现,只要关闭DTCM的MPU配置,就会触发硬件异常:

MPU_InitStruct.Enable           = MPU_REGION_DISABLE;MPU_InitStruct.BaseAddress      = 0x20000000;MPU_InitStruct.Size             = MPU_REGION_SIZE_128KB;        // MPU_REGION_SIZE_512MB;MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;MPU_InitStruct.Number           = MPU_REGION_NUMBER5;MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;MPU_InitStruct.SubRegionDisable = 0x00;MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_DISABLE;HAL_MPU_ConfigRegion(&MPU_InitStruct);


这个测试,想起来早期一个帖子:非特权级模式下,并且开启了MPU了,只有MPU使能的区域才可以访问

【问题解决】
这个发现太重要了,然后进一步搜索指令STRBT的介绍,初步认为是这个问题造成的。再进一步查找指令介绍,使用这个指令在特权模式下,这个指令只有非特权权限,按照这个要求的话,配置了MPU即可解决。

9 IAR9.60.2发布

新版本依然要使用公司邮箱才可以申请下,已经不再支持个人邮箱申请。


详细更新记录如下:


10







请到「今天看啥」查看全文