您尚未登录。

#1 Re: 工业芯 匠芯创 » 使用D12x这款芯片,现在遇到几个问题还请大佬指点 » 2025-03-24 21:49:01

bootloader主程序在 application/baremetal/bootloader/main.c的main函数内,通过调用console_set_bootcmd函数来执行不同介质的启动命令,这些命令在application/baremetal/bootloader/cmd文件夹内。

SDK文档的“SDK 编译”章节对Eclipse和VS Code均有描述

芯片ID读取可参考/bsp/artinchip/drv/efuse/drv_efuse.c(或bsp/artinchip/drv_bare/efuse/efuse.c)的drv_efuse_read_chip_id函数

#2 Re: 工业芯 匠芯创 » gitee上下载下来的luban-lite编译出错,是什么问题? » 2025-03-24 12:38:15

原厂那边人没有用zsh这种比较便利的shell,所以才搞了OneStep命令。并且原厂那边可能OneStep命令用得多,非OneStep命令用得少,所以容易出问题。
我用zsh,根本不需要OneStep命令就用得很便利了。另外,OneStep命令不支持zsh shell,我都懒得提了。

#3 Re: Anyui » anyUI 一款居于LVGL 的HMI 免费面代码 UI开发工具,让UI开发节省99%工作量 » 2025-03-20 21:02:26

就是重复造轮子呗,从侧面体现了lvgl开发工具的不完善,没有一个轮子是真正满意的。

#4 Re: 工业芯 匠芯创 » 新手画了个D133EBS最小系统板,请大佬们帮我找找问题?交流起来 » 2025-03-18 22:04:31

还是遵循官方的硬件指南吧:
- 高速信号(EMMC、SD卡、RMII、RGMII、USB、LVDS、MIPI、DVP) 避免跨越不同参考平面
- QSPI接口 SPI_MOSI、SPI_MISO、SPI_WP、SPI_HOLD、SPI_CLK、SPI_CMD需等长约束(长度差建议不超过20mil)
- USB_DP、USB_DM需等长约束(长度差建议不超过10mil),差分对90欧姆阻抗匹配
等等

特别是USB,换层太多,还没走差分线

#5 Re: RISC-V » rv32 cpu该怎么适配rust,试着模仿写了点但编译出错 » 2025-03-18 16:13:39

rust的策略是用于替代频繁malloc/free的场合,MCU里基本都是静态(static)全局变量,所以rust无用武之地。在这里用rust,反而要搞一堆unsafe,那rust的意义何在?
FFI不是直接调用,绝大部分C/C++之外的语言都支持通过FFI调用C,像C++调用C这种才叫直接调用。FFI很繁琐的。
SDK代码质量差的是小众芯片厂,那么rust社区一般也不支持该小众芯片。

#6 Re: 8051/STC8/AT89C51/N76E003 » 【愚人千虑】C51 编程中的常见陷阱 » 2025-03-18 15:36:00

这不是编译器的问题,而是MCU资源太少的问题。所以8051这种MCU逐渐被ARM、RISC-V这些32位MCU替代。

用低资源MCU做开发是种很悲催的体力活。
本人十多年前用过那种OTP ROM或者Mask ROM的非Flash(不能在线调试只能仿真调试),没有C编译器只能写汇编、汇编之下还没有除法指令的8位MCU时深有体会。

建议不要找这种用低资源MCU的岗位。

#7 Re: 工业芯 匠芯创 » luban-lite的SDK使用IDE开发 » 2025-03-18 11:04:43

regbbs 说:
海石生风 说:

luban-lite是RTOS,上了OS一般都用串口调试,很少用JTAG调试了。思维要转变。

你这就是搞笑了,keil+rtx,用jtag调试不方便吗?有些数据需要查看然后手动修改看逻辑运行结果等,你也用串口?

很奇怪吗?!我裸机开发也只有初期搭最小系统才JTAG调试,绝大部分情况用串口调试。因为搞了类似RT-Thread那样的串口命令解析器。

想测什么功能就写一个单元测试的串口命令,这才是符合软件工程的开发方式。RTOS、嵌入式Linux上都有的串口终端可不是白搭的。
如果不理解串口终端、单元测试的意义,还请不要理会我的发言。

#8 Re: RISC-V » rv32 cpu该怎么适配rust,试着模仿写了点但编译出错 » 2025-03-17 16:12:05

rust太复杂了,在MCU上写rust跟写C++差不多;
MCU上一般是用静态内存分配,用不了rust内存管理的强项;
不能直接调用MCU厂商提供的固件C库,只能用开源社区的库,代码质量反而无法保证;

所以MCU上的rust生态不可能会壮大,最多业余玩-玩而已。

#9 Re: 工业芯 匠芯创 » luban-lite的SDK使用IDE开发 » 2025-03-17 11:18:23

luban-lite是RTOS,上了OS一般都用串口调试,很少用JTAG调试了。思维要转变。

#10 Re: 工业芯 匠芯创 » 关于GUI工具的选型建议 » 2025-03-11 18:29:56

TI 的GPMC吗?跟PBUS是差不多的东西吧

#11 Re: 工业芯 匠芯创 » D133EBS这个芯片性能如何?跟STM32哪款芯片对比呢? » 2025-03-11 15:31:37

STM32的开发工具是好用,但芯片配置上有些地方要弱于国产的, 各有千秋,按需求选型吧。STM32目前没有类似D13x这样集成DDR内存的芯片。

D13x的指令效率稍优于cortex-m4, 但主频是主流cortex-m4芯片的2倍,所以指令性能是主流cortex-m4芯片的2~3倍,但要弱于stm32H750。

#12 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 这个 jlink v11 如何? » 2025-03-05 14:47:24

JLink怎么可能是仿真器!?那是调试器。

仿真器是那种MCU的ROM不是Flash而是OTP或Mask。OTP只能烧录一次;Mask不能烧录,只能将程序做在芯片的光刻掩模上。开发时不能像Flash MCU那样在线调试,只能通过FPGA之类的可编程器件去模拟MCU内核指令即对MCU进行仿真调试。这个FPGA板子才叫仿真器,通常由MCU原厂制作并带个壳子。

#13 Re: 8051/STC8/AT89C51/N76E003 » 请教,avr单片机例程,不明白这个先乘1000再除1000有什么作用。 » 2025-02-24 11:52:01

他是为了保留括号,两种方法都可以。如同进门迈左脚还是右脚,没啥好讨论的。

#14 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » ArtInChip D21 基于 DRM 适配 LVGL V9 » 2025-02-19 11:36:52

我评估过D21 Linux SDK跑AWTK demo,发现开不开G2D其CPU占用跟帧率都差不多。而G2D需要占用非常多的内存,于是直接把G2D关了,跑一般UI应用也是很流畅的。所以一般来说,跑方方正正的绘图UI,不开G2D足够了。

至于AWTK这边G2D的性价比低,不知是AWTK上的图形加速有问题还是其它,就得而知了。

#15 Re: 全志 SOC » 触摸屏提示音 » 2025-02-16 14:25:45

调用QApplication对象的installEventFilter()函数将filter对象安装到app的事件过滤器,filter对象实现eventFilter()函数以处理触摸事件

#16 Re: 工业芯 匠芯创 » Luban-lite rt-thread系统 在SCons4.5.2环境下编译错误的解决办法 » 2025-02-08 10:01:30

方法二改法不太妥当。新版本下,Env.get函数返回的是deque、group.get函数返回的是list,再者不能用加号来组合。最好按下述修改:将deque转为list

diff --git a/kernel/rt-thread/tools/building.py b/kernel/rt-thread/tools/building.py
index 24bcf5cc..cf329981 100644
--- a/kernel/rt-thread/tools/building.py
+++ b/kernel/rt-thread/tools/building.py
@@ -779,8 +779,8 @@ def DoBuilding(target, objects):
             CFLAGS = Env.get('CFLAGS', '') + group.get('LOCAL_CFLAGS', '')
             CCFLAGS = Env.get('CCFLAGS', '') + group.get('LOCAL_CCFLAGS', '')
             CXXFLAGS = Env.get('CXXFLAGS', '') + group.get('LOCAL_CXXFLAGS', '')
-            CPPPATH = Env.get('CPPPATH', ['']) + group.get('LOCAL_CPPPATH', [''])
-            CPPDEFINES = Env.get('CPPDEFINES', ['']) + group.get('LOCAL_CPPDEFINES', [''])
+            CPPPATH = list(Env.get('CPPPATH', [''])) + group.get('LOCAL_CPPPATH', [''])
+            CPPDEFINES = list(Env.get('CPPDEFINES', [''])) + group.get('LOCAL_CPPDEFINES', [''])
ASFLAGS = Env.get('ASFLAGS', '') + group.get('LOCAL_ASFLAGS', '')

for source in group['src']:

#17 Re: BLDC电机驱动 » 直流无刷电机电动工具柔性刹车 » 2025-01-24 21:43:56

panhaojie 说:

请问大佬,刹车电阻的选型有什么讲究吗?

要根据电机的电压和制动功率来选型

#19 Re: 全志 SOC » 8.8元的 ML307R-DL 4G CAT.1 模块 » 2025-01-16 10:13:16

bigzhu 说:

牛逼,好奇怎么做到这么低的价格?光材料成本都不止吧

4G CAT.1其实就跟NB-IOT模块差不多了,后者也是基于4G网络的,差不多是这个价。

#20 Re: BLDC电机驱动 » 步进电机驱动 » 2025-01-15 22:59:03

转速快了之后是不是出现丢步?可能是电机扭矩不够,可以提高电机的驱动电压或更换扭矩更大的电机。

#21 Re: 工业芯 匠芯创 » 求 D211 luban_lite mmc镜像生成配置文件或方法 » 2025-01-15 15:16:34

我之前试过是可以的,需要修改Flash设备类型及额外一些配置,参见这里:

https://whycan.com/t_11354.html

#22 Re: 工业芯 匠芯创 » D133开发板立创衡山派更换SPI NAND后无法输出图像 » 2025-01-15 15:11:36

启动时有错误:"Failed to get mtd config",应该是分区配置有问题

#23 Re: 全志 SOC » 全志f1c100s可以用于工业级应用吗? » 2025-01-14 12:09:53

本站这么多人用全志的芯片却没人回复,说明拿全志做工业级的很少。

#24 Re: Cortex M0/M3/M4/M7 » 稳定的jlink推荐 » 2025-01-11 15:34:36

不知是谁带坏了风气,总想把调试器做低成本而不是做稳定,导致x宝上的调试器特别是DapLink普遍都不稳定。

#25 Re: 工业芯 匠芯创 » d122xx 类型产品有计划移植ardunio开发嘛 » 2024-12-31 17:14:13

真的有人拿arduino来做产品么?总感觉这东西达不到产品级要求,不过拿来做些玩具、搞下电赛是不错。

#26 Re: BLDC电机驱动 » 直流无刷电机电动工具柔性刹车 » 2024-12-31 11:58:53

