您尚未登录。

#1 Re: 全志 SOC » T113 linux 设备树疑问 » 2025-06-05 22:07:13

存在的,这个很早就存在了,r_ccu应该是全志一些模块用的电源(协处理什么),之前在A33和A64的BSP上做电源管理的,主线我看大家都没管它。
一般也就用来控制下PL和PM管脚吧,具体点可以看大佬们的研究PRCM

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

monitor.c:19:10: fatal error: 'SDL2/SDL.h' file not found
程序没有自带SDL的库,simulator在macOS下跑不起来。
macOS也用不到mingw编译环境,可以考虑优化优化减小下体积。

#6 Re: 全志 SOC » 全志v3s,ili9341屏幕驱动求助 » 2024-12-06 09:37:42

打时序,量波形,SPI屏幕没有反馈只看白屏太正常了,之前调ili9488就遇到过有路信号时序不对白屏的

#7 Re: 全志 SOC » T113驱动mipi屏幕,过EMI的辐射超标了, » 2024-11-25 22:00:39

@smiletiger
你看看CCU部分PLL的Spread Spectrum描述就有了,不过据我近场测试来看,它对峰值基本没用,
平均值倒是下降不少,不晓得准峰值会不会好点。你可以试试,分享下。

#8 Re: 全志 SOC » T113驱动mipi屏幕,过EMI的辐射超标了, » 2024-11-20 09:50:39

T113也是支持展频的,至少LVDS和RGB都支持,MIPI我没试过就不知道有没有了

用近场探头扫扫,看看辐射路径呗。

#9 Re: 全志 SOC » T113 longan SDK适配T113S4卡optee » 2024-10-30 00:02:36

全志把Can驱动部分写到了optee里面,除了Can我记得Ve也在里面,不嫌麻烦可以逆向,我记得awol上有can的逻辑支持

#10 Re: 全志 SOC » 全志T113-S3启动优化 » 2024-10-08 17:11:21

还有你的只读文件系统内脚本是不有等待,你先整个空的进去看看堵塞3秒的问题还在不

#11 Re: 全志 SOC » 全志T113-S3启动优化 » 2024-10-08 17:07:31

loglevel没改对吧,你这一条日志几个ms,怎么看都是没关闭打印的状态

#12 Re: 全志 SOC » 求救! 请教全志T507的GPU怎么enable? 怎么测试? » 2024-09-28 13:14:11

我知道,我的意思是tina驱动支持了?我记得只有T527明确提到了linux的gpu支持。大部分平台全志也就只能安卓用用。

#14 Re: 全志 SOC » F133A使用SPI NAND FLASH启动报错 » 2024-09-03 22:17:59

uboot环境变量不对吧,你是不是改了什么

#15 Re: 全志 SOC » 解决全志科技A133特殊分辨率下使用GPU,导致 Qt5 OpenGL ES2程序撕裂问题 » 2024-08-09 15:38:28

有点久了,视频应该是没有了,具体现象很明显。
用qt5的webegine显示一个静态画面,只要网页没有动画,大概率会得到一个渲染中的画面,点击下鼠标就恢复了。
主动调用pandisplay是能够显示出最终画面的,当时还是觉得双缓冲哪里有问题,就在QT渲染结束的50ms后强制刷了一次屏幕。

#16 Re: 全志 SOC » 解决全志科技A133特殊分辨率下使用GPU,导致 Qt5 OpenGL ES2程序撕裂问题 » 2024-08-09 11:41:12

大佬,要不研究下A133的QT双缓冲切换问题。在静态画面下,最后一帧在缓冲内一直不显示的毛病。

#17 Re: 全志 SOC » F1C的VE寄存器不让读了吗 » 2024-08-09 09:33:03

未初始化时读版本信息都会卡死,跑飞

#18 Re: 全志 SOC » F1C的VE寄存器不让读了吗 » 2024-08-09 09:32:20

没遇到过,估计还是时钟或者SRAM配置问题

#19 Re: 全志 SOC » [请教] 如何在F1C100S上移植过FreeRTOS? GCC版本 » 2024-08-01 13:12:20

这问题论坛之前有人遇到过,我记得是tick函数实现要改下

#20 Re: 全志 SOC » 请教T113的boot0启动时间优化问题 » 2024-07-31 20:17:45

没了解过你这个场景,看起来像是用的他们的快速启动方案吧,我记得uboot是有个打印的。
默认pack不加任何参数,就是nosecure。

#21 Re: 全志 SOC » 请教T113的boot0启动时间优化问题 » 2024-07-29 20:58:47

打包的时候有个nosecure模式,默认就是

#22 Re: 全志 SOC » 请教T113的boot0启动时间优化问题 » 2024-07-29 20:56:45

可以去掉啊,这东西没有强制要求的

#23 Re: 全志 SOC » R329代码里找不到BOOT0启动打印“HELLO! BOOT0 is starting!” » 2024-07-25 23:18:43

没有问题,boot0是闭源代码,全志就没打算让你折腾

#24 Re: 全志 SOC » 编译qt5webengine,编译器挂了:aarch64-linux-gnu-g++: internal compiler error » 2024-07-25 23:15:38

web engine 需要gles库支持,但是它自己没有装载,你帮他装上就行

#25 Re: 全志 SOC » F133B DDR初始化 » 2024-06-22 13:46:16

毕竟马甲太多了,全开放没发赚钱,你这个大概率是sysconfig不对,拿到sdk没哦

#26 Re: 全志 SOC » 全志T113,uboot下l和内核启动后logo大小不一致 » 2024-06-22 13:39:22

DISP属性里面有个大小,默认会开启缩放,到了内核就不用了

#27 Re: 全志 SOC » 求最新tina sdk 可有偿 » 2024-06-22 13:38:25

D1S和T113同源的,只要内核的话你直接用D1S的就行,D1s我记得是直接开放的。
默认SDK是要花钱买还有NDA挺麻烦的。

#30 Re: 全志 SOC » F1C100S裸机移植LVGL卡屏 » 2024-03-30 21:44:20

没有中断还是触发中断就死了,如果是进去就死了,还是要排查下异常向量表。

#31 Re: Cortex M0/M3/M4/M7 » 求教如何让MCU上电时立即halt » 2024-03-30 21:39:53

没说具体型号,原因是他们有NDA协议但我不知道范围,不敢乱说。
厂商是用的国芯的片子,前面两位大佬提到的方式我在它手册里面看了下,都没有。
他们的ISP下载是可以通过类似FUSE机制关闭掉,关掉就不再有ISP功能了,不然我也不会想到这种野路子。
在默认ISP下载时后会自动关闭ISP下载功能,强制从内部NOR启动,只是在demo中提供了自己在程序中通过GPIO来恢复的方法。
但是调试不小心搞坏固件了,我确实还是第一次遇到这种情况,想常见的STM32、GD32这些都没有遇到这毛病。

#32 Cortex M0/M3/M4/M7 » 求教如何让MCU上电时立即halt » 2024-03-29 23:36:55

shaoxi2010
回复: 6

目前在调试MCU遇到一个问题,手贱吧swd的gpio功能改了,但是功能又没有开发好系统直接跑飞了。
现在上电连接jlink下载时会弹出失败,它是有两级boot的,而且启动期间swd是默认状态。
我在想一个可不可以在我初始化gpio功能前将他停下来,目前找了下没有发现相关资料,
有没有大佬可以指点下,我在想目前有两种思路,尝试把它救回来:
1. 让jlink在设备上电后用默认swd强制halt,看了看wiki没发现有相关的,都是先connect再halt的
2. 尝试让daplink实现类似功能,不知道有没有现成已经做好的方案,google了好久也没找到

#33 Re: 全志 SOC » 关于T113 VCC DARM 1.5v为什么没有用内部ldo供电的 » 2024-03-29 09:57:54

DRAM不是就是用内部ldo供电的么,人家FUSE还专门设置了逻辑针对不同片子给不同电压

#34 Re: 全志 SOC » F1C100S裸机移植LVGL卡屏 » 2024-03-28 14:10:24

先排查下是不是进异常了,再确认下tick是不是还在走,我遇到基本都是这两问题

#35 Re: 全志 SOC » {求助帖}全志A13烧录u-boot到NAND Flash不能启动 » 2024-01-26 15:54:53

你得直觉是对的,全志的spl的ecc比较特别,需要额外处理下就行

#38 Re: RISC-V » 关于ch32v003链接脚本的问题 » 2023-10-27 17:50:36

这个我之前研究过,就是C++等runtime的准备需求:
init_array/ctors:是gcc拓展__attribute__((construct))的拓展,一般还会兼职做C++的静态对象初始化。
ctors现在在很多高版本的gcc已经见不到了,init_array可以做到优先级控制,ctor会合并到init_array中
同理那两个也很清楚了,详细可以参考下newlib/newlib/libc/misc/init.c
其实如果你用高版本的gcc还能发现gcov这些也需要实现在连接脚本中
配合newlib的桩函数就可以愉快的使用baremetal c++了

#39 Re: 全志 SOC » openwrt的基于A7架构的应用ipk解压后获得二进制和相关的so,把他们放V3S的根文件系统,没执行起来 » 2023-10-11 11:44:20

你要确认你得rootfs是完整可运行的,可以用qemu-arm-static测试测试,它反馈没问题大概率没问题

#40 Re: 全志 SOC » openwrt的基于A7架构的应用ipk解压后获得二进制和相关的so,把他们放V3S的根文件系统,没执行起来 » 2023-10-11 11:42:56

肯定是有的瑟,之前安卓系统不支持glibc兼容性问题多,就是完整将rootfs打入再有init启动容器运行实现,
安卓做显示后台就是标准C++程序

#41 Re: 全志 SOC » openwrt的基于A7架构的应用ipk解压后获得二进制和相关的so,把他们放V3S的根文件系统,没执行起来 » 2023-10-09 10:56:42

容器lxc、直接chroot打包带上就行了,各跑各的环境,进程间通信应急还是可以的

#42 Re: 全志 SOC » F1C100S裸机启动慢 » 2023-09-22 15:22:33

确认下cache开了没,spi速度如何,CPU频率多少

#43 Re: 全志 SOC » 全志F1c200s开机时间问题 » 2023-09-04 09:23:06

这个太慢了,你确认过uboot的频率是不是100M哦,我没记错的话它默认用的24M时钟
从日志上看,你这uboot内核装载才4M/s的速度,远低于裸机的12M/s

#44 Re: 全志 SOC » Xfel 如何启动内核 » 2023-08-24 13:15:41

全志那个boot_package.cfg那里面有所有运行需要的数据,然后再uboot.bin的header部分有部分数据是
boot0修改的,然后部分初始化比如显示需要现在uboot初始化再到内核才能正常。
最简单的就是写个xfel分payload直接装载内核和设备树这些,尽量绕开全志的tina引导

#45 Re: 全志 SOC » Xfel 如何启动内核 » 2023-08-24 11:04:43

很明显没正对,Tina的uboot是一个打包文件需要分开解压一堆文件。可以看看boot0的代码,你得手动布好才行。
还不如直接用主线uboot启动,但是tina的linux会遇到一堆问题,非必要不建议折腾了

#46 Re: 全志 SOC » 【求助】主线A64的opengl渲染黑屏 » 2023-08-03 16:16:50

A64有mali_blob这东西啊?我还以为A64一直只有lima+mesa这组合呢

#49 Re: 全志 SOC » V3S 使用buildroot libdrm实现lvgl卡顿的问题 » 2023-06-29 12:34:27

换个内核试试,我记得当时我在f1c上测试都没有这么低,会不会是版本问题

#50 Re: 全志 SOC » 萌新发帖,自己的A33板子识别不上MMC » 2023-06-21 11:29:26

usb_bulk_send() ERROR -7: Operation timed out
这个出现在内存初始化后了,大概率在SPL里面跑飞了,你多加点打印点,检查下内存电源再试试
这个时候理论应该回到FEL模式,继续下载uboot

#51 Re: 全志 SOC » ubuntu20.04使用LiveSuit下载失败闪退问题 (寻求解决帮助) » 2023-06-05 09:35:15

你这个是虚拟机还是实体的,我这个22.04都没问题

#52 Re: 全志 SOC » 100s芯片内置的硬件定时器,配置了相关寄存器后,一直不触发中断,是哪里的问题,各位大佬帮忙看看? » 2023-05-22 15:24:12

你用timer2哇,我记得linux下面timer0是做clockevent,timer1是做clocksource吧,也就timer2没有用到了,我感觉是被修改了

#55 Re: 全志 SOC » 求助帖:F1C200S 移植RT-Thread 到1024*600LCD 该怎么修改? » 2023-04-12 15:39:56

去linux的panle-simple.c下面找个1024*600的配置就行,一般这些屏的参数区别不大,对照填进去就行了,不过我记得RTT并没有合并F1C的显示啊
https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/panel/panel-simple.c

#57 Re: 全志 SOC » tslib 校准电阻触摸屏,出现下面问题!!! » 2023-04-06 11:37:12

linux内核input内的杂项配置能看到个uinput配置,打开就行了

#60 Re: 全志 SOC » spi nand flash有什么优点和缺点呢? » 2023-03-23 14:46:51

linux 有ubi磨损这些都抽象好了,直接用就完了

#63 Re: 全志 SOC » 自定义驱动程序写入错误:“没有这样的设备” » 2023-01-18 10:24:50

这个pwm的用法不对,建议去看看内核的文档,pwm不像spi他并没有实现类bus方法,
节点写这里是没有设备的,把它放到根路径下去就行了

#64 Re: 全志 SOC » uboot配置全志v3s的LCD显示 » 2022-12-26 16:35:54

没记错的话,v3s的lcd显示是lichee修改后的,主线框架没有支持这个型号的。

#65 Re: 全志 SOC » T113现在有在DDR启动完整Linux的案例吗? » 2022-12-14 10:04:10

你按照提示关闭掉这些不需要的模块不就好了,内核启动需要TEE,注释掉那部分就行了

#66 Re: 全志 SOC » 全志v3s无法从SPI NAND FLASH启动 » 2022-12-06 09:42:58

直接进入fel肯定是boot0的格式或者位置或者校验方法不对,上面配置都是uboot配置都没到那步

#68 Re: 全志 SOC » v3s RGB 颜色不对 » 2022-11-28 22:40:41

理论上都是一个位置,看看是不是被什么复写了吧

#69 Re: 全志 SOC » v3s RGB 颜色不对 » 2022-11-22 16:38:30

edisondeng 说:

感谢!这么操作是不是重启后就无效了?可以改dts或者源码吗?

肯定是可以的瑟, sun4i_tcon.c内改下就行了

#define SUN4I_TCON0_CTL_SWAP_RB_ENABLE			BIT(23)

regmap_update_bits(tcon->regs, SUN4I_TCON0_CTL_REG,
			   SUN4I_TCON0_CTL_SWAP_RB_ENABLE,
			   SUN4I_TCON0_CTL_SWAP_RB_ENABLE);

#70 Re: 全志 SOC » 请求大家赐予我t507的开发资料 » 2022-11-20 23:08:03

T507就是A133的马甲之一吧,直接用A133的手册呗

#71 全志 SOC » 有大佬知道F1C200在linux下访问不了DRAMC数据的原因么 » 2022-11-18 10:44:16

shaoxi2010
回复: 0

最近发现一个神奇的现象,在linux下用devmem访问DRAMC区域就会发现数据不对。
比如devmem 0x1c01000 会得到0x000800c8,换下个地址也是这样的。但是如果
是在boot下时能够正常访问这个地址的,有知道为什么不?

#72 Re: RK3288/RK3399/RK1108 » RK3568 buildroot配置systemd出错了 » 2022-11-15 09:44:29

换个buildroot版本吧,我记得systemd时含有udev的确实也用不到那个包

#73 Re: 全志 SOC » start.S是用什么方式开始执行0x80000000附近代码的? » 2022-11-07 17:19:17

一般也不再start.s内吧,start.s主要就是初始化runtime运行时,一般也就保护下寄存器,初始化栈位置,初始化bss,然后就进入C环境了
一般跳转运行都在很靠后面了,具体可以参考下uboot的spl实现,jump_to_image_linux函数。

#74 Re: 全志 SOC » f1c100s lcd硬件抖动 » 2022-10-27 11:29:50

有的,不是又一堆的FRM寄存器么,那个就是。只不过de端你要用rgb888,DMA模式只支持565,不需要抖动了。同样很好奇软件抖动,你是自己写了个混合算法?

#75 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » qt公司的两个前员工又将QtQuick开发了一遍,用rust语言 » 2022-10-24 11:36:06

试用了一下,在F1C上也移植了下,感觉还是很nice原生就有DFB,但是不知道为啥如果假如select轮询后,linuxfb会出现有的timer会不触发,死循环是没这个问题的,估计还是自己的问题,总体感觉还是很不错,打印机demo也就1m左右

#76 Re: 全志 SOC » 求助:LiveSuit不弹出烧写对话框,怀疑awusb没有安装上。 » 2022-08-10 13:35:11

在高版本的linux上安装,需要手动改下代码才行,高版本GCC会把一些警告当错误

#77 Re: 上海航芯 » 大家一起来研究ACM32F4芯片 » 2022-07-10 12:22:42

@海石生风
提升慢速IO的方法用cache是没错的,因为一般SOC设计下会出现片内SRAM并非与高速总线连接的现象。
在A64做裸机内存测试就发现,其片内SRAM连接的是AHB1的总线上IO性能也低到离谱。但是同样在不开启
MMU环境下在DDR上测试反而还好些。在此时如果在打开cache,两者差距其实并不明显,确实也能说明
都是由于低速IO引起。。
AXI本身就是低延迟高带宽的片内总线,它的访问速度应该是略慢于cpu的cache访问的,但是这个针对的是
高性能CPU本身而言,其cache的是位于CPU装载单元前。参考M7的内核结构图也能看出。这部分Cache
的SRAM访问速度肯定是略快于AXI总线的,不知道我理解有没有什么问题。
WX20220710-114828@2x.png
而片内SRAM其本身也未必是个慢速设备,M7的TCM号称0访问延迟,在NXP的RT1xxxx上也是使用的片内SRAM
实现,只是通过不同配置连接不同总线,依旧可以实现低延迟的传输,看起来应该与cache同级别,这个偏题了。
i.MXRT_Peripheral_FlexRAM_block_diagram2.png
回到这个ACM32F4的芯片上,M33并没有在IP上设计cache,我也认为这个应该是SOC厂商自己加的,它应该属于
片外cache这种机制。即在原有的C-AHB和S-AHB总线上连接了一个cache,再由这个cache去控制慢速IO状态。
这个应该类似于STM32L5对外部cache的设计。而ACM32F4在SRAM的描述上提到了访问可以无延迟,所以对于
这样一个SOC的SRAM再做一个DCache确实也没什么意义。当然这也只是猜测,最好还是希望FAE能开放下这部分。

#78 上海航芯 » 大家一起来研究ACM32F4芯片 » 2022-07-09 11:55:36

shaoxi2010
回复: 5

最近在尝试ACM32F4遇到两个头大的问题,航芯的FAE估计不对个人服务,没通过只好靠自己尝试解决下。
1. CMSIS的pack内的SVD文件不带寄存器位描述,rust包无法获取到位级别,欢迎大家一起补充。
解决方案:使用svdtools对官方文件进行描述补丁,在使用svd2rust进行解析。
项目地址: https://github.com/shaoxi2010/acm32f4
点灯项目: https://github.com/shaoxi2010/acm32f4-rs
更新了基本库使用和ICACHE的反编译代码。
2. ACM32F4在文档内提到一个非常有意思的东西L1Cache,之前接触到的Cache都是在有MMU环境下,这个
不带MMU环境的Cache还是第一次见,故对其产生了研究兴趣,因为手册上没有任何地方提及到cache使用,
但在其accelerate.a中观察到其实现。
首先是当前能获取到信息:
1. L1Cache位于Bus matrix之上,也就是C-AHB连接到ICache,S-AHB连接到了DCache
2. AHB1 和 AHB2 的时钟频率一致且等于系统频率,且处理器可以以 180MHz 的系统频率无等待地访问 SRAM。
3. 并未提及eFlash和SRAM有相同访问周期,故可能有延迟。
4. 从库函数解析上看,也实现了clean、invalid方法,但是在enable时没看到DCache的逻辑。
根据上述信息可以得出几个推论:
1. 同周期访问SRAM不就是Cache的功能么,那么DCache应该不需要连接到SRAM,大概率是外部内存。
当然我也没看到哪里支持外部内存,可能是为后续产品实现准备的。
2. 不知道DCache实现了标记内存为写透还是缓存的模型,按照现有给出来的数据,SRAM等外设进行cache
感觉就是画蛇添足。感觉大概率也是外部存储区域会使用Cache,其他都不用来减少编码复杂度,期待FAE
解答下。
3. ICache部分看上去只能与ROM和eFlash相连了,这部分的Cache应能提高程序执行性能,并且并不会影响
到代码的复杂度,感觉就ACM32F4目前状态而言,打开ICache将优化指令访问性能,提高执行效率。
4. 根据前面的推导和猜测可以大致猜想到,ACM32F4的cache模型应该与stm32l5的模型非常近似,可能这就是
对标产品。不确定仅猜测,附上stm32l5对L1Cache的解释说明。
an5212-using-stm32-cache-to-optimize-performance-and-power-efficiency-stmicroelectronics.pdf

所有时钟保持下载默认状态下,不开启ICache下执行eFlash Checksum时间约10s,打开ICache后提升到约4s。
证明ICache对eFlash的程序访问提升还是相当明显的。项目工程就是点灯工程。
测试日志如下:

                                                                                                                                                
11:43:54.997 checksum code without cache :start
11:44:04.945 checksum code without cache:end 517fa2f0
11:44:04.945 checksum code with cache :start
11:44:08.556 checksum code with cache:end 517fa2f0
11:44:09.058 blink led!

3. 目前发现程序断电后,直接插入后执行时常和效率完全不匹配明显慢了很多,估计是时钟源变了,需要继续分析下。

#79 Re: 上海航芯 » 用RUST来测试下航芯ACM32F403RET7官方开发板 » 2022-07-07 17:13:26

那个是clean后从新编译速度还行,rust的硬伤挺多的,C调用在这里面很小,因为ABI的调用规则是一样的。蛋疼反而再一些奇奇怪怪的地方,航芯的SVD里没有寄存器描述,库类型系统检查的优势完全反而弄得到处都得unsafe,算下来还不如C得头文件。格式化字符串会导致容量暴涨,这个FLASH大还好,f103上还是挺难取舍得。

#80 上海航芯 » 用RUST来测试下航芯ACM32F403RET7官方开发板 » 2022-07-05 23:36:35

shaoxi2010
回复: 12

在晕哥店里捡个漏拿便宜开发板,趁现在兴致还在赶紧玩玩。由于平常使用Mac和linux环境居多,基本不在window下开发,
受海石生风大佬的帖子感觉应该可行。最近在学习RUST,不久前stable部分的组建也完善了现在用RUST开发已经不在需要
arm-none-gcc的支持可以使用llvm实现全套编译,顺便可以省下几个G的工具链。目前cortex-m下rust支持很简单,cargo-embed
可以实现管理下载编译调试一条龙,probe-rs项目也可以支持CMIS包,svd2rust可以实现基本寄存器库,配合cortex-m和
cortex-m-rt支持,点个灯还是没有问题,简单记录分享下,尝试白嫖。

1. 需要安装rust相关组建

rustup default stable #使用稳定版工具链
rustup component add llvm-tools-preview #安装llvm工具链
rustup target add thumbv8m.main-none-eabihf #安装M33标准库
cargo install cargo-embed cargo-generate cargo-binutils target-gen svd2rust #安装辅助工具集

