《安富莱嵌入式周报》第282期:CMSIS-DSP手册引入计算图,树莓派单片机RP2040超频到1GHz,COBS字节编码算法,纯手工为PS1打造全新亚克力外壳
往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104
视频版:
https://www.bilibili.com/video/BV1DV4y1u7Em
1、CMSIS-DSP软件包升级至V1.12,添加更多f64双精度API,并首次引入计算图
https://github.com/ARM-software/CMSIS-DSP
ARM.CMSIS-DSP.1.12.0.pack (7.22MB)
本次更新最明显的就是增加了这个文件夹:
MDK安装后,增加了这么个选项:
具体玩法还没有研究,从计算图效果来看,确实方便了执行流程的理解和调试参数的调整测试。
2、纯手工为PS1打造一个全新的亚克力外壳,效果很拉风
作者:BitHead1000
原视频:https://www.youtube.com/watch?v=RgoWwO8Ul8M
原始的PS1效果:
重新打造的PS1外壳,每个角落都全部重新设计。
大家有兴趣可以看下原视频,很帅
动图:
3、树莓派单片机RP2040超频到1GHz
https://github.com/davidb990/rp2040_xoc
作者提供了测试代码,测试条件是将内核电压从1.1V提升到3.0V,通过制冷使工作温度为-40°
作者测试了几次跑分Demo,可以正常运行,但是运行一段时间容易损坏芯片。
4、史上最全面的RISC-V相关资源搜集整理贴
https://github.com/mikeroyal/RISC-V-Guide
几乎已经涵盖了市面上各种软件资源和硬件资源搜集,包含最近各家发布的硬件板子
5、瑞萨基于RISC-V内核推出一款低成本电机单片机R9A02G020
RISC-V内核来自Andes。
R9A02G020框图如下:
套件:
6、高效可靠的数据字节编码算法COBS,可用于串口通信
https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing
以modbus rtu通信为例,一般是3.5字符作为帧间隔区分,而使用COBS就不需要这样了,他是将范围 [0,255] 内的任意字节字符串转换为 [1,255] 范围内的字节。从数据中消除所有0,现在可以使用0来明确标记转换后数据的结束
代码如下:
#include <stddef.h> #include <stdint.h> #include <assert.h> /** COBS encode data to buffer @param data Pointer to input data to encode @param length Number of bytes to encode @param buffer Pointer to encoded output buffer @return Encoded buffer length in bytes @note Does not output delimiter byte */ size_t cobsEncode(const void *data, size_t length, uint8_t *buffer) { assert(data && buffer); uint8_t *encode = buffer; // Encoded byte pointer uint8_t *codep = encode++; // Output code pointer uint8_t code = 1; // Code value for (const uint8_t *byte = (const uint8_t *)data; length--; ++byte) { if (*byte) // Byte not zero, write it *encode++ = *byte, ++code; if (!*byte || code == 0xff) // Input is zero or block completed, restart { *codep = code, code = 1, codep = encode; if (!*byte || length) ++encode; } } *codep = code; // Write final code value return (size_t)(encode - buffer); } /** COBS decode data from buffer @param buffer Pointer to encoded input bytes @param length Number of bytes to decode @param data Pointer to decoded output data @return Number of bytes successfully decoded @note Stops decoding if delimiter byte is found */ size_t cobsDecode(const uint8_t *buffer, size_t length, void *data) { assert(buffer && data); const uint8_t *byte = buffer; // Encoded input byte pointer uint8_t *decode = (uint8_t *)data; // Decoded output byte pointer for (uint8_t code = 0xff, block = 0; byte < buffer + length; --block) { if (block) // Decode block byte *decode++ = *byte++; else { if (code != 0xff) // Encoded zero, write it *decode++ = 0; block = code = *byte++; // Next block length if (!code) // Delimiter code found break; } } return (size_t)(decode - (uint8_t *)data); }
7、Embedded Wizard发布9期视频教程
大家有兴趣可以看下
https://www.embedded-wizard.de/master-class-mondays
同时还为一家声学分析仪提供了界面设计,大家可以看看界面素材是否有值得参考的
8、深圳捷扬微电子发布中国首款通过FiRa联盟认证的UWB芯片
https://www.giantsemi.com/newsinfo/661036.html
GT1000已经于2022年5月开始量产,将于2022年9月开始批量出货,规格介绍如下:
9、英特尔的13代CPU有望达6GHz主频,超频后达8GHz
13代U还没有正式公布,根据外媒的消息,13代U至少有一款可达6GHz,超频后达8GHz。
如果这样的话,将超过AMD 5.7GHz的Ryzen 9 7950X。
10、H7-TOOL本周进展
H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934
(1)增加新的脱机烧录芯片中,其中新添加的NXP芯片MKE16Z64与其它MKE不同。
(2)H7-TOOL同步开发的还要一个重要功能,支持各种GUI的截图功能,无需再使用麻烦的SD卡/U盘截图方案 。
即使到今天,我们很多时候做产品效果展示,需要截屏时,依然采用的古老的SD卡/U盘这种的古老方案,不仅麻烦,而且繁琐。
emWin早期的时候有推出过emSPY截图功能,需要用户移植RTT或者网络协议栈,后续新版本更新,经常出现花屏,几乎没法使用。所以我们的新功能为此而生。
用户仅需接上SWD接口即可,无需用户嵌入代码到目标,填入显存地址即可,可以直接截图ThreadX GUIX,emWin,TouchGFX等各种UI的显示效果,包括大家自己做的裸屏UI也是可以截图出来的。
通过这个功能,会大大方便大家产品效果展示。
(3)初步把H7-TOOL的RTOS Trace工作流程整顺溜了,剩下可以专心添加各种OS和组态界面设计了。
uCOS-III的关键信息检索,基本都已经完成,不需要目标板额外做任何代码,实时检测RTOS任务执行情况。
下一步开始ThreadX的Trace功能支持,添加完毕几款RTOS的Trace后,再重新设计控件布局效果展示。