也可以加入反向扭矩来实现刹车,控制反向扭矩的大小应该就可以控制刹车的柔和度

#27 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-12-27 19:00:20

经测试,同样的板子跑AWTK官方的demoui,在Linux下没开G2D都比RTOS下开G2D的跑得流畅,此时在Linux下没感觉有明显的卡顿。
看来确实时是RTOS的文件系统性能太差了。

跑Linux 1.2.7 SDK 里的AWTK demo出现错误:in aic_cma_buf_malloc, ioctl() failed! errno, heap_fd = 5, size = 2457600,故测不了Linux下开G2D的情况。
希望官方能尽快把这个BUG修复好。

#28 Re: 工业芯 匠芯创 » git pull同步贵司git仓库经常出现“致命错误:拒绝合并无关的历史” » 2024-12-27 14:24:47

正在尝试将基于AWTK的UI软件从RTOS SDK切换到Linux SDK,发现Linux SDK 1.2.7版本的内置AWTK demo跑不起来。
然而之前因为git pull不能成功,只好删除之前的再重新git clone。然而想回滚到上一版才发现上一版的历史已经没有了,最近的只有1.2.3

这样管理git仓库屁用没有!还不如直接将各版本打包,公布其下载链接算了。

#29 Re: BLDC电机驱动 » 直流无刷电机电动工具柔性刹车 » 2024-12-27 11:26:39

电机的电子刹车其实就是停止电机供电并进行续流,那么续流有两种方式:一种是你现在这种通过电机内阻续流,另一种是在外部并入一个由MOS管控制通断的刹车电阻。
第二刹车方式应该可以减小噪音。

#30 Re: 工业芯 匠芯创 » git pull同步贵司git仓库经常出现“致命错误:拒绝合并无关的历史” » 2024-12-26 20:56:19

aozima 说:

fetch下来看看,应该是仓库里面强推了新版本,而不是在原有基础上更新的。

Linux SDK仓库的历史只剩4条了,明显是为了减小体积而手动删除的。根治体积太大的问题,还是应该按我上面的方法解决。

#31 工业芯 匠芯创 » git pull同步贵司git仓库经常出现“致命错误:拒绝合并无关的历史” » 2024-12-26 16:48:29

海石生风
回复: 3

因为仓库体积太了,过一段时间就执行“存储库 GC ”导致很多历史被删除?这样用户不好同步呀。

解决仓库体积过大的治根的方法应该是将源码、工具链、预编译二进制包分开到不同的仓库。

现在git仓库过大,超过了1GB,导致非付费gitee用户根本就fork不了源码,从而不能在gitee上进行后续开发的托管。

#32 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » lcd屏幕模组胶粘可靠性 » 2024-12-26 16:05:35

你买的是带显示屏的开发板吧。除非是单色lcd屏或串口屏产品,正经的彩色显示屏不会带PCB

#33 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » lcd屏幕模组胶粘可靠性 » 2024-12-21 17:29:04

不是贴胶的,是通过LCD金属外壳卡住PCB。贴胶久了必定会脱落,不牢靠。

#34 Re: 工业芯 匠芯创 » D21x 的UART的最高速度到底是多少? » 2024-12-21 00:18:15

@gpfrank
D21x UART的字符超时中断就是你说的idle中断

#35 Re: 工业芯 匠芯创 » D133挂载文件失败 » 2024-12-13 21:59:59

rodata文件系统挂载跟luban-lite/target/d13x/<电路板>/pack/image_cfg.json和menuconfig里的配置(Application options  --->Using File System Image 0)都有关系

#36 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-12-10 11:33:08

astankvai 说:

@ArtInChip
目前的很多DEMO都是基于LVGL8的, 包括 USB_OSD_DEMO.

吐槽下LVGL,它的API这么多年了都稳定不下来,几乎每年增大一个大版本号。这看似是发展快速,实则是核心设计有问题,一直稳定不下来。

#37 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 基于LVGL的嵌入式声明式UI框架zdec略有小成! » 2024-12-07 13:07:42

今年年初起的这个项目至今都有任何进展,是因为还有很多细节一直没有搞定。并且LVGL的API一直都不稳定,单单是搞其API绑定层都要不少精力。
因为Zig基本上可以直接调用C,故放弃API绑定层的思路,直接在框架内调用UI库的C接口,并将框架转为MVVM。
MVVM框架本身就规定好了View跟Model的绑定规则,非常适合声明式UI框架。

目前已经基本在awtk-mvvm上添加实现了zig语言支持:https://gitee.com/ufbycd/awtk-mvvm-zig-example,在zig上实现Model要比C/C++方便很多,便捷性几乎跟javascript的差不多。
下一步,将用zig元组替换xml来实现View声明,即实现一个zig的MVVM框架:zig-mvvm
再下一步,将zig-mvvm框架推广到其它UI库,如LVGL等。

因为业余自由时间不是很多,一天至多只能抽出两三个小时,也是随缘更新。

#38 Re: ST/STM8/STM8S/STM8L » STM32 M系列的单片机怎么样才能驱动MIPI屏(ST7701) » 2024-12-06 17:04:07

与非门 说:
hexenzhou 说:

有RGB转MIPI的转换芯片,如:LT8918!

官网提供的规格书就两页,应用起来困难

这种冷门芯片都是这鸟样。建议用串口屏,简单、实在。

#39 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-12-04 17:18:46

@kakatoo
怀疑是RTOS的文件系统性能不太好导致,准备切换到Linux SDK看下是否有改善。RTOS平台还是建议用LVGL

#40 Re: BLDC电机驱动 » 有专门针对步进电机的MCU芯片方案么? » 2024-11-28 20:19:25

@244141084
步进电机转速过了1000RPM没啥意义,此时扭矩太小,带不了载。若真有高转速需求,则不应该选步进电机。

#41 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-11-26 15:56:06

ArtInChip 说:

@海石生风

不是的,等10月份吧,会发布的。

你说的是AiUIBuilder吗?现在11月底咯,何时发布?

#42 Re: BLDC电机驱动 » 有专门针对步进电机的MCU芯片方案么? » 2024-11-26 13:33:19

244141084 说:

大佬步进电机8个mos怎么做弱磁控制啊,有没有相关教程啊

弱磁控制用于高转速场合吧,步进电机跑不了高转速。提高步进电机驱动效率主要靠电流闭环或力矩闭环驱动方式。

#43 Re: ESP32/ESP8266 » 关于SIMD如何学习的文档 » 2024-11-22 11:37:48

MCU芯片或内核原厂一般都会封装好C接口,比如Cortex-M4/M7的SIMD指令封装在CMSIS软件包的cmsis_gcc.h(ARMCC对应的似乎是cmsis_armclang_lit.h)里。
一句话,找到官方资源即可。

#44 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » AWTK 开源智能串口屏方案发布 » 2024-11-11 10:13:29

我用AWTK有一两年了,只要在awtk.zlg.cn网站保持登录就会持续发放LIC。
不过我不怎么用AWStudio,实际项目都是手写UI描述文件XML,特别是用了MVVM的情形。即使是手写XML肯定也比LVGL好用,LVGL现在才开始搞UI描述文件。

如果对MVVM感兴趣,可以关注我这几天的研究成果,用zig写MVVM应用,利用zig的泛型/反射特性直接从Model构建出View-Model:
https://gitee.com/ufbycd/awtk-mvvm-zig-example

#45 Re: 工业芯 匠芯创 » d133裸机如何进行中文显示(不用lvgl) » 2024-11-01 17:45:56

海绵宝宝 说:
海石生风 说:

你的显示屏是单色点阵LCD吧 
单色LCD显示用的是位图,用字体取模软件取出的字模就是字符的位图,将位图显示到LCD即可。英文、汉字的做法都一样。

如果是RGB呢

把一个字体当作一张图片来显示即可,彩色字体取模其实就是取它的图像。

不过彩色屏下建议还是用UI库,UI库有显示缓存优化处理,要比手动显示图片的效率高。

#46 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 以太网口出的信号,大家是用什么设备检测的?直接电脑ping? » 2024-10-31 13:08:53

示波器 + 差分探头,调节示波器的扫描周期与以太网信号同步时就会看到眼图,眼图越干净说明信号质量越好。

#48 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » c++ 11 编译代码 条件变量阻塞状态 wait失效 » 2024-10-24 15:24:47

既然怀疑编译器。那它啥版本?哪来的?换过编译器没有?

#49 Re: 工业芯 匠芯创 » D213ECV 使用 Aiburn 无法烧录 » 2024-10-22 15:22:49

可能是USB线材的问题,我在linux上开虚拟机跑windows来烧录都很稳定

#51 Re: 工业芯 匠芯创 » 请教下Linux下研发的工具和各种文档 » 2024-10-17 13:05:43

linux sdk还没怎么研究,最好找官方技术支持

#52 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 请教rtt目录下的menuconfig.py和python库里的menuconfig.py名字冲突了,如何解决呢? » 2024-10-14 17:02:24

也可用python -m venv 为sdk单独创建一个的scons运行环境,不要将其它软件安装到这个环境即可。

#53 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 请教rtt目录下的menuconfig.py和python库里的menuconfig.py名字冲突了,如何解决呢? » 2024-10-14 14:31:17

将sdk里的python脚本目录添加到环境变量PYTHONPATH,import时PYTHONPATH的优先级高于site-packages

不过建议,如果site-packages/menuconfig.py相关软件不是很重要,最简单的方法还是将其删除。

#54 Re: 工业芯 匠芯创 » 请教如何定位D133程序崩溃的位置 » 2024-10-12 16:42:40

目前来说比较好的手段是连接jtag调试器来调试,不然真不好找CPU异常出处。除非异常发生于系统启动阶段,此时可以打log调试。

建议官方将CmBacktrace移植到RISC-V,方便追踪程序崩溃位置。

#55 Re: 工业芯 匠芯创 » D133EBS LVGL 显示异常 » 2024-10-12 16:33:04

屏没花呀,有没有可能:显示一直都有问题,只是彩色条纹界面没有将问题显示出来而已?

#56 Re: 工业芯 匠芯创 » D133运行流程 » 2024-10-12 16:27:30

了解下RT-Thread的这个宏INIT_APP_EXPORT,就知道了

#57 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » PC 显示器的驱动芯片 » 2024-10-10 16:47:01

显示器接口都支持DDC/CI协议,走的是I2C,可以获取显示器的分辨率等信息,并可以控制显示器的亮度、色温等。

当前Linux的KDE桌面默认配置下就可以通过软件来调节台式机显示器的亮度,利用的就是DDC/CI协议

#58 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 关于 FreeRTOS 中 delay 函数的问题 » 2024-10-03 13:27:46

RTOS使用systick溢出中断的分辨率是毫秒,其计数器VAL的分辨率小于微秒。两者结合可以得到微秒分辨率的计时

#59 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » CPU,MCU,SoC 的术语使用混乱问题 » 2024-10-01 16:17:48