2. 下载修改的模版到本地,在官方基础上修改为stm32f103并使用cargo-embed管理,也添加了acm32的描述文件。
可以使用CMIS的pack用target-gen生成yaml描述,具体参考probe-rs项目
已修改好项目地址: https://github.com/shaoxi2010/cortex-m-quickstart

3. 使用cargo generate生成led项目 cargo generate --git ./cortex-m-quickstart -n acm32f4-rs

4. 生成acm32f40x寄存器库信息
a.先在acm32f4-rs的同级目录下新建一个rust库,使用cargo new --lib acm32f40x创建一个lib
b.使用pack文件解压出svd文件,并将ACM32F4.svd文件拷到acm32f40x目录下
c.使用svd2rust -i ACM32F4.svd生成代码,将生成的lib.rs文件拷贝到src目录下
d.强迫症患者用rustfmt对生成文件进行重新格式化,库就算搞定了
PS:pack文件下是没有寄存器feild描述,比较坑爹,没发使用位方法,但是我看stm32是有的。。。

5. 回到led项目,将刚生成的寄存器库添加到Cargo.toml文件中

6. 其他修改参考rust的cortex-m的说明即可,可参考芯片yaml文件。

7. 在Embed.toml文件修改[default.general]下的chip = "ACM32F403RET7"

8. 写点逻辑代码编个简单的LED程序,完成。

9. 最后接上USB,连接电路板,cargo embed执行下载调试。

点灯完整项目可参考: https://github.com/shaoxi2010/acm32f4-rs
运行效果如下:

#82 Re: 全志 SOC » 全志A33使用DDR2内存问题 » 2022-05-30 17:19:22

不用的,uboot是通用的,当然前提你用的是bsp的东西才行,主线的话逆向下就行了

#83 Re: 全志 SOC » 全志A33使用DDR2内存问题 » 2022-05-30 10:49:26

有三个条件,A33的用新版本,boot0需要替换为新版本,sys_config.fex修改

#85 Re: 全志 SOC » T113使用SPINAND,增加QT环境后报错 » 2022-05-16 10:30:24

有点怀疑你是不是没开什么选项,建议你先用带ramfs得系统启动,尝试手动挂载下看看缺少什么东西不。

#86 Re: 全志 SOC » T113使用SPINAND,增加QT环境后报错 » 2022-05-13 16:25:40

看上去是设备不存在的问题,改下env的log等级看看完整的打印吧

#87 Re: 全志 SOC » F1C100S SPI-NOR 启动 修改SPI 默认的1MHZ 频率不生效? » 2022-05-07 10:56:21

1.速率这个我记得uboot得设备树还有个配置要改下
2.挂载慢这个问题应该也是jffs扫描,先排查下mtd得性能吧,确认下频率和双线是否打开的
3.随机种子这个是由于中断数量不够glibc在内核头文件较高时会阻塞get_random,三个办法:a.增加中断数量 b.修改crng内核 c.将glibc内核头文件换到3.10前

#88 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-04-29 17:48:20

我这边就简单说下大致思路吧,我感觉就是分析-验证不断重复优化就完了。
1. 常规优化部分,比如关闭uboot的delay、关闭不必要的串口打印、关闭不必要的功能,先看看基本情况。
2. 还不理想就统计各个阶段的时常,先找到消耗最大的问题点,再去排查影响。比如:
a)boot阶段的spi性能很差,也没有开启dma使用双线模式
b)内核解压缩阶段,受CPU和内存性能gzip本身就很慢但lzo压缩会快很多
c)内核启动阶段,通过初始化时间上看,spinand坏块扫描消耗很大,ubi挂载也比较慢
d)程序启动阶段,分析是卡在IO上还是卡在CPU上
3. 根据性能问题点去针对性修改,
a) boot阶段直接重写,打开cache并使用双线spi驱动加载,再使用lz4进行提前解压缩,权衡spi读取速度和解压缩速度提高空间利用率,约14M/s
b) 针对主线spinand内核架构多次的buffer,重写了spinand驱动,避免访问2字节也读一页,命令多次重发,多次memcpy,IO提升到8M/s
c) 针对ubi层级慢,使用快速挂载减少扫描,选择压缩模式到lzo,得到最佳权衡性能
d)对应用进行裁减,减少load的数量级,比如使用musl的libc,去除掉C++功能,排查调度器,将CPU尽量让给UI程序,选择一些小的UI框架提升也挺大的

#89 Re: 全志 SOC » T113-S3 RT-Thread SMP适配笔记 » 2022-04-11 13:14:50

欸,里面提到的SMP有些芯片多核是自动启动的是些啥芯片哦,能否告诉一下型号避免踩坑呢?

#90 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-04-07 14:53:17

f1c不是说控制器没有quad模式么

#91 Re: 全志 SOC » F1C100s I2C偶然失效,可能是超频导致的吗? » 2022-03-22 14:00:05

异常后能恢复?还是一直卡着了,一直卡着可以排查下波形,可以能一直被拉低了。

#92 Re: 全志 SOC » 请问D1S或者T113-S3,裸片上电后两个片内LDO输出电压分别是多少? » 2022-03-15 11:37:13

A路1.8V, B路DRAM应该是1.35V,内存初始化后会变成1.5V,你这现象先去排查硬件问题吧,估计哪里没整对。

#94 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-03-08 17:37:58

lvgl的drm驱动实现我也不是很了解,看他们描述说的是VSYNC信号的同步等待引起的,
但是按理说应该不会引起CPU上升这么多,你可尝试改小usleep值看下呢降低任务延迟看看。
CPU的值你可以去top看看,lvgl的实际值确实要比top统计的高不少,不确定它的计算标准。

#96 Re: Openwrt/LEDE/AR9331/MT7688/RT5350 » 看看大家是如何用c/c++判断程序是主动退出还是异常退出 » 2022-03-03 13:59:00

直接用waitpid捕获退出类型,检测退出返回值不是正常退出就重拉

#97 Re: 全志 SOC » 全志A10/A20 nand flash系统开发 » 2022-02-23 10:12:19

这问题很早就被解决了啊,主线的uboot已经支持了从nand进行boot,控制器这块代码也有
了,而且我记得没错内核连DMA都支持了,控制器确实有坑但影响不大。其中最大的坑确实
也和博客中说的一致,就是pagesize和ecc的问题,这个大佬们已经分享出来了。其实参照
uboot的自身文档board/sunxi/README.nand,你就可以获得一个主线带nand启动的uboot。
链接: https://linux-sunxi.org/NAND
章节:More information on BROM NAND

#98 Re: 全志 SOC » 哪位高手给讲讲怎么利用uboot将bin程序写入spi flash中 » 2022-02-16 23:05:08

就用uboot的命令就行了,用loadz从串口加载到内存,在SPINAND可以用mtd命令写进去,看你uboot支持了

#99 Re: 全志 SOC » 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3) » 2022-02-16 17:40:02

这么神奇的啊,话说RISCV的BROM在那个位置弄出来的啊

#100 Re: 全志 SOC » 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3) » 2022-02-16 16:06:00

@xboot

这个CPU之前恰巧分析过一些,当时为了删除TEE做了第二核启动的linux逻辑。
实际上启动第二核心很简单,就两个东西。中断我没看到有什么被劫持的地方,
也可能是我没找到吧。而且T113的BROM就是确实也是ARM代码开始的,听代理
说这两个die是存在差异的,所以我也不确定是不是还有RSICV的核心在里面。
一个是brom代码dump一下就能看到的入口地址,就在开头位置。
第二就是打开手册里面提到的C0_RST_CTRL,将核心1打开。
cpuboot_membase = 0x070005c4
cpuxcfg_membase = 0x09010000
参考代码如下

writel(__pa_symbol(secondary_startup), cpuboot_membase + cpu*4);

  /* Deassert the CPU core in reset */
reg = readl(cpuxcfg_membase);
writel(reg | BIT(cpu), cpuxcfg_membase)

#101 全志 SOC » 使用rust对arm9处理器进行裸机开发 » 2022-02-11 15:38:08

shaoxi2010
回复: 18

基于之前对f1c200快速启动项目的研究,抽离出基本的在arm9处理器上最基本运行代码。
适配串口后同样能在f1c200上跑起来,供大家一起研究共同进步。

git地址: https://github.com/shaoxi2010/rust-arm9

项目目标
由于目前rust官方没有提供arm9的裸机环境支持,但是本身又不想放弃f1c200这个便宜又实在的平台。
这里就单纯的抛砖引玉作用了,吸引大家一起来研究下arm9的rust开发。

代码参考来源xboot,大佬真强。
使用rust与c开发的优缺点
1. cargo的存在使得rust不用在额外学习makefile等,简化项目管理统一编译
2. rust本身提供了很多基础实现,可以很方便的使用
3. rust提供的抽象可以很直观的理解代码含义,自身命名空间有效解决隔离问题
4. rust的抽象成本非常低,异常逻辑完善,debug起来很直观
5. rust的格式化字符串消耗较大,但灵活度高,在小内存比较难控制
6. rust的内联汇编与GCC内联汇编有些许的不一样,需要一定的学习成本
实现原理
核心思想与gcc编译内核一致,只要需要rust生成代码时,去除掉允许库相关依赖,程序严格
上来讲是可以允许在裸机环境。这时我们在采用arm-none-eabi-gcc的链接功能,将程序链接
成为一个完整环境即可,即可以同时将C与RUST一同编译链接实现。
在编写程序中遇到的问题
1. 首先裸机开发需要link.lds链接文件,需要将text,data,rodata(不链接没有字符串),bss段
2. 在start的启动汇编上需要设置sp地址否则会发现程序异常跑飞,qemu反复验证
3. 启动汇编需要清理bss段,否则static变量会出问题,qemu反复验证
4. rust内连汇编切记,会引起寄存器变化一定要使用inout实现,否则变量可能会被认为不变而不会对寄存器赋值直接跑飞,反汇编
5. 对于cpu操作应当详细参考arm手册,操作cp异常也可能会导致程序卡死,cache_flush卡死,qemu联调发现
6. rust的目标armv5te-unknown-linux-gnueabi目标会使用动态链接器,如Scrt1.o、libc,需要添加-no-pie和-no-stdlib避免链接
7. unwind在裸机环境并不支持,需要关闭栈回溯功能使用profile下panic = "abort"
8. __aeabi_unwind_cpp_pr0和eh_personality方法依赖于libgcc,也是栈回溯的一部分,空实现就行。
9. 关闭mmu并不会对数据进行flush操作,需要手动flush相关内容,不知道是不是ARM9特有
10. asm与gloabl_asm均会对{}进行解析处理,arm指令内带{}需要使用{{}}包装,或者使用raw模式,参见rust内联汇编文档
11. mmu的页彪需要对齐,否则会卡死在打开mmu上,qemu联调
程序运行与程序验证
1. 首先使用rustup target add armv5te-unknown-linux-gnueabi添加rust的arm9支持 (nightly)
2. 使用apt install arm-none-eabi-gcc安装arm工具链
3. 使用cargo build --release 生成二进制
4. 使用 arm-none-eabi-objcopy --binray target/armv5te-unknown-linux-gnueabi/release/rust-arm9 arm9生成裸机运行二进制
5. 下载目标机器
QEMU虚拟化运行和gdb联调
在实际环境下可能没有设备可以调试,使用QEMU虚拟机调试是很有效的办法。
QMUE 平台
1. 当前代码平台适配versatilepb即ARM Versatile/PB (ARM926EJ-S)
2. 使用qemu-system-arm -M versatilepb -serial stdio -display none -kernel target/armv5te-unknown-linux-gnueabi/release/rust-arm9运行
3. 即可看到hello world 输出
GDB联合调试
1. 添加QEMU调试参数-s -S运行即qemu-system-arm -s -S -M versatilepb -serial stdio -display none -kernel target/armv5te-unknown-linux-gnueabi/release/rust-arm9
2. 使用gdb-multiarch target/armv5te-unknown-linux-gnueabi/release/rust-arm9加载GDB
3. 进入gdb后使用target remote :1234,即可看到程序停在入口_start
4. 使用break等命令添加断点,或者反汇编等操作,一步步监视运行,调试程序bug

#103 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 记录下在window和linux下同时设置DHCP和静态IP的方法 » 2022-02-08 14:47:30

shaoxi2010
回复: 0

工作时经常会遇到需要DHCP进行上网,由需要设置静态IP进行访问,太麻烦了
所以记录分享下linux和windows同时设置DHCP和静态IP的方法。
window:按照大佬的说法是需要打开系统的一个属性dhcpstaticipcoexistence
1. netsh interface ipv4 set interface interface="interface name" dhcpstaticipcoexistence=enabled
2. netsh interface ipv4 add address "interface name" 192.168.x.xxx 255.255.255.0
linux:简单很多,netowrkmanager默认配置就是DHCP在其基础上添加一个静态IP就行
1. nmcli connection edit "connection"
2. set ipv4.addresses 192.168.x.xxx/24 提示修改为manual填no就行

#104 Re: 全志 SOC » 全志V3S debian系统 内存不足 » 2022-02-07 09:37:07

打开swap就行了,缺点就是慢,这么小的内存不适合debian

#105 Re: 全志 SOC » No Spidev device » 2022-01-27 18:31:21

the spidev need a device tree node, such as this.

&spi0 {
    spidev@0 {
        compatible = "rohm,dh2228fv";
        reg = <0>;
        spi-max-frequency = <24000000>;
    };
};

#106 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 16:16:49

挺好用的,最开始是因为qt5的tslib驱动不支持旋转,然后就用了这个方案了。

#107 Re: 全志 SOC » No Spidev device » 2022-01-27 16:13:48

check the device tree compatible property, try "rohm,dh2228fv"

#108 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 13:30:07

恩,加个-d就是一个后台的daemon程序

#109 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 13:12:37

因为用的是ts_uinput,会将原始坐标做一次tslib转换后再生成新的event设备为符合屏幕转换的点信息。
所以没有用tslib驱动,用的evdev驱动

#110 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 11:06:46

不同内核修改方法是不一样的,这个是4.19的修改方法, 将sun4i_frambuffer.c的32修改为16就行了。
我记得5.4应该是要修改panle属性还是什么来着,已经忘记了。

int sun4i_framebuffer_init(struct drm_device *drm)
{
	drm_mode_config_reset(drm);

	drm->mode_config.max_width = 8192;
	drm->mode_config.max_height = 8192;

	drm->mode_config.funcs = &sun4i_de_mode_config_funcs;
	drm->mode_config.helper_private = &sun4i_de_mode_config_helpers;

	return drm_fb_cma_fbdev_init(drm, 16, 0);
}

#111 Re: 全志 SOC » f133跑rtt测试了下memcpy速度那么慢的吗 » 2022-01-24 15:23:50

F133 全志不是还有meli系统嘛,去找代理拿资源嘛

#112 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-23 20:24:03

可能是编译没选对吧,看下二进制的架构信息吧

#113 Re: 全志 SOC » f133跑rtt测试了下memcpy速度那么慢的吗 » 2022-01-23 16:32:44

是不是没有平台优化哦,你用newlib的汇编试一下哇

#115 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 有大佬研究过qt5裁剪没,没看到那个qt-config工具啊 » 2022-01-22 22:33:10

shaoxi2010
回复: 2

参照qt的文档说明,没看到那个什么qt-config工具,大佬有了解的?

#116 Re: 全志 SOC » f133和v3s 哪个性能比较好, » 2022-01-18 15:38:17

恩,感觉你这么说换cpu的成本确实比换屏幕低了不少啊,屏幕质量如何哦?f1c话说能点亮mipi?

#117 Re: 全志 SOC » f133和v3s 哪个性能比较好, » 2022-01-18 11:43:21

还有,为啥不选个横屏呢,这种奇怪得应用我记得只在mipi上常见,还是说成本控制原因

#118 Re: 全志 SOC » f133和v3s 哪个性能比较好, » 2022-01-18 11:39:03

噗,打了一串网络有问题,没得了。
说结论吧,我觉得你这两个都能做到,毕竟现在f1c得状态已经解决你得需求了。
而且我觉得这两个应该还有空间,可以进一步优化,应该还能留下裕量。

首先,90度旋转问题应该是问题点,因为不连续问题,对cache得友好程度很差,
A133得cv旋转1080p耗时在20ms左右,neon加速旋转5ms左右,跟默认得
V3s折合我觉得应该在10ms左右。如果能用neon应该更快。

其次,AWTK我记得是有脏矩阵,而且还是三缓冲,这边得拷贝应该也是有无法避免
得耗时,你可以看下能不能关掉。

最后,我觉得F133得G2D适配,估计没那么容易,而且我也没测试过它得G2D这里
就不做评论了,我觉得吧它应该不会比neon慢,毕竟专用加速芯片了。

#119 Re: 全志 SOC » f133和v3s 哪个性能比较好, » 2022-01-17 16:45:09

你要能用上这个还是有提升的,在QT的环境下并不支持全志G2D,而且就
字体渲染这些基本用不到G2D,感觉多一点的就bitbilt操作吧还有就是
旋转了,对于基本没怎么用到这些,性能提升很微弱。这种还不如双缓冲
多层绘制感知来的强。而且最重要得一点这东西需要驱动和应用支持。。。
我也不知道你想干嘛,但是不上高分720p以上,CPU基本够用了,就看你要求
帧率有多少了,其他得可能只能你自己确认了。

#120 Re: 全志 SOC » f133和v3s 哪个性能比较好, » 2022-01-17 10:02:23

这个看你怎么去应用了,F133的RSICV性能下在QT4性能测试是明显弱于同世代的T113,
T113我还跑在800M下F133为1G,估计还是RSICV的生态这块还做的不怎么样。目前发现
整形的性能是要弱于ARM,浮点性能好于ARM,整体GUI百万次调用基本都慢于ARM,浮点
影响较大的椭圆要由于ARM,最大的差距还是freetype字体渲染,慢了5倍估计和freetype
平台优化代码相关。反正我觉得RISCV还是不成熟,价格也没有优势,等降价吧。

#121 Re: 全志 SOC » 研究完f1c100s继续折腾v3s » 2022-01-17 09:49:57

这两个本身没什么区别只是gcc -mfloat-abi=hard option这个存在默认值的差异。
最大的差异还是CALL standard的参数栈规则不一样,我记得也就只是浮点数存在差异。
这个东西也就影响性能在函数参数传递有一定的性能下降,对于这么高级的CPU影响应该
没有那么大。而且根据arm的说明The default for --target=arm-arm-none-eabi is softfp.
softfp是含有了vfpv的浮点加速的,也就是你指定了fpu浮点单元,他就能提供浮点优化
代码,理论上不应该有这么大的性能差异。

#122 Re: 全志 SOC » 理一理F1C200的CODEC输入输出 » 2022-01-16 22:50:28

经过验证,确实可以输出音频。使用转换器转换为48000Hz的16bit深度wav,后
可以正常的播放,NAND使用空间约60M,wave约74M。感觉可以学习aw-ol的大佬
试着把这个demo放出声来。

#123 Re: 全志 SOC » 研究完f1c100s继续折腾v3s » 2022-01-16 12:06:16

eabi指的是abi的借口调用规则,和硬件浮点没关系啊,你打开优化选项就行了

#124 Re: 全志 SOC » 研究完f1c100s继续折腾v3s » 2022-01-15 17:48:14

arm-none-eabi应该通吃的,我内核v3s和f1c都用这个,省事

#125 全志 SOC » 理一理F1C200的CODEC输入输出 » 2022-01-15 15:22:03

shaoxi2010
回复: 1

对着驱动代码,把codec这块的输入输出整理一下不知道理解有没有问题。
用CODEC的时候时常发现卡死、没声音等问题主要还是输入输出源没配置好。
找了一大圈也没找到分析这个怎么使用的,小弟久对着驱动整理下,F1c200的
datasheet和驱动对应关系。不知道对不对,还请大佬指点。
通过tiny mix contents可以看到当前系统所有的可控制模块

Number of controls: 25
ctl     type    num     name                                    value
0       INT     1       DAC Playback Volume                     63 (range 0->63)
1       INT     1       Headphone Playback Volume               0 (range 0->63)
2       BOOL    2       Headphone Playback Switch               Off, Off
3       INT     1       Line In Playback Volume                 0 (range 0->7)
4       INT     1       FM In Playback Volume                   0 (range 0->7)
5       INT     1       Mic In Playback Volume                  3 (range 0->7)
6       INT     1       Mic Boost Volume                        4 (range 0->7)
7       INT     1       ADC Capture Volume                      3 (range 0->7)
8       BOOL    1       ADC Mixer Right Out Capture Switch      Off
9       BOOL    1       ADC Mixer Left Out Capture Switch       Off
10      BOOL    1       ADC Mixer Line In Capture Switch        Off
11      BOOL    1       ADC Mixer Right FM In Capture Switch    Off
12      BOOL    1       ADC Mixer Left FM In Capture Switch     Off
13      BOOL    1       ADC Mixer Mic Capture Switch            Off
14      BOOL    1       Left Mixer Right DAC Playback Switch    Off
15      BOOL    1       Left Mixer Left DAC Playback Switch     Off
16      BOOL    1       Left Mixer FM In Playback Switch        Off
17      BOOL    1       Left Mixer Line In Playback Switch      Off
18      BOOL    1       Left Mixer Mic In Playback Switch       Off
19      BOOL    1       Right Mixer Left DAC Playback Switch    Off
20      BOOL    1       Right Mixer Right DAC Playback Switch   Off
21      BOOL    1       Right Mixer FM In Playback Switch       Off
22      BOOL    1       Right Mixer Line In Playback Switch     Off
23      BOOL    1       Right Mixer Mic In Playback Switch      Off
24      ENUM    2       Headphone Source Playback Route         , DACMixer, , DACMixer

codec.png

根据上图推论:
1.录音时:
tinymix set 13 1 #打开MIC到ADC输入
tinycap cap.wav #开始录音
这个验证OK

2.播放时:
tinymix set 24 DAC #打开headphones到DAC输出,不使用Mixer
tinymix set 2 1 #打开headphones输出开关
tinymix set 1 40 #设置增益为40
tinyplay cap.wav
这个验证能播放,但是我没喇叭不知道有没有声音

#126 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-15 00:32:24

shaoxi2010
回复: 16

看到LVGL支持了DRM,按道理F1C200的驱动情况下也能支持双缓冲效果。
简单的测试了下,支持还是很可以的,看上去也就是CPU有点高。
对比了下CPU和top看到的存在较大的差异,可能计算方式不一样吧?

修改使用tslib的ts_uinput来校准输入,模拟为event1
修改使用libdrm的输出,输出双缓冲。

验证代码,应该要修改下Makefile的CFLAGS下的路径
https://github.com/shaoxi2010/lv_port_linux_frame_buffer

#127 Re: 全志 SOC » rtl8723ds高并发时死锁有人遇到过吗 » 2022-01-14 09:57:43

有没有在调频,之前我遇到过CPU降频时,A33出现过类似现象。将CPU调度器调为performance就好了。

#128 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-12 11:31:13

ubuntu 说:
shaoxi2010 说:
kekemuyu 说:

2s进ui太牛了,是用的spi falsh吗?

是的,Tiny200自带的兆易spinand。不过目前目前整个rootfs也就十多M,感觉换nor应该更划算点吧。

楼主牛人!可以提供一个烧录固件体验一下吗?

目前打算自己用,抱歉。如果你也想做优化我可以提供思路。

#129 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-12 11:17:29

kekemuyu 说:

@shaoxi2010
nor比nand慢很多吧

因为目前看起来nor和nand都支持双线读模式,而nor的读操作省掉了loadpage和waitstatus
每2k就可以少发几个指令,可以少调度少IO,按道理应该更加明显,当然我没片子没测试过。
仅理论推断。

#130 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-12 09:53:49

kekemuyu 说:

2s进ui太牛了,是用的spi falsh吗?

是的,Tiny200自带的兆易spinand。不过目前目前整个rootfs也就十多M,感觉换nor应该更划算点吧。

