基于北斗和4G Cat1模组的智慧物流开发(四)对屏幕不亮遇到的坑的猜想和操作

举报
wuyicom 发表于 2021/06/20 12:31:20 2021/06/20
【摘要】     上一篇已经对TF-A,U-BOOT和Kernel已经重新编译后,还是不能点亮屏幕。群里的谢小康给了我点提示,在此感谢他的帮助。找相关资料才知道,dtc不但可以单独把当个dts编译成dtb,还能把dtb还原成dts,不过转换后的dts和之前的dts的格式和代码不一样。之前的dts有依赖其他,所以代码量比较少,而转换后的dts能获取依赖的dts的代码所以代码量比较多。    重新刷系统后...

1.png

    上一篇已经对TF-AU-BOOTKernel已经重新编译后,还是不能点亮屏幕。群里的谢小康给了我点提示,在此感谢他的帮助。找相关资料才知道,dtc不但可以单独把当个dts编译成dtb,还能把dtb还原成dts,不过转换后的dts和之前的dts的格式和代码不一样。之前的dts有依赖其他,所以代码量比较少,而转换后的dts能获取依赖的dts的代码所以代码量比较多。

    重新刷系统后,把开发版的stm32mp157c-ya157c-lcd-v2.dtb上传到ubuntu系统/home/wuyicom/test目录里,再进入到目录里执行下面的命令:

/home/wuyicom/workspace/MYiR-stm32-kernel/build/scripts/dtc/dtc  -I dtb -O dts -o stm32mp157c-ya157c-lcd-v2.dts stm32mp157c-ya157c-lcd-v2.dtb


2.png

如图所示,执行成功,使用Visual Studio Code打开stm32mp157c-ya157c-lcd-v2.dts。可以容易看出源码的stm32mp157c-ya157c-lcd-v2.dts的代码量(带符号也就76行),转化过来的代码4766行代码。如图所示:

3.png

stm32mp157c-ya157c-lcd-v2.dts源码的依赖stm32mp157c-ya157c-hdmi-v2.dts,特别注意:把(#include "stm32mp157c-ya157c-hdmi-v2.dts")修改为(#include "stm32mp157c-ya157c-v2.dts"),可以查看屏幕的配置参数。和转化的stm32mp157c-ya157c-lcd-v2.dts对比。如图所示:

4.png

说明屏幕参数都是设置touchscreen@38,是跟视频看到的屏幕参数不一样。

5.png

    方法一:尝试在源码stm32mp157c-ya157c-v2.dts做修改把touchscreen@38改为goodix_ts@14,在使用make ARCH=arm dtbs -j11 LOADADDR=0xC2000040 O="$PWD/../build"命令重新编译打包。把打包好的dtb包上传的myir开发版的/boot目录里,再重启开发板还是无法点亮屏幕。

    方法二:在智慧物流课程资源清单目录有dts文件,把所有的dts上传到/home/wuyicom/workspace/MYiR-stm32-kernel/myir-ya157c-kernel/arch/arm/boot/dts

F:\2021年 北斗\智慧物流课程资源清单\2.1\dts打包dts.zip

上传到/home/wuyicom/test/dts.zip

cd /home/wuyicom/test/

unzip dts.zip

cp -r dts/* /home/wuyicom/workspace/MYiR-stm32-kernel/myir-ya157c-kernel/arch/arm/boot/dts

重新编译内核的dtbs,要把之前的编译过的build目录删除,重新建立编译。

cd /home/wuyicom/workspace/MYiR-stm32-kernel/

rm -rf build

cd /home/wuyicom/workspace/MYiR-stm32-kernel/myir-ya157c-kernel

mkdir -p ../build

    1 配置内核

make ARCH=arm O="$PWD/../build" myc-ya157c_defconfig

cd ../build

source /opt/st/myir/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

    2 编译内核

make ARCH=arm  dtbs -j11  O="$PWD/../build"

cd arch/arm/boot/dts/

sudo scp stm32mp157c-ya157c-hdmi-v2.dtb stm32mp157c-ya157c-lcd-v2.dtb stm32mp157c-ya157c-v2.dtb 192.168.1.8:/boot/

重启开发版出现下面错误,之后进入无限重启。

6.png

    尝试第三种方法:重新刷开发板系统,TF-AU-boot之前已经编译过。可以直接使用,只需要重新完整编译Kernel,关于步骤请查看上一篇博客。

还是不行,是不是下载kernel源码的版本不对造成。查看了之前下载的3kernel源码,一个是980M,其他2100M跟视频的300M的源码是不是版本不一样?还有关于视频的my_dts_make.sh的脚本时如何写的。使用dtc做编译一个dts,不能有依赖关系,否则会报错。在网上找关于可以编写依赖的脚本dts2dtb.sh

#/bin/bash

#set -vx

device="stm32mp157c-ya157c-lcd-v2"

src_dts=$device.dts

tmp_dts=$device.tmp.dts

dst_dtb=$device.dtb

 

cpp -nostdinc -I. -undef -x assembler-with-cpp $src_dts > $tmp_dts

/home/wuyicom/workspace/MYiR-stm32-kernel/build/scripts/dtc/dtc -O dtb -b 0 -o $dst_dtb $tmp_dts

rm $tmp_dts

关于需要的依赖包的引用/home/wuyicom/workspace/MYiR-stm32-kernel/myir-ya157c-kernel/include/dt-bindings/interrupt-controller

还有stm32mp157cac-ya157c-pinctrl.dtsi是文件在智慧物流课程资源清单目录没有,是从980Mkernel里拷贝过来。但是编译成功后,复制到开发板,重新启动报上图的问题。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。