shiinakaze 说:

@海石生风
如果你连基本概念都分不清,确实对你来说是废话。

platform和SoC你倒是分清概念呀,无非嘴硬。懒得鸟了,浪费时间。

#60 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » CPU,MCU,SoC 的术语使用混乱问题 » 2024-10-01 12:16:51

shiinakaze 说:

@海石生风
这不就是我文章里面已经提到的东西么,还有严格来说 CPU 只是一个计算机架构中的一个抽象模型,并不是一个实际物体,文章的所有内容来自论文和 wikipedia 的说明,并非我自顾自的意想。

抓不住精髓,废话一堆,没啥鸟用。

一堆东西放在一起,你要分清本质区别,才不会乱!

#61 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » CPU,MCU,SoC 的术语使用混乱问题 » 2024-10-01 08:52:06

没有搞清名词概念及厂商为何那么叫,自然就没有把事情说清楚,不清楚就是乱。

CPU(处理器):注重处理的吞吐量指标,用于台式机、服务器等大功率设备
MPU(微处理器):注重处理的吞吐量指标,用于手机、平板等小型设备
MCU(微控制器):注重实时控制,且功耗非常小
DSP(数字信号处理器):注重数字信号处理的实时控制,是MCU的细分领域
SoC(片上系统):集成度较高的一类芯片的统称,其处理单元可以是MPU、MCU等
platform跟SoC是同一个东西,platform强调其芯片中的处理单元指标只占整体指标很少一部分

#62 Re: ESP32/ESP8266 » ESP32S3 通过USB无法烧录 » 2024-09-29 21:03:06

接触不良,要么是线、要么是接口

#63 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » CPU,MCU,SoC 的术语使用混乱问题 » 2024-09-26 23:23:50

你这越搞越乱啦。
狗,有大狗、小狗,白狗、黑狗,肥狗、瘦狗,田园犬、斗牛犬,这么多说法。乱了吗?没乱。是因为不同叫法表达的是同一个事物的不同侧面。
之所以乱,是因为你没有搞清这些叫法的分类方法。MPU跟SOC明显是不同的分类,如同白狗跟肥狗,牛头不对马嘴!

#64 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5使能AWTK并添加C++源码后系统运行异常 » 2024-09-24 19:08:05

找到问题了!D21x是64位机,C++的初始化函数表.init_array应该是8字节对齐的,而SDK的链接脚本里弄成4字节对齐了。
按以下patch将链接脚本里的改为8字节对齐即可:

diff --git a/bsp/artinchip/sys/d21x/link_script/gcc_aic.ld.S b/bsp/artinchip/sys/d21x/link_script/gcc_aic.ld.S
index 7600a467..561a79ed 100644
--- a/bsp/artinchip/sys/d21x/link_script/gcc_aic.ld.S
+++ b/bsp/artinchip/sys/d21x/link_script/gcc_aic.ld.S
@@ -149,7 +149,7 @@ SECTIONS
*(.rodata.*)
*(.srodata*)
*(.rodata.str1.4)
-  . = ALIGN(0x4) ;
+  . = ALIGN(0x8) ;
PROVIDE(__ctors_start__ = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))

#65 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5使能AWTK并添加C++源码后系统运行异常 » 2024-09-24 16:26:12

试过将main线程栈开到4MB都一样。C++代码如下,非常简单,且只是加入编译没有在其它地方调用C++源码的函数。
发现只要用了C++的标准库就出问题,不用C++标准库就没有问题;即使能宏ENABLE_CPP_STD就会出问题

#include <stdio.h>

#define ENABLE_CPP_STD 1

#if ENABLE_CPP_STD
#include <vector>
#endif

class MyOutputStream {
public:
    MyOutputStream(){}

    MyOutputStream& operator<<(int v) {
        printf("%d", v);
        return *this;
    }

    MyOutputStream& operator<<(unsigned int v) {
        printf("%u", v);
        return *this;
    }

    MyOutputStream& operator<<(long int v) {
        printf("%ld", v);
        return *this;
    }

    MyOutputStream& operator<<(unsigned long int v) {
        printf("%lu", v);
        return *this;
    }

    MyOutputStream& operator<<(char v) {
        printf("%c", v);
        return *this;
    }

    MyOutputStream& operator<<(const char* v) {
        printf("%s", v);
        return *this;
    }

    MyOutputStream& operator<<(char* v) {
        printf("%s", v);
        return *this;
    }
};

class A {
public:
    A();
    ~A();

private:
#if ENABLE_CPP_STD
    std::vector<int> vi;
#endif

    MyOutputStream cout;
};

A::A()
{
    cout << "A init\n";

#if ENABLE_CPP_STD
    vi = {1, 2, 3};
    vi.push_back(4);
    vi.push_back(5);

    cout << "is size:" << vi.size() << '\n';
    for(auto &i: vi) {
        cout << i << ", ";
    }
    cout << '\n';
#endif
}

A::~A()
{
    cout << "A deinit\n";
}

void a_test()
{
    A a;
}

#66 工业芯 匠芯创 » D21x RTOS SDK 1.0.5使能AWTK并添加C++源码后系统运行异常 » 2024-09-24 13:51:35

海石生风
回复: 3

经测试AWTK和C++源码只要不是同时使能,系统都能正常运行。但两都同时使能编译在一起运行就会进入不了main函数并出现Exception如下:

CPU Exception: NO.1
x1(ra)   : 00000000400361c6     x2(sp)   : 00000000402de558     x3(gp)   : 000000004026e530f
x5(t0)   : 000000004026fef8     x6(t1)   : 0000000000000002     x7(t2)   : 00000000000000724
x9(s1)   : 0000000040269670     x10(a0)  : 0000000000000000     x11(a1)  : 00000000000000008
x13(a3)  : 00000000402a35a0     x14(a4)  : 0000000066f25211     x15(a5)  : 401f1830000000008
x17(a7)  : 0000000000000064     x18(s2)  : 00000000deadbeef     x19(s3)  : 00000000deadbeeff
x21(s5)  : 00000000deadbeef     x22(s6)  : 00000000deadbeef     x23(s7)  : 00000000deadbeeff
x25(s9)  : 00000000deadbeef     x26(s10) : 00000000deadbeef     x27(s11) : 00000000deadbeefa
x29(t4)  : 0000000000000190     x30(t5)  : 000000000000002d     x31(t6)  : 0000000000000000
mcause   : 0000000000000001
mtval    : 0000003000000000
mepc     : 0000003000000000
mstatus  : 8000000a00007880

完整启动日志如下:

tinySPL [Built on Sep 11 2024 16:34:02]
[W] usbh_is_connected()105 usb 1 port change wait failed.
[E] main()172 Not find udisk.
qspi0 freq (input): 91636363Hz
qspi0 freq ( bus ): 91636363Hz
nftl vol: data, size 0
Selecting default config 'Luban-lite firmware'
spl read: 2549040 byte, 348034 us -> 7152 KB/s
Boot time:
108099 : Enter main
109631 : Clock and pinmux done
110143 : Console UART ready
111287 : Heap init done
114980 : Banner shown
204155 : UDISK checked
571345 : Run APP
Welcome to ArtInChip Luban-Lite 1.0.5 [D21x Inside]
Built on Sep 24 2024 13:43:04
09-24 13:45:53 I/PWM main: ArtInChip PWM loaded
09-24 13:45:53 I/touch main: rt_touch init success
09-24 13:45:53 I/gt911 main: touch device gt911 init success
[I] aic_find_panel()83 find panel driver : panel-lvds
[I] aicfb_probe()978 fb0 allocated at 0x42000040
[I] hal_ge_init()1620 dither line phys: 0x424B0100
[I] pcm1803a_init()22 pcm1803a init
09-24 13:45:53 I/PSADC main: ArtInChip PSADC loaded
[I] aic_sdmc_clk_init()548 SDMC1 sclk: 50400 KHz, parent clk 1008000 KHz
09-24 13:45:53 I/SDMC main: SDMC1 BW 1, sclk 50400 KHz, clk 400 KHz(406 KHz), div 2-62

[I] aic_sdmc_probe()665 SDMC1 driver loaded
qspi0 freq (input): 91636363Hz
qspi0 freq ( bus ): 91636363Hz
[I] spinand_info_read()473 find raw ID efaa2200
[I] spinand_flash_init()524 Enabled BUF, HWECC. Unprotected.
nftl vol: data, size 0
09-24 13:45:53 I/sensor main: rt_sensor[temp_tsen_cpu] init success
09-24 13:45:53 I/WDT main: ArtInChip WDT loaded
CPU Exception: NO.1
x1(ra)   : 00000000400361c6     x2(sp)   : 00000000402de558     x3(gp)   : 000000004026e530f
x5(t0)   : 000000004026fef8     x6(t1)   : 0000000000000002     x7(t2)   : 00000000000000724
x9(s1)   : 0000000040269670     x10(a0)  : 0000000000000000     x11(a1)  : 00000000000000008
x13(a3)  : 00000000402a35a0     x14(a4)  : 0000000066f25211     x15(a5)  : 401f1830000000008
x17(a7)  : 0000000000000064     x18(s2)  : 00000000deadbeef     x19(s3)  : 00000000deadbeeff
x21(s5)  : 00000000deadbeef     x22(s6)  : 00000000deadbeef     x23(s7)  : 00000000deadbeeff
x25(s9)  : 00000000deadbeef     x26(s10) : 00000000deadbeef     x27(s11) : 00000000deadbeefa
x29(t4)  : 0000000000000190     x30(t5)  : 000000000000002d     x31(t6)  : 0000000000000000
mcause   : 0000000000000001
mtval    : 0000003000000000
mepc     : 0000003000000000
mstatus  : 8000000a00007880

#68 Re: 工业芯 匠芯创 » D133EBS使用 » 2024-09-20 11:56:19

Gentlepig 说:

据说100脚的封装管脚特别密,不好画板还是不好加工来着。

88脚、100脚、128脚封装的引脚间距分别为:0.4mm、0.4mm、0.35mm

#69 Re: 工业芯 匠芯创 » 看到gitee有D215了 » 2024-09-18 22:27:19

soso 说:

有没有便宜点的板子,官方目前板子太贵,哈哈哈

现在的年经人呀,三四百的板子都喊贵。我以前刚毕业的时候,Linux开发板动不动都是过千的!

#70 Re: 工业芯 匠芯创 » 请教下Linux下研发的工具和各种文档 » 2024-09-18 22:03:40

其实就一个问题:烧录工具软件只支持Windows。可能是官方错认为大家都是在Windows下用虚拟机Linux做开发,实则在实体Linux下做开发的应该不在少数,MACOS也算类Linux环境。

RTOS SDK那边有Linux下的命令行烧录工具(upgcmd),但不稳定,且不支持指定分区烧录。
Linux SDK那边还没怎么研究,似乎没有Linux烧录工具。不过Linux下如果板子有网口很少在开发时直接烧录,而是通过网络共享的方式应用新固件或App,但没看到有文档介绍。板子没网口的话,也只能通过烧录来验证调试。