#131 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-12 00:19:27

去掉QT后有明显的提升,目前上电到启动可以做到在2s显示画面。
耗时一个月总算达到理想值了,真不容易啊。

 [00-10-26.876]  [0]Shaoxi2010 f1c loader
 [00-10-26.894]  [14]DRAM: 64M
 [00-10-26.894]  [16]MMU:83ffc000
 [00-10-26.894]  [16]heap:82ffc000-83ffbffc
 [00-10-26.915]  [39] load: fdt 262144
 [00-10-27.382]  [501] load: kernel 7515276
 [00-10-27.387]  [501]start kernel at 0x80008000 fdt at 0x82ffc800!
 [00-10-28.302]  The framebuffer device was opened successfully.
 [00-10-28.328]  480x272, 16bpp
 [00-10-28.334]  The framebuffer device was mapped to memory successfully.
 [00-10-30.313]  Starting syslogd: OK
 [00-10-30.348]  Starting klogd: OK
 [00-10-30.449]  Running sysctl: OK
 [00-10-30.474]  Starting mdev... OK
 [00-10-31.539]  modprobe: can't change directory to '/lib/modules': No such file or directory
 [00-10-31.595]  Initializing random number generator: OK
 [00-10-31.618]  Saving random seed: OK
 [00-10-31.700]  Starting network: ip: socket: Function not implemented
 [00-10-31.714]  ip: socket: Function not implemented
 [00-10-31.714]  FAIL
 [00-10-31.824]  
 [00-10-31.829]  Welcome to Tiny200

#132 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-11 11:01:12

排查发现在drm_probe_fbhepler下确实存在panle延迟初始化,但其对启动优化没影响,只是干扰了启动时间判断

#133 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-10 22:36:06

掏出了多年未使用的逻辑分析仪,抓了下启动时间。
目前对系统侧面启动优化已经靠近极限,也就只剩下100ms左右的坏快扫描。
通过GPIO对启动整个流程检测确认,以reset上升为起点,用逻辑分析仪器抓波形。
1. spinand上电brom到运行boot0耗时约200ms,难道是我之前打错了?
2. boot0启动解压kernel消耗500ms
3. kernel进入到kernel计时开始40ms左右
4. kernel完成到init开始,500ms
5. fb panle的perpare从kernel启动耗时1.35s,难道是异步的?
6. 剩余时间为应用层耗时

结论:
1. boot的记时与内核记时是准确的,逻辑分析仪抓取
2. 上电到启动到init总共约1.2s左右
3. drm显示不知道为什么会有延迟初始化现象,可能会阻塞qt启动
4. 目前感觉最大的性能瓶颈在CPU和NAND的IO上,可能换NOR会有更好性能
5. 目前主要瓶颈集中在应用层,看起来更换掉QT5应该会有更好的性能

#134 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-09 22:09:05

经过不懈努力排查,目前能做到3s左右进入QT5的时钟demo。但从目前来看还有比较多的疑惑项。
1. 示波器观察上电到启动bootloader约100ms
2. bootloader解压成Image,引导linux启动花费500ms,排除内核解压逻辑。
3. 进入内核观察dmesg打印,fb初始化大约在350ms
但是仔细比对视频帧发现,其实阶段时间不对。
1. 从上电到fb由白变黑时常大约是2s左右,统计只有不到1s。
2. fb变白到qt起来基本上1s左右,基本符合。

