最近刷到了这个程序,体验了一下,发现功能比gimp要好太多。
才艺展示😄
期望:

实际

最近刷到了这个程序,体验了一下,发现功能比gimp要好太多。
期望:
实际
从零开始学散热
陈继良
感谢
Artery
公司提供开发板,以及Artery
各位工程师的技术支持。
今年上半年收到了Artery公司 木一川 先生的邀请,有幸白嫖到了AT32的开发板。开发板搭载的AT32F437ZMT7
芯片和其他国内芯片公司的xx32产品类似,芯片内核采用ARM Cortex-M4,外设和STM32F1相似。
题外话: 在写这篇文章的时候,翻阅了以前写的GD32移植时候看到当时刚刚考完日语N2,一年半时间飞逝,N1考试因为疫情连续取消了三回。
请参考gd32移植
对于传统的嵌入式软件开发,可能会使用IAR、KEIL等IDE,而绝大多数的芯片厂家默认提供的BSP也往往基于这些工具进行开发。 然而对于开源项目来说,这些工具费用高昂,并且对工作流的细节控制很难实现。因此,对于第一次接触zephyr
项目的朋友优先理解编译器(和目标平台架构相关,对于at32来说是gcc)和构建系统(cmake)的作用。
zephyr
系统利用了大量linux的开发工具:
kconfig
工具来管理宏。devicetree
框架对硬件设备从Board
,SOC
,Arch
三个层级对硬件平台进行描述。但是zephyr
项目的设备树会生成c语言头文件而不是dtb
。为了对开发平台进行调试,一般会使用pyocd
或者OpenOCD
这两个工具来建立JTAG
或者SWD
连接,配合gdb
对芯片进行调试。 一般gdb
不会单独运行,在命令行中调试即使配合tui也是十分痛苦的,但是对于一些高手,利用hook,可以打造出更顺手的调试环境。我个人一般会配合vscode
或者gdbgui
等工具一同使用,这些GUI
界面一般也可以使用hook,并且使用gdb
的终端。
以上工具,一般在zephyr
项目中也不会直接调用,而是使用west命令进行操作。
zephyr项目支持多种架构和大量厂商的芯片,一般情况下,我们只需要制作最外层的Board级别的移植,即可完成。
但是本次Artery公司尚未被zephyr项目支持,但是
arm cortex-m4
是被zephyr项目支持的架构arch
,所以需要SOC
级别的移植。如果你使用的是
Renesas
的RH850
或者infineon
的TriCore
系列芯片,那么你将会面对一个arch
级别的移植,这会面对很大的工作量,目前我也没有经历过这个级别的适配。
vendor-prefix.txt
内的供应商名称,才可以作为vendor
出现在设备树中。board
– at_surf_F437
)
kconfig
配置
openocd
、pyocd
以及各个厂家特有的下载工具等进行配置,以便对目标设备进行调试和烧写。SOC
– AT32F437ZMT7
)
soc.c
)
arm
架构一般会调用cmsis
接口SystemInit。dts
KCONFIG
package
或者namespace
这些方法对符号的作用域进行限缩,所以在引入供应商HAL代码的时候,符号会重名,这种时候需要对HAL名称进行修正。万幸是这些修正项目往往比较规则,即使在版本更新后,一般也只需要再做一遍即可。如果希望更加一劳永逸的办法,建议了解coccinelle。pinctrl
)。一般情况下,我们对引脚的处理仅仅局限在某一个系列的兼容,然而在zephyr
项目中,我们需要对整个供应商的引脚IP进行描述。并且,zephyr
项目一般不允许手动修改这些描述,因此制作一个脚本程序是必要的,例如:hal_gigadevice: gd32pinctrl.py
。zephyr
模块,根目录应当包含zephyr
文件夹和module.yml
文件。这些文件的修改可以参考west
工具的说明。谈论了很久的移植,最后来聊一下产品的开发。本节将简单的说明下
zephyr
应用开发的方式,并做一个简单的逻辑分析仪。为了简单起见,本次没有采用out-of-tree
的开发方式,而是将代码放在了app
文件夹内。
基于这两个工具,我们实现逻辑分析仪的技术准备就基本完成了。
为了获得更高的采样速度,需要在APP层级重新定义端口驱动,以绕开zephyr的IO驱动,较少操作系统抽象造成的性能损失。
sample
文件夹下有大量例子,可以简单的复制出来,作为我们开发的基础。由于突如其来的疫情,被迫在宅工作。
匆忙中从公司拿了IAR的功能安全版本的加密狗回家,但是有的同事拿的是普通版本的IAR,为了确保大家环境都OK,所以只能无奈破解下以便确认工程正常。简单来说,和之前破解IAR CCRH的逻辑类似。
只记录破解方法,不提供破解结果。
这一步直接跳过吧,遍地都能搜索到。
然后新建工程,编译得到错误:The generation feature is not of version 18.
test - Debug
Reading project nodes...
main.c
Fatal Error[LMS001]: License check failed. Use the IAR License Manager to resolve the problem.
The generation feature is not of version 18.
Total number of errors: 1
Total number of warnings: 0
Build failed
The generation feature is not of version 18
X
跳转至调用处修改jge
为jl
之前在RH850编译器破解时候有修改LicenseInfo.exe
和rh850sim.dll
。
估计IAR ARM也是一样逻辑,不过这两个模块我暂时用不到,能试着编译成功就行了。
复习下基础知识
todo:9/4
todo:9/4
todo:9/5
todo:9/6
todo:9/7
todo:9/8
todo:9/9
请注意,本文提供方法基于zephyr OS制作,由于目前zephyr项目的USB子系统处于大规模重构状态,所以本方案不受zephyr正式支持。详细请参考:
https://github.com/zephyrproject-rtos/zephyr/pull/46862
目前,我们有许多MCU项目利用USB协议与PC进行通信,绝大多数使用USB从机协议,随着Wifi协议的广泛使用以及速度的提升,我认为绝大多数的USB设备都可以经由网络协议而渐渐变得无线化。
但是,如果完全将协议栈转换为网络,会导致一系列兼容软件或驱动需要再次适配,较大的开发量和不明显的收益使得各大厂商在这方面进展缓慢。
本文介绍一种基于USBIP的USB设备无线化方法,希望能够推进设备线束的无线化进程。
前段时间有幸从artery公司木一川
先生处得到一片at32 demo板,正巧促使我简单的学习了一下openocd和cmsisdap。发现cmsis-dap协议很容易就可以在zephyr中引用,以获得大量开发板支持。
但是如果只是制作一个普通的dap仿真器,比较缺少挑战性,因此我决定尝试制作无线的仿真器。
最初的目标是通过TCP转发cmsis-dap协议,修改openocd以支援网络设备,但是后面我意识到这会导致windows的KEIL和IAR等IDE环境难以运用。
因此,我将目标转向USB设备的网络访问,因此了解了USBIP协议,并且偶然发现zephyr OS中对USBIP是有部分实现的,我只需要简单的将他扩展到其他设备即可,因此便有了本文。
再次提示,本方案虽然基于zephyr OS制作,但是由于zephyr OS的USB subsystem处于大规模重构状态,所以不受zephyr主线支持!
实现代码请参考:https://github.com/zephyrproject-rtos/zephyr/pull/46862
实际在下面设备中运行通过:
这里指的传统zephyr USB 设备程序(因为zephyr系统目前没有host设备,这也是大规模重构的原因)。
如果您的程序目前采用其他方式架构(可能大部分程序都是吧),您首先需要将其移植到zephyr OS。(目前USB subsystem处于不稳定状态,商业用户需要谨慎考虑)
本方案工作在UDD层,通过注册zephyr USB device驱动,并将其转换为USBIP协议。因此没有虽然没有USB硬件,但是在操作系统看来和有USB驱动是一样的。
注意:
建议创建如下application
简单使用教程
usbip list -r FEILONG-CMSIS-DAP
sudo usbip attach -r FEILONG-CMSIS-DAP -b 1-1
请参考
https://github.com/cezanne/usbip-win
有些功能可能需要使用zadig安装驱动:
linux用户应该不需要多说,参考archlinux wiki即可使用。
https://wiki.archlinux.org/title/USB/IP
在linux上使用时,如果在使用过程中,没有detach直接复位、断电等,会造成linux内核出现异常,重启后即可解决。(windows没有发现此类问题)
CMOS学习中…
去除被金属刀片切割的单晶硅片上沾染的金属
离子注入
氢气中退火处理
氧气中加热形成二氧化硅薄膜
形成超薄氧化膜
通过光照将光掩模版的电路打印在光刻胶上
高压水银灯
436nm
i线
365nm
UV光KrF
248nm
ArF
193nm
F2
157nm
腐蚀剂浸泡光刻后硅片
依靠气体辉光放电刻蚀
纵向刻蚀,精度较高
对Si衬底掺杂,改变电特性
0.13um以下
氮气约1000度加热
CVD工艺
最近总能在淘宝刷到各个厂家的电子单词卡(如下图所示),作为一名电子工程师,感觉这个小玩意作为平时的产品设计练习会是个不错的话题。
从购买上来说,个人不是很推荐,理由如下:
正式开始前,分享下我在使用的背单词组合:
淘宝的那种我也没有买实物,下面方案没有实际做出来,只从理论上判断可行性,现阶段没有实际制作的计划。
我一般认为商品的价格,成本约60%,也就是说淘宝成品成本价格在70元上下。
猜测屏幕约40元,芯片+PCB+电池+外壳+按键30元
今天花了两个小时左右,拜读了吴厚航
老师的这本书。更加系统的完善了我对于FPGA时序设计的知识体系。
书中很多算式和示例虽然没有一一钻研,但是整体项目基于平时的使用经验已经基本理解。
书中重点整理如下:
图片使用markmap制作。
如果是https的连接,可以直接跳到第二步。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
"BasicAuthLevel"=dword:00000002
把上面文件保存为 xxx.reg
,导入注册表,或
手动修改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
把
https://blog.csdn.net/kh766200466/article/details/91951568BasicAuthLevel
值改成 2(支持 http & https)
在「我的电脑」画面中右键「添加一个网络位置」,「下一步」,「选择自定义网络位置」,网络地址输入为 WebDAV 的地址,比如坚果云就是
https://dav.jianguoyun.com/dav/
,再点「下一步」,给该位置输入名称。完成后可以在「我的电脑」画面看到新建的这个 WebDAV 地址的快捷方式了。第一次进入的时候需要输入用户名和密码。
https://www.jianshu.com/p/7ba5f0756efc
直接图形化:
参考:https://sspai.com/post/47830