本人的开发环境是实体ManjaroLinux,目前用RTOS SDK做开发,SDK依赖库都能装上、源码编译无问题,唯独要时常开个Windows虚拟机来做烧录,肯定是不便利的。

#71 Re: 工业芯 匠芯创 » Linux系统驱动步进电机方案探索 » 2024-09-15 20:15:14

david 说:

找根IO线控制方向 用SPI的MOSI产生波形 事先算好了转化成SPI数据 DMA过去

确实是种办法,不过D21x的Linux驱动还是有可能支持加减速控制的,SPI这个办法应该是最后的手段了。

#72 Re: 工业芯 匠芯创 » Linux系统驱动步进电机方案探索 » 2024-09-13 17:41:36

wupaul2001 说:

或者你可以看看T113,内置异构核,应该可以实现你想要的功能

工业应用一般都要求实时控制,所以有不少MPU+MCU的多核异构芯片方案,期待匠芯能出这种方案。全志就算了,SDK都藏头躲尾的。

#73 Re: 工业芯 匠芯创 » Linux系统驱动步进电机方案探索 » 2024-09-13 17:24:57

wupaul2001 说:

外挂一个MCU吧,两块多,你要精准控制,Linux做不到的

不是成本的问题,增加控制器无论是硬件还是软件整体复杂度都增加不少。

#74 Re: 工业芯 匠芯创 » Linux系统驱动步进电机方案探索 » 2024-09-13 17:17:12

AICxia 说:

D21x本来就是面向显控一体应用的,有专门用于电机控制的PWM,可以使用这些PWM输出step/dir波形。

看了下linux sdk里的PWM驱动,跟rtos sdk一样只实现了经过多个固定频率的PWM周期后就关闭PWM的功能。但这实现不了step/dir接口的加减速控制呀,加减速控制需要每经过一个PWM周期就修改一次频率!

不过改下linux驱动还是可以实现的,目前在rtos sdk上就是改了驱动才能实现加减速控制。

也是个好消息,D21x在Linux下是可以实现步进电机的加减速控制的,只是要修改下驱动。单主控方案没问题。

#75 工业芯 匠芯创 » Linux系统驱动步进电机方案探索 » 2024-09-13 10:32:43

海石生风
回复: 12

目前手上有个带7寸显示屏和步进电机的新项目,用的是D21x单主控方案。步进电机只需控制AB点往返,但需要加减速控制,而Linux的PWM不支持细粒度控制,所以选了RTOS SDK进行开发,UI用AWTK。也是第一次用RT-Thread,但发现其代码质量和功能都要弱于Linux,后续还是打算切换到Linux,这就需要搞定Linux下的步进电机的加减速控制。

之前已经研究过播放wav音频 + 音频功放驱动步进电机是可行的,参见这里:

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

然而D21x的音频输出信号不是模拟信号而是PWM信号,是否可以参考上述方案用这个PWM实现step/dir接口的步进电机驱动?或者是否有其它更好的单主控驱动方案?

#76 Re: 工业芯 匠芯创 » AiBurn制作SD启动卡失败!什么原因? » 2024-09-04 13:05:26

gemrisk 说:

@海石生风

制作启动卡,要确认用的是MMC存储介质的固件

AiBurn上不是已经显示固件的存储介质是MMC了么?这个还不算?

#77 Re: 工业芯 匠芯创 » d133裸机如何进行中文显示(不用lvgl) » 2024-09-03 17:07:18

你的显示屏是单色点阵LCD吧 
单色LCD显示用的是位图,用字体取模软件取出的字模就是字符的位图,将位图显示到LCD即可。英文、汉字的做法都一样。

#78 Re: 全志 SOC » 三张Linux I2S声卡可以玩 5.1杜比音效吗? » 2024-09-01 17:30:46

混音、降噪等操作作得不好反而会削弱声音的立体感,因为这些操作会影响音频信号的相位,如果左右或前后两边的信号相位差过大就不能产生声像定位,从而丢失立体感。

这就是为什么由单个全频喇叭组成的低价2.0音箱会比高价的分频音箱具有更好的立体感。分频器,无论是硬件式还是软件式都会影响音频相位。

#79 工业芯 匠芯创 » AiBurn制作SD启动卡失败!什么原因? » 2024-09-01 17:01:48

海石生风
回复: 3

以管理员身份启动AiBurn,点击“格式化SD卡”操作成功,但点击“开始”后显示失败。尝试多次也一样,1.4.3版也一样。
-3.png

日志如下:

[debug] Start make bringup SDcard ...
[debug] Progress range: 0 ~  6821888

[debug] Make bringup SDcard 2 from "D:/projects/IF-100/image/d21x_if100-v1_v1.0.0.img" 

[error] Failed to get partList

#80 Re: 全志 SOC » linux 6怎么操作全志的GPIO呢? » 2024-08-30 22:52:37

你Linux用得少吧,哪个开源项目不都是这样,版本号:官网Release版本 > ArchLinux软件仓库版本 > Ubuntu软件仓储版本

ubuntu软件包一般都比较老旧,你在ubuntu上安装或编译最新版本很容易掉进依赖地狱。

另外,我看了下:官方最新版没有到3,最新的是2.1.3,ArchLinux这边是2.1.2;官方文档最新版是2.1.2

#81 Re: 全志 SOC » linux 6怎么操作全志的GPIO呢? » 2024-08-30 17:29:37

内核都已经废弃gpio sysfs了,为什么还要用?libgpiod不好用?

sysfs实际上是一个调试或配置工具,后者才对编程友好。

#82 Re: 全志 SOC » ubuntu 22.03不能显示中文是哪里不对啊? » 2024-08-28 17:17:16

@ubuntu
是pty可以认为是pts,默认情况应该支持中文。可以做以下尝试:
- 确认远程机的/etc/locale.gen文件是否有en_US.UTF-8 跟 zh_CN.UTF-8
- 将locale改为zh_CN.UTF-8
- 检测本机中文字体中否正确安装

#83 Re: 全志 SOC » ubuntu 22.03不能显示中文是哪里不对啊? » 2024-08-28 17:07:11

前提条件要说明清楚:这是tty终端还是pts虚拟终端?
tty终端默认不支持中文显示,需要对内核打补丁才能支持中文
pts可以理解为是在桌面环境内打开的终端模拟器,ubuntu默认pts应该支持中文

#84 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-08-28 16:52:19

哦,如果LCD刷新模式选择为swap_ex mode就不会因为 局部text更新而触发整屏刷新。

进一步测试发现是贴图导致刷新缓慢:如果没有任何贴图UI是比较流畅的,但只要有一个哪怕是非常小的贴图,刷新耗时就会超过100ms

#85 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-08-28 09:48:38

再次测试chart demo,可以肯定,是移植有问题:打开宏ENABLE_PERFORMANCE_PROFILE后,在demo主界面只有顶部app bar的时间在按秒更新,其它元素静止时,时间每更新一次就会有以下打印信息:

packages/third-party/awtk-ui/awtk/src/base/lcd_profile.c:322                                           
-------------------------------------                                                                  
  total_cost=490                                                                                       
  draw_image_cost=4 times=6                                                                            
  draw_text_cost=0 times=26                                                                            
  fill_cost=3 times=4                                                                                  
  stroke_cost=0 times=0                                                                                
  end_frame_cost=4                                                                                     
-------------------------------------

其中 total_cost 指的是界面刷新耗时毫秒数,这里要490ms,太离谱!
上述调试说明参见这里: https://gitee.com/zlgopen/awtk/blob/master/docs/optimation.md#%E4%BA%8C%E5%B7%A5%E5%85%B7

根据上述信息可以得出UI性能弱鸡原因:
- 局部text更新触发整屏刷新
- 整屏刷新耗时半秒

每一条都是逆天般的存在!

再细看源码,LCD显存只开了双buffer没有开三buffer,AWTK官方说三buffer可以大大提高帧率。
像D21x这样的MPU HMI芯片只支持LVGL是不够的,LVGL的中文输入都是个问题,这个问题我另外发帖说明。

#86 Re: 工业芯 匠芯创 » d122串口升级失败 » 2024-08-27 16:57:53

搞电子工程就是要假设一切皆有可能,不能有侥幸心理。

#87 Re: 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-08-26 15:00:11

按上述改动后不知为何每次编译都更新compile_commands文件,导致编译时间变长好多。于是按下述修改,改为只有添加命令行参数时才更新:scons --cdb

# compilation database
AddOption('--cdb', dest='cdb', action='store_true', default=False, help='generate compilation database')
if GetOption('cdb'):
    env.Tool('compilation_db')
    compilation_db_file_name = PRJ_KERNEL + '_compile_commands.json'
    env.CompilationDatabase(compilation_db_file_name)

#88 Re: 工业芯 匠芯创 » d122串口升级失败 » 2024-08-26 14:54:35

估计是波特率误差较大导致,要根据时钟参数计算波特率误差来选择合适的波特率。

#89 Re: 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-08-23 13:48:30

又有新发现,scons本身就可以生成compile_commands.json文件。按下述diff修改SDK根目录上的SConstruct文件:

diff --git a/SConstruct b/SConstruct
index 9750ab30..a51b0846 100644
--- a/SConstruct
+++ b/SConstruct
@@ -102,6 +102,11 @@ env['ASCOM'] = env['ASPPCOM']
# signature database
env.SConsignFile(PRJ_OUT_DIR + ".sconsign.dblite")

+# compilation database
+env.Tool('compilation_db')
+compilation_db_file_name = PRJ_KERNEL + '_compile_commands.json'
+env.CompilationDatabase(compilation_db_file_name)
+
Export('RTT_ROOT')
Export('rtconfig')

- 编译boot时会生成baremetal_compile_commands.json
- 编译rt-thread时会生成rt-thread_compile_commands.json

那么搞两个项目Configuration分别叫boot和rt-thread分别各自使用上面的json db文件就可以灵活地对boot和rtos码字时进行完满的代码补全和阅读跳转了。
_20240823_135415.png
_20240823_135454.png
_20240823_135442.png

#90 Re: 全志 SOC » T113的tina编译gtk报错 » 2024-08-23 09:40:11

T113没有GPU吧,所有没有wayland-egl, 这个是wayland众多后端中的一个。换一个后端即可,T113支持的wayland后端应该有:fbdev、DRM、X11

而wayland是gtk的后端之一,如果要用X11的话,不如直接配置gtk使用X11作为后端。

#91 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » ubuntu的备份文件如何复制到U盘 » 2024-08-20 09:46:08

Linux系统对U盘大小没有限制。你的U盘的分区格式可能是NTFS的,非最新版Ubuntu默认可能不支持此格式。
这种情况有以下解决办法:

1. 对Ubuntu添加NTFS支持
2. 升级到最新版的Ubuntu
3. 将U盘分区格式化为FAT32格式

