页次: 1
昨天有点忙没上论坛看。首先我是说错了,不是数据线调线,应该是地址线调线。
然后简单解释下调线的原因:
1、为了layout的时候不出现因为交叉而引起过多的打过孔,在设计的时候会故意把线序做调整;
2、地址、数据线调线是DDR的特性;在其他平台比如NXP的IMX系列设计也有同样的设计。
3、全志的DDR驱动是闭源的,所以只能按照全志的参考原理图调线。
最后,关于DDR layout。如果有参考设计,直接1:1把参考设计的走线和层叠复制过来是最管用的,因为这是验证过的。如果自行layout,必须严格做好等长和参考层。如果打板回来出现DDR初始化失败,在排除了电源和时钟的问题之后,可以适当降频尝试。我看到很多大佬自己打板的频率都不是芯片宣称的频率,包括稚辉君。
@Gentlepig
感谢解答。这个问题我已经通过换另一个makefile解决了。
现在是遇到了另一个问题:
https://whycan.com/t_11119.html
这个问题暂时还没有办法解决。我还是先从交叉编译学习吧,了解了QT的编译过程可能再试集成编译可能更好些。
最近尝试编译tina sdk自带的QT example。参考以下两个链接:
1、 https://whycan.com/t_9690.html
2、 https://bbs.aw-ol.com/topic/944/
使用的QT库是qt-everywhere-opensource-src-5.12.9.tar.xz,因为在各种镜像站和源头站点都发现prebuild已经被下架了,原因不知。
在使用链接1里面的makefile编译时,会有报错如下:
ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.
ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.
经过网上查询,确认是因为T113没有gpu,所以不支持eglfs,因此也用不了opengl。在链接1里面有两位大佬经过了非常多的尝试,貌似最终成功了,但是没有详细过程,我这边按照里面的操作和网上查资料一直没有解决opengles2报错的问题。
链接1里面的一位大佬最终成功是使用的链接2里面的补丁。(这里感谢哇酷小二帮我转发awol的链接)
于是我又下载了链接2的补丁继续尝试。但是依然有报错,如下:
cp: cannot stat '/home/embedfire/workspace/tina-t113/Tina_Linux_2022/Tina-Linux/out/t113-evb1/compile_dir/target/qt-everywhere-src-5.12.9/ipkg-install/usr/lib/libQt5MultimediaQuick.so*': No such file or directory
通过分析makefile,确定是makefile在打包库时找不到so了。
尝试在makefile中屏蔽这些库:
# $(CP) \
# $(PKG_INSTALL_DIR)/usr/lib/libQt5MultimediaQuick.so* \
# $(1)/usr/lib
但是屏蔽了几个库之后,又有新的报错:
Package qt5-multimedia is missing dependencies for the following libraries:
libQt5Widgets.so.5
这个报错在屏蔽了相关的脚本之后依然存在。
# $(INSTALL_DIR) $(1)/usr/lib/
# $(CP) \
# $(PKG_INSTALL_DIR)/usr/lib/libQt5Widgets.so* \
# $(1)/usr/lib/
所以把过程发上来,请教各位大佬有无推荐的解决办法,感激不尽!!
@Gentlepig
这几天我也在研究T113-s3的tina官方固件如何用起来QT。
当前进展是用了帖子里面的makefile之后,make menuconfig选中qt-core可以编译通过,但是打包之后的固件里面usr/share/没有qt5的文件夹。把 qt-easing.也选中之后依然没有qt5的文件夹。
然后我再尝试把qt-example选中,编译的时候报错qt-example缺少依赖库,这些库文件在qt-everywhere-opensource-src-5.12.9下的路径是存在的,所以我怀疑是不是路径引用的有问题,但是我不知道是哪里配置的这些引用;
还有一个问题是,群里的链接 https://debugdump.com/topic/944/%E5%9F%BA%E4%BA%8Ed1s%E7%9A%84qt5%E7%A7%BB%E6%A4%8D?lang=zh-CN 打不开了,不知道是什么问题,我想用里面的Makefile试试,不知道和群里的Makefile有什么区别。
----------------------------------------
改这个地址: https://bbs.aw-ol.com/topic/944/
昨天晚上写的匆忙,没写什么说明,今天来补一下吧。
首先这是一个分享帖,需要用到以上这种打包方式的场景为:需要在linux服务器端编译并打包好img固件,然后在linux端或者Windows端用烧录软件把打包好的img固件烧录到SD卡中。
目前能找到的F1C100S的教程里面都没用SD卡img固件的打包方式,通常的教程都是让你直接把固件写到SD卡上。我的编译环境是云端,没法实现这个操作,所以就只能用这种方法了。
整个img生成办法总共分两步。
一、建造一个img文件,相当于创建一个虚拟硬盘。使用dd命令可以创建一个虚拟的存储文件。
但是在实际操作中发现,在往创建好的img文件写入uboot的时候,img文件的大小会变小,变小幅度与uboot大小有关。这里暂时没有好的解决办法,网上也没有找到相关的说明,所以找了个临时的替代方案:在写完uboot后,用cat命令在img文件后面补一段空间。
二、把img虚拟存储分区后,将内核和根文件系统写到虚拟分区内。
有过装机经验的同学应该对分区概念非常熟悉了,img文件在这里相当于一个没有分区过的新硬盘,需要在硬盘上创建新的分区,然后把系统装C盘,把数据装D盘。
#使用dd命令创建一个 8MB 的 test.img 镜像文件。
sudo dd if=./uboot-nano-v2018.01/u-boot-sunxi-with-spl.bin of=nanopi.img bs=1024 seek=8
#解决dd命令后改变img文件大小问题,使用cat命令把后续空间扩容,然后再分区
cat nanopi.img >> nano.img
#对镜像文件进行分区
fdisk test.img
#无意义
m
#普通分区或者扩展分区
p
#分区数
1
#第一个分区的大小
2048
+32M
#
#将镜像虚拟化成块设备
sudo losetup -f --show nano.img
#挂载虚拟文件系统
sudo kpartx -av /dev/loop0
ls -l /dev/mapper/
#格式化分区
sudo mkfs.ext4 /dev/mapper/loop0p1
sudo mkfs.vfat /dev/mapper/loop0p1
sudo mkfs.ext4 /dev/mapper/loop0p2
#挂载分区
sudo mount /dev/mapper/loop0p1 /mnt
mount -l | tail -n 1
ls -la /mnt
# 卸载挂载点
>$ sudo umount /mnt
# 卸载分区
>$ sudo kpartx -d /dev/loop0
# 卸载虚拟块设备
>$ sudo losetup -d /dev/loop0
@suibian
我用的 TINY200的板子,按照这个教程
https://blog.csdn.net/qq_28877125/article/details/123143116
build 一键编译 播放音频是可以的
我在我的环境上编译成功了,但是固件烧录后无法启动。
我用的是云系统,只能在Windows上烧录,看你发的教程里面也是window上烧录失败。请问你是怎么烧录的呢?
另外请教下,在其他教程里面,SDK的Linux内核,ROOTFS,UBOOT的目录都比较清晰,但是你发的这个buildroot SDK的Linux只有一些配置文件,buildroot目录也看不到。请问下如果我需要修改内核配置的时候,应该怎么配置呢?
@suibian
我用的 TINY200的板子,按照这个教程
https://blog.csdn.net/qq_28877125/article/details/123143116
build 一键编译 播放音频是可以的
好的,感谢分享,晚上回去试试。
页次: 1