看起来从Image启动到内核计时开始有约解决1s的时间耗在了不知道的地方,不知道这个结论对不对?
不知道大佬们研究过这一段启动时间没有,感觉有点不对劲。
启动日志如下:

 [21-41-23.660]  tiny200 login: 
 [21-41-23.660]  [0]Shaoxi2010 f1c loader
 [21-41-23.684]  [14]DRAM: 64M
 [21-41-23.684]  [16]MMU:83ffc000
 [21-41-23.684]  [16]heap:82ffc000-83ffbffc
 [21-41-23.698]  [39] load: fdt 262144
 [21-41-24.164]  [500] load: kernel 7515276
 [21-41-24.190]  [500]start kernel at 0x80008000 fdt at 0x82ffc800!
 [21-41-25.952]  QFbVtHandler: socketpair() failed (Function not implemented)
 [21-41-27.123]  Starting syslogd: OK
 [21-41-27.154]  Starting klogd: OK
 [21-41-27.247]  Running sysctl: OK
 [21-41-27.271]  Starting mdev... OK
 [21-41-28.280]  modprobe: can't change directory to '/lib/modules': No such file or directory
 [21-41-28.332]  Initializing random number generator: OK
 [21-41-28.353]  Saving random seed: OK
 [21-41-28.429]  Starting network: ip: socket: Function not implemented
 [21-41-28.442]  ip: socket: Function not implemented
 [21-41-28.443]  FAIL
 [21-41-28.553]  
 [21-41-28.568]  Welcome to Tiny200
 [21-41-30.178]  tiny200 login: root
 [21-41-30.197]  login[112]: root login on 'console'
 [21-41-32.904]  # dmesg 
 [21-41-32.923]  [    0.000000] Booting Linux on physical CPU 0x0
 [21-41-32.937]  [    0.000000] Linux version 4.19.223 (parallels@debian-gnu-linux-10) (gcc version 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] (15:7-2018-q2-6)) #102 Sun Jan 9 20:54:06 CST 2022
 [21-41-32.948]  [    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
 [21-41-32.958]  [    0.000000] CPU: VIVT data cache, VIVT instruction cache
 [21-41-32.958]  [    0.000000] OF: fdt: Machine model: Tiny200
 [21-41-32.958]  [    0.000000] Memory policy: Data cache writeback
 [21-41-32.967]  [    0.000000] On node 0 totalpages: 16384
 [21-41-32.975]  [    0.000000]   Normal zone: 128 pages used for memmap
 [21-41-32.975]  [    0.000000]   Normal zone: 0 pages reserved
 [21-41-32.975]  [    0.000000]   Normal zone: 16384 pages, LIFO batch:3
 [21-41-32.986]  [    0.000000] random: get_random_bytes called from start_kernel+0x70/0x35c with crng_init=0
 [21-41-32.993]  [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
 [21-41-32.993]  [    0.000000] pcpu-alloc: [0] 0 
 [21-41-33.003]  [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
 [21-41-33.014]  [    0.000000] Kernel command line: console=ttyS1,115200 loglevel=4 root=ubi0 ubi.mtd=4 rootfstype=ubifs ubi.fm_autoconvert=1 cma=16m lpj=598528
 [21-41-33.021]  [    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
 [21-41-33.029]  [    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
 [21-41-33.041]  [    0.000000] Memory: 58308K/65536K available (3191K kernel code, 203K rwdata, 1104K rodata, 1024K init, 197K bss, 7228K reserved, 0K cma-reserved)
 [21-41-33.041]  [    0.000000] Virtual kernel memory layout:
 [21-41-33.047]  [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
 [21-41-33.054]  [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
 [21-41-33.061]  [    0.000000]     vmalloc : 0xc4800000 - 0xff800000   ( 944 MB)
 [21-41-33.067]  [    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
 [21-41-33.074]  [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
 [21-41-33.080]  [    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (4184 kB)
 [21-41-33.087]  [    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
 [21-41-33.094]  [    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 204 kB)
 [21-41-33.101]  [    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 198 kB)
 [21-41-33.108]  [    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
 [21-41-33.108]  [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
 [21-41-33.115]  [    0.000044] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
 [21-41-33.126]  [    0.000106] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
 [21-41-33.133]  [    0.000325] Calibrating delay loop (skipped) preset value.. 299.26 BogoMIPS (lpj=598528)
 [21-41-33.140]  [    0.000357] pid_max: default: 32768 minimum: 301
 [21-41-33.147]  [    0.000698] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
 [21-41-33.155]  [    0.000719] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
 [21-41-33.155]  [    0.001777] CPU: Testing write buffer coherency: ok
 [21-41-33.163]  [    0.003366] Setting up static identity map for 0x80100000 - 0x8010003c
 [21-41-33.163]  [    0.008529] devtmpfs: initialized
 [21-41-33.174]  [    0.014679] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
 [21-41-33.181]  [    0.014719] futex hash table entries: 256 (order: -1, 3072 bytes)
 [21-41-33.188]  [    0.014876] pinctrl core: initialized pinctrl subsystem
 [21-41-33.196]  [    0.017109] DMA: preallocated 256 KiB pool for atomic coherent allocations
 [21-41-33.196]  [    0.036961] SCSI subsystem initialized
 [21-41-33.204]  [    0.037260] usbcore: registered new interface driver usbfs
 [21-41-33.211]  [    0.037378] usbcore: registered new interface driver hub
 [21-41-33.218]  [    0.037489] usbcore: registered new device driver usb
 [21-41-33.218]  [    0.038235] Advanced Linux Sound Architecture Driver Initialized.
 [21-41-33.226]  [    0.039022] clocksource: Switched to clocksource timer
 [21-41-33.234]  [    0.045209] workingset: timestamp_bits=30 max_order=14 bucket_order=0
 [21-41-33.243]  [    0.068338] io scheduler noop registered (default)
 [21-41-33.243]  [    0.068358] io scheduler mq-deadline registered
 [21-41-33.252]  [    0.080202] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
 [21-41-33.252]  [    0.101924] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
 [21-41-33.260]  [    0.106589] console [ttyS1] disabled
 [21-41-33.267]  [    0.126876] 1c25400.serial: ttyS1 at MMIO 0x1c25400 (irq = 26, base_baud = 6250000) is a 16550A
 [21-41-33.275]  [    0.127076] console [ttyS1] enabled
 [21-41-33.275]  [    0.134453] panel-simple panel: panel supply power not found, using dummy regulator
 [21-41-33.284]  [    0.134659] panel-simple panel: Linked as a consumer to regulator.0
 [21-41-33.291]  [    0.136297] SCSI Media Changer driver v0.25 
 [21-41-33.291]  [    0.137309] sun6i-spinand 1c05000.spi: speed clock 100000000
 [21-41-33.300]  [    0.137335] sun6i-spinand 1c05000.spi: fifo depth 64
 [21-41-33.309]  [    0.138510] 5 fixed-partitions partitions found on MTD device (null)
 [21-41-33.309]  [    0.138529] Creating 5 MTD partitions on "(null)":
 [21-41-33.315]  [    0.138557] 0x000000000000-0x000000080000 : "spl"
 [21-41-33.324]  [    0.139942] 0x000000080000-0x000000180000 : "u-boot"
 [21-41-33.324]  [    0.140742] random: fast init done
 [21-41-33.324]  [    0.141579] 0x000000180000-0x0000001c0000 : "dtb"
 [21-41-33.331]  [    0.142595] 0x0000001c0000-0x0000007c0000 : "kernel"
 [21-41-33.339]  [    0.148596] 0x0000007c0000-0x000007f80000 : "rootfs"
 [21-41-33.339]  [    0.207685] random: crng init done
 [21-41-33.346]  [    0.257719] usbcore: registered new interface driver usb-storage
 [21-41-33.354]  [    0.258511] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
 [21-41-33.362]  [    0.258709] usb_phy_generic usb_phy_generic.0.auto: Linked as a consumer to regulator.0
 [21-41-33.369]  [    0.271390] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
 [21-41-33.377]  [    0.271462] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
 [21-41-33.384]  [    0.273058] hub 1-0:1.0: USB hub found
 [21-41-33.385]  [    0.273189] hub 1-0:1.0: 1 port detected
 [21-41-33.385]  [    0.275200] i2c /dev entries driver
 [21-41-33.396]  [    0.277320] input: ns2009_ts as /devices/platform/soc/1c27000.twi/i2c-0/0-0048/input/input0
 [21-41-33.403]  [    0.279493] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
 [21-41-33.412]  [    0.281031] sunxi-mmc 1c0f000.mmc: Linked as a consumer to regulator.1
 [21-41-33.419]  [    0.307578] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
 [21-41-33.427]  [    0.309895] usbcore: registered new interface driver usbhid
 [21-41-33.427]  [    0.309909] usbhid: USB HID core driver
 [21-41-33.434]  [    0.313210] sun4i-codec 1c23c00.codec: ASoC: Failed to create component debugfs directory
 [21-41-33.443]  [    0.317374] sun4i-codec 1c23c00.codec: Codec <-> 1c23c00.codec mapping ok
 [21-41-33.451]  [    0.335660] sun4i-backend 1e60000.display-backend: Couldn't find matching frontend, frontend features disabled
 [21-41-33.459]  [    0.336298] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc044f6d0)
 [21-41-33.468]  [    0.337392] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc044e590)
 [21-41-33.477]  [    0.337419] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
 [21-41-33.484]  [    0.337425] [drm] No driver support for vblank timestamp query.
 [21-41-33.484]  [    0.339506] sun4i-drm display-engine: fb0: DRM emulated frame buffer device
 [21-41-33.493]  [    0.340442] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
 [21-41-33.500]  [    0.341375] ubi0: default fastmap pool size: 45
 [21-41-33.500]  [    0.341392] ubi0: default fastmap WL pool size: 22
 [21-41-33.509]  [    0.341400] ubi0: attaching mtd4
 [21-41-33.509]  [    0.410738] ubi0: attached by fastmap
 [21-41-33.516]  [    0.410757] ubi0: fastmap pool size: 45
 [21-41-33.524]  [    0.410765] ubi0: fastmap WL pool size: 22
 [21-41-33.524]  [    0.422128] ubi0: attached mtd4 (name "rootfs", size 119 MiB)
 [21-41-33.532]  [    0.422150] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
 [21-41-33.540]  [    0.422162] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
 [21-41-33.547]  [    0.422173] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
 [21-41-33.555]  [    0.422182] ubi0: good PEBs: 956, bad PEBs: 2, corrupted PEBs: 0
 [21-41-33.563]  [    0.422193] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
 [21-41-33.570]  [    0.422207] ubi0: max/mean erase counter: 4/1, WL threshold: 4096, image sequence number: 1526521727
 [21-41-33.579]  [    0.422219] ubi0: available PEBs: 0, total reserved PEBs: 956, PEBs reserved for bad PEB handling: 38
 [21-41-33.579]  [    0.422589] of_cfs_init
 [21-41-33.579]  [    0.422683] of_cfs_init: OK
 [21-41-33.586]  [    0.422864] ALSA device list:
 [21-41-33.587]  [    0.422879]   #0: F1C100s Audio Codec
 [21-41-33.595]  [    0.424360] ubi0: background thread "ubi_bgt0d" started, PID 54
 [21-41-33.595]  [    0.459605] UBIFS (ubi0:0): recovery needed
 [21-41-33.602]  [    0.497383] UBIFS (ubi0:0): recovery deferred
 [21-41-33.611]  [    0.497594] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs", R/O mode
 [21-41-33.618]  [    0.497614] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
 [21-41-33.627]  [    0.497635] UBIFS (ubi0:0): FS size: 114405376 bytes (109 MiB, 901 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
 [21-41-33.636]  [    0.497644] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
 [21-41-33.645]  [    0.497664] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 25CC3243-8C84-41A3-8BD7-5455775BCE75, small LPT model
 [21-41-33.653]  [    0.499196] VFS: Mounted root (ubifs filesystem) readonly on device 0:13.
 [21-41-33.660]  [    0.500304] devtmpfs: mounted
 [21-41-33.667]  [    0.505190] Freeing unused kernel memory: 1024K
 [21-41-33.667]  [    0.505295] Run /sbin/init as init process
 [21-41-33.668]  [    0.621317] UBIFS (ubi0:0): completing deferred recovery
 [21-41-33.680]  [    0.753700] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 57
 [21-41-33.680]  [    0.759538] UBIFS (ubi0:0): deferred recovery completed

#135 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » QT开机速度优化 » 2022-01-09 17:47:14

我试了下f1c200启动模拟时钟也就1秒点,上电启动到显示也就3秒

#137 Re: 全志 SOC » f1c200快速启动验证研究 » 2022-01-05 23:04:07

又经过不懈的努力优化了内核IO性能,目前看上去从spinand启动开始到shell差不多1.9S左右。
感觉目前最大的瓶颈就在于这个128M的SPINAND的初始化和UBI扫描时间,做成只读压缩系统应该还能提高部分性能。
不知道大神们还有没有优化思路,目前感觉也就刚达到达神的状态。

 [22-41-17.989]  # 
 [22-41-17.990]  [0]Shaoxi2010 f1c loader
 [22-41-18.017]  [15]DRAM: 64M
 [22-41-18.017]  [16]MMU:83ffc000
 [22-41-18.017]  [16]heap:82ffc000-83ffbffc
 [22-41-18.564]  [575] load: kernel 7528880
 [22-41-18.588]  [596] load: fdt 262144
 [22-41-18.607]  [597]start kernel at 0x80008000 fdt at 0x82ffc000!
 [22-41-18.909]  [    0.278473] musb-sunxi 1c13000.usb: Invalid or missing 'dr_mode' property
 [22-41-19.880]  Starting syslogd: OK
 [22-41-19.949]  Starting klogd: OK
 [22-41-20.164]  Running sysctl: OK
 [22-41-20.216]  Starting mdev... OK
 [22-41-21.135]  modprobe: can't change directory to '4.19.223': No such file or directory
 [22-41-21.258]  Initializing random number generator: OK
 [22-41-21.302]  Saving random seed: OK
 [22-41-21.488]  Starting network: ip: socket: Function not implemented
 [22-41-21.520]  ip: socket: Function not implemented
 [22-41-21.535]  FAIL
 [22-41-21.571]  Starting telnetd: OK
 [22-41-21.698]  
 [22-41-21.723]  Welcome to Tiny200
 [22-41-24.836]  Tiny200 login: root
 [22-41-24.862]  login[114]: root login on 'console'
 [22-41-27.198]  # dmesg 
 [22-41-27.229]  [    0.000000] Booting Linux on physical CPU 0x0
 [22-41-27.246]  [    0.000000] Linux version 4.19.223 (parallels@debian-gnu-linux-10) (gcc version 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] (15:7-2018-q2-6)) #86 Wed Jan 5 22:38:05 CST 2022
 [22-41-27.257]  [    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
 [22-41-27.268]  [    0.000000] CPU: VIVT data cache, VIVT instruction cache
 [22-41-27.268]  [    0.000000] OF: fdt: Machine model: Tiny200
 [22-41-27.268]  [    0.000000] Memory policy: Data cache writeback
 [22-41-27.277]  [    0.000000] On node 0 totalpages: 16384
 [22-41-27.285]  [    0.000000]   Normal zone: 128 pages used for memmap
 [22-41-27.285]  [    0.000000]   Normal zone: 0 pages reserved
 [22-41-27.285]  [    0.000000]   Normal zone: 16384 pages, LIFO batch:3
 [22-41-27.296]  [    0.000000] random: get_random_bytes called from start_kernel+0x7c/0x3dc with crng_init=0
 [22-41-27.303]  [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
 [22-41-27.303]  [    0.000000] pcpu-alloc: [0] 0 
 [22-41-27.312]  [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
 [22-41-27.318]  [    0.000000] Kernel command line: console=ttyS1,115200 loglevel=4 root=ubi0 ubi.mtd=4 rootfstype=ubifs cma=16M lpj=598528
 [22-41-27.328]  [    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
 [22-41-27.335]  [    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
 [22-41-27.345]  [    0.000000] Memory: 58284K/65536K available (3740K kernel code, 216K rwdata, 1156K rodata, 1024K init, 210K bss, 7252K reserved, 0K cma-reserved)
 [22-41-27.351]  [    0.000000] Virtual kernel memory layout:
 [22-41-27.359]  [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
 [22-41-27.366]  [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
 [22-41-27.374]  [    0.000000]     vmalloc : 0xc4800000 - 0xff800000   ( 944 MB)
 [22-41-27.374]  [    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
 [22-41-27.381]  [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
 [22-41-27.388]  [    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (4733 kB)
 [22-41-27.395]  [    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
 [22-41-27.395]  [    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 217 kB)
 [22-41-27.401]  [    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 211 kB)
 [22-41-27.408]  [    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
 [22-41-27.415]  [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
 [22-41-27.424]  [    0.000041] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
 [22-41-27.430]  [    0.000105] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
 [22-41-27.437]  [    0.000495] Console: colour dummy device 80x30
 [22-41-27.445]  [    0.000593] Calibrating delay loop (skipped) preset value.. 299.26 BogoMIPS (lpj=598528)
 [22-41-27.452]  [    0.000621] pid_max: default: 32768 minimum: 301
 [22-41-27.459]  [    0.000967] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
 [22-41-27.466]  [    0.000989] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
 [22-41-27.473]  [    0.001986] CPU: Testing write buffer coherency: ok
 [22-41-27.473]  [    0.003627] Setting up static identity map for 0x80100000 - 0x8010003c
 [22-41-27.481]  [    0.007842] devtmpfs: initialized
 [22-41-27.488]  [    0.013759] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
 [22-41-27.496]  [    0.013799] futex hash table entries: 256 (order: -1, 3072 bytes)
 [22-41-27.496]  [    0.013960] pinctrl core: initialized pinctrl subsystem
 [22-41-27.506]  [    0.015996] DMA: preallocated 256 KiB pool for atomic coherent allocations
 [22-41-27.506]  [    0.038346] SCSI subsystem initialized
 [22-41-27.513]  [    0.038635] usbcore: registered new interface driver usbfs
 [22-41-27.520]  [    0.038765] usbcore: registered new interface driver hub
 [22-41-27.528]  [    0.038877] usbcore: registered new device driver usb
 [22-41-27.528]  [    0.039542] Advanced Linux Sound Architecture Driver Initialized.
 [22-41-27.534]  [    0.040408] clocksource: Switched to clocksource timer
 [22-41-27.542]  [    0.062174] NetWinder Floating Point Emulator V0.97 (double precision)
 [22-41-27.550]  [    0.064725] workingset: timestamp_bits=30 max_order=14 bucket_order=0
 [22-41-27.550]  [    0.091463] io scheduler noop registered (default)
 [22-41-27.558]  [    0.091483] io scheduler mq-deadline registered
 [22-41-27.566]  [    0.103702] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
 [22-41-27.574]  [    0.126017] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
 [22-41-27.574]  [    0.130816] console [ttyS1] disabled
 [22-41-27.583]  [    0.151098] 1c25400.serial: ttyS1 at MMIO 0x1c25400 (irq = 26, base_baud = 6250000) is a 16550A
 [22-41-27.583]  [    0.151227] console [ttyS1] enabled
 [22-41-27.594]  [    0.157964] panel-simple panel: panel supply power not found, using dummy regulator
 [22-41-27.601]  [    0.158153] panel-simple panel: Linked as a consumer to regulator.0
 [22-41-27.609]  [    0.159631] SCSI Media Changer driver v0.25 
 [22-41-27.617]  [    0.160716] sun6i-spinand 1c05000.spi: speed clock 100000000
 [22-41-27.617]  [    0.160743] sun6i-spinand 1c05000.spi: fifo depth 64
 [22-41-27.625]  [    0.161891] 5 fixed-partitions partitions found on MTD device (null)
 [22-41-27.632]  [    0.161911] Creating 5 MTD partitions on "(null)":
 [22-41-27.632]  [    0.161938] 0x000000000000-0x000000080000 : "spl"
 [22-41-27.640]  [    0.163246] 0x000000080000-0x000000180000 : "u-boot"
 [22-41-27.640]  [    0.163941] random: fast init done
 [22-41-27.648]  [    0.165094] 0x000000180000-0x0000001c0000 : "dtb"
 [22-41-27.655]  [    0.166166] 0x0000001c0000-0x0000007c0000 : "kernel"
 [22-41-27.655]  [    0.172125] 0x0000007c0000-0x000007f80000 : "rootfs"
 [22-41-27.655]  [    0.226417] random: crng init done
 [22-41-27.663]  [    0.278046] usbcore: registered new interface driver usb-storage
 [22-41-27.670]  [    0.278473] musb-sunxi 1c13000.usb: Invalid or missing 'dr_mode' property
 [22-41-27.678]  [    0.285422] musb-sunxi: probe of 1c13000.usb failed with error -22
 [22-41-27.685]  [    0.285759] udc-core: couldn't find an available UDC - added [zero] to list of pending drivers
 [22-41-27.693]  [    0.285879] i2c /dev entries driver
 [22-41-27.700]  [    0.288016] input: ns2009_ts as /devices/platform/soc/1c27000.twi/i2c-0/0-0048/input/input0
 [22-41-27.708]  [    0.290071] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
 [22-41-27.716]  [    0.291507] sunxi-mmc 1c0f000.mmc: Linked as a consumer to regulator.1
 [22-41-27.716]  [    0.318203] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
 [22-41-27.725]  [    0.320605] usbcore: registered new interface driver usbhid
 [22-41-27.731]  [    0.320617] usbhid: USB HID core driver
 [22-41-27.739]  [    0.323718] sun4i-codec 1c23c00.codec: ASoC: Failed to create component debugfs directory
 [22-41-27.739]  [    0.327871] sun4i-codec 1c23c00.codec: Codec <-> 1c23c00.codec mapping ok
 [22-41-27.749]  [    0.345837] sun4i-backend 1e60000.display-backend: Couldn't find matching frontend, frontend features disabled
 [22-41-27.760]  [    0.346446] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc04dbcc4)
 [22-41-27.767]  [    0.347495] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc04dab74)
 [22-41-27.775]  [    0.347520] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
 [22-41-27.782]  [    0.347527] [drm] No driver support for vblank timestamp query.
 [22-41-27.782]  [    0.397668] Console: switching to colour frame buffer device 60x34
 [22-41-27.793]  [    0.414385] sun4i-drm display-engine: fb0: DRM emulated frame buffer device
 [22-41-27.800]  [    0.415472] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
 [22-41-27.808]  [    0.416570] ubi0: attaching mtd4
 [22-41-27.808]  [    0.659808] ubi0: scanning is finished
 [22-41-27.815]  [    0.670860] ubi0: attached mtd4 (name "rootfs", size 119 MiB)
 [22-41-27.815]  [    0.670883] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
 [22-41-27.826]  [    0.670893] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
 [22-41-27.833]  [    0.670904] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
 [22-41-27.841]  [    0.670913] ubi0: good PEBs: 956, bad PEBs: 2, corrupted PEBs: 0
 [22-41-27.848]  [    0.670923] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
 [22-41-27.856]  [    0.670936] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 1935136571
 [22-41-27.865]  [    0.670946] ubi0: available PEBs: 0, total reserved PEBs: 956, PEBs reserved for bad PEB handling: 38
 [22-41-27.865]  [    0.671300] of_cfs_init
 [22-41-27.873]  [    0.671378] of_cfs_init: OK
 [22-41-27.873]  [    0.671542] ALSA device list:
 [22-41-27.880]  [    0.671555]   #0: F1C100s Audio Codec
 [22-41-27.888]  [    0.673152] ubi0: background thread "ubi_bgt0d" started, PID 53
 [22-41-27.888]  [    0.698797] UBIFS (ubi0:0): recovery needed
 [22-41-27.888]  [    0.741555] UBIFS (ubi0:0): recovery deferred
 [22-41-27.898]  [    0.741775] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs", R/O mode
 [22-41-27.909]  [    0.741797] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
 [22-41-27.916]  [    0.741817] UBIFS (ubi0:0): FS size: 114659328 bytes (109 MiB, 903 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
 [22-41-27.927]  [    0.741827] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
 [22-41-27.937]  [    0.741846] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 87713502-C622-4350-A244-286A7160446F, small LPT model
 [22-41-27.944]  [    0.743048] VFS: Mounted root (ubifs filesystem) readonly on device 0:13.
 [22-41-27.944]  [    0.743941] devtmpfs: mounted
 [22-41-27.951]  [    0.748134] Freeing unused kernel memory: 1024K
 [22-41-27.959]  [    0.748250] Run /sbin/init as init process
 [22-41-27.959]  [    0.931684] UBIFS (ubi0:0): completing deferred recovery
 [22-41-27.967]  [    0.956984] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 56
 [22-41-27.967]  [    0.962054] UBIFS (ubi0:0): deferred recovery completed

#138 Re: 全志 SOC » f1c100s驱动rgb屏求助 » 2021-12-31 11:50:55

怀疑没改drm驱动,这个Linux版本感觉接口不一样了

#139 Re: 全志 SOC » f1c200快速启动验证研究 » 2021-12-24 18:56:49

加logo主要是想验证下是压缩启动划算还是不压缩划算,目前看上去红利很小。

#140 全志 SOC » f1c200快速启动验证研究 » 2021-12-23 22:55:54

shaoxi2010
回复: 24

经过不懈的努力总算把loader给初步调试通了,目前从nand引导启动,测试波形发现上电到boot0运行
示波器发现约200ms,启动到loader后,目前加载kernel 4M 约278ms,解压logo图片使用lz4压缩
读取数据1.2M,解压后2.7M。目前cpu为600M、spinand为100M,使用双线读取,目前看上来spinand读取性能
在14.4M/s左右,解压缩折合为5M/s左右。实际主要还是慢在内核阶段,新编写load加载时间约300ms,
相当于uboot来说相同配置估计有几百ms提升,对整体启动约13s系统而言几乎没变化。时间上电到linux显示logo
用了接近2s左右,还是太慢了。目前内核不压缩在近10M,用空间来换速度差异不大,不知道大神们还有没有优化思路?
日志如下。
[0]Shaoxi2010 f1c loader
[15]DRAM: 64M
[16]MMU:83ffc000
[16]heap:837fc000-83ffbffc
[34] load: dtb ok
[480] decompress: logo ok
[758] load: kernel ok
[758]start kernel!

#141 Re: 全志 SOC » 大佬求助,使用rust开发f1c200,遇到点问题请指导下 » 2021-12-19 21:53:50

这个问题我找到原因了,还是自己迁移代码时将MMU的逻辑写错误了,反复对比汇编和ir发现逻辑行为不符合。
挂掉的原因应该是页表初始化问题,访问直接就异常了,目前通过qemu调试已经可以了等下实体机测试下就知道了。

考虑到启动需要解压缩和修改设备树信息,还是觉得优先打开cache要合理的多。

开MMU主要应对之前发现的两个问题
1. SRAM下栈变量和全局变量访问速度很慢,严重的拖慢了高频次操作
2. 不开启cache下DDR下的访问速度也是很难接受的

#142 全志 SOC » 大佬求助,使用rust开发f1c200,遇到点问题请指导下 » 2021-12-16 00:27:58

shaoxi2010
回复: 2

受到了论坛大佬帖子的启发,也想做个f1c200的快速启动loader看下能不能尽快启动系统。
最近在学习rust,所以正好使用rust来练练手,也算增加点新血液吧。
由于rust没有发现带armv5的target目标,这里就用了下armv5te-unknown-linux-gnueabi的目标。
由于后端链接使用的是arm-none-eabi,所以基本上只用cargo管理项目,rust生成中间代码,gcc生成汇编和C程序
最后用gcc链接便可运行。
目前只实现了最简单的led点亮,和串口输出功能。
内存初始化代码,借用xboot大佬代码使用ffi实现,mmu等参照从写。
目前用release版本大约在3.4k,还是能满足基本,rust抽象还是相当爽的。

目前遇到一个问题,小弟实在没看出来哪里有毛病,系统在初始化mmu后直接跑飞了,我用反汇编看了
实在没看出哪里有毛病。求大神指点迷津,没思路了。

    pub fn turn_on(&self) {
        mmu_ttb_set(self.base);
        mmu_inv_tlb();
        mmu_domain_set(3);
        mmu_enable();
        crate::led_on(); //这里执行不到了
        icache_enable();
        dcache_enable();
    }

源代码项目:https://github.com/shaoxi2010/loader

#143 Re: 全志 SOC » 全志r328快速启动实现(上电1.5秒进Shell) » 2021-12-08 23:24:32

是我的描述不太清楚,一个是我想知道你打印里面有个brom时间,这个是怎么算出来的?第二就是bootloader拉起内核时间是多少呢,想看下和uboot相比有多大的优势。

#144 Re: 全志 SOC » 全志r328快速启动实现(上电1.5秒进Shell) » 2021-12-08 16:38:31

太强了,想问下重写后bootloader花了多少时间呢?

#145 Re: 全志 SOC » 全志 R328-S3 fes1 DDR初始化代码逆向工程分享 » 2021-11-29 11:49:51

谢谢大佬分享,想请教一个问题,auto_set_timing_para这个函数里面的ddr参数时怎么一个个对应起来的呢?
看起来像参照的主线uboot的代码,不知道能不能分享下思路呢?

#146 Re: 全志 SOC » a133 kernel启动报错 » 2021-11-09 21:51:52

看起来就像启动成功了一样,安卓这块不熟,是不是分区卷标这些不对

#147 Re: 全志 SOC » a133 kernel启动报错 » 2021-11-08 15:43:29

而且init报错是没找到挂载吧,看上去也和NAND无关。
[   11.482002] init: Failed to mount required partitions early ..

#148 Re: 全志 SOC » a133 kernel启动报错 » 2021-11-08 15:41:26

[00.771]workmode = 0,storage type = 2
从日志上来看他就没有从nand启动,而是从emmc上启动的,你确定有nand?还是全志不支持这个nand?

#149 Re: 全志 SOC » a133 kernel启动报错 » 2021-11-05 16:51:25

你这个有没有NAND哦,把日志打全嘛

#151 全志 SOC » 有大佬遇到过QT5在EGLFS下绘制会丢失一个事件的问题么? » 2021-09-30 11:18:46

shaoxi2010
回复: 0

今天遇到一个很神奇的现象,在A133下QT5的EGLFS在绘制静态画面时,会无法显示出来,必须要点一下触发绘制事件后才能
正常的显示,这个问题我记得之前在全志的A64上同样也遇到过,不知道是EVENT少了个,还是双缓冲切换的有问题,有大佬
遇到过同样的问题么?

#152 Re: 全志 SOC » 請問 V3S 關於USB Device 問題? » 2021-09-16 13:03:21

device没记错是写入2,然后内核打开CDC组件就行了

#154 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » buildroot20170.8编译Qt5.9.1问题 » 2021-09-08 18:08:13

嵌入式的Qt5是全屏应用,没得标题栏,要么打开window manager要么用回qt4

#156 Re: 全志 SOC » 通过ttyUSB1 访问4G模块AT端口问题 » 2021-09-07 11:10:00

USB端子不够了,中间有HUB就去掉HUB,还不行连到电脑看看到底需要多少个端子

#157 Re: 全志 SOC » 全志D1芯片之终极探索 » 2021-08-28 23:27:46

很有意思啊,我还有个疑问,大佬时怎么推测出这些符号的呢?很想了解下这个重构elf的过程,我试了下ghidra目前无法打开riscv的bin文件,但是可以打开elf文件,大佬能分享思路或者过程下不?

#158 Re: 全志 SOC » 全志D1芯片之终极探索 » 2021-08-27 18:00:40

xboot 说:

D1 BROM ELF版本
blob.zip

好奇这个ELF版本是在那里找到的,大佬能指点下么?

#160 Re: 全志 SOC » 潜水很久了,小白来问大家一个问题,内核启动失败 » 2021-08-22 23:31:32

看起来不像内核配置问题,uboot识别很正常呢,不过有点奇怪A33的emmc应该是8线的但是你的只有四线模式,
你把内核的sys_config也改为4线试下吧。

#161 Re: 全志 SOC » A33 EMMC启动问题 » 2021-08-22 23:21:03

你用的主线驱动吧,这个问题我遇到过,他们BSP是有个失败重试机制,重置一下控制器就好了,主线的驱动缺少了这部分就会卡在这。
将重试逻辑移植到主线上也能解决这个问题的。

#162 Re: RISC-V » [juicevm] 只需要不到5000行代码实现一个risc-v虚拟机,纯c语言实现,无第三方库,支持ESP32 & GDB » 2021-08-13 22:50:34

大神,这个能在macOS下编译一个么,试了下NEMU但是无法编译出可以在用户态下运行的程序

#164 Re: 全志 SOC » f1c100s或者v3s以spiflash为启动介质是什么模式,标准spi?可以DSPI?或者QSPI? » 2021-08-13 22:44:47

启动时单线的,uboot也是单线的,主线linux也是单线的,但是linux有patch可以打开双线读取模式

#165 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2021-07-01 09:38:47

aozima 说:

>ns2009这破玩意,就不是给人用的。

楼主是遇到啥坑了吗?有没避坑经验?

1块钱的小玩意要求不要太高了,主要就遇到几个坑,目前都转xpt的芯片了:

1. 中断管脚状态会乱触发,按不按有时都有中断,可以用轮询实现
2. 它的adc不稳定会出现偶发性很大的抖动,这个勉强通过滤波可以解决
3. 最致命的还是力度不够的时候,它的压力值和采样都不准,建议不踩压力
4. 我试过xyz,yzx等顺序,嗯从波形上看它就很夸张,也并没有解决任何问题,好像xpt的芯片采样顺序对结果影响很大

#166 Re: 全志 SOC » 请教A33 单颗RAM » 2021-05-14 10:47:23

没用过这么大的,128M的我这很正常

#168 Re: 全志 SOC » 请教共享内存操作,在子线程中直接操作会segment fault » 2021-04-23 13:05:33

顺带一提的是,当编译选择位32位的时候是没有问题。
gcc main.c test.c -m32 -lrt -lpthread
更加印证了上述的逻辑。

#169 Re: 全志 SOC » 请教共享内存操作,在子线程中直接操作会segment fault » 2021-04-23 12:58:53

很感兴趣的问题,拿着楼主的代码仔细的走了走发现这个问题其实还是编译器对未声明的函数默认状态处理的问题。
当函数不存在声明的时候,应该默认为int func(void)作为函数的状态的,这个可以通过调用约定和反汇编看到,只存在rax返回值,且默认还清零了。
故gcc将这个64位地址截断为32位的int值再拓展到了64位上去了,这才是后面段错误的核心原因。
看来这种不明显的警告很多时候还是非常危险,应该多确认下是否有异常。

1. 通过gdb进入到getpshm函数内,打印data地址信息,发现该地址是个正确地址
(gdb) p data
$3 = 0x7ffff7ffb000 '\377' <repeats 20 times>
2. 手动将程序执行到程序的末尾位置,打印返回值寄存器信息。此时返回值是一个正常的状态
(gdb) info registers eax
eax            0xf7ffb000          -134238208
(gdb) info registers rax
rax            0x7ffff7ffb000      140737354117120
3. 继续程序执行,完成函数,打印返回值寄存器信息,此时异常已经发生。
(gdb) info registers rax
rax            0xfffffffff7ffb000  -134238208
(gdb) info registers eax
eax            0xf7ffb000          -134238208
4. 继续执行到memset时,该地址空间处于不可访问空间地址,写操作必然崩溃而引起segment fault。

(gdb) disassemble 
Dump of assembler code for function subthread:
   0x0000555555555249 <+0>:	endbr64 
   0x000055555555524d <+4>:	push   %rbp
   0x000055555555524e <+5>:	mov    %rsp,%rbp
   0x0000555555555251 <+8>:	sub    $0x20,%rsp
   0x0000555555555255 <+12>:	mov    %rdi,-0x18(%rbp)
   0x0000555555555259 <+16>:	mov    $0x0,%eax
   0x000055555555525e <+21>:	callq  0x555555555312 <getpshm>
=> 0x0000555555555263 <+26>:	cltq   //cltq指令,特指%eax->%rax的符号拓展转换,等价于movslq %eax,%rax
   0x0000555555555265 <+28>:	mov    %rax,-0x8(%rbp)
   0x0000555555555269 <+32>:	lea    0xd94(%rip),%rdi        # 0x555555556004
   0x0000555555555270 <+39>:	callq  0x5555555550e0 <puts@plt>
   0x0000555555555275 <+44>:	cmpq   $0x0,-0x8(%rbp)
   0x000055555555527a <+49>:	je     0x55555555529e <subthread+85>
   0x000055555555527c <+51>:	mov    -0x8(%rbp),%rax
   0x0000555555555280 <+55>:	mov    $0x14,%edx
   0x0000555555555285 <+60>:	mov    $0xff,%esi
   0x000055555555528a <+65>:	mov    %rax,%rdi
   0x000055555555528d <+68>:	callq  0x555555555120 <memset@plt>
   0x0000555555555292 <+73>:	lea    0xd7e(%rip),%rdi        # 0x555555556017
   0x0000555555555299 <+80>:	callq  0x5555555550e0 <puts@plt>
   0x000055555555529e <+85>:	mov    $0x1,%edi
   0x00005555555552a3 <+90>:	callq  0x555555555150 <sleep@plt>
   0x00005555555552a8 <+95>:	jmp    0x55555555529e <subthread+85>
End of assembler dump.

#171 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 大家好,本人最近在学习linux,关于驱动有一个小问题请问一下 » 2021-03-31 13:40:05

其实最有效的方法就是去查看驱动的probe函数,看看他往那里注册的。毕竟有些有有些也没有,这个只能看驱动。
sht3x.c:
      hwmon_dev = devm_hwmon_device_register_with_groups(dev,
                                 client->name,
                                 data,
                                 attribute_groups);
ad799x.c:
      ret = iio_device_register(indio_dev);
ts2007.c:
      err = input_register_device(input_dev);

#172 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 大家好,本人最近在学习linux,关于驱动有一个小问题请问一下 » 2021-03-31 10:00:28

看看模块所属的框架位置,去寻找对应的操作操作手段就行了,例如这玩意就是在hwmon下,应该通过sys就能读取

#173 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » 请教下,ubifs和yaffs2的优劣。 » 2021-03-29 15:53:24

孤星泪 说:

为什么海思要特意把yaffs2加进来,是ubifs不稳定?

ubifs对硬件是有要求的,他是假设了某些硬件场景下是不会出异常的,比如flash的页面不写入或者不擦就不应该出现异常,或者信号问题指令执行错误等,所以他在扫描过程中只用了表头文件,内容错误是发现不了的,如果硬件异常可能会整个崩溃,yaffs这点不一样,这个是能校验的都校验,在最大程度上去避免异常,所以yaffs的鲁棒性要好很多。毕竟也不知道大家的硬件设计能力,还不如保险点,而且在128M以下两个真的没什么明显的差距,最大的缺陷应该是在yaffs的均衡算法,由于他没有历史数据,所以反复重启的情况下,前面块的寿命可能较快达到上限。

#174 Re: 全志 SOC » 大家好 V3S编译出来的qt引用运行不了,麻烦大家帮忙看下 » 2021-03-29 09:40:39

下载要积分啊,用readelf看看运行头对不对,这个感觉就是工具链错了

#175 Re: 全志 SOC » 全志官方tina linux sdk sys_config.fex 的 uart_debug_port 参数是如何影响uboot和linux » 2021-03-26 09:51:50

这部分是实现dts的修改
cp sys_config.fex sys_config2.fex

sed -i "s/\(\[dram\)_para\(\]\)/\1\2/g" sys_config2.fex
sed -i "s/\(\[nand[0-9]\)_para\(\]\)/\1\2/g" sys_config2.fex

${RUN_DIR}/bin/dtc -@ -O dtb -o ${2} \
    -b 0 \
    -F sys_config2.fex \
    -I dts \
    ${1}.pre

#176 Re: 全志 SOC » 全志官方tina linux sdk sys_config.fex 的 uart_debug_port 参数是如何影响uboot和linux » 2021-03-26 09:49:57

这个就是这部分实现了uboot和boot0修改
    printf "update bootloader\n"
    update_boot0 boot0_nand.fex sys_config.bin NAND > /dev/null
    update_boot0 boot0_sdcard.fex sys_config.bin SDMMC_CARD > /dev/null
    #update_boot0 boot0_spinor.fex sys_config.bin SDMMC_CARD > /dev/null
    update_fes1 fes1.fex sys_config.bin > /dev/null
    update_uboot -no_merge u-boot.fex sys_config.bin > /dev/null

#177 Re: 全志 SOC » 全志官方tina linux sdk sys_config.fex 的 uart_debug_port 参数是如何影响uboot和linux » 2021-03-26 09:47:23

然后影响boot和uboot是通过update_boot0和update_uboot修改了二进制head部分的二进制,从而影响到串口输出

#178 Re: 全志 SOC » 全志官方tina linux sdk sys_config.fex 的 uart_debug_port 参数是如何影响uboot和linux » 2021-03-26 09:46:12

这个你可以看看内核下的script的dts程序源码,全志在其基础上修改了源码,添加了一个参数-F专用于修改sysconfig到dts上去

#179 Re: 全志 SOC » 全志A133开始打样翻车,LPDDR4模板电路这样用用有啥问题不 » 2021-03-10 17:55:37

跑个linux不就行了,A133的linux驱动基本很完善,opengl都有

#180 Re: 全志 SOC » 全志A133开始打样翻车,LPDDR4模板电路这样用用有啥问题不 » 2021-03-09 09:39:02

楼主用的RGB还是MIPI啊,我这个感觉在高频下RGB信号不稳定,时钟会变不晓得是那的问题

#181 Re: 全志 SOC » V3s使用gstreamer的插件openmax调用cedar硬解码,荔枝派zero测试通过 » 2021-02-05 14:09:18

大佬,同样的思路我在R818上试了下,有个段错误啊有没有什么思路

# gst-launch-1.0 filesrc location=2.mp4 ! qtdemux ! h264parse ! omxh264dec ! aut
ovideoconvert ! fbdevsink
Setting pipeline to PAUSED ...
debug  : cedarc <AwOmxComponentInit:38>:OMXCORE: aw_omx_component_init 27d7f5e0

debug  : omx_vdec <__AwOmxVdecInit:1139>:++++++++++++++++++++++omx begin++++++++++++++++++
debug  : omx_vdec <__AwOmxVdecInit:1140>:name = OMX.allwinner.video.decoder.avc
debug  : cedarc <CdcMessageQueueCreate:51>:nMessageSize = 40
debug  : cedarc <AwOmxComponentSetCallbacks:331>:OMXCORE: aw_omx_component_set_callbacks 27d7f5e0, 9b650958 , 27e2b
3b0

debug  : omx_vdec <__AwOmxVdecSetCallbacks:1890>:===== vdec set callbacks
Pipeline is PREROLLING ...
debug  : omx_vdec <AwOmxVdecPortSetDefinitioin:191>:port:<<<<<<<<in,nBufferCountActual = 2, mBufferCntActual = 2
debug  : omx_vdec <AwOmxVdecPortSetDefinitioin:191>:port:<<<<<<<<in,nBufferCountActual = 2, mBufferCntActual = 2
error  : omx_vdec <AwOmxVdecPortGetFormat:280>:erro: pParamData->nIndex > m_sPortFormatType.nIndex
debug  : omx_vdec <controlSetState:419>:current state:OMX_StateLoaded, target state:OMX_StateIdle
debug  : omx_vdec <doStateWaitforResources2Idle:629>:bEnabled[1],[1],bPopulated[0],[0]
debug  : omx_vdec <AwOmxVdecPortAddBuffer:390>:<<<<<<<<in port add buffer: 0x7f99135010
debug  : omx_vdec <AwOmxVdecPortAddBuffer:390>:<<<<<<<<in port add buffer: 0x7f98b34010
Caught SIGSEGV
debug  : omx_vdec <doStateWaitforResources2Idle:629>:bEnabled[1],[1],bPopulated[1],[0]
exec gdb failed: No such file or directory
debug  : omx_vdec <doStateWaitforResources2Idle:629>:bEnabled[1],[1],bPopulated[1],[0]
Spinning.  Please run 'gdb gst-launch-1.0 1101' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
debug  : omx_vdec <doStateWaitforResources2Idle:629>:bEnabled[1],[1],bPopulated[1],[0]
....
debug  : omx_vdec <doStateWaitforResources2Idle:629>:bEnabled[1],[1],bPopulated[1],[0]
warning: omx_vdec <doStateWaitforResources2Idle:644>:Idle transition failed

warning: omx_vdec <controlSetState:449>:Transit current state:OMX_StateLoaded --> target state:OMX_StateIdle --Fail
ed!

#182 Re: 全志 SOC » 匠芯 AIC502 有没有朋友用过? » 2021-02-01 21:51:53

和v3s一模一样,改下uboot就能用了,用A33的内存初始化就好了

#184 Re: 全志 SOC » 全志A133开始打样翻车,LPDDR4模板电路这样用用有啥问题不 » 2021-01-26 17:30:47

arychen 说:

rom boot阶段能打印log吗

shaoxi2010 说:

串口我记得不是suart吧,有有可能是sysconfig的debug属性没开吧,按理应该打印当前的内存配置信息

能打印的,我直接诶找的代理帮忙调试的,他们发过来的安卓能看到

#185 Re: 全志 SOC » 全志A133开始打样翻车,LPDDR4模板电路这样用用有啥问题不 » 2021-01-26 13:24:07

串口我记得不是suart吧,有有可能是sysconfig的debug属性没开吧,按理应该打印当前的内存配置信息

#186 Re: 全志 SOC » 全志A133开始打样翻车,LPDDR4模板电路这样用用有啥问题不 » 2021-01-26 13:22:18

可以改成自动识别试一下,看你那内存测试是能通过的原理上应该不会有问题,就是不小的你选的那个内存配置对的上不,原则上只要能下载fes0也是会有打印的,可以接上串口看看

#188 Re: 全志 SOC » 请问一下,X3想要跑16位的界面,该怎样去操作? » 2020-12-10 10:13:06

int sun4i_framebuffer_init(struct drm_device *drm)
{
    int ret;
    drm_mode_config_reset(drm);

    drm->mode_config.max_width = 8192;
    drm->mode_config.max_height = 8192;

    drm->mode_config.funcs = &sun4i_de_mode_config_funcs;
    drm->mode_config.helper_private = &sun4i_de_mode_config_helpers;

    ret = drm_fb_cma_fbdev_init(drm, 32, 0); //这里改到24或者16就行
    return ret;
}

#189 Re: 全志 SOC » tiny200 framebuffer配置问题 » 2020-11-30 10:40:21

没写reg吧,drm加载的时候simplefb会自动卸载的

#191 Re: 全志 SOC » v3s 能使用256MB的flash吗 » 2020-10-24 10:27:46

我记得可以用的,但是有点问题,brom代码并不是标准的SPINAND模型,软重启可能出现片选切换问题,无法正常启动

#193 Re: 全志 SOC » F1C100S Dram 出错 » 2020-09-09 11:37:44

可能就是运气撇,DRAM就是有问题,这个现象上量还是很常见的

#195 Re: 全志 SOC » 请问一下,X3液晶屏怎么配置,实现LVDS输出???? » 2020-09-01 22:31:30

lvds本来就是差分信号嘛,是不是时钟配置这些不对吧?

#197 Re: 全志 SOC » 请问一下,X3液晶屏怎么配置,实现LVDS输出???? » 2020-09-01 10:41:58

理论上内核修改代码就可以,uboot应该可以直接支持,你可以试下

#198 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-09-01 10:38:00

纯理论上应该是可以的,主线的A33确认修改后是ok的,A64应该也可以

#199 Re: 全志 SOC » A33 主线 Linux4.20, u-boot传入spi flash分区参数, 请教各位网友. » 2020-08-24 09:41:52

你看看调试信息麻,写的很清楚,这个肯定找不到阿,要仔细点。
m25p80 spi0.0: mx25l25635e (32768 Kbytes)
mtdid=<spi32766.0> num_parts=<6>

#202 Re: 全志 SOC » PhoenixSuit软件发现不了设备 » 2020-08-06 09:28:28

应该不会啊,你有选择镜像么?

#203 Re: 全志 SOC » PhoenixSuit软件发现不了设备 » 2020-08-05 17:35:32

没装驱动,用设备管理器给叹号的安装phoenixsuit下的aw_driver就行

#204 Re: 全志 SOC » F1C100s bootloader到app过程的疑问 » 2020-07-31 09:24:40

BootLoader比如uboot会执行relocation的代码,将自己重新放到内存的高位位置,实际0x80000000的内容并未使用

#206 Re: 全志 SOC » 主线 EMMC写入uboot启动问题 » 2020-07-29 10:47:40

感觉还是那个老问题,没有开启mmc2的管脚配置,CONFIG_MMC_SUNXI_SLOT_EXTRA=2这个配置看看存在不嘛。

#207 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-27 18:41:38

skliu 说:

又碰到新问题。折腾半天了。
进入fel,然后通过sunxi-fel uboot下载自己编译的uboot到目标板,运行的结果。
信息如下:

U-Boot SPL 2019.01-rc3-g829407b58f-dirty (Jul 26 2020 - 15:20:41 +0800)
DRAM: 1024 MiB
Trying to boot from FEL


U-Boot 2019.01-rc3-g829407b58f-dirty (Jul 26 2020 - 15:20:41 +0800) Allwinner Technology

CPU:   Allwinner A33 (SUN8I 1667)
Model: Sinlinx SinA33
DRAM:  setup_dest_addr1 GiB
MMC:   MMC0: 01c20060 = 0x1004140, 01c20088 = 0x0, 01c202c0 = 0x1004140
MMC2: 01c20060 = 0x1004540, 01c20090 = 0x0, 01c202c0 = 0x1004540
mmc@1c0f000: 0, mmc@1c11000: 1
Loading Environment from FAT... Card did not respond to voltage select!
Setting up a 1280x720 lcd console (overscan 0x0)
In:    serial
Out:   vga
Err:   vga
Allwinner mUSB OTG (Peripheral)
Net:
Warning: usb_ether using MAC address from ROM
eth0: usb_ether
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 2 USB Device(s) found
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
=>
=>
=> mmc rescan
MMC: no card present
=> mmc info
MMC: no card present
=> mmc dev 1
Card did not respond to voltage select!
=> mmc list
mmc@1c0f000: 0
mmc@1c11000: 1
=> mmc dev 1
Card did not respond to voltage select!

板子自己运行可以从emmc启动系统。 系统是通过phoenixUSBpro写入的。
emmc的电压也从3.0改到3.3还是上面提示。
有碰到给个建议。 估计boot里面没搞对。
谢谢。

查查管脚配置,应该是复用模式不对

#208 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-25 21:33:16

具体怎么用参见uboot相关说明,配置好环境变量就可以正确的下载了

#209 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-25 21:16:23

没有找到emmc会不会是你uboot选项没有打开?

#210 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-25 20:45:36

主线的uboot可以通过sunxi-tools下载到内存中,再用dfu下载就行了

#211 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-24 18:02:49

skliu 说:

a. 短接是个好方法。 可以试试。
b. 我的另外一个正常的A33开发板,开机自动走TF卡。 但是设备管理器也没有usb设备显示。 可以通过安检进入uboot,usb就可以刷机了。 我的意思是,如果没有uboot或者uboot写错了呢?
c. 谢谢。

只要写了SPL就不会到FEL模式下去,就需要各种方法强制打断emmc执行,对了,emmc的boot0下可能还存在一份启动文件

#212 Re: 全志 SOC » A33 系统空片烧录系统的几个问题 » 2020-07-24 16:34:08

a.无法通过软件进入,需要制作boot卡或者短接掉emmc
b.设备管理器,没有就是有问题
c.这个除了自己弄其他也没办法阿,毕竟设计都不一样

#214 Re: 全志 SOC » ns2009 电阻触摸轮循问题 » 2020-07-23 09:36:54

Icenowy很早提交了个补丁,确实可用不过需要好好的调试下
https://patchwork.kernel.org/patch/9626021/

#216 Re: 全志 SOC » V3S 从 spi Nand 启动,有没有讲的比较清楚的 » 2020-07-16 09:40:07

Some SoCs can also boot from SPI NAND flash. Here the BROM tries to read a valid first stage bootloader starting from page number 0, 32, 64, 96, 128, 160, 192 and 224. It only reads the first 1024 bytes from every page. Since it simply sends the standard SPI NAND flash commands, it is a good idea to use a flash with ECC turned on by default and is performed by the flash itself, since errors cannot otherwise be corrected.
社区很早就写着了只是不明显。
https://linux-sunxi.org/Bootable_SPI_flash

#217 Re: 全志 SOC » F1C200S PDA手持机调试 » 2020-07-10 13:28:20

迪卡 说:

全网搜,无资料,arecord录音报错,
https://whycan.cn/t_2041.html
这个帖子里的大佬们,你们是怎么能录音的??
我是5.2内核

Mixer 要把mic的输入打开

#218 Re: RT1050/RT10XX » RGB屏有色差 » 2020-07-09 17:55:49

瑞星微的那个奇葩LCD输出也是连在一起并未分开的

#222 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录分享libgomp的bug » 2020-07-07 22:10:58

shaoxi2010
回复: 4

最近在使用jupyter-notebook下用opencv出现了个奇怪的错误。辛辛苦苦google了好久总算找到这个问题的解决办法了
LD_PRELOAD=libgomp.so.1 jupyter-notebook,提前加载经确认就是个bug,分享下防止小伙伴们撞枪口了。

Jakub Jelinek 2019-06-19 15:57:30 UTC
That is a bug in whatever dlopened libgomp.so.1 and before doing that ate all the preallocated TLS area.
The GNU TLS2 model which I'm afraid aarch64 uses unfortunately eats from the same TLS preallocated pool as libraries that require static TLS like libgomp, where it is performance critical to have it as static TLS.
Either don't dlopen libgomp, or LD_PRELOAD it, link it with the application that dlopens it, cut down the uses of other TLS or dlopen libgomp earlier.
There is nothing that can be done on the gcc side.

https://bugzilla.redhat.com/show_bug.cgi?id=1722181

ImportErrorTraceback (most recent call last)
<ipython-input-2-07a3f2957c05> in <module>
      1 get_ipython().run_line_magic('matplotlib', 'inline')
      2 import numpy as np
----> 3 import cv2
      4 from matplotlib import pyplot as plt
      5 import urllib.request as ul

ImportError: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block

#223 Re: 全志 SOC » VCC_DRAM电压正常2.4v,SVREF分压电压为何不正常? » 2020-07-03 14:11:05

你是万用表还是示波器哦,示波器我遇到过表笔分压导致测量不准,不启动系统这个也是对的阿。

#224 Re: 全志 SOC » A33 主线rootfs问题 » 2020-06-22 09:50:44

没用过vga但是主线都是直接打开fbconsole就行了

#225 Re: 全志 SOC » 荔枝派Nano 的SDIO wifi 问题(搜不到热点) » 2020-06-19 10:53:05

我记得README上有一个说明,probe加个参数试试

#227 Re: 全志 SOC » f1c100s可以使用uImage将内核和设备树放在一个镜像中嘛? » 2020-06-17 10:45:56

不知道你指的的官方是否是tina项目,不过tina本身就是合并的应该不是你想问的。

1. arm32的uboot都支持uImage的启动
2. 其实也可以并且也建议使用fitimage进行打包将kernel和dtb整合

#229 Re: 全志 SOC » 请教:SPL 调试方法 » 2020-06-16 09:39:29

everlink 说:

多谢你细心纠错,. 我等下试验看

更新:

改正了重新测试仍然没有能阻止进入fel模式

还尝试了
- 使用确定能够运行的 ( orangepi-zero 编译配置,之前在spi nor 试过 ok) sunxi-spl.bin 经由脚本转换后烧录
- 烧录确定能够在 f1c100s spi-nand 正常运行的 u-boot (https://github.com/hcly/f1c100s/blob/master/images/uboot-with-spl-spinand.bin)
都无法加载

还用 crc32 检查了烧录的数据没有问题
今天还反复看了好多遍这个 https://linux-sunxi.org/Bootable_SPI_flash#The_BROM_implementation_details
--
又另有想法,
1, 在 fel 加载 能运行的 uboot后查 ffff0000 地址,好像有code, 网上有说就是 brom. 或许dump出来用模拟器跑可慢慢查
2, 或者 用 jtag, attach 上去调 0xffff0000 地址运行跟踪看(在原厂工程师的环境,这个问题应该就是几分钟能确定的问题)

这两个方法对我来说有点折腾, 第一个是建环境有点花时间. 第二个是我没有jtag, 也不知道怎么连, 就算知道该怎么连我的板子可能还要改..

所以, 这个我得先放一放了... 搞不定.

我看了看,H3并没有说过它支持SPINAND启动阿,他只支持raw NAND启动,你可以看看brom介绍

#230 Re: 全志 SOC » 请教:SPL 调试方法 » 2020-06-15 15:44:41

everlink 说:

谢谢你! 再请教两个问题

- 你提到的 "后1k滞后偏移了512" 详细是指第二个 1k 再加 512 偏移吗?

- 另外, 您的脚本是将 spl/u-boot-spl.bin 转换后直接烧到 spi-nand 进行测试吗?
(加入 import os,sys 后脚本就顺利执行, 我生成 bin 后烧写, 重新上电后还进入 fel 模式)

spl/sunxi-spl.bin我提到了第二项,并非spl/u-boot-spl.bin。

#231 Re: 全志 SOC » A33 u-boot 错误信息帮忙分析。 » 2020-06-15 11:08:44

skliu 说:

就是说我不用sunxi-fel写入板载emmc。 而通过tf卡可以启动? 目前来看,是uboot里面就错了吗?就是说与板tf卡里面有没系统,和src文件无关?
配置检查过了:SDRAM一样,emmc一样,串口一样,不知道还有哪里可以检查的? 谢谢

是的,A33等主线在TF和emmc启动都很简单,只需要执行
dd if=$ROOTFS/boot/u-boot-sunxi-with-spl.bin of=$loop_path bs=1024 seek=8
重点确认下,设备树串口输出是否指向正确,console是否配置了quite,是在不行就只能点灯大法了。

#232 Re: 全志 SOC » 请教:SPL 调试方法 » 2020-06-15 11:01:52

everlink 说:

我说的不够清楚, 详细是这样的

我有 f1c200s , h3 两个板子, 用 TF 卡确定板子能够工作, 两块板子都焊接了 1Gb 的 WINBOND SPI-NAND
使用Jie Lei位同学的资料,代码 确定 f1c200s + spi-nand 正常工作,
Jie Lei 同学资料和代码: https://github.com/hcly/f1c100s
烧录方法: sunxi-fel uboot uboot-with-spl-usb.bin write 0x80000000 uboot-with-spl-spinand.bin

然后
- 针对h3修改编译出来 uboot.bin 及生成烧写 spi-nand 的 bin
- 使用 sunxi-fel uboot xxx 能成功烧写到 h3+spi nand 板子
这里是 fel 运行 uboot, 使用uboot 进行烧写, 烧写过程是有打印的,没有看出异常

- 重启后 板子没有串口输出. (目前想法是 brom 没有成功加载 spi-nand 里面的 spl)

h3 平台 spi-nand 里面的 spl+uboot 跟上述步骤用于烧写的 uboot 仅有很少改动, 这个改动已经在 f1c200s 平台验证
另外读取 spi-nand 里面数据跟用于烧写的 bin 比对, 格式和结构上大致未发现异常, 还没有逐个字节比对

针对 h3 平台尝试修改 下载地址但结果并无差异( 0x80000000 -> 0x40000000)
sunxi-fel uboot uboot-with-spl-usb.bin write 0x40000000 uboot-with-spl-spinand.bin
sunxi-fel uboot uboot-with-spl-usb.bin write 0x41000000 uboot-with-spl-spinand.bin

分享点调试经验吧,之前调试F1C的SPINAND遇到的:
1. 建议先导出BSP的SPL部分代码对比下,全志的brom确实是按照1k的形式进行的,但是我不知道后1k滞后偏移了512,
机理未知但是确实会导致不启动。这个我的测试代码

if __name__ == '__main__':
    args = sys.argv
    if len(args) < 3:
        print_usage()
        exit(-1)
    if not os.access(args[1], os.F_OK):
        print 'input file %s is not exist' % (args[1])
        exit(-1)
    f_in = os.open(args[1], os.O_RDONLY)
    f_out = os.open(args[2], os.O_RDWR | os.O_CREAT)
    os.ftruncate(f_out, 0x80000)

    for blk in range(0, 4):
        for pos in range(0, os.stat(args[1]).st_size/0x400):
            os.lseek(f_in, 0x400*pos, os.SEEK_SET)
            temp = os.read(f_in, 0x800)
            os.lseek(f_out, 0x20000*blk + 0x800*pos, os.SEEK_SET)
            os.write(f_out, temp)
    os.close(f_in)
    os.close(f_out)

2. 需要能启动的文件是spl/sunxi-spl.bin,不是其他什么东西,只需要配置好这个就行。
3. 如果写入成功并且能够引导,系统将不会进入FEL烧录模式,这个是最直接验证镜像格式正确与否的方法。
4. 如果以上还不能确认,建议抓取波形观察。

#233 Re: 全志 SOC » A33 u-boot 错误信息帮忙分析。 » 2020-06-15 10:43:25

感觉不像,感觉更像是uboot已经起来了,但是串口设备树配置不对没有输出,然后后半段重启了,没记错默认的动作是hang()。

#234 Re: 全志 SOC » 新手 A33想入主线问题请教 » 2020-06-13 19:33:16

skliu 说:

有空继续折腾中。 今天碰到新问题,还请大侠帮忙分析:
1. 用最新的kernel(5.7)替换原先的3.4的kernel。
2. 改了sunxi_defconfig。 编译顺利完成。 也可以按照厂家的方法打包成功。生成的img文件烧录后。卡在starting kernel。。。

百度后怀疑是设备树。 但是我在厂家提供的SDK方式的包里面没看到有对应的设备树文件。大家给点思路。
新问题: 只是升级kernel部省级uboot可以吗?
下面是uboot信息:
U-Boot 2011.09-rc1-00000-g1030d04-dirty (Jun 05 2020 - 19:41:27) Allwinner Technology

谢谢。

我没记错的话A33的SDK包的3.4系统是不代DTS的,那个是写在platform上的,你可以常识将DTS打入FAT分区,在启动时
进行加载,或者弃用掉SDK直接全部使用主线。

#235 Re: 全志 SOC » zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核 » 2020-06-11 11:12:25

luciferseva 说:

还是有点不太懂,官网上的spiflash启动,uboot需要这样改动。烧写到flash0x110000 的是内核zImage,为啥要加载到0x41000000 ,有没有具体点的信息和设置说明,能详细讲解一下嘛?
#define CONFIG_BOOTCOMMAND   "sf probe 0; "                           \
                             "sf read 0x41800000 0x100000 0x10000; "  \
                             "sf read 0x41000000 0x110000 0x400000; " \
                             "bootz 0x41000000 - 0x41800000"

#define CONFIG_BOOTARGS      "console=ttyS0,115200 earlyprintk panic=5 rootwait " \
                             "mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2"

还是刚刚那个解释,我建议你改改内核加载地址试一试你就明白了,zImage可以放到内存区域内的任意位置,放在靠低位地址只是为了避免重叠。

#236 Re: 全志 SOC » 请教: H3 发热问题,请教各位解决经验 » 2020-06-11 10:53:50

everlink 说:

估计是因为 40nm 和 28nm(?) 代差?

芯片貌似贵很多.要想想看

晓不得,价格这个问题,没办法

#237 Re: 全志 SOC » zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核 » 2020-06-11 10:41:50

zImage是自解压缩的镜像,可以随意放到内存的任意位置
Image属于未加压镜像需要放到指定内存位置,如0x40008000(arm32),参考内核内存映射模型
具体代码参照lds链接脚本,和stext的代码

#239 Re: 全志 SOC » 请问V3s Simple Framebuffer 启动之后,就把uboot显示的图片给清理了,两秒黑屏才进入app, 有什么办法不让他清屏呢 » 2020-06-10 09:30:30

Jmhh247 说:

请问,怎么启用DRM,有参考吗

LinuxFB
This plugin writes directly to the framebuffer via Linux's fbdev subsystem. Only software-rendered content is supported. Note that on some setups the display performance is expected to be limited.

However, since fbdev is being deprecated in the Linux kernel, the DRM dumb buffer support is also available, as of Qt 5.9. To use it, set the QT_QPA_FB_DRM environment variable to a non-zero value. When set, provided that dumb buffers are supported by your system, legacy framebuffer devices like /dev/fb0 won't be accessed. Instead, the rendering is set up via the DRM APIs, similar to the eglfs_kms backend in EGLFS. The output is double-buffered and page flipped, providing proper vsync for software-rendered content as well.

如果是用到PAN方法,就需要该代码实现了

#240 Re: 全志 SOC » 请问V3s Simple Framebuffer 启动之后,就把uboot显示的图片给清理了,两秒黑屏才进入app, 有什么办法不让他清屏呢 » 2020-06-09 17:35:27

codetez 说:

顶, 搭车问下, Simple Framebuffer  怎么使用双缓冲?

或者,v3s 怎么用双缓冲的Framebuffer

simple framebuffer好像没有实现双环冲,DRM的FB是可以的

#241 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-06-08 15:27:42

yuemin3 说:

我用树莓派4运行qt 的threadOpenGLWidget那个例子,也是同样有问题,这就奇怪了,到底是Qt对GLES支持不好还是什么问题。

这个我没测试到,感觉目前问题还是集中在mesa3d上,这个的大版本升级很多功能就正常了。但这部分真的无能为力,只能等大佬更新了。

#242 Re: ESP32/ESP8266 » I2S信号正确的标准是什么? » 2020-05-31 23:36:18

Blueskull 说:

做过几年音频DIY,算是老烧友了,给大家科普一下DAC吧。

首先,MCLK是DAC的内部频率,一般要求和BCLK同步,是BCLK的整数倍,从1倍到N倍不等,一般N是2的次幂。
BCLK是DAC传输信号的频率,等于32*LRCK*fs,对于立体声(非TDM),LRCK永远是fs的2倍(64个BCLK周期)。
BCLK是fs的通道数倍数*32,无论采样深度。
对于不到32位的数据,有效数据可能在32位空间的前面(LJ),后面(RJ)或者LRCK同步脉冲的后一位开始(I2S)。

至于采样率,这个看你的需求。硬件采样率和软件采样率不同就会要求采样率转换,这个过程可以做到无损(动态范围大于140dB,失真小于-130dB),但是需要消耗大量的CPU资源。采样率转换器就是个滤波器,带外抑制越高,带宽差越小,采样率越高,需要的CPU资源越多。

因为一般的音频资源都是44.1k的,我推荐硬件采样率设成44.1k就好(不知道ESP32的PLL是否支持,实在不行外加个晶振,然后ESP32设为I2S slave模式)。
采样率越高不意味着音质越好。现代的DAC芯片都是sigma delta技术,内置整数倍插值,除非你的插值器比芯片硬件的好,否则你自己做采样率转换器只会降低音质。
另外常见的误解就是采样率高输出滤波器就会更简单,这个也不正确。DAC内部已经集成插值了,而且SDM调制器也会插值好多倍,同时把音频带外的低频噪声能量移动到高频区(SDM和PWM的最大区别之一,噪声整形),所以你自己做片外插值没啥卵用。

而且DAC内部的插值器一般是固定角频率的,而不是固定绝对频率的,所以通带阻带都是相对输入采样率的。如果你的输入采样率是48k,他的阻带一般是20k,你的输入采样率的96k,他的阻带就是40k。
如果你自己做了插值,而带外镜像抑制没做好,你的镜像频谱是不会被DAC的插值器干掉的,所以这部分会被输出,然后在运放等模拟输出单元里面和你的输入信号非线性混频,导致信号质量下降。

所以老老实实48k或者44.1k,不要作死是最好的,除非你很明确你在做什么。

大佬想问个问题,一般用内置DAC能不能直接驱动0.5w的喇叭啊?

#243 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-30 22:28:57

touchey 说:

已经发你邮箱,请查收一下(ˇˍˇ)
第一次使用论坛邮箱,不太确定邮件是不是发送成功
?

没问题的我已经收到了,已经给你回复了你看看吧

#244 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-30 22:03:49

touchey 说:

这个定位挺有意思的,做减法需要智慧,Pychram能开发tiny200吗?
啥时间有空一起聊聊开源教具的思路?

可以的,我邮箱应该在可以直接发邮件给我,可以开发而且还能解决一些问题,但是确实没有世界编写来得方便。

#245 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-29 15:14:27

秦皇岛岛主 说:

非常感谢回复,内核已经编译成功
我烧录后发现没有modules,我就自己编译并安装了,并且拷贝到了开发板的/lib/modules目录下
目录结构如下
.....


看你的打印应该是没替换内核,内核和模块不匹配导致的,手动更新下内核就好了。

#246 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-29 10:27:22

有梦的地方 说:

有没有 buildroot Qt Python PySide/PyQt的配置,股狗找了很久都没有找到,想用Python写Qt程序,adb更新,这样有记事本就能写Qt程序了。

不建议使用pyside和pyqt了,太老了而且embedded兼容性不好,这个配置是默认打开了pyqt5,如果非要pyside你得自己编译下,不是很难但是要注意下系统位数,使用64位系统编译arm32会发生一些不可描诉的错误。

#248 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-29 09:27:49

秦皇岛岛主 说:

请问buildroot的版本和buildroot的配置方便传上来吗?发现把python3配置进去还挺麻烦的

改改编译器配置就行了
tiny200.zip

#249 Re: 全志 SOC » 小智科技X3卡片电脑,仅有银行卡一半大,像艺术品般的硬件,多图慎入~ (开放购买) » 2020-05-28 17:39:00

小智科技 说:

不是首付,全款299

感觉真不错阿,要是内存有512就完美了,后面会不会出512版本的?

#250 Re: 全志 SOC » f1c100s spi不能使用burst模式??? » 2020-05-28 17:36:42

没看懂这个问题,我记得没错uboot的spl不就是burst么,一次性就读取完了并非一个个发地址阿。
还是你说的是DMA的burst?双线读取我试过内核驱动没什么问题,理论上也能在spl中用。

#252 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教,win下如何进行嵌入式qt编程? » 2020-05-27 15:39:26

Gentlepig 说:

看你的截图,像是在win下的minGW环境里打开了win的qmake.exe程序。
我试了下,用mingw32和msys尝试打开win的qmake.exe,都报错:未找到命令。
https://whycan.cn/files/members/1209/QQ截图20200527144737.jpg https://whycan.cn/files/members/1209/QQ截图20200527144725.jpg
用win的cmd终端倒是可以执行。
https://whycan.cn/files/members/1209/QQ截图20200527144745.jpg

大胆的猜测了下,你这个应该是下载的qt提供的二进制吧,我使用minigw安装的,不过没什么差异的,都能用,只要qmake还能跑就行

#253 Re: Php/Nodejs/Web/HTML5/Javascript/微信开发/Python » 现在 buildroot 支持pyside2了吗,我想在A33下面玩Python + Qt,buildroot里面没有找到相关的软件包,难过 » 2020-05-27 13:23:18

没有不过可以手动移植曾经移植过pyside,但是qt4支持本来就很一般。buildroot有pyqt5,两者也没差多少。

#254 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教,win下如何进行嵌入式qt编程? » 2020-05-27 13:18:58

我觉得是你们理解错了,我指的是用minigw的qmake,不需要你再去生成一个。只需要指定好mkspec的东西就行,
qmake其实也就是一个按规则生成makefile的程序罢了,更本不需要这么折腾。如果是clang的qt那么更完美,甚至
只需要个sysroot就行了,本质上能不能用还要看minigw的gcc与实际gcc有没有版本差异,毕竟C++依赖于GCC版
本,不过不建议这么玩,实在是费力又不讨好。不过这个确实是使用debian等发行版进行交叉编译的qt程序的好办法
可以直接生成对应版本而不受影响。
2020-05-27_13-06.png
2020-05-27_13-11.png

#255 Re: 全志 SOC » 使用squashfs的一些疑问??? » 2020-05-22 18:04:56

后面的说的都是在板子上电操作了,但是我看了下基本没什么意义,缺少了关键的pivot_root操作,也就算根文件系统其所还是只读,只是/merged可以写了
squashfs的实现可以参照openwrt的实现,这个就非常完美了,可以直接将根文件系统重新挂载为可读写,解决一切问题。mount.c

#256 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教,win下如何进行嵌入式qt编程? » 2020-05-22 17:36:36

Gentlepig 说:

那么,minGW下的gcc呢?也只直接复制linux下的arm-linux-gcc就可以吗?还是在win下专门安装个arm-linux-gcc.exe?

安装他的,只要g++的版本minigw小于编译的gcc就没有问题了

#257 Re: 全志 SOC » F1C100S Flash 编译u-boot.bin过大,超过1M » 2020-05-22 17:34:57

关掉不想要的东西就好了,我用的arm指令都才300多k

#258 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教,win下如何进行嵌入式qt编程? » 2020-05-22 16:23:33

Gentlepig 说:

搜到了些文章,步骤是这样的:
在win下,
安装minGW;
安装arm-linux-xxx-gcc.exe(这个不知道和Linux下的arm-linux-xxx-gcc是否是一回事?);
下载qt-everysrc源码;
在minGW里移植qt源码,编译器指定为安装的arm-linux-xxx-gcc.exe,生成库文件及qmake(是不是只要qmake就可以了?);
win下的Qt creator里指定gcc和qmake(忘了这里需要不需要指定库)路径,然后就可以编译了。

这里,应该可以在mingGW下qmake,make命令编译qt程序吧。
是否可以把linux下已经交叉编译好的qmake及对应gcc,直接复制过来,然后在win的minGW环境下执行gcc及qmake命令?

实际上你只要把rootfs和qt.config配置上的路径改对,复制一份到windows的minigw上,配置下qt就可以了,qmake和其他东西其实是通用的,只需要mkspec和qtgloabl.h正确就行了。顺带一体debian上实现qt程序交叉编译也可以用这个思路,根本不需要什么交叉环境,贼方便。

#259 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-20 15:00:11

touchey 说:

123点都很好的,
实际教学Jupyter更方便,
如果能在tiny200等硬件上跑Jupter服务,通过USB RNDIS虚拟一个IP地址出来,
任何pc都可以通过IE浏览器开发简单应用了
这里有技术大神,再邀请两位老师一起参加,
共同发起一个开源教具的项目

大概看了下你推件的jupyter,不过有一个很残酷的问题,f1c200的资源还是太少了,在我的测试过程中,pyqt等界面一旦复杂度
上去了,python很快就会耗尽资源而被回收,完全不知道这个东西的资源消耗会在什么级别,不过就以前的python写的程序内存
友好度都不容乐观,可能在低成本上,最后可能还是不得不妥协。

#260 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-20 13:50:58

touchey 说:

如果能借晕哥的宝地,一起发起一个开源教具的计划就更好了:-D
这里本来就是好的学习社区O(∩_∩)O~

感觉这个思路真的很棒,我原目的其实也是打算做教具用的,不过并非计算机,原计划是用来演示力学问题,解决动静摩擦力
牛顿第二定律这些不明显的物理现象,通过数据分析等更加深入的去理解物理现象。然后就抱着去设计一个简单的嵌入式系统
尽可能的去简化现有的编程难度,方便二次开发就去弄了个这个固件。

不过我觉得可以简化一下目标:
1. 单纯以功能应用开发为目标,以学习编程思路和常见外设为目标,当作一个简化的开发板使用,配合上如pychram这类的IDE
和传输手段,快速实现开发验证。如luma和pyqt都可以在pc验证完成直接移植到板子运行甚至不需要修改代码,使用系统抽象的
API等快速理解I2C或SPI类型的外设。
2.从你的需求上看其实并不需要过多涉及底层操作,主要应该是提供固件或者恢复手段就可以了,确实要作为编译定制感觉对学生
而言还有点太早了,应该更加集中于能快速激发成就感的东西,而非系统学习整个系统原理等。
3.还真不是很了解新课改的东西,不过我觉得很不错,如果真有开源项目,很乐意一起维护。

#261 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-20 00:12:45

touchey 说:

shaoxi太谦虚,这个固件,项目工程可能如你所说,
但是对于学习就很有价值
特别是学生学习操作系统,软硬件结合的思想,很有意义
正在准备在这个固件的基础上,做一份小教具

哇,做教具呀,我看看吧,最近忙着练琴没啥时间了,原来想把这个做成像树莓派一样的东西,后来写到wifi部分发现termios对串口支持很头疼就没继续研究了,原计划写个控制台可以直接配好一切,毕竟python轮子多,到时我可以把几个demo和buildroot配置都上传上来,我也是零时起意,一起研究呗…

#262 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-19 18:16:22

xxdebug 说:

楼主能发下BOOT ARG和CMD怎么写的吗,

setenv bootargs 'console=ttyS1,115200 loglevel=4 root=ubi0 ubi.mtd=4 rootfstype=ubifs cma=16M';mtd read spi-nand0 0x81000000  0x1c0000 0x0600000;mtd read spi-nand0 0x80500000 0x180000 0x0040000;bootz 0x81000000 - 0x80500000

#263 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-19 09:49:28

touchey 说:

shaoxi2010
能不能整理一个固件编译教程,以便我等新手入门
smile

不好整理哦,这东西意义不大,如果只是想替换的话,直接解我的固件包就行了,编译就是标准的编译没啥特点,
rootfs按照buildroot生成就行,剩下的真需要靠自己摸索了。有啥疑问发贴就行了,大家都好热情的。

#264 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2020-05-18 15:47:39

yushikong 说:

编辑环境是windows加eclipse,下面分享几张截图,
https://whycan.cn/files/members/394/none.png  这一张是关于下载程序到单片机里面的配置,稍微等待一下就能下载了,不过不支持在线调试,我一般使用串口直接调试,不怎么用在线调试。



下面说一说eclipse对比keil的优势,其实最主要的是编辑代码的增强,keil特别是C51版本的,基本还停留在上世纪的编辑风格,和windows自带的记事本强不了多少。eclipse具有代码提示、关键词特殊颜色、全局修改变量等等功能,也可以直接搭配git

SDCC时至今日还在活跃的更新,说明还是有一部分人在用的。SDCC里面的一个大坑是关于中断函数,据我个人测试中断函数必须在main函数之前被声明或者直接编写,不然就无法进中断,切记。SDCC编译固件时如果工程里面有较多的无用代码,它也会直接编译到hex里面的,这个问题困扰了我好久,一直没有得到解决。所以如果空间紧张,建议注释掉一些无关的代码,避免代码空间膨胀

关于中断这个当初我也是被坑了好久,后来才发现这个其所在sdcc的手册内是有描诉的,看他的意思除了能放在main对应的那个c文件内,在main的头文件包含也是可以的,不过后面那个场景我没试过。
SDCC allows interrupt service routines to be coded in C, with some extended keywords.
void timer_isr (void) __interrupt (1) __using (1)
{
...
}
The optional number following the __interrupt keyword is the interrupt number this routine will service. When
present, the compiler will insert a call to this routine in the interrupt vector table for the interrupt number specified.
If you have multiple source files in your project, interrupt service routines can be present in any of them, but a
prototype of the isr MUST be present or included in the file that contains the function main. The optional (8051
specific) keyword __using can be used to tell the compiler to use the specified register bank when generating code
for this function.

#265 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-18 14:48:33

huangjian276310465 说:

官方SDK是支持SPI NAND 的吗?
主线支持吗NAND。

官方是支持SPINAND的,主线也是支持SPINAND的,RAW NAND控制器f1c都没有阿

#266 Re: 全志 SOC » buidroot 编译出错 » 2020-05-18 11:48:25

buildroot版本太老,或者是你系统版本过新,就这毛病,之前用fedora一直报

#267 Re: 全志 SOC » A64 emmc boot0启动问题 » 2020-05-15 09:18:02

这个又是个巨坑了,我没记错的话A64并未使用boot0你放那也没用,A33用了的,你应该放在user data段的8k处

#268 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-13 00:25:44

sungq 说:

楼主厉害,请问楼主有玩过在tiny200 uboot中支持spinand启动系统。

emmm,我这个镜像可以从nand启动啊,uboot因为项目有使用所以不方便放出来,你有啥问题可以帮你指导下。

#269 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-12 09:30:07

海心 说:

不是说NAND需要自行处理坏区么,更倾向于存储视频图片类,即使丢了字节影响也不是特别大

数据可靠性保证不能只看机理,nand文件系统的原子性可以说原理上不会发生。配合硬件优化,做到工业级存储也不是问题,当然数据回转到上一态需要应用配合才行

#270 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-11 10:30:03

海心 说:

固件是不是没法写入NAND FLASH中啊,nand是不是也不太适合用来存储固件呢

NAND不适合存储固件这个怎么讲?目前UBIFS系列的产品返修率非常低,可靠性我觉得还是非常不错的。

#271 Re: 全志 SOC » 请问有没有大神搞定了f1c100s的主线kernel4.19下的声卡驱动?[13楼@wammaw1314搞定声卡驱动,欢迎测试] » 2020-05-10 23:06:03

Undefined 说:

你用的mic是哪个mic?
我直接使用arecord的话会IO错误
错误如下

# arecord -Dhw:0,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
arecord: pcm_read:2151: read error: Input/output error
#

mixer配置没有哦,我在没选择之前都是直接卡死

#272 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-10 22:55:23

总算理完啦,patch放出来了,不晓得有没有问题

linux-4_19_117.zip

#273 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-05 17:29:09

fire 说:

独乐乐不如众乐乐,楼主方便把修改的代码分享一下吗,还有请教你用哪个SPI NAND芯片?

有时间我发个patch吧,毕竟都是坛子里的东西,这个是gd的nand,买来是啥就是啥我也没换

#274 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-05 16:46:25

shaoxi2010 说:

Tiny200做的很不错,可惜官方没有SPINAND的固件支持,故弄了超整合版本(坛子里自己的都有,非歪朵拉官方)
1.整合4.19.117内核,USB、显示、code(录音我试了ok)
2.支持SPINAND,SD卡启动,DMA SPI支持,双线模式
3.自动挂载U盘,SD卡等外设
4.整合python3+pyqt5,一起夸平台,卡的飞起(逃
5.整合设备树拓展功能,可以动态添加PE上SPI,I2C,串口等修改功能管脚和驱动状态
6.ns2009驱动也整合了,滤波可能要自己调调问题不大
7.网络配置啥的我都没管,懒。。。

顺便吐槽下坑网的上传,居然没法用,总之还是比较完整的了,太懒了就不写了,空了更新。
在吐槽下tiny200,那个boot0按键更本没用,USBID不知道为啥要去掉,触摸的GPIO没啥用阿,ns2009这破玩意,就不是给人用的。
链接: https://pan.baidu.com/s/1uESxgv_yr5eCsgW9tMNN_Q 提取码: cpat 复制这段内容后打开百度网盘手机App,操作更方便哦










以下由 @哇酷小二 2020-05-03添加:
--------------------------------------------------------
本站下载: sd_20200427.tgz


是时候来更新一下挖的坑了,在上一版本的基础上做出了一些优化:
1. 集成了esp8089驱动,上电自动加载识别
2. 简化了安装脚本,编写烧录步骤
3. 强化python库,提供gpio、spi、i2c、以及luma支持,可以驱动max21100(九轴传感器)、max7219(点阵屏幕)、st7735(0.9寸spi屏幕)
4. 还有些我也不晓得的,应该可以做到开箱即用,当开发板玩
5. rootfs大约在51M左右,剩下月49M空间,ubifs自带压缩,问题不大
6. 默认串口1输出,什么都不用改,自带sz和rz,tftp也有自己配置

安装步骤:
1. 使用DD或者balenaEtcher(gui)将镜像烧入到SD卡中
2. 插上SD卡到tiny200,进入系统后,输入python /burn/install.py now
3. 等待安装自动完成,即可断点在从spinand启动了


overlay使用借用了xlinx的实现参考他家wiki:
默认PE口全部为GPIO功能什么都没有打开,可以直接使用
举例打开SPI1步骤:
1. mount -t configfs none /mnt
2. mkdir /mnt/device-tree/overlays/spi
3. echo SPI1.dtbo > /mnt/device-tree/overlays/spi/path
4. umount /mnt

[ 1561.746204] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/spi@1c06000/pinctrls
[ 1561.756994] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/spi@1c06000/pinctrl0
[ 1561.768923] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/spi@1c06000/status
[ 1561.780407] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/spi1_pins

tiny200测试
链接: https://pan.baidu.com/s/1yZ-B25arus32R-Qipvbn6g 提取码: 6hc8,好像论坛firefox越来越诡异了,附件完全上传不了

#275 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-05-05 14:45:59

mango 说:

额,BOOT按键怎么会没用?

事实就是没有,我都是靠剪刀短的

#276 Re: 全志 SOC » 求助下wpa_supplicant的错误信息 » 2020-05-04 12:02:46

再查看了一堆代码后发现两件事情:
1.这个和我打开了EAP和HS20选项有关
2.buildroot默认只使用了openssl模组
3.修改为gnutls加密后该问题消失,但不确定是否是选项问题

#277 Re: 全志 SOC » A33接SL2.1 USB HUB芯片, 扩展出来的四个口接U盘都可以, 但是有两个口接AIR720 4G模块出错 » 2020-05-04 11:34:39

恭喜踩坑里了,看你的打印信息就是用的OTG那一路的USB吧,那个USB不支持ehci模式,可用端点就5个,另外一路USB是正常的,你可以飞线试试,目前只看到A64是支持两路都带ehci

#278 Re: 全志 SOC » 求助下wpa_supplicant的错误信息 » 2020-05-03 09:47:57

fire 说:

buildroot里面勾选ssl,tls相关选项。

我尝试勾选了gnutls和libssl问题依然存在阿,有点找不到北了

#279 全志 SOC » 求助下wpa_supplicant的错误信息 » 2020-05-02 23:36:16

shaoxi2010
回复: 4

最近移植完wifi发现无法打开wpa_supplicant,这几个错误大佬能指点下是什么么,从来没见过。

wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
SSL: Failed to initialize TLS context.
Failed to initialize EAPOL state machines.
nl80211: deinit ifname=wlan0 disabled_11b_rates=0

#280 全志 SOC » ESP8089重启不识别 » 2020-04-29 22:42:25

shaoxi2010
回复: 1

最近在调试SDIO的ESP8089的wifi驱动发现一个神奇的现象,软重启后就不识别了。
难不成还需要外接一个GPIO控制电源么?用的tiny200的板子加nano的wifi模块。

#281 Re: 全志 SOC » 请问高手们, F1C100S SPI1支持双线双向模式吗 » 2020-04-29 11:50:54

可能确实应该是接收是支持双线的,才想起适配SPINAND的时候,读取速度约7M/s,而写入只有3M/s,由于SPINAND并不支持双线写入,只有单线和四线模式,所以确实应该是和他的寄存器写的一页,支持双线的读取,手上也没有其他SPI设备了,验证不了

#282 Re: 全志 SOC » 请问高手们, F1C100S SPI1支持双线双向模式吗 » 2020-04-29 11:46:42

nufing 说:

看了一下,F1C100S ,F1C100S 不支持 QSPI, 了不支持 2-bits 模式,引脚都没有。

确实不支持4线模式,但是它支持双线,就像上面那个手册内容写的一样

#283 全志 SOC » Max21100+lis3mdl姿态数据采集 » 2020-04-28 22:33:51

shaoxi2010
回复: 0

翻出了吃灰N久的Max21100+lis3mdl姿态传感器,做了个简单基于tiny200的python数据采集感觉有点意思,
分享给大家不过仿佛这个传感器已经很少见了
Max21100_tar.gz
3AF6093F-D805-4B31-88E8-1D2300F165DB.jpeg

#284 Re: 全志 SOC » 关于gcc 的几个问题 » 2020-04-28 17:44:20

1.交叉编译的选项配置是没问题的
2.prefix指的绝对路径,并不区分host环境还是target
3.一般使用DESTDIR环境变量来处理交叉编译安装问题

#286 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2020-04-27 12:16:03

春风吹又生 说:

感谢楼主分享, 可是这个怎么烧录进去呢?

先dd到sd卡上,然后接上屏幕上电点烧录,有空在写点吧…

#287 全志 SOC » Tiny200 SPINAND固件分享 » 2020-04-27 00:27:53

shaoxi2010
回复: 98

Tiny200做的很不错,可惜官方没有SPINAND的固件支持,故弄了超整合版本(坛子里自己的都有,非歪朵拉官方)
1.整合4.19.117内核,USB、显示、code(录音我试了ok)
2.支持SPINAND,SD卡启动,DMA SPI支持,双线模式
3.自动挂载U盘,SD卡等外设
4.整合python3+pyqt5,一起夸平台,卡的飞起(逃
5.整合设备树拓展功能,可以动态添加PE上SPI,I2C,串口等修改功能管脚和驱动状态
6.ns2009驱动也整合了,滤波可能要自己调调问题不大
7.网络配置啥的我都没管,懒。。。

顺便吐槽下坑网的上传,居然没法用,总之还是比较完整的了,太懒了就不写了,空了更新。
在吐槽下tiny200,那个boot0按键更本没用,USBID不知道为啥要去掉,触摸的GPIO没啥用阿,ns2009这破玩意,就不是给人用的。
链接: https://pan.baidu.com/s/1uESxgv_yr5eCsgW9tMNN_Q 提取码: cpat 复制这段内容后打开百度网盘手机App,操作更方便哦












以下由 @哇酷小二 2020-05-03添加:
--------------------------------------------------------
本站下载: sd_20200427.tgz



以下由 @哇酷小二 2020-05-10添加:
--------------------------------------------------------
@shaoxi2010 21# 更新:
总算理完啦,patch放出来了,不晓得有没有问题: linux-4_19_117.zip

#288 Re: 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-27 00:01:00

看来没什么好办法了只有先放放了

#289 Re: 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-26 18:43:54

metro 说:

确实有可能是其它代码块引发的问题,不过U-Boot已经执行到这个地方了,我觉得还是先在附近查找问题比较好。
CPSR(准确说是SPSR,因为是表示异常触发时记录的CPSR寄存器内容)是在vectors.S的get_bad_stack宏中存储的,这边的逻辑应该没有错,反映的就是异常发生时(而非进入异常后)的CPSR寄存器状态。
在Thumb状态中,确实没有什么比较好的办法来获取CPSR寄存器的内容,不过我觉得可以写个函数尝试输出函数内lr寄存器(记录返回地址)的内容,如果该函数正确执行的话,输出的lr寄存器的最低位应当是1(表示Thumb状态)。为了保存T状态位,这个函数必须使用blx调用,而blx接受的参数是寄存器而非常量offset,我认为通过函数指针访问函数的方式应该会编译成带blx跳转的形式(只要没被编译器优化),可以试试。

情况越来越不明了了,我现在越来越怀疑是不是存在越界或者其他什么问题了。添加了如下测试点

static inline unsigned __get_cpsr(void)
{
    unsigned long retval;
    asm volatile (" mrs %0, cpsr" : "=r" (retval) :  );
    return retval;
}

static int spinand_check_ecc_status(struct spinand_device *spinand, u8 status)
{
	struct nand_device *nand = spinand_to_nand(spinand);

	if (spinand->eccinfo.get_status)
		return spinand->eccinfo.get_status(spinand, status);

	switch (status & STATUS_ECC_MASK) {
	case STATUS_ECC_NO_BITFLIPS:
		printf("cpsr -> 0x%x\n", __get_cpsr());
		return 0;

	case STATUS_ECC_HAS_BITFLIPS:
		/*
		 * We have no way to know exactly how many bitflips have been
		 * fixed, so let's return the maximum possible value so that
		 * wear-leveling layers move the data immediately.
		 */
		return nand->eccreq.strength;

	case STATUS_ECC_UNCOR_ERROR:
		return -EBADMSG;

	default:
		break;
	}

	return -EINVAL;
}

验证在spinand_init函数下添加TEST点,返回地址确实最低位为1,测试函数代码段OK。

noinline static void TEST(void)
{
	unsigned int tfunc = (unsigned int) __builtin_return_address(0);
	if (gd->flags & GD_FLG_RELOC)
		tfunc -= gd->reloc_off;
	printf("ret <- 0x%x\n",  tfunc);
}

static int spinand_check_ecc_status(struct spinand_device *spinand, u8 status)
{
	struct nand_device *nand = spinand_to_nand(spinand);

	TEST();
	if (spinand->eccinfo.get_status)
		return spinand->eccinfo.get_status(spinand, status);

	switch (status & STATUS_ECC_MASK) {
	case STATUS_ECC_NO_BITFLIPS:
		return 0;

	case STATUS_ECC_HAS_BITFLIPS:
		/*
		 * We have no way to know exactly how many bitflips have been
		 * fixed, so let's return the maximum possible value so that
		 * wear-leveling layers move the data immediately.
		 */
		return nand->eccreq.strength;

	case STATUS_ECC_UNCOR_ERROR:
		return -EBADMSG;

	default:
		break;
	}

	return -EINVAL;
}

当添加到前面的测试点位置时,迷惑的事情又出现了,打印并未出现。确认TEST点(81716c1a)在故障(81716c7c)位置之前。
奇奇怪怪的事情真奇妙,lr的地址显示他都在thumb模式下。而TEST点打印未出现,我怀疑堆栈可能已经GG,但是uboot下并未有
栈回溯功能,还是我不知道?

U-Boot 2018.11 (Apr 26 2020 - 18:24:48 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: f1c200s
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400
Hit any key to stop autoboot:  0 
ret <- 0x817172c9
Reading 6291456 byte(s) (3072 page(s)) at offset 0x001c0000
undefined instruction
pc : [<82fa9c90>]          lr : [<82fa9c7d>]
reloc pc : [<81716c90>]    lr : [<81716c7d>]
sp : 82e709f0  ip : fffdcc80     fp : 00000000
r10: deadbeef  r9 : 82e72ec8     r8 : 82f932a0
r7 : 00000000  r6 : 00000000     r5 : 00000002  r4 : 82e748d0
r3 : 00000000  r2 : 00000002     r1 : 82e752e0  r0 : 82e752e0
Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32
Code: 29104019 2920d008 2900d00b 0038d106 (bc04b024) 
Resetting CPU ...

resetting ...

感觉在迷茫的路上越来越迷茫了,也可能是我并不能让编译器生成跳转为blx的调用,大神还有什么招数没有哦?

U-Boot 2018.11 (Apr 26 2020 - 18:25:27 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: f1c200s
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400
Hit any key to stop autoboot:  0 
Reading 6291456 byte(s) (3072 page(s)) at offset 0x001c0000
undefined instruction
pc : [<82fa9c7c>]          lr : [<82fa9c7f>]
reloc pc : [<81716c7c>]    lr : [<81716c7f>]
sp : 82e709f0  ip : fffdcc88     fp : 00000000
r10: deadbeef  r9 : 82e72ec8     r8 : 82f932a0
r7 : 00000000  r6 : 00000000     r5 : 00000002  r4 : 82e748d0
r3 : 00000000  r2 : 00000002     r1 : 82e752e0  r0 : 82e752e0
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
Code: 18129309 9210414b e7af9311 f00c18c9 (e7c5feb9) 
Resetting CPU ...

resetting ...

81716c70:   414b        adcs    r3, r1
81716c72:   9210        str r2, [sp, #64]   ; 0x40
81716c74:   9311        str r3, [sp, #68]   ; 0x44
81716c76:   e7af        b.n 81716bd8 <spinand_read_page+0xec>
            memcpy(req->oobbuf.in, spinand->oobbuf + req->ooboffs,
81716c78:   18c9        adds    r1, r1, r3
81716c7a:   f00c feb9   bl  817239f0 <__memcpy_from_thumb>
81716c7e:   e7c5        b.n 81716c0c <spinand_read_page+0x120>  <-----------------------lr地址
    switch (status & STATUS_ECC_MASK) {
81716c80:   2130        movs    r1, #48 ; 0x30
81716c82:   4029        ands    r1, r5
81716c84:   2910        cmp r1, #16
81716c86:   d008        beq.n   81716c9a <spinand_read_page+0x1

81716c02:   000a        movs    r2, r1
81716c04:   0001        movs    r1, r0
81716c06:   9806        ldr r0, [sp, #24]
81716c08:   f7fe f840   bl  81714c8c <mtd_ooblayout_get_databytes>
    if (!ecc_enabled)
81716c0c:   9b07        ldr r3, [sp, #28]
81716c0e:   2b00        cmp r3, #0
81716c10:   d03e        beq.n   81716c90 <spinand_read_page+0x1a4>
    return spinand_check_ecc_status(spinand, status);
81716c12:   aa08        add r2, sp, #32
81716c14:   230d        movs    r3, #13
81716c16:   189b        adds    r3, r3, r2
81716c18:   781d        ldrb    r5, [r3, #0]
    TEST();
81716c1a:   f7ff fdff   bl  8171681c <TEST>   <-----------------------------------------
    if (spinand->eccinfo.get_status)
81716c1e:   6e23        ldr r3, [r4, #96]   ; 0x60
81716c20:   2b00        cmp r3, #0
81716c22:   d02d        beq.n   81716c80 <spinand_read_page+0x194>
        return spinand->eccinfo.get_status(spinand, status);
81716c24:   0029        movs    r1, r5
81716c26:   0020        movs    r0, r4
81716c28:   4798        blx r3
81716c2a:   0007        movs    r7, r0
81716c2c:   e030        b.n 81716c90 <spinand_read_page+0x1a4>
    void *buf = NULL;
81716c2e:   9703        str r7, [sp, #12]
    unsigned int nbytes = 0;
81716c30:   003e        movs    r6, r7
81716c32:   e7ac        b.n 81716b8e <spinand_read_page+0xa2>

#290 Re: 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-26 17:26:28

metro 说:

看了异常附近的指令,函数内bx/blx指令只有一条,结合代码来看,应该是在core.c中的spinand_read_page函数返回处,而函数中blx指令对应的应该是同一文件中spinand_check_ecc_status函数使用的get_status函数指针。我检查了一下函数指针的地址,应该没有问题。

重新整理一下问题,我觉得是这样的:

  • 首先,异常内容是未定义指令,但当前出错的指令实际上是ARMv5T兼容的,因此和架构没有关系。

  • 其次,看U-Boot的提示,当前应该处在ARM状态而非Thumb状态,这与预期不符(可以通过前面说的(T)提示和Code的指令长度发现CPU将这些指令当成了32位宽的ARM指令),这应该是问题的原因。

  • 不过,就目前的已有信息,还是很难看出是哪个地方引发了错误的状态切换,毕竟代码能够跑到这里来,侧面说明了这个错误的状态切换很可能是在异常附近发生的。事实上,前面几条指令在ARM状态下也能执行(非未定义指令),只是执行结果是错误的而已。

  • 要想快速排查出错误原因,应该还是要上调试器比较靠谱,在异常附近加个断点,看看在异常附近的状态切换是否符合要求。

另外补充一下,除了bl/blx指令之外,pop指令也有改变执行状态的能力,前提是pop指令的操作对象包括pc。

谢谢大神的分析指点,我又仔细回顾了一下当前的现象:
1. CPU的状态目前看起来确实是不正确的,但是是不是我觉得不能确定,不是很熟悉uboot的那段汇编,但是CPRS应该不能直接访问把。
2. 从现象上来看,问题现场不好确定是不是这个位置,有可能是其他代码块引发,然后飞到这个位置上来的,但从lr的寄存器上看,返回地址又是正确的
3. 尝试了下加入故障点,发现问题发生在spinand_check_ecc_status函数返回,mrs指令在thumb下不可用,求大神支个招。
4. 手上没有调速器,这个坑爹问题验证不了,害....

static inline unsigned __get_cpsr(void)
{
    unsigned long retval;
    asm volatile (" mrs %0, cpsr" : "=r" (retval) :  );
    return retval;
}

static int spinand_check_ecc_status(struct spinand_device *spinand, u8 status)
{
	struct nand_device *nand = spinand_to_nand(spinand);

	if (spinand->eccinfo.get_status)
		return spinand->eccinfo.get_status(spinand, status);

	switch (status & STATUS_ECC_MASK) {
	case STATUS_ECC_NO_BITFLIPS:
		printf("cpsr -> 0x%x\n", __get_cpsr());
		return 0;

	case STATUS_ECC_HAS_BITFLIPS:
		/*
		 * We have no way to know exactly how many bitflips have been
		 * fixed, so let's return the maximum possible value so that
		 * wear-leveling layers move the data immediately.
		 */
		return nand->eccreq.strength;

	case STATUS_ECC_UNCOR_ERROR:
		return -EBADMSG;

	default:
		break;
	}

	return -EINVAL;
}

#291 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-04-26 12:58:42

lima的bug还是太多,等稳定了后慢慢来吧,我之前测试了下QT的GL组建,有很多渲染直接报错,不过对xorg的性能提升还算很大的。

#293 Re: 全志 SOC » 请问有没有大神搞定了f1c100s的主线kernel4.19下的声卡驱动?[13楼@wammaw1314搞定声卡驱动,欢迎测试] » 2020-04-25 13:48:28

我试了下,输入是有声音的,输出我没有喇叭测不了,估计问题不大,毕竟MIC都能用

#294 Re: 全志 SOC » 请问高手们, F1C100S SPI1支持双线双向模式吗 » 2020-04-25 13:20:04

SPI1我不确定,但是SPI0是可以的,速率可以到100M,tiny200没什么问题

#295 Re: 全志 SOC » 荔枝派控制台信息直接输出到液晶屏而不是电脑串口 » 2020-04-25 11:32:13

zhang235hai 说:

可以说得详细一些吗?
新手实在是搞不定
谢谢

u-boot 配置 bootargs 参数, console设置成 tty
内核打开这两个选项
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y

#296 Re: 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-25 11:23:33

metro 说:

我觉得不是Thumb的问题,指令都是正确的,并且异常附近的Thumb指令都是从ARMv4T就支持的。
ARM和Thumb的状态切换是需要显式调用bx或blx指令,之后通过识别pc寄存器的最后一位来判断跳转后进入何种模式(0是ARM,1是Thumb)。所以问题可能是因为在其它地方调用bx或blx指令时错误地进入到了Thumb模式(汇编没写好时有这个可能性),但是在执行上面的指令时可能还是正常的(指令虽然乱套了但并没有引发异常),直到出现未定义指令异常。
U-Boot应该有开关可以控制是否使用Thumb模式(SYS_THUMB_BUILD),不过我觉得这个开关应该是正确打开的,否则不应该执行到这里才报错。更有可能的情况还是上面那种。如果不介意的话,可以把编译好后的文件发上来看看。

当然不介意,能解决这奇怪的问题最好,还没有一点思路。我又重新生成了一个确认打开SYS_THUMB_BUILD必出。

U-Boot SPL 2018.11 (Apr 25 2020 - 11:09:43 +0800)
DRAM: 64 MiB
Trying to boot from FEL


U-Boot 2018.11 (Apr 25 2020 - 11:09:43 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: f1c200s
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400
Hit any key to stop autoboot:  0 
Reading 6291456 byte(s) (3072 page(s)) at offset 0x001c0000
undefined instruction
pc : [<82fa9c64>]          lr : [<82fa9c51>]
reloc pc : [<81716c64>]    lr : [<81716c51>]
sp : 82e709f0  ip : fffdccb0     fp : 00000000
r10: deadbeef  r9 : 82e72ec8     r8 : 82f932a0
r7 : 00000000  r6 : 00000000     r5 : 00000002  r4 : 82e748d0
r3 : 00000000  r2 : 00000002     r1 : 82e752e0  r0 : 82e752e0
Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32
Code: 29104019 2920d008 2900d00b 0038d106 (bc04b024) 
Resetting CPU ...

resetting ...

uboot.tgz

#297 Re: 全志 SOC » 荔枝派控制台信息直接输出到液晶屏而不是电脑串口 » 2020-04-25 10:23:18

打开fbconsole,console=tty就行了,busybox应该不能切换界面,systemd启动是可以的

#298 Re: 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-25 10:12:27

metro 说:

看了一下U-Boot关于异常处理部分的代码:interrupts.c,感觉在异常发生处时处于ARM状态而非Thumb状态(Thumb状态会有(T)的提示),所以感觉可能是你的代码从其它地方跳转到此处时没有正确切换状态所致。可以检查一下到附近位置的跳转指令。

我大概梳理了一下,还是有几个迷惑点:
1. uboot代码未使用到Thumb和Arm的指令混编,不应该出现ARM状态
2. 该代码处是一函数调用,但由于优化并未产生调用,附近跳转也没有异常
3. 从code位置二进制上看,代码二进制并未被修改,即不应该是内存越界问题
4. 大概去看了下ThumbV1和ThumbV2没有发现在ADD上有什么差异,不知道是不是理解问题

#299 全志 SOC » 困惑,uboot下奇怪的指令异常 » 2020-04-25 00:08:33

shaoxi2010
回复: 11

大佬们,有个奇怪的现象帮忙分析下哇,调试uboot时发现了一个奇怪的指令异常,我看上去代码没什么问题,
当我选择关闭Thumb指令编译uboot,这个位置是没有错的,难道说thumb指令还有什么特殊的地方么?
还是说其他东西有坑?

U-Boot SPL 2018.11 (Apr 24 2020 - 23:50:16 +0800)
DRAM: 64 MiB
Trying to boot from FEL


U-Boot 2018.11 (Apr 24 2020 - 23:50:16 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: f1c200s
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400
Hit any key to stop autoboot:  0 
Reading 4194304 byte(s) (2048 page(s)) at offset 0x001c0000
undefined instruction
pc : [<82fa9c64>]          lr : [<82fa9c51>]
reloc pc : [<81716c64>]    lr : [<81716c51>]
sp : 82e709f0  ip : fffdccb0     fp : 00000000
r10: deadbeef  r9 : 82e72ec8     r8 : 82f932a0
r7 : 00000000  r6 : 00000000     r5 : 00000002  r4 : 82e749a0
r3 : 00000000  r2 : 00000002     r1 : 82e753a0  r0 : 82e753a0
Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32
Code: 29104019 2920d008 2900d00b 0038d106 (bc04b024) 
Resetting CPU ...

问题位置反汇编

            memcpy(req->oobbuf.in, spinand->oobbuf + req->ooboffs,
81716c4a:   18c9        adds    r1, r1, r3
81716c4c:   f00c febc   bl  817239c8 <__memcpy_from_thumb>
81716c50:   e7c8        b.n 81716be4 <spinand_read_page+0x120>
    switch (status & STATUS_ECC_MASK) {
81716c52:   2330        movs    r3, #48 ; 0x30
81716c54:   4019        ands    r1, r3
81716c56:   2910        cmp r1, #16
81716c58:   d008        beq.n   81716c6c <spinand_read_page+0x1a8>
81716c5a:   2920        cmp r1, #32
81716c5c:   d00b        beq.n   81716c76 <spinand_read_page+0x1b2>
81716c5e:   2900        cmp r1, #0
81716c60:   d106        bne.n   81716c70 <spinand_read_page+0x1ac>
}
81716c62:   0038        movs    r0, r7
81716c64:   b024        add sp, #144    ; 0x90   <--------------------------这个位置
81716c66:   bc04        pop {r2}
81716c68:   4691        mov r9, r2
81716c6a:   bdf0        pop {r4, r5, r6, r7, pc}
        return nand->eccreq.strength;
81716c6c:   6a67        ldr r7, [r4, #36]   ; 0x24
81716c6e:   e7f8        b.n 81716c62 <spinand_read_page+0x19e>
    return -EINVAL;
81716c70:   2716        movs    r7, #22
        return -EBADMSG;
81716c72:   427f        negs    r7, r7
81716c74:   e7f5        b.n 81716c62 <spinand_read_page+0x19e>
81716c76:   274a        movs    r7, #74 ; 0x4a
81716c78:   e7fb        b.n 81716c72 <spinand_read_page+0x1ae>
81716c7a:   46c0        nop         ; (mov r8, r8)
81716c7c:   00001301    .word   0x00001301
/81716c64          

#300 Re: 全志 SOC » 请教全志的系统通过SD卡启动以后如何访问内置的EMMC » 2020-04-24 23:37:07

需要修改uboot打开对应设备树,全志卡启动会屏蔽掉emmc

#301 Re: 全志 SOC » 大佬们,请指教下f1c的DFU功能 » 2020-04-24 22:42:45

肯定没有,我想给SPINAND下载嘛,其实走RNDIS和SD卡都能行,就是想折腾下。

#302 全志 SOC » 大佬们,请指教下f1c的DFU功能 » 2020-04-24 22:15:17

shaoxi2010
回复: 2

大佬们,最近买了个tiny200的板子,觉得烧录不好用,打算调试下DFU,目前遇到点问题。
配置我是打开了musb和dfu功能,但是在启动中并未看到MUSB加载的打印,目前没搞懂
啥原因,求指导!!!

U-Boot 2018.11 (Apr 24 2020 - 22:07:55 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: f1c200s
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400
Hit any key to stop autoboot:  0 
=> ums 
ums - Use the UMS [USB Mass Storage]

Usage:
ums <USB_controller> [<devtype>] <dev[:part]>  e.g. ums 0 mmc 0
    devtype defaults to mmc
=> ums 0
ums - Use the UMS [USB Mass Storage]

Usage:
ums <USB_controller> [<devtype>] <dev[:part]>  e.g. ums 0 mmc 0
    devtype defaults to mmc
=> ums 0 mmc 0
Card did not respond to voltage select!
=> ums 0 mmc 0
UMS: LUN 0, dev 0, hwpart 0, sector 0x0, count 0xe8ec00
Controller uninitialized
g_dnl_register: failed!, error: -6
g_dnl_register failed
=> 

#303 Re: 全志 SOC » Allwinner S3 u-boot 2020.04 (DisplayEngine2 + Fastboot线刷) » 2020-04-21 17:52:53

给力阿,之前研究了很久DE2死活没调通,还是大佬厉害啊

#304 Re: 全志 SOC » 贡献个V3S的原理图,顺便问下RGB数据线高低位的问题 » 2020-04-20 17:27:11

顺带提一下,主线驱动好像也是有问题的,如果要用到dither显示模式就必须要24或32位色,建议直接选32位色,免得抽风

#305 Re: 全志 SOC » 贡献个V3S的原理图,顺便问下RGB数据线高低位的问题 » 2020-04-20 17:25:55

A64上我确定这个是可以互换的,倒是突然想起一个奇葩,全志的SDK上的RGB24实际色序是BGR24这个不知道是我理解问题还是是bug,RGB32又是XRGB32这个倒是在驱动有描述。

#306 Re: 全志 SOC » 关于 SD NAND 的信号切换。成功! » 2020-04-20 10:09:55

量产都SD NAND的可以考虑直接代烧录啊,我记得之前XTX等厂商都提供这个服务,USB留着升级就行呗,直接引导到ramfs用usb gadget不就行啦,配上一个简单的python,完美的一批。

#307 Re: 全志 SOC » 超迷你TINY 200点屏测试固件 » 2020-04-20 09:28:38

这板子好漂亮,可以买的到不?

#308 Re: 全志 SOC » 荔枝派zero linux5.2,spi flash启动识别不到分区 » 2020-04-16 15:02:25

[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(d2
[    0.754400] m25p80 spi0.0: xt25f128b (16384 Kbytes)
spi32766.0这个写错了,虽然不知道你32766从那里抄来的,但打印说一定不是这么写的

#309 Re: 全志 SOC » 荔枝派zero linux5.2,spi flash启动识别不到分区 » 2020-04-16 11:15:14

可能是驱动没开,也可能是文件系统不对,更可能是MTD分区,信息太少了

#310 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-04-14 17:55:41

adda 说:

图片是用A64运行的浏览器么

是的,跑的firefox,QT5的web也能用其他的我就没测了

#311 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-04-12 00:56:27

达克罗德 说:

请问你测的是lima驱动吗?opengles选mesa3D吗?

是的lima 5.4 + meas3d 20.0

#312 Re: 全志 SOC » v3s i2c 写地址 » 2020-04-08 20:38:24

i2c地址本来就是有一位控制读写的啊,没毛病啊

#316 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-04-01 16:58:42

来给大家带来点好消息,经过测试发现最新的主线驱动修复啦不少问题,我觉得已经到了可以使用的状态啦,使用基本没遇到明显缺陷。
我这个跑得是A64,大家可以试试其他的。
1. gtk的花屏问题,再也没发现啦
2. 1080p下的卡顿问题也解决的啦
3. alpha通道叠加也正常啦
4. 渲染CPU还是消耗过大,但是比上一版本下降一大堆
5. 电路还有点问题,不知道QT的烟雾效果修复没有

F8D4725B-D11D-41E6-8190-905562D3D4BA.jpeg

#317 Re: 全志 SOC » 全志R328开发板 » 2020-04-01 10:35:57

还以是V3s的双核版本,结果发现网络好像被砍掉啦

#318 Re: 全志 SOC » 全志R328开发板 » 2020-04-01 10:33:46

allwinner代理 说:

全志R328双核ARM Cortex TM-A7,主频1.2Ghz
开发板由核心板+底板组成;
核心板主要由R328主控、Flash、WIFI三部分组成
底板由12V电源、USB、功放、按键、LED指示灯、串口、LCD显示屏接口、硅麦、驻极体麦、GPIO、MIC ARRAY口等各种接口组成

操作系统:Linux 4.9
USB OTG:1个
USB POWER:1个
SPI&LCD:SPI&LCD插座(0.6MM间距双排25Pin FPC座子)
wifi :XR829(Wifi兼容IEEE 802.11 b/g/n标准+蓝牙v2.1 + EDR / 4.0)
LRADC按键2个
RESET 按键1个
UBOOT烧录键1个
GPADC 4路
MIC ARRAY 1个

很感兴趣,这个在那可以拿到,报价多少,可不可给个联系方式啊?

#319 Re: 全志 SOC » 试一试 S3 Linux 4.13 读取 USB 条码枪 » 2020-03-27 16:55:34

这种扫描枪不就是一个键盘设备嘛,直接输出就行

#320 Re: 全志 SOC » Tina的SDK有没有新的? » 2020-03-26 08:21:53

sochip索智科技-全志代理商方案商 说:

我们有Tina3.5.1

怎么联系?

#321 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教怎么下怎么解决qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" » 2020-03-25 16:37:38

运行时可以指定,QT这么设计不就是为了跨平台嘛,编译指定就没意义了

#322 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 搜了一圈, 还是没找到50PIN RGB TTL 液晶接口转 40PIN LVDS 接口转换板 » 2020-03-25 15:56:42

有梦的地方 说:

不确定,但是我感觉应该是,因为这个TTL RGB外设的屏最多。

主线的默认输出就是rgb,直接就通啦,后面你怎么接都行,我连接edp转换都没问题

#323 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-03-25 15:53:50

没信号话显示是正常的,话说用BSP不行么,实在想不通是什么原因必须用主线,主线的东西也不见得稳定啊

#324 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-03-25 15:15:52

这个错位一直都存在,不用鸟它,你这个现象看着就是tcon的输出不对,建议拿示波器打打波形。
话说你现在用的lvds还是rgb哦

#325 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 请教怎么下怎么解决qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" » 2020-03-25 15:12:10

杨飞武 说:

查了了,上面这个错误,应该arm端的gdbserver和PC端的gdb架构不一致的问题。



就是想知道怎么不用加 linuxfb  就可以直接运行编译好的qt程序。
编译的时候需要怎么配置吗。

在qt5base编译的时候指定参数-qpa linuxfb就可以,上面那个是GDB用错了,你可以用gdb-multiarch这个包,
通杀

#328 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-03-25 09:15:17

xd717 说:

是的,BSP移植到主线上有可行度吗

不确定可行性,毕竟这部分全志寄存器也未全部开放,部分bsp上配置没找到,话说非要lvds加个转换芯片不就好了,成熟方案安全的多啊。

#329 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » 新人求教,编译内核后生成的文件是不是根文件系统?和yaffs有什么关系? » 2020-03-24 17:06:39

Gentlepig 说:

又把这个帖子翻出来了。
过了半年,又重新下载gitee上的uboot、内核,编译后又无法加载根文件系统了。
对照了之前的内核编译配置,之前boot option里有:
root=/dev/mtdblock2 rootfstype=yaffs rootflags=inband-tags console=tty0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M mtdparts=nand0:0x200000@0x0(uboot),0x1400000@0x200000(kernel),-(user)
红字部分是我现在的内核编译配置没有的。

我又找到了之前的环境变量文件,有两个,有一点区别:
baudrate=115200
bootdelay=1
ethact=emac
ethaddr=00:00:00:11:66:88
stderr=serial
stdin=serial
stdout=serial
ipaddr=192.168.1.11
serverip=192.168.1.99
bootcmd=nboot 0x7fc0 0 0x200000\; bootm 0x7fc0
bootargs=noinitrd root=/dev/mtdblock2 rootfstype=yaffs2
rootflags=inband-tags console=ttyS0,115200n8 rdinit=/sbin/init mem=64M mtdparts=nand0:0x200000@0x0(u-boot)ro,0x800000@0x200000(kernel)ro,-(user)

其中一个环境变量文件里有mtdparts参数,结果我把这个env.txt烧录进去后,开始加载内核就没串口输出了。
Loading from nand0, offset 0x200000
   Image Name:   Linux-3.10.108+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2247896 Bytes = 2.1 MiB
   Load Address: 00008000
   Entry Point:  00008000
## Booting kernel from Legacy Image at 00007fc0 ...
   Image Name:   Linux-3.10.108+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2247896 Bytes = 2.1 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK

Starti

首先要打开CONFIG_MTD_CMDLINE_PARTS属性才运行通过命令行传递mtdparts
其次默认情况下是使用设备树传递的MTD分区表,详情阅读uboot代码
最后你的启动找不到文件那就是没编进去

#330 Re: 全志 SOC » 荔枝派跑qt程序,收不到鼠标事件。 » 2020-03-24 16:48:08

肯定有问题啊,-plugin-mouse-tslib 这个都没加肯定tslib没输入啊,examples也写错啦

#331 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-03-24 16:44:01

xd717 说:

您好,A64内核实现的话该怎么配置呢

估计也不行刚刚确认了下,最新的是支持的mipi而非LVDS,我没有调试过主线的LVDS显示,
下个预期也是A20的LVDS显示,BSP的是没有问题的。

#332 Re: 全志 SOC » Tina的SDK有没有新的? » 2020-03-24 13:06:16

关键全志的玩意没有给链接全靠代理,代理只有3.0,很被动啊

#333 全志 SOC » Tina的SDK有没有新的? » 2020-03-24 11:20:02

shaoxi2010
回复: 7

大佬们,有没有新版本的tina SDK哦,我想试试新版A64 BSP的OPENGL是否正常啦。
我这个tina3.0的版本运行一天左右的GL demo会卡死掉,大佬们有可以分享下的么?
仿佛看到有人提到tina已经 3.5版本了。。。

#334 Re: 全志 SOC » 求助 !全志A64 LVDS配置 » 2020-03-24 11:15:27

lvds已经可用啦?之前看不只是内核实现了么

#336 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » 请教下,ubifs和yaffs2的优劣。 » 2020-03-19 14:49:13

vultr 说:

yaffs2 挂载速度快,文件系统不检查完整性
ubifs  挂载速度慢,文件系统检查完整性,适用于有电池供电,每次都能安全退出的系统

你这不是刚好说反了么。。。。ubi和yaffs都适用于断电场景,只是ubi的检查没有yaffs严格,ubifs对硬件的可靠性有一定要求。
ubifs的挂载和运行都会快于yaffs因为她根本没有全盘扫描,所以它不能处理硬件层次数据错误,如果你硬件的健壮性无法保证
yaffs是比ubifs更好的选择。ubi强项在均衡算法和大块flash支持,额外带压缩等属性。两者各有所长,yaffs的缺点就是ubifs的
优点。

#338 Re: 全志 SOC » 有人知道100s的图层融合怎么用吗 » 2020-03-10 11:58:56

大神可以分享下代码么,最近在看硬件绘制鼠标闪烁问题,没什么思路了

#339 Re: 全志 SOC » 请问官方F1C100S BSP如何修改CPU频率和DDR频率 » 2020-03-05 15:34:58

Vivian 说:

不能在uboot或者kernel进行再次修改吗?

内存初始化代码是在boot0初始化的,uboot和内核可以修改CPU频率,但是内存可以略微降低但是不稳定还得加电压,还不如别改了。

#340 Re: 全志 SOC » 请问官方F1C100S BSP如何修改CPU频率和DDR频率 » 2020-03-05 09:44:05

改不了,二进制写死的,除非你能找到全志

#341 Re: 8051/STC8/AT89C51/N76E003 » STC15定时器模式3中断只触发了一次 » 2020-02-28 18:21:15

好吧,我找到问题了,还是阅读能力不行,SDCC的意思是得实现中断在main()文件内,而不是只是声明为外部就行,太坑了。。。

#342 Re: 8051/STC8/AT89C51/N76E003 » STC15定时器模式3中断只触发了一次 » 2020-02-28 15:28:51

按照他手册的说法是自动填装的,我也测试了下确实是自动填装。

#343 8051/STC8/AT89C51/N76E003 » STC15定时器模式3中断只触发了一次 » 2020-02-28 14:24:08

shaoxi2010
回复: 3

大佬们,问个困惑很久的问题了,STC15说的T0定时器可以配置为NMI中断的tick时钟。但是我的测试代码只跑了一次中断就再也没有了。研究了几天了,有大老可以解释下不。我用的SDCC4.0+STC14w204s,测试代码如下。

/* 中断向量表声明 */
extern void soft_timer_in_isr(void) __interrupt (1) __using (1);

int main(void)
{

    printf("start up \r\n");
    soft_timer_init(10000);
    while(1);
}


void soft_timer_init(unsigned int us)
{
    TMOD = (TMOD & ~0x0f) | 0x03;//不可屏蔽中断无法工作
    AUXR |=  0x80;	//1T
    TL0 = (0xffff - (FOSC*us/1000000));//设置定时初值
    TH0 = (0xffff - (FOSC*us/1000000))>>8;//设置定时初值

    TF0 = 0;//清除TF0标志
    TR0 = 1;//定时器0开始计时
    ET0 = 1;//定时器T0中断允许
}

void soft_timer_in_isr(void)
{
    printf("enter\r\n");
}

运行调试输出:
start up 
enter //这个后面就再也见不到了

#344 Re: 8051/STC8/AT89C51/N76E003 » vscode下编写c51程序 » 2020-02-24 07:51:28

不是提供了个lint.h么,这个没用么?

#345 Re: 全志 SOC » 求助:A33主线uboot跑起来了,但是无法从 eMMC 启动 » 2020-02-03 14:07:24

哈哈哈哈,说完了我才想起全志的鬼引导也叫boot0,是要去清掉emmc的boot0分区下的spl,目前我只发现A33在这么用,A64等并没有。

#346 Re: 全志 SOC » 求助:A33主线uboot跑起来了,但是无法从 eMMC 启动 » 2020-02-01 22:20:40

这个我知道,你得先去把emmc的boot0下的spl清空,除非你换个新片子,当时浪费了好多时间。(手动滑稽)
还有emmc和nand都可以正常启动的

#347 Re: NXP i.MX6UL/6ULL » 请教,交叉编译器gcc和文件系统里的gcc是一回事吗? » 2020-01-15 10:15:40

分清楚GCC交叉编译的host和target配置就能理解清楚了。

如果还分不清,建议自己手动编一次GCC就晓得是啥了,然后你就可以理解清楚。

然后你就可以发现原来GCC可以生成多个平台目标,只是某些原因变得不可以,改改后也可以。
GCC还提供了很多关键库,很多功能子集,反正搞懂GCC的交叉编译,会对你其他程序的交叉编译提供很好的思路

#348 Re: 全志 SOC » 各位大神,如何配置buildroot用外部编译器? » 2020-01-08 15:36:52

没记错的话,按照linaro的重新编译一个就好了,主要所sysroot的逻辑必须要配置正确,否则识别不了,其他问题倒是没发现

#349 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-01-06 11:42:03

达克罗德 说:

浏览器不是用OpenGL吗?说明跑起来了?

浏览器本来就不许要GL,只是webgl不支持罢了

#350 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-01-06 11:36:42

晕哥 说:

大神你用的是哪个soc, 哪个开发板呢?有没有固件呢?能不能直接烧了跑?

我用的A64,AARCH64只有那么几个,我们公司的板子电源定义不一样,固件给你也用不了,你可以去下载pine64的
ARCHLINUX版本,然后用pacman 删除掉内核在自己编一个就好了,ARCHLINUX适配内核已经到5.4了应该没问题。

当然你也可以直接买PINE64,只是这伙没LCD显示。

#351 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-01-06 11:26:51

还有就算webgl都是GG状态,会出现内部错误,倒是浏览器跑的很顺滑。

VPU我也测试过了,目前AARCH64与VPU无缘,那段汇编代码只在V7架构下有,需要大神解决下@晕哥

#352 Re: 全志 SOC » 全志 A10/A20/A33/H3/A64/H5 等的主线Linux也可以使用 OpenGL ES, 有没有哪位朋友测试过? » 2020-01-06 11:16:11

这个我倒是有些测试,目前QT5支持并不完美,目前发现QML的烟雾效果显示不出来,其他的我没有细测。

然后在ARCHLINUX上的至此目前最完美,debian11问题还不少,主要mesa驱动必须要最新的才行,不如gl也是失效的,
Xorg加速下鼠标分层显示会有闪所找不到原因,还有就算高分辨率1080p下渲染非常非常慢,也不知道怎么优化,GTK会偶尔
出现花屏,感觉和alpha有关。目前测试了awsome和openbox都不行,只能说这阶段只能叫基本可用了,常规渲染感觉依然靠的
CPU渲染的。

wayland的驱动下,好了很多,可惜wayland还有点早,没什么应用支持。

#354 Re: 全志 SOC » V3s SPI NAND u-boot @openwrt » 2019-11-09 13:02:35

降频肯定的,因为uboot下spi频率默认最大24m,到内核就不一样了

#355 Re: 全志 SOC » V3s SPI NAND u-boot @openwrt » 2019-11-08 16:32:33

xgui 说:

有道理,SPI 时钟频率是有可能的,怪不得 SPI NAND 的芯片 ID与datasheet有点相似.

这个问题我之前在群上问过大佬,现象和你的是一样的,经过我测试到最高频率只能设置到75M,高于这个就玩蛋,用的芒果派。
改的华邦的SPI NAND。

#356 Re: 全志 SOC » V3s SPI NAND u-boot @openwrt » 2019-11-08 09:41:13

你们频率配的多少哦,这个问题我遇到过,一般是没焊好,降频应该是没问题的

#357 Re: 全志 SOC » licheepi nano f1c100s uboot 从spiflash启动困惑 » 2019-11-05 15:47:48

对的,F1c的Brom代码并未填装当前启动类型,按5楼的改就好了

#358 Re: 全志 SOC » V3s SPI NAND u-boot @openwrt » 2019-11-01 09:54:18

牛逼,这令人羡慕的英文。uboot的spl的spi只有flash的驱动还需要魔改,还有就是即使2019.7月env也不支持spi nand,只能写到uboot内部

#359 Re: 全志 SOC » V3s支持SPI NAND吗?感觉spi nor的速度太慢了 » 2019-10-31 16:23:37

ffplay 说:

@shaoxi2010 感谢解答, 现在我的情况是, 使用spi nand,  spi & u-boot 都跑起来了, 但是不知道如何读取 spi nand 上的数据, 比如zImage & dtb, 这里需要怎么修改 u-boot 代码呢?

首先确保你的uboot在2018.11版本之后,然后开启uboot内选项
CONFIG_CMD_MTD=y
CONFIG_MTD=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_SPI_MEM=y
CONFIG_SPI_SUNXI=y
修改设备树
&spi0 {
    pinctrl-0 = <&spi0_pins>;
    pinctrl-names = "default";
    status = "okay";
    flash@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "spi-nand";
        reg = <0>;
        spi-max-frequency = <50000000>;
}
最后在使用uboot下的MTD命令就好了,不是NAND命令
mtd erase spi-nand0 就可以擦掉全部内容了
mtd read spi-nand0 0x81000000  0x1c0000 0x0400000

PS:你还要去确认SPINAND驱动支持你的芯片不,不支持还要继续魔改

#360 Re: 全志 SOC » V3s支持SPI NAND吗?感觉spi nor的速度太慢了 » 2019-10-31 10:04:30

ffplay 说:
shaoxi2010 说:

晕哥提到过,spl分页写对就行,改改spi flash驱动就可以了

然后在 u-boot 加载 zImage 和 dtb 那个地方需要修改吗?如果需要, 应该怎么修改呢?

我不确定你用的那个版本的uboot,在2019.07月版本,内部的sunxi-spi驱动,其在V3s下时钟源使用源为外部24M晶振,所有你最高可以设置到24M,需要修改时钟源到外设pll上,就可以设置到100M模式,然后全志的寄存器可以用Dwords访问,默认是bytes模式,效率比较低,完成SPI驱动修改后,在改下uboot的设备树就ok了,应该很清楚了吧。继续魔改可以启动SPI双线摸索,实测DMA速度还不如CPU,就没什么好改的了。单线优化的好uboot还是有4M/s左右的速度的。

#361 Re: 全志 SOC » V3s支持SPI NAND吗?感觉spi nor的速度太慢了 » 2019-10-30 23:14:04

晕哥提到过,spl分页写对就行,改改spi flash驱动就可以了

#363 Re: 全志 SOC » 全志V3S flash启动到shell速度18秒, 有办法可以更快吗? » 2019-10-30 17:42:03

V3s做好SPI驱动优化就行了,我这个SPI NAND启动到QT程序全套运行起来只需要6s不到,没记错的话uboot的时钟最大用的是外部24M,原始驱动总线利用率不高,改好了,性能V3s真不成问题。uboot加载SPINAND内4M内核约1S左右

#364 Re: 全志 SOC » 刚刚弄好Linux 4.19的USB驱动,但发现一个问题,只要我打开fb, Otg就会失效,有大神能解决这个问题吗? » 2019-10-25 18:24:16

wupaul2001 说:

@shaoxi2010 你的是TF镜像吗?能共享测试一吓吗?

没有,我没nano了,自己画的

#366 Re: 全志 SOC » 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致 » 2019-10-25 13:22:29

yuanlwjt 说:

剩下一个问题,我自己的设备上没有电池,每次上电启动设备,使用hwclock  hwclock: RTC_RD_TIME: Operation not permitted就出现这,查了资料,很可能是说linux上电时没有初始化RTC,所以只能带电reboot,再想想还有什么办法可以解决

不上电池时间很乱套的,里面的时间可能还比1970年还要小,然后设置系统时间就失败了。不晓得你用的那个版本的linux,新版的linux设置RTC时间是不能小于已经运行时间的。

#368 Re: 全志 SOC » Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过? » 2019-10-21 16:28:37

nothing 说:
shaoxi2010 说:
shaoxi2010 说:

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

找到了,在这里有提到的。有一段C1的SRAM用于VE,但是V3S在手册没得提到这东西,看看那位大佬可以搞定这个不。
https://linux-sunxi.org/SRAM_Controller_Register_Guide

https://whycan.cn/files/members/1974/_20191021140119.png
你说的是这个mmap吧,手册59页里面有提到,就给了映射地址,具体详细介绍没有,我之间弄过,初始化成功,编码会死掉,核心库全志没有开放代码,追踪不到死掉的原因

还不是那个地方吧,因为全志复用ip核的可能性极大,看社区说的是在H3上改过来的,我按着H3修改后驱动报错的位置是在,SRAM contorl里面,然后加了几个打印发现SRAM功能配置失败了,我也就没管了。

#369 Re: 全志 SOC » Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过? » 2019-10-21 11:54:36

shaoxi2010 说:
晕哥 说:
shaoxi2010 说:

照着H3改过v3s的,但是sram的初始化不对,工作不起来

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

找到了,在这里有提到的。有一段C1的SRAM用于VE,但是V3S在手册没得提到这东西,看看那位大佬可以搞定这个不。
https://linux-sunxi.org/SRAM_Controller_Register_Guide

#370 Re: 全志 SOC » Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过? » 2019-10-21 11:49:38

晕哥 说:
shaoxi2010 说:

照着H3改过v3s的,但是sram的初始化不对,工作不起来

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

#372 Re: 全志 SOC » v3s如何查看及设置主频 » 2019-10-08 10:38:29

主线是在uboot下改的,没记错的话默认是1G

#373 Re: 全志 SOC » V3S的IIC没有内部上拉吗?板子IIC忘记加上拉电阻了 » 2019-09-23 11:00:32

uart0_pins_a: uart0-pins-pe {
    pins = "PE0", "PE1";
    function = "uart0";
    bias-pull-up;  //inter-pullup
};
f1c100我知道是有的,v3s应该也一样,不过鬼知道内部上拉是多少k的,之前我这个是串口未接上拉强制开启了内部上拉

#375 Re: 全志 SOC » 请问下主线 V3s Linux 如何在程序运行中自动切换USB模式: otg/host/peripheral » 2019-09-16 15:28:43

是这个文件,我记得写为主口应该是wait_a_raise这个状态才对阿,是不是你配置少了什么东西

#376 Re: 全志 SOC » 请问下主线 V3s Linux 如何在程序运行中自动切换USB模式: otg/host/peripheral » 2019-09-16 14:03:59

找错路径了,是在/sys下的musb-hdrc.0/mode下,写个host就是主口了

#377 Re: 全志 SOC » v3s zero mount: you must be root » 2019-09-12 18:01:21

权限问题,实在不行chmod +s busybox走一转就好了

#378 Re: 全志 SOC » V3s移植触摸板驱动,无反应 » 2019-09-02 09:16:11

是不是你选的gpio不具有中断功能哦

#379 Re: 君正Ingenic/X1000/X2000/T10/T20/T30 » F1C100s 串口可能用 RS485半双工模式吗?本来想通过控制 PE10 高低电平实现半双工, 结果连ioctl都通不过 » 2019-08-20 15:00:46

实现代码不方便放出来了,不过思路还是很简单的。先在串口发送中断进入时修改到2分之一fifo,将发送置位,在最后中断触发先修改fifo到empty触发,再去判断lsr的最后位有没有发送,接着置位为接收。和ti的实现不同全志串口呵呵呵...

#383 Re: 全志 SOC » 请教一下,如何读取电池电量。 » 2019-08-05 18:14:49

仿佛是个input里面的event设备去读电压,然后换算成电量的

#384 Re: 全志 SOC » mainline kernel驱动移植到 legacy kernel » 2019-08-03 10:27:29

那个也是可以的,不过改着麻烦,看你吧

#385 Re: 全志 SOC » mainline kernel驱动移植到 legacy kernel » 2019-08-02 16:47:57

重新找驱动了,linux3.4的BSP并未提供设备树支持,可以考虑i2c的动态检测

#386 Re: 全志 SOC » 荔枝派Nano电阻触摸屏(RTP)使用主线内核无法进中断,大神帮忙看一下 » 2019-08-01 13:56:51

傅伟清 说:
shaoxi2010 说:

touch_tar.gz
还需要点下才能复制,难受。。。

谢谢,这个能适配C200的吧:p

我没测试过,没空折腾这个

#388 Re: 全志 SOC » 荔枝派Nano电阻触摸屏(RTP)使用主线内核无法进中断,大神帮忙看一下 » 2019-08-01 10:37:35

emmmmmm,其实BSP代码里面以及附带了触摸驱动了,不过我也用的主线的改的,给坛子点小贡献(顺便吐槽下这附件上传好难用)

#389 Re: 全志 SOC » ubuntu su 失效的问题 » 2019-07-29 10:12:10

Ubuntu不建议你使用su切换用户,我记得他们给出的方案是执行sudo -s

#390 Re: 全志 SOC » F1C200s用nandflash » 2019-07-12 23:43:09

Aysi 说:
shaoxi2010 说:
Aysi 说:

请问,W25N01G用这个UI的烧录软件可以?SUNIX_FEL有支持的版本?想用128MB的FLASH

全志的BSP生成的是可以的,我用的就算这个型号

跑裸机的可以?怎样生成镜像文件?

裸机,你需要自己去修改fel工具,还要去改spl的烧写结构,不建议也没必要吧

#391 Re: 全志 SOC » F1C200s用nandflash » 2019-07-12 14:10:35

Aysi 说:

请问,W25N01G用这个UI的烧录软件可以?SUNIX_FEL有支持的版本?想用128MB的FLASH

全志的BSP生成的是可以的,我用的就算这个型号

#392 Re: 全志 SOC » F1C200s用nandflash » 2019-06-14 14:07:36

北冥雪 说:
shaoxi2010 说:
北冥雪 说:

emmm,nand怎么擦呀

一种办法取下来,一种嘛把主线的uboot移植一哈直接擦除就行了,你用的那家的片子阿

用的云盛的,取下来怎么操作呀

你需要烧片机[手动斜眼笑]

#393 Re: 全志 SOC » F1C200s用nandflash » 2019-06-14 12:34:28

北冥雪 说:
shaoxi2010 说:
北冥雪 说:

我用了1.11和1.10还是不行,请问您用的哪个版本,可不可以发一个

好吧,我又回朔了一下历史,我们工具版本根本没什么关系,出错镲一边nand才能恢复正常,估计SDK又有什么坑

emmm,nand怎么擦呀

一种办法取下来,一种嘛把主线的uboot移植一哈直接擦除就行了,你用的那家的片子阿

#394 Re: 全志 SOC » F1C200s用nandflash » 2019-06-14 09:45:39

北冥雪 说:
shaoxi2010 说:

这个问题我遇到过,是那个phoenixtools的问题,你换个版本,勾选强制格式化就行了,之前也是莫名其妙的

我用了1.11和1.10还是不行,请问您用的哪个版本,可不可以发一个

好吧,我又回朔了一下历史,我们工具版本根本没什么关系,出错镲一边nand才能恢复正常,估计SDK又有什么坑

#395 Re: 全志 SOC » F1C200s用nandflash » 2019-06-13 17:43:20

这个问题我遇到过,是那个phoenixtools的问题,你换个版本,勾选强制格式化就行了,之前也是莫名其妙的

页脚

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

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