#92 Re: 全志 SOC » 有没有tf卡座接口的sd芯片啊? » 2024-08-20 09:34:22

TF卡座封装只有单侧焊盘,没有SOP8双侧焊盘的牢固。

工业产品内置的TF卡,肯定不是主存储器,主要用来存储不太重要的内容。

#93 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » ubuntu的备份文件如何复制到U盘 » 2024-08-19 09:30:25

插入U盘-挂载U盘-复制-粘贴?
你问1+1等于几,别人都不敢回复了 yikes

#94 Re: 工业芯 匠芯创 » 52位的GTC计时器数值为什么要特意转成格雷码?根本没法用! » 2024-08-13 14:36:47

@xdlkliang
不行呀,在读取过程中产生进位,即是高低两个寄存器都已经变化了呀,那么两个寄存器都要重新读取。

所以要用do while流程来或以下的if流程来处理:

	hi = csi_coret_get_valueh();
	lo = csi_coret_get_value();

	// 产生进位的时间间隔是很长的,不可能在短时间内产生两次进位
	if(hi != csi_coret_get_valueh()) {
		hi = csi_coret_get_valueh();
		lo = csi_coret_get_value();
	}

#95 Re: 工业芯 匠芯创 » 52位的GTC计时器数值为什么要特意转成格雷码?根本没法用! » 2024-08-13 12:05:51

"把左移操作放到运算符右边"还不行吧,参照Linux SDK那边(linux-5.10/arch/riscv/include/asm/timex.h)应该改成如下才行吧:

u64 aic_get_ticks(void)
{
	u32 hi, lo;

	do {
		hi = csi_coret_get_valueh();
		lo = csi_coret_get_value();
	} while (hi != csi_coret_get_valueh());

	return ((u64)hi << 32) | lo;
}

#96 Re: 工业芯 匠芯创 » 52位的GTC计时器数值为什么要特意转成格雷码?根本没法用! » 2024-08-11 15:37:40

发现RTOS SDK里有这个API:aic_get_time_us,其实现就是读time寄存器,于是找到上面问题的原因了。

我用的芯片是D21x,其CSR寄存器time是64位的,所以此芯片应该没有timeh寄存器,只需读time寄存器即可。
那么,基本上只需两条指令就能获取分辨率为1us的时基,不错!

最后D21x上读取内核时基的函数如下,D13x等32位MCU就没那么便利了:要读取寄存器2次且需处理读取过程中的进位情况

static inline uint64_t _read_csr_time(void)
{
    uint64_t value;

    __asm__ __volatile__ ("csrr %0, time\n\t"
            : "=r" (value) :
            : "memory");

    return value;
}

PS:RTOS SDK里d13x、d12x等读取系统时基的函数 aic_get_ticks,没有处理读取过程中可能出现的进位情况(读取时低32位寄存器发生32位进位),是否是一个BUG?!

u64 aic_get_ticks(void)
{
    return (((u64)csi_coret_get_valueh() << 32U) | csi_coret_get_value());
}

#97 Re: 工业芯 匠芯创 » 52位的GTC计时器数值为什么要特意转成格雷码?根本没法用! » 2024-08-11 10:31:59

@xdlkliang
感谢解答。我上面的需求说法有误,我要的是分辨率为1us,精度是us级(10us左右)的时基计时。
我测试了第二种方式,发现读取timeh寄存器时会再现cpu异常。寄存器读取函数如下:

static inline uint32_t _read_csr_time_lo(void)
{
    uint32_t value;

    __asm__ __volatile__ ("csrr %0, time\n\t"
            : "=r" (value) :
            : "memory");

    return value;
}

static inline uint32_t _read_csr_time_hi(void)
{
    uint32_t value;

    __asm__ __volatile__ ("csrr %0, timeh\n\t"
            : "=r" (value) :
            : "memory");

    return value;
}

RTOS SDK 1.0.5下经测试读寄存器time没有问题,读寄存器timeh时出现cpu异常:

CPU Exception: NO.2                                                                                                                                                                                               
x1(ra)   : 00000000400338b8     x2(sp)   : 000000004022d2c8     x3(gp)   : 00000000401ba318     x4(tp)   : 00000000deadbeef                                                                                       
x5(t0)   : 00000000401bbef8     x6(t1)   : 0000000000000001     x7(t2)   : 00000000deadbeef     x8(s0/fp): 0000000000000006                                                                                       
x9(s1)   : 00000000400bb7e0     x10(a0)  : 0000000000000001     x11(a1)  : 000000004022d2e8     x12(a2)  : ffffffff00000000                                                                                       
x13(a3)  : 0000000040223228     x14(a4)  : 0000000000000000     x15(a5)  : 0000000000000000     x16(a7)  : 0000000000000009                                                                                       
x17(a7)  : 0000000040223228     x18(s2)  : 0000000040223222     x19(s3)  : 0000000040150570     x20(s4)  : 00000000401829f8                                                                                       
x21(s5)  : 0000000040150900     x22(s6)  : 000000004015bd28     x23(s7)  : 00000000401c2400     x24(s8)  : 000000000000000d                                                                                       
x25(s9)  : 0000000040223222     x26(s10) : 0000000040222dd0     x27(s11) : 00000000deadbeef     x28(t3)  : 0000000000000022                                                                                       
x29(t4)  : 000000000000005c     x30(t5)  : 000000000000000a     x31(t6)  : 00000000deadbeef                                                                                                                       
mcause   : 0000000000000002                                                                                                                                                                                       
mtval    : 00000000c8102773                                                                                                                                                                                       
mepc     : 00000000400bb7f0                                                                                                                                                                                       
mstatus  : 8000000a00007880

什么问题?

#98 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-09 17:51:00

另外一个值得注意的是rt-thread第三方包的代码质量很一般。

比如目前用到的Third-party packages里的beep和at24cxx的代码质量一般,使用前要优化下才能放心用。

#99 工业芯 匠芯创 » 52位的GTC计时器数值为什么要特意转成格雷码?根本没法用! » 2024-08-09 14:59:53

海石生风
回复: 9

想用GTC实现1us精度的时基计时,搞完才发现这玩意是格雷码的!格雷码转自然码要耗费几十上百个指令周期,即根本实现不了微秒级精度。

格雷码用途何在?!

#100 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-09 14:47:04

luban-lite的驱动分了三层,从上到下分别是:rt-device、drv、hal。大部分情况rt-device驱动即能满足要求,但也可以配合使用drv或hal驱动,后者就是你所说的标准mcu。类似于STM32的HAL和LL驱动混用。

比如我就对pwm的drv驱动稍做修改以添加中断处理函数,从而实现STEP/DIR接口的步进电机的梯形加减速控制。原驱动已经比较完善,改动不大。

这就是我为什么D21x的片子依然跑RTOS而非Linux的原因,OS驱动完善的同时也可以当MCU用。

#101 Re: 工业芯 匠芯创 » RTOS SDK的Dynamic Module 添加C++编译选项失败 » 2024-08-08 13:24:34

这种开发方式除了C++支持问题,还有一个严重的限制就是不能在shell里查看app启动的线程,看来还是得放弃这种开发方式。

另外,发现即使是在SDK里写的app也不支持C++的iostream,只要一#include <iostream>就跑不起来。编译选项POSIX和C++支持均已选中。

#102 Re: 工业芯 匠芯创 » RTOS SDK的Dynamic Module 添加C++编译选项失败 » 2024-08-07 18:24:13

用nm工具看了下cpp源码编译生成的.o文件,C++运行环境似乎要以下这些符号,看来不好弄。

T _Z8cpp_testv
U _ZNSt8ios_base4InitC1Ev
U _ZNSt8ios_base4InitD1Ev
U _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
U _ZSt4cout
b _ZStL8__ioinit

#103 工业芯 匠芯创 » RTOS SDK的Dynamic Module 添加C++编译选项失败 » 2024-08-07 18:01:19

海石生风
回复: 3

按照10.1. Dynamic Module 使用指南生成的aic-dm-apps默认编译及运行测试都没问题。

在尝试测试C++编译,添加C++编译选项时编译失败:

编译配置文件 aic-dm-apps/hello/SConscript 添加 CXXFLAGS

from building import *

src = Glob('*.c') + Glob('*.cpp')
cwd = GetCurrentDir()

CPPPATH = [cwd]
CXXFLAGS = ' -std=c++11'

group = DefineGroup('', src, depend = [''], CPPPATH=CPPPATH, CXXFLAGS=CXXFLAGS)

Return('group')

编译输出:

$ scons --app=hello
scons: Reading SConscript files ...
args.outfile:  /home/chenss/projects/test/source/luban-lite/partition_table.h
scons: done reading SConscript files.
scons: Building targets ...
CXX hello/cpp_test.o
riscv-none-embed-g++: error:  -std=c++11: No such file or directory
scons: *** [hello/cpp_test.o] Error 1
scons: building terminated because of errors.

#104 Re: 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-08-02 15:33:40

更正一下,eclipse也可以使用上面所说的compile_commands.json文件,这其实是一个"Compilation Database"文件。配置方法如下图:
配置好了之后eclipse就能正确识别工程配置,并提供流畅的代码补全功能。

个人还是觉得eclispe比vs code好用点,目前vs code的git插件比eclipse的差太多了。
_20240802_153645.png

配置后展示
_20240802_153958.png_20240802_154026.png

#105 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-07-31 22:30:10

ArtInChip 说:
xiaoxin7 说:
ArtInChip 说:

@海石生风

有几个方面的原因,我也不能说AWTK不好:
1. 新的SDK1.0.5对QT、LVGL更好。
2. 我们有新工具的计划


AWTK后续还会适配嘛?

个人角度出发,我比较喜欢用新工具。

你所说的新工具是指QD-Plus、inoneGUI这两?

稍微看了下,两个都是国内公司做的,都深受Windows影响,UI库里的API都透着浓浓的MFC的味道。

个人不看好(个人喜好)。

#106 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机IO如何控制24V正输出? » 2024-07-28 17:25:54

20kΩ电阻和100nF电容的RC常数是2毫秒,且导通阻抗RDS在VGS(th)附近的变化是剧烈的,这对导通积热的影响可以忽略吧。
驱动容性负载导通时的瞬时电流超过最大漏极电流,这个风险是否可以忽略?
_20240728_172256.png

#107 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机IO如何控制24V正输出? » 2024-07-28 15:23:58

xuqm 说:

@海石生风
开关时间变长,电压电流重叠区域变大,开通损耗变大,大到超过EAS,MOS会损坏,还有,有时候只考虑开通那一段忘了考虑关断那一段,那个是靠电阻上拉,如果阻值比较大,电容大了关断会很慢

假设这个说法成立的话,那么如果VGS一直等于或稍大于VGS(th),是不是也会损坏MOS?

#108 Re: 全志 SOC » V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写 » 2024-07-28 12:26:13

提示出错的语句为f'{x}'语法,这是python3.6起才支持的语法,很可能反而是python3没有安装。

