泰山派tspi-解决串口终端一直打印错误信息以及设备树编译
2023年12月 · 预计阅读时间: 1 分钟
在RK的SDK中设备树是和内核一起编译打包成zboot.img文件的
#
解决终端一直打印错误信息串口终端一直打印错误信息是因为我们没有接扩展板的千兆网口。
进入/tspi_linux_sdk_20230916/Release
目录,使用vim编辑器修改设备树:
注释掉千兆网口的include,如下图所示:
然后保存退出。
然后编译内核:
如果你不想了解编译内核的细节可以直接把Release/rockdev/
目录下的boot.img
拷贝到windows上
烧录进去就可以了。
一些内核编译细节:
进入内核目录我们可以看到zboot.img和boot.img两个镜像文件:
我们可以发现boot.img大小是zboot.img的两倍左右:
然后我们再进入rockdev目录,里面会有所有编译好的镜像文件,如下图所示:
会发现这里也有boot.img,它链接到了上面的boot.img。
但是在《【正点原子】ATK-DLRV1126 系统开发手册V1.5》中说zboot.img才是应该烧录的文件,以下进行尝试:
我把zboot.img拷贝到windows,然后尝试烧录,发现烧录失败,而烧录boot.img是成功的。所以tspi应该是使用的是boot.img
那么,zboot和boot到底有什么区别呢?
我们回去查看编译内核信息:
发现分别是Image和Image.lz4。搜索一下:
lz4是一种无损压缩算法,主要优势在于压缩与解压的效率高,特别是解压非常快。
所以zboot.img就是压缩后的boot.img。
那么在正点原子上的uboot中使用boot命令时,会启动kernel,其中涉及到kernel的压缩与解压。
而tspi估计uboot没有进行相关操作,所以使用的应该是未压缩的boot.img。(还未学习uboot不太清楚,如有错误欢迎指出)
#
设备树编译在rk系列中,使用./build.sh kernel
进行内核编译,就包括了设备树编译。多个设备树和内核编译成一个boot.img文件。