《安富莱嵌入式周报》第302期:芯片内部Flash读保护攻击,开源智能手表设计,超棒静电学手册中文版,65W USB电源适配器方案,历届Matlab挑战赛
往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104
2023年的视频专题教程继续开始录制
视频版:
https://www.bilibili.com/video/BV1NG4y1T7Eh
1,芯片内部Flash读保护攻击
https://www.aisec.fraunhofer.de/en/FirmwareProtection.html
发布于第11届USENIX进攻技术研讨会
经常有网友咨询设置芯片的读写保护是否安全,这个文章进行了详细攻击说明。通过这篇文章主要是想告诉大家,追求固件安全,仅靠设置读保护是不行的
可以考虑再配合下固件加密:
单片机BootLoader的AES加密实战,含上位机和下位机代码全开源
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113361&fromuid=58
2,全开源基于Zephyr的智能手表设计
https://github.com/jakkra/ZSWatch
硬件规格:
效果:
3,大量关于嵌入式系统笔记和讲义汇总
Embedded System Lecture Notes (cmu.edu)
资料非常多,干货也不少,唯一缺点都是英文的
部分截图:
4,LK(Little Kernel)嵌入式OS
https://github.com/littlekernel/lk
LK是面向多核应用的嵌入式OS,支持单片机和MPU,包括当前的电脑CPU都是支持的。
大家有兴趣可以了解下:
5、一款简单易用的ESP32开源开发工具ESP32 MPY-Jama,支持跨平台
https://github.com/jczic/ESP32-MPY-Jama
提供IDE,文件管理,实时仪表和高级功能
6、STM32C0的ThreadX软件包也要来了
上期周报给大家分享了STM32C0,主要是用于替代一些用8bit单片机的场合。
看下面的框图介绍,STM32C0的ThreadX软件包也要来了
7、静电学手册中文版
https://www.armbbs.cn/forum.php?mod=viewthread&tid=117757
感谢坛友emwin的分享,手册非常棒,图文并茂言简意赅
8、历届Matlab Simulink学生挑战赛
https://ww2.mathworks.cn/academia/student-challenge.html
大家对simulink感兴趣的话,可以看看
9、交互式KiCAD物料清单查找插件
https://github.com/openscopeproject/InteractiveHtmlBom
用在手工焊接和维修时,非常方便
10、I2C总线的光耦隔离
这篇笔记是东芝分享的,实现5KV隔离
主要注意增加光耦后对时许延迟的影响
11、TOP40 Python库
https://morioh.com/p/e854b5356d83?f=5c21fb01c16e2556b555ab32
感谢作者Brooke Giles的分享,整理的非常好
Natural Language Processing (2): NLTK ► manipulate strings [url=https://www.nltk.org/]https://www.nltk.org/[/url] FlashText ► replace keywords in sentences or extract keywords from sentences [url=https://pypi.org/project/flashtext/]https://pypi.org/project/flashtext/[/url] Computer Vision (2): OpenCV ► computer vision/ image processing [url=https://opencv.org/]https://opencv.org/[/url] SimpleCV ► computer vision [url=http://simplecv.org/]http://simplecv.org/[/url] GUI (3): Tkinter ► GUI [url=https://docs.python.org/3/library/tkinter.html]https://docs.python.org/3/library/tkinter.html[/url] wxPython ► GUI toolkit [url=https://wxpython.org/]https://wxpython.org/[/url] PyQt ► GUI toolkit [url=https://pypi.org/project/PyQt5/]https://pypi.org/project/PyQt5/[/url] Game (2): Pygame ► writing video games mainly [url=https://www.pygame.org/]https://www.pygame.org/[/url] Pyglet ► 3d animation and game creation engine [url=http://pyglet.org/]http://pyglet.org/[/url] Web (6): Requests ► HTTP library/Web [url=https://requests.readthedocs.io/en/master/]https://requests.readthedocs.io/en/master/[/url] Scrapy ► webscraping [url=https://scrapy.org/]https://scrapy.org/[/url] BeautifulSoup ► parsing/webscraping [url=https://www.crummy.com/software/BeautifulSoup/bs4/doc/]https://www.crummy.com/software/BeautifulSoup/bs4/doc/[/url] Zappa ► server-less application on API Gateway and Amazon Web Services Lambda [url=https://github.com/Miserlou/Zappa]https://github.com/Miserlou/Zappa[/url] Django ► web framework [url=https://www.djangoproject.com/]https://www.djangoproject.com/[/url] Flask ► web framework [url=https://flask.palletsprojects.com/en/1.1.x/]https://flask.palletsprojects.com/en/1.1.x/[/url] Data Science (5): Pandas ► data-science [url=https://pandas.pydata.org/]https://pandas.pydata.org/[/url] Matplotlib ► 2-dimensional graphs and plots [url=https://matplotlib.org/]https://matplotlib.org/[/url] Plotly ► similar to matplotlib [url=https://plotly.com/python/]https://plotly.com/python/[/url] Bokeh ► data visualization library [url=https://docs.bokeh.org/en/latest/index.html]https://docs.bokeh.org/en/latest/index.html[/url] SQLAlchemy ► Database Abstraction [url=https://www.sqlalchemy.org/]https://www.sqlalchemy.org/[/url] Math (3): Numpy ► advance math functionalities [url=https://numpy.org/]https://numpy.org/[/url] SciPy ► library of algorithms and mathematical tools [url=https://www.scipy.org/]https://www.scipy.org/[/url] SymPy ► algebraic evaluation, differentiation, expansion, complex numbers [url=https://www.sympy.org/en/index.html]https://www.sympy.org/en/index.html[/url] Machine Learning (8): Keras ► deep neural networks [url=https://keras.io/]https://keras.io/[/url] Tensorflow ► develop, train and design deep learning models [url=https://www.tensorflow.org/]https://www.tensorflow.org/[/url] PyTorch ► machine learning [url=https://pytorch.org/]https://pytorch.org/[/url] Scikit-Learn ► ML [url=https://scikit-learn.org/stable/]https://scikit-learn.org/stable/[/url] Imbalanced-learn ► ML [url=https://pypi.org/project/imbalanced-learn/]https://pypi.org/project/imbalanced-learn/[/url] Theano ► deep learning library [url=http://deeplearning.net/software/theano/]http://deeplearning.net/software/theano/[/url] LightGBM ► machine learning [url=https://github.com/microsoft/LightGBM]https://github.com/microsoft/LightGBM[/url] Eli5 ► machine learning [url=https://pypi.org/project/eli5/]https://pypi.org/project/eli5/[/url] Other (9): Twisted ► network application develop [url=https://pypi.org/project/Twisted/]https://pypi.org/project/Twisted/[/url] (website down) IPython ► completion, history, shell capabilities, and a lot more [url=https://ipython.org/]https://ipython.org/[/url] Pillow ► images/Python Imaging Library [url=https://python-pillow.org/]https://python-pillow.org/[/url] Poetry ► manage python packaging and dependencies [url=https://python-poetry.org/]https://python-poetry.org/[/url] Gensim ► natural library processing library [url=https://radimrehurek.com/gensim/]https://radimrehurek.com/gensim/[/url] Pywin32 ► Interact with Windows [url=https://github.com/mhammond/pywin32]https://github.com/mhammond/pywin32[/url] Kivy ► Mobile Apps [url=https://kivy.org/#home]https://kivy.org/#home[/url] Pendulum ► date and time [url=https://pendulum.eustace.io/]https://pendulum.eustace.io/[/url] Loguru ► python logging [url=https://github.com/Delgan/loguru]https://github.com/Delgan/loguru[/url]
12、国产3PEAKS思瑞浦分享的2023模拟,隔离,电源等器件选型手册
对国产芯片有需求的话,可以看看
http://file.3peakic.com.cn:8080/technical/3PEAK-Selection-Guide-2023H1-Rev16.1.pdf
13、ST推出的65W USB电源适配器方案
https://www.st.com/en/evaluation-tools/evlonemp.html
该板基于ST-ONEMP设计,ST-ONEMP是业界首款在单个封装中嵌入Cortex M0+内核的数字控制器、具有同步整流功能的离线可编程控制器和USB PD PHY。
规格
效果:
14、H7-TOOL本周进展
H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934
(1)添加新的脱机烧录芯片支持
(2)H7-TOOL Trace首版要支持的几款RTOS功能即将收尾
当前RTX5,uCOS-III和ThreadX已经没问题了,FreeRTOS差不多也完成了,这里要介绍的是:FreeRTOS Trace的通信组件部分不适合检索
FreeRTOS内核相关信息的Trace本身就已经比较繁琐。如果是程序主动输出(RTT或者EVR方式),那就简单很多。但我们这里需要被动检索,这就麻烦很多了。
内核的Trace差不多已经成型
而通信组件就非常不适合Trace了,以消息队列为例,需要用户调用vQueueAddToRegistry将所有创建的消息队列都注册了才能检索,也就是说需要用户添加代码才可以用,这点不如uCOS, RTX,ThreadX等方便,他们有专门的链接可以管理。
至此,我这边要做的Trace工作差不多已经都完成,剩下就是上位机左侧界面功能添加,方便用户使用。
(3)H7-TOOL的485差分线直连和交叉数据捕获测试,本质上就是数组做了个取反,后面升级TOOL上位机两种接线方式通吃
【用法和485基础知识】
下面贴进行了详细说明
H7-TOOL示波器实现RS485差分信号捕获测量(2022-02-23)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=111085
【测试条件】
两台TOOL的485差分线直连485A接485A,485B接485B的直连测试(这个是正确接线方式)和485A接485B,485B接485A的交叉连接。
485配置:
【直连测试】
一台TOOL周期性发送0xD3
TOOL485接收到数据0xD3
示波器捕获效果如下,数据的低位在前。
【交叉测试】
同样,也是通过一台TOOL发送0xD3,TOOL485接收到数据0x16
示波器捕获效果如下,这里有个细节的地方,stop位的识别处理,串口助手也识别了(485 PHY芯片的RO接收端有个上拉电阻,没有停止bit也可以正常结束)。
【引申】
H7有个引脚电平激活翻转功能,看来用在这种场景下超合适
实际测试真的可以,后TOOL的串口上位机也将增加此翻转控制,这样即使大家的485线接错了,也可以方便使用。