#109 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机IO如何控制24V正输出? » 2024-07-28 10:16:00

saub 说:
海石生风 说:

PMOS开关电路,很常见呀。不过要注意VGS数值不要超过12V
https://whycan.com/files/members/1798/屏幕截图_20240722_122744.png

这个电路有问题,这个GS上并一个这么大的电容,这个PMOS大负载的时候分分钟烧掉

GS并联电容是为了减小驱动容性负载导通时的瞬时电流,使其不超过MOS管的最大漏极电流,起到保护作用。实在想不出哪里会烧掉。

#110 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机IO如何控制24V正输出? » 2024-07-26 16:12:50

saub 说:
海石生风 说:

PMOS开关电路,很常见呀。不过要注意VGS数值不要超过12V
https://whycan.com/files/members/1798/屏幕截图_20240722_122744.png

这个电路有问题,这个GS上并一个这么大的电容,这个PMOS大负载的时候分分钟烧掉

什么原因烧的?

#111 Re: 工业芯 匠芯创 » 请教,单片机一般如何保存定时采集的数据,要求长期保存,方便查寻历史记录。 » 2024-07-26 10:08:40

sqlite的一个优点是可靠性高,因为它经过了数十亿人、数十年的验证。

我在d21x rtt的nand flash + fatfs + sqlte上跑student example。它插入十万条数据耗时大概5秒,我多次在插入十万条数据的第4秒多时切断整机电源,数据库依然完好,只是新数据没有插入到数据库里而已。

其它存储方式要实现这种可靠性应该是要花不少精力的。

#112 Re: 工业芯 匠芯创 » 匠心创的芯片只有windows环境的下载工具吗? » 2024-07-25 21:55:51

目前SDK里有命令行下载工具:upgcmd,此工具也可以通过构建系统来调用(scons --aicupg)。但我在D21x上测试发现很不稳定,只下载成功过一次。

可以参见这里: https://whycan.com/t_10926.html#p98462

#113 Re: 工业芯 匠芯创 » 请教,单片机一般如何保存定时采集的数据,要求长期保存,方便查寻历史记录。 » 2024-07-24 16:20:16

是d21x rtt

耗损均衡是文件系统管理的,任何Flash的单个存储单元的寿命都是很有限的,所以都要实现均衡写入。没有文件系统的话就要自己实现均衡。
nor flash的特点是写入慢读取快,如果是写入为主、查询少就不建议在nor flash上跑sqlite。

#114 Re: 工业芯 匠芯创 » 请教,单片机一般如何保存定时采集的数据,要求长期保存,方便查寻历史记录。 » 2024-07-24 14:27:24

我在nand flash上试了下,插入一千条数据耗时80ms、插入一万条耗时500多ms。看来跑fs + sqlite还得是nand flash好点。

stu add 1000                                                                              
Insert 1000 record(s): 83ms, speed: 0ms/record
stu add 10000                                                                             
Insert 10000 record(s): 562ms, speed: 0ms/record

哦,我这是D21x,cpu主频高点

#115 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-24 11:23:33

tomyqg 说:

它的nftl套filex试试呗

这要花大精力去移植,还有不如修好uffs的编译bug

#116 Re: ESP32/ESP8266 » 乐鑫的工具链做得好吗? » 2024-07-23 17:38:40

各种不同工具的出现是为了迎合不同的需求。比如,交通工具就有很多种。

然而如果一个没有汽车驾照不会开车的人,没有领会驾考的意义就去漫骂汽车驾驶复杂,只会贻笑大方。

#117 Re: 工业芯 匠芯创 » 昆仑派D133CBS更换高分辨率屏 » 2024-07-23 16:29:16

wujique 说:

这不是电容屏吗?电容屏用tslib校正?

这里是进行触摸分辨率修改,当然可以在电容屏上用tslib。事实上,在linux下实现这个需求又不想改驱动,只有tslib这个方法。我之前测试过,tslib方案可行。

#118 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-23 16:15:47

wujique 说:

sd卡用fat
nor flash用littlefs
nand用uffs?

在真实项目中在norflash建fatfs,我觉得路子就不对。

是的,我也觉得有问题。

littlefs起初是为nor flash设计的,不过看到也有人用于nand flash,不知是否真能用于nand flash。
uffs专用于nand flash。
fatfs用于SD卡或U盘,将它作为内部文件系统就有点奇怪了。

其中littlefs和uffs都对意外断电做了优化,而fatfs意外断电很大概率会出错,所以并不适用于内部文件系统

#119 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-23 13:51:40

Fatfs data 分区是支持读写的,需要一个nftl 做中间层,配置那里不要用自动计算

加了nftl中间层 "nftl": { "data": { "size": "-" } }后Fatfs data 分区确实是可读写的

将data分区选择为uffs格式在编译时会出现以下编译错误
是因为分区太小。你可以改大试试

我把uffs分区大小改为100MB后依然出现同样的编译错误:

page_2k_block_128k_oob_64_data.fs file_size: 0x6720000 is over much than part_size: 0x6400000
scons: *** [output/d21x_d213ecv-demo-v4_rt-thread_helloworld/images/d21x.elf] Error 1

另外,littlefs是否优于fatfs和uffs?是否应该着重支持该格式?

#121 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-22 20:35:31

工业产品,稳定性是第一指标,需要littlefs或uffs这类意外掉电不容易出错的fs,fatfs不是太合适。

#124 Re: 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-21 15:33:00

进一步测试发现,只有选中FATFS格式下的auto calcuate image size选项才能成功,即不能实现一个可读写的分区。

即这SDK不能保存任何运行时数据,无法商用。

#125 工业芯 匠芯创 » D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用! » 2024-07-21 13:51:00

海石生风
回复: 13

分区表为:

    "spi-nand": { // Device, The name should be the same with string in image:info:media:type
        "size": "128m", // Size of SPI NAND
        "partitions": {
            "spl": { "size": "1m" },
            "env":      { "size": "256k" },
            "env_r":    { "size": "256k" },
            "os":  { "size": "8m" },
            "rodata":  { "size": "16m" },
            "data": { "size": "16m" }
        }
    }

将data分区选择为littlefs格式在烧录时会出现以下错误:

Firmware Component:
name:      image.target.data
partition: data
attr:      mtd;optional
Media:     SPI_NAND(2)
[E] mtd_spinand_block_isbad()124 Offset: 0x1000000 is out of mtd size: 0x1000000.
[E] nand_fwc_mtd_write()348  Write block is bad, skip it.
[E] nand_fwc_mtd_write()320 Not enough space to write mtd data

并且RTOS内mount失败。

将data分区选择为uffs格式在编译时会出现以下编译错误:

page_2k_block_128k_oob_64_data.fs file_size: 0x1080000 is over much than part_size: 0x1000000
scons: *** [output/d21x_d213ecv-demo-v4_rt-thread_helloworld/images/d21x.elf] Error 1

data分区只有在格式为fat32时才能成功挂载,此格式在意外关机时容易出现错误,不能用于商用环境中的可读写的文件系统。

#126 Re: RISC-V » 如果将D213ECV晶振从24M的换成10M的,修改什么配置能够正常运行起来啊 » 2024-07-20 18:53:39

VisionShow 说:
海石生风 说:

参照芯片手册的CMU章节修改PLL倍频和分频设置即可

估计有困难,  D213启动的设置是一个PBP文件,  这个程序是闭源的

晶振频率小导致经PBP初始化后的DRAM频率变小而已,又不是运行不了程序。在PBP之后修改PLL设定即可,有啥问题?

#128 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-07-18 17:36:18

海石生风
回复: 21

用开发板D213ECV-DEMO-V4评估,将image_manager_set_max_mem_size_of_cached_images函数参数改为16M ,UI资源写入到NAND的文件系统内,跑chart demo。

取消Don't use window animation cache选项时没有平移动画效果,造成界面切换会延迟一两秒,体验非常差!选中此选项时平移动画非常卡,也是无法商用。

平移动画开销应该不大呀,这是为何?

#129 Re: 工业芯 匠芯创 » 可否在vscode环境下只打开构建后的project目录 » 2024-07-11 17:31:24

我看了下,RTOS SDK已经支持这种需求,原理是使用RT-Thread的Dynamic Module功能实现内核与应用的分离。

相关文档在RTOS SDK文档的“10.1. Dynamic Module 使用指南”章节。

#131 Re: 工业芯 匠芯创 » 昆仑派D133CBS更换高分辨率屏 » 2024-07-08 10:52:41

@venusmomo
你要捕获触摸事件,捕获后修改触摸坐标,再重新分发触摸事件。即从事件的源头进行坐标转换,初始化时改个坐标范围没啥用。

#132 Re: 全志 SOC » D1 用主线的 linux 装了 debian lxde,rgb 屏桌面很卡,动一下 Xorg 的 cpu 占用就会非常高 » 2024-07-08 10:34:36

Xorg并不只使用opengl,它可以通过DRM来使用显卡的2D加速,sipeed流畅的原因应该是这个,它的DRM支持D1的G2D。

#133 Re: 工业芯 匠芯创 » 昆仑派D133CBS更换高分辨率屏 » 2024-07-03 17:47:37

哦,你这是RTOS环境,那简单啦,不改触摸配置,在低层触摸事件低层做分辨率转换,将小分辨率强行拉到大分辨率上即可。

#134 Re: 工业芯 匠芯创 » 昆仑派D133CBS更换高分辨率屏 » 2024-07-03 17:30:57

不是芯片或配置的问题,触摸板的分辨率是个物理参数。可以用tslib经校准后强行拉到别的分辨率,或从淘宝就可以搞到别的分辨率的板但外形尺寸不一定合适

#136 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-02 20:04:21

对比通过wayland来使用GPU会怎样?

#137 Re: 全志 SOC » 外接高速adc的问题 » 2024-07-01 11:02:19

最好用带并口的MPU,不然有点难搞。

#138 Re: Xilinx/Altera/FPGA/CPLD/Verilog » AG RV2K 调试 » 2024-06-28 10:38:53

开发环境基于Eclipse或VS Code都没有啥问题,这是当前开源且功能丰富的工具的两大主流选择。问题是PlatformIO主要面向萌新,有点能力的老鸟用这个就很不搭调。

这问题其实跟MounRiver差不多,起初MounRiver为了迎合Keil/IAR开发者的口味,对Eclispe大肆裁减,企图将Ecipse改为Keil,这引起Eclipse开发者的不满。

于是就有非社区版和社区版之分,非社区版裁掉了很多Ecipse特色的实用功能就是个开源版的Keil,而社区版则没有功能裁减只是增加了WCH家的插件。

我个人认为,作为一个面向各种资历的开发者的工具,没必要为了迎合新人而降低工具的天花板,把新人的入门引导做好即可。

#139 Re: 工业芯 匠芯创 » 请教,单片机一般如何保存定时采集的数据,要求长期保存,方便查寻历史记录。 » 2024-06-25 20:33:12

@Gentlepig
写一大串没用的,难道你就没有怀疑是你输入的命令有问题?写了一大串也没有把重要细节show出来!

#140 Re: 全志 SOC » 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平 » 2024-06-25 15:22:05

你这PWM这么久了还没搞定呀。试下在Uboot里将该PWM所处的引脚配置为输出并输出低电平,或者在Uboot里也配置为PWM但占空比设为0。

#141 Re: 全志 SOC » 使用交叉编译器编译C++文件报错 » 2024-06-24 17:34:14

建议先找个深入浅出的完整的教程来学习,如果基本概念都有弄清没就摸石头过河,不太好走。

#142 Re: 全志 SOC » 使用交叉编译器编译C++文件报错 » 2024-06-24 09:24:13

有点无语,你把ARM平台的库安装到X86系统?

#143 Re: 全志 SOC » 使用交叉编译器编译C++文件报错 » 2024-06-23 13:52:55

脑袋是清醒的么?“-I/usr/local/include ”,交叉编译你include HOST的头文件做什么?

#144 Re: 全志 SOC » 全志t113芯片烧录问题求教 » 2024-06-21 21:32:49

器件数不超过10个才叫“没有过多的器件”,你这里器件多着了,随便一个退耦电容接触不良都会导致整个系统出问题。

#145 Re: 全志 SOC » 全志v3s的PWM0引脚怎样在上电启动过程中输出低电平 » 2024-06-21 10:10:14

游侠TT 说:
4610 说:

默认是悬空吧,外部加下拉电阻了吗

没有加下拉电阻,pwm0直接连接外围一个高压包点火装置的电路,内核启动过程中引脚会输出3.3V,会把电路导通,导通时间一长可能会有把三极管烧毁的风险。

这么危险的电路竟然不加下拉电阻,胆子也太大了!

#146 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-06-20 17:44:25

ArtInChip 说:

mipi一般是竖屏,而且还要做竖屏转横屏,要双buffer。一般情况下,仪表盘还是建议用RGB 横屏,最大可以1920x1200

汽车仪表屏一般用LVDS的吧

#147 Re: RK3288/RK3399/RK1108 » 为什么瑞芯微公开资料这么少呢 » 2024-06-19 16:21:02

fj 说:

之前拿RK3588,代理回复一次至少拿20万的货才有售后

果然有大家风范,小户人家高攀不起呀!不过这20万是pcs还是RMB?

#148 Re: 全志 SOC » 自制H3开发板,加散热片才能运行,求助 » 2024-06-18 10:33:57

样板怎么能只做一片呢,要做两三片看问题是否有共性,才好判断是设计问题还是制板工艺问题。

#149 Re: 全志 SOC » lichee nano rust 交叉编译失败(依赖 libasound) » 2024-06-09 12:22:00

你弄成静态链接编译了,但libasound.so是动态库肯定链接不上呀。要么提供静态库,要么改为动态链接编译。

#150 Re: 工业芯 匠芯创 » D133 Eclipse工程在Linux系统下编译的解决办法 » 2024-06-09 11:09:44

因为upgcmd模式下的USB不是tty这种标准设备,而是自定义的USB设备。

upgcmd会根据VID和PID自动查找USB设备而无需-d选项,只有在接入了多个同类设备时才需要使用-d选项来区分。

#151 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-06-05 12:35:45

@aquasnake
你是刚通网不久吧,嘉立创有Layout服务,可以去看看要多少钱,耗不了多少流量。思想还停留在十年前,也不怕人笑话。鸟你都是浪费时间。

#153 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-06-04 09:58:14

@aquasnake 看来你对AI和围棋都一无所知啊。围棋的棋路变化超过宇宙原子总数,即使加上权重也很难通过穷举法遍历出最佳棋路。
它是通过学习棋谱和实践锻炼来提高棋力,所以才叫作人工智能。它具有实实在在的棋力,而非冰冷的算法。

#154 Re: 8051/STC8/AT89C51/N76E003 » STC32G12K128的Dhrystone性能测试 » 2024-06-03 17:33:40

32位80251?为什么不选RISC-V?后者无论性能、生态、受权、扩展都能秒前者!

#155 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-06-03 17:26:07

目前来看,硬件上的AI自动化进度有点慢。现在一块普通4层板的Layout人工费要一两千,如果AI能做这个工作,即使收费一两百都是双赢。所以这个市场不可估量,然而目前确实还没有能拿得出手的AI。
先把Layout做好吧,10年对于IT领域是个有点久远的时间长度了。

#156 Re: ESP32/ESP8266 » 乐鑫的工具链做得好吗? » 2024-06-03 14:08:39

C/C++的构建系统就这样,乐鑫SDK用的是常用的构建系统。那些只会使用Keil/IAR工具的人,其对C/C++构建的知识可以认为基本为零。
所以为会认为乐鑫的SDK恶心。

#157 Re: Cortex M0/M3/M4/M7 » 【重开旧坑】8051上的CMSIS-DAP调试器——TinyDAP开发过程记录 » 2024-05-31 16:53:42

我觉得MCU+FPGA方案性能虽好,但复杂度太高了,容易影响稳定性。性能和稳定性应该是调试器在使用体验上最重要的指标。
我觉得这两种方案比较容易实现性能和稳定性:带FPGA的MCU、先楫半导体的 HPM5331

但带FPGA又带USB HS PHY的MCU似乎没有。

HPM5331的SEI接口可以适配任意时序的串行通信协议,并且有两个SEI及USB HS PHY

#158 Re: 工业芯 匠芯创 » D133 Eclipse工程在Linux系统下编译的解决办法 » 2024-05-31 16:30:47

上面那个udev rules就是通过udev添加设备节点呀: SYMLINK+="aic0"
USB设备接入后就会自动在/dev目录下生成aci0节点。其实不一定要加这个节点,只要权限许可就可以访问了。

另外,建议多了解udev。

#159 Re: 工业芯 匠芯创 » D133 Eclipse工程在Linux系统下编译的解决办法 » 2024-05-31 11:30:10

通用USB设备默认似乎不会在/dev目录添加节点,可以通过udev来添加其节点,并随便修改权限模式为666:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="33c3", ATTRS{idProduct}=="6677", MODE:="0666", SYMLINK+="aic0"

#160 Re: 工业芯 匠芯创 » D133 Eclipse工程在Linux系统下编译的解决办法 » 2024-05-30 15:40:32

Linux里的文件权限管理比Windows严格,无论是tty还是USB设置都需要用户对其有访问权限,可以用udev rules修改设备文件的权限模式来获取访问权限。

#161 Re: 工业芯 匠芯创 » d133上电时,can总线上正好有其它设备正在发送数据,d133有很大概率报can接收错误。 » 2024-05-25 12:16:06

因为CAN规范的规定,大部分芯片的CAN外设都是差不多的。CAN收发出现错误会累计错误计数,只有当错误计数达到一定阀值才会触发bus off异常,此时CAN控制器会进入reset状态。
在reset状态下不能进行正常的收发处理,需要设置其状态到normal状态才能进行正常收发。

#162 Re: RISC-V » RISC-V代码密度相比Cortex-M差距明显 » 2024-05-23 17:27:08

参照上面SEGGER那个非常有问题的测试对比文章,我用Zig写了类似的测试源码,其中两个测试结果:

$ zig build size --release -Dtarget=arm-freestanding-gnueabi -Dcpu=cortex_m23
text    data     bss     dec     hex filename
28828      16       0   28844    70ac /home/chenss/workspace/zig/code_size/zig-out/bin/code_size
$ zig build size --release -Dtarget=riscv32-freestanding-gnueabi -Dcpu=sifive_e34
text    data     bss     dec     hex filename
31326     232       0   31558    7b46 /home/chenss/workspace/zig/code_size/zig-out/bin/code_size

跑了多个测试发现RISC-V跟ARM的代码密码其实差不多(Zig对RISC-V32的支持要弱于ARM32)
详情参见这里:https://gitee.com/ufbycd/code_size

#163 Re: RISC-V » RISC-V代码密度相比Cortex-M差距明显 » 2024-05-21 16:44:00

echo 说:

@nongxiaoming
RISC-V有AC6编译器吗?编译器是指令集和芯片的重要组成部分,没有编译器支持,MCU芯片就是块废铁。

AC6不就是Clang(LLVM)编译器,很矜贵么?!Clang原本就支持ARM和RISC-V,ARM不过是做了少量适配和优化而已。

#164 Re: Cortex M0/M3/M4/M7 » 【重开旧坑】8051上的CMSIS-DAP调试器——TinyDAP开发过程记录 » 2024-05-20 19:16:43

现在绝大部分人做调试器的方向都是错的,都是想着做低成本,而不是把东西做好。

导致现在在淘宝上买的DapLink很多都不稳定,要买多个对比实测才知道好不好用。真TM的一言难进!

#165 Re: RISC-V » RISC-V代码密度相比Cortex-M差距明显 » 2024-05-20 11:58:43

这个测试其实有问题,测试代码全部是调用math.h库函数。而不同编译器所用库是不同的,即本质上各个测试用例的测试代码并不全部相同。

#166 Re: 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-05-18 23:18:52

不过上述方法有个大问题,因为很多编译相关的宏没有设置,导致工程里的很多符号没有被eclipse识别,这样写代码时很多东西不能自动补全,极不方便。

另一方面,按理来说,重复执行 scons --target=eclipse_sdk 后eclipse应该可以自动更新工程,并且应该不会的编译问题才对。

另一种工程管理方法:用VS Code配合bear(https://github.com/rizsotto/Bear)工具就可以检索复杂工程,用法如下:

* 先安装好bear工具,ArchLinux系统可以直接安装:sudo pacman -S bear
* 配合bear构建工程来生成clang的检索文件compile_commands.json:bear -- scons -j16
* 然后使用VS Code打开工程的文件夹即可,此时所有编译时用到的文件内的符号都能自动补全
* 工程因menuconfig更新后,需要重新执行第2部的bear构建来更新检索文件

#167 Re: 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-05-18 22:16:34

_20240518_220850.png
_20240518_221142.png
_20240518_221200.png
_20240518_220928.png

测试了下,通过“Existing Code as Makefile Project”导入,并如上图配置构建。

一个完整的构建耗时10秒左右,可以接受。

#168 Re: 工业芯 匠芯创 » d133打开网口后,编译报错。 » 2024-05-17 10:04:55

复习下C语言的基础吧。只有位于BSS段的全局变量才会被自动初始化为0,而且这个初始化不是语言本身实现的,而是执行main函数之前的启动代码执行的。

#169 Re: 工业芯 匠芯创 » D133 Eclipse工程在Linux系统下编译的解决办法 » 2024-05-17 09:48:26

tomas 说:

eclipse很慢的吧,慢的受不了

自己电脑配置差或者不会用就不要乱BB。
举个简单的例子,同样的构建脚本,在eclipse内构建会比在终端上构建要快,因为eclipse对编译器的输出信息有优化。
在并行编译时,编译器输出信息到标准输出过快也是瓶颈之一。
当然了,如果你的电脑配置差,编译速率本身就慢,于是编译器输出信息没就那么快也就达不到标准输出的瓶颈,从而体现不到别人的优化。

#170 Re: ESP32/ESP8266 » 乐鑫的工具链做得好吗? » 2024-05-11 11:16:16

工具链做得不好,本质上是因为C/C++相较于rust、zig、go这些自带构建系统的语言来说其构建系统就是一坨屎。

#171 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机io检测按键输入,电路上如何设计,使可以检测是否接上按键? » 2024-04-27 11:28:25

单个开关要识别两类状态:连接器插拔状态和开关的电平状态。可以使用带插拔识别的连接器,如3脚的DC连接器,其插头插入时会将其内部的弹片顶开从而可以在电路上产生电平信号。

多了个插拔识别而已,正常需求。

#172 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2024-04-23 18:58:57

dovahiobbg 说:

现在 芯片价格回复喽 zet6 竟然只要9块钱 哈哈哈

问题是产品的周期是很长的,只要有不确定的风险存在,就很难保证在产品的整个周期内它不涨。

#173 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-21 13:37:22

echo 说:

@海石生风
等自动驾驶完全实现了,也就是AI把路上的司机取代了,再来统一硬件设计行业吧。
我自己开车也做软硬件设计,开车比软硬件设计容易多了。

你也分不清PCB Layout和电路原型设计?我上面说了一大堆都是Layout方面的AI自动化,没说AI搞电路原型设计。

#174 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-19 21:08:49

histimes 说:

我就是研究ai的,可以说,只要ai的理论体系没有根本性的突破,让ai搞逻辑类类的项目都是没戏的。不说硬件设计,看看它设计的软件,能代替人吗?只能用来查询小例子

为什么首先联想到的不是Layout?硬件设计只有电路原型设计吗?

所以说搞AI的人不懂PCB,只会下棋。

#175 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-18 22:35:06

echo 说:

先把自动布线搞到能用再说吧。二十年前的EDA软件就有自动布线了,上学的时候还研究过,后来真正入行后发现正规项目根本没人用那玩意。

十多年前那种迷宫算法跟如今的大规格神经网络不在一个层次,至于为何目前还未有拿行出手的,上面已经说了,AI和PCB这两拔人的鸿沟比较大。

但这个商机就在这里,不久的将来必然有企业跨过这个鸿沟。

#176 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-13 15:10:08

ubuntu 说:

@海石生风
有没有可能家里创在憋大招?

EDA大厂已经在搞了,但立创就不好说。

#177 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-13 15:04:09

lyg116 说:

叫ai有点吹过了,都解决简单问题行,复杂一问一个咨询厂商

AI做PCB Layout其实就是AI画图,只是规则跟正常图像的不同而已。

#178 Re: Cortex M0/M3/M4/M7 » 求教如何让MCU上电时立即halt » 2024-04-13 12:13:49

将复位引脚保持在低电平让其保持复位状态,然后再连接SWD即可。

#179 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » AI是否能统一硬件设计行业? » 2024-04-13 11:51:25

用AI去做PCB Layout,还是很有用的,但目前还没普及,应该是AI水平有限。

大概是做AI的人不懂PCB只会下棋,或者做PCB EDA工具的人不懂AI只会迷宫算法。

但在不远的将来,像PCB Layout这种烦琐的体力劳动必定会被AI替代。设计人员只需设置好约束规则即可。

#180 Re: Cortex M0/M3/M4/M7 » 单片机作为Modbus主设备定时发送固定数据,不做设备返回数据判断的话,发送和返回会不会冲突? » 2024-03-28 09:39:22

Gentlepig 说:

@海石生风
用的是rs485,一直是用一个单片机io口管脚控制/rd和de管脚的,没法实现同时发送和接收...

我还是想想办法,发送后就等待串口接收吧,或者等到超时。

那是不行。我一般只要IO口足够时都会分开控制RD和DE引脚,预留冲突检测的可能性。

#181 Re: Cortex M0/M3/M4/M7 » 单片机作为Modbus主设备定时发送固定数据,不做设备返回数据判断的话,发送和返回会不会冲突? » 2024-03-27 17:38:24

肯定会冲突,modubs没有MAC。可以参考以太网介质访问控制协议CSMA/CD,自己实现一个MAC就可以解决冲突问题了。我以前做电力线载波通信时实现过,不难。口诀如下:

发前先收,空闲发送;边发边收,冲突停止;随机延迟重试。

因为是半双工通信,可以一边发送一边接收,如果接收到的跟发送的不一致就说明总线有冲突,有冲突就随机延时再重试。

#182 Re: RK3288/RK3399/RK1108 » 为什么瑞芯微公开资料这么少呢 » 2024-03-26 18:43:59

许可协议都不遵守的就是流氓,流氓还有什么好讲的!拒之于千里之外才是正道!

#183 Re: 工业芯 匠芯创 » 请教:D13*做hmi的话效果咋样 » 2024-03-26 17:03:42

好几年没用ST的芯片了,有点记不太清了,STM32F7/H7似乎并不支持DDR RAM?

#184 Re: 工业芯 匠芯创 » 请教:D13*做hmi的话效果咋样 » 2024-03-26 16:29:25

D13x内置的内存规格为:
        64Mb,16-bit位宽,最高频率 200MHz DDR
        32Mb, 8-bit位宽,最高频率 200MHz DDR
注意,内存是DDR时序的,一周期传输两次数据,而SDRAM一周期传输一次数据。我记得,STM32F7/H7也支持DDR RAM。

luban-lite是SDK的名称,兼容RT-Thread和FreeRTOS,也支持裸机开发。目前使用SDK需要了解Kconfig和scons(也就是RT-Thread那一套)。

#186 Re: 全志 SOC » T113-S3如何将自己制作的动态库打包进镜像里的usr/lib目录下 » 2024-03-26 12:22:30

如果镜像的文件系统是ext4之类有写入功能的格式,可以挂载SDK编译生成的镜像文件,然后就可以直接复制进去了。

#187 Re: RK3288/RK3399/RK1108 » 为什么瑞芯微公开资料这么少呢 » 2024-03-26 11:23:57

凡是要签协议才能拿到SDK的芯片方案,老子都不用!“伸手党毒打”?你可知uboot、linux、buildroot、openwrt是什么许可协议?

要签协议才能拿到GPL源码?也就国内这些不知廉耻的人才能做得出来!

#188 Re: 全志 SOC » f1c100s用tf启动,根文件系统是buildroot,如何不用插拔tf卡直接更换设备树或者内核 » 2024-03-26 10:44:50

嵌入式Linux在开发阶段通常网络引导的方式启动嵌入式系统:uboot通过tftp加载mtd分区内容到内存,再通过nfs挂载位于PC端的文件系统。

f1c100s如果不能在uboot启用以太网的话,可以在板子进入Linux系统后通过网络接收内核和设备树的mtd分区内容,然后用mtd工具直接写入mtd分区(flash),然后重启。

#189 Re: 工业芯 匠芯创 » 关于GUI工具的选型建议 » 2024-03-26 10:27:51

Fomalhaut 说:
海石生风 说:
Fomalhaut 说:

刚才去slint官网看了一下,开源版本还在啊?

GPL开源不能商用

GPL可以商用,只是必须公开源代码。FSF甚至认为不允许商用的不算自由软件。

商用 等于 不公开源码!不然为何会有商业授权?

#190 Re: 工业芯 匠芯创 » RISC-V 相比ARM核,ArtInChip D211系列性能测试大解密,数据供参考。 » 2024-03-25 17:52:09

XIVN1987 说:

@海石生风

RISC-V 指令集中,P 是 Packed SIMD,类似于 ARM 处理器的 SIMD/NEON 功能,,V 是 vector 扩展,,是另一套指令集。。

哦,看来是我搞错了,P扩展是DSP+简单SIMD指令;V扩展是加强版的SIMD指令,RVV指的是V扩展,一般要高性能MPU才有。

#191 Re: 工业芯 匠芯创 » RISC-V 相比ARM核,ArtInChip D211系列性能测试大解密,数据供参考。 » 2024-03-25 15:49:18

XIVN1987 说:
海石生风 说:

D211对比A7还有一个优势,A7的NEON需要特殊的数据结构才能实现SIMD、而RISC-V的RVV不需要特殊数据结构只要给定数组就能开启SIMD加速。

可惜 D211 没有 RVV 扩展。。

确实,才发现D21x系列核心型号不带P没有RVV,D13x作为MCU却有P支持RVV。有点奇怪!?

#194 Re: Cortex M0/M3/M4/M7 » 许久没来水个帖,瑞萨RA8D1超频到720MHz,CoreMark跑出4000分 » 2024-03-22 13:40:06

XIVN1987 说:

Cortex-M7 是双发射的,,

M7 内核的 RT1170 主频 1GHz,,CoreMark 6400 多。。所以论性能 M85 应该还是不如 M7 的

发表言论前为什么不查查Cortex-M85是不是也是双发射的呢?

官方给出Cortex-M85的指标是6.28 CoreMark/MHz。相比Cortex-M7,标量运算性能提升30%、向量运算性能提升400%

#195 Re: ST/STM8/STM8S/STM8L » 新手求助stm32寄存器配置 » 2024-03-21 16:37:03

实时语法分析,在码字的时候编辑器实时进行语法分析,有语法错误就会高亮显示。

将鼠标悬停在出现错的宏上,如果编辑器找不到其定义就会提示该宏未定义。

#196 Re: 工业芯 匠芯创 » 入坑D133 » 2024-03-21 14:22:33

WhyCan_dev_pp 说:

有幸了解到这颗点屏强芯,想了解SDK如何获取,淘宝客服回复该芯片的SDK是开放的,去官网也没看到开放的资源,有了解的兄弟么?

太粗心了吧,官网的文档中心里有讲SDK的获取方式。

#197 Re: ST/STM8/STM8S/STM8L » 新手求助stm32寄存器配置 » 2024-03-20 12:28:09

新手其实应该用VS Code之类的带有实时语法分析的编辑器好点,码字的时候就能显示出错误。

这样,像楼上这种低级错误是不可能留到编译阶段的。稍微熟练之后,一般都不会在编译阶段出现语法错误了。

#198 Re: 全志 SOC » 请问,为何/dev/目录下面没有ttyUSB 相关文件? » 2024-03-18 11:32:48

检查USB转串口芯片是否支持CDC,不支持就要安装该芯片的VCP驱动。

如CH340G芯片只支持VCP驱动,那么就要安装CH341SER驱动。

#199 Re: 全志 SOC » 请问,为何/dev/目录下面没有ttyUSB 相关文件? » 2024-03-17 22:33:40

Linux默认支持CDC驱动,检查芯片是否支持,否则就需要安装厂商的VCP驱动。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn