熬了好久了,还是没搞定,再次来请教。
屏幕是ST7701,分辨率是 320*960(没找到横屏的方法),SPI信号使用的是外挂的单片机实现的,已经使用F1C200S裸机调通了屏幕,LVGL和触摸测试都没问题,所以硬件是没问题的。然后移植Linux。目前测试了两个SDK,都没调通,目标能调通任意一个就行了。
1:使用了 https://whycan.com/t_5221.html 的SDK,这个SDK很好用,一键编译。
我硬件参考的荔枝派的硬件,所以直接使用 make sipeed_lichee_nano_defconfig,然后修改编译后下载到nor flash,正常启动,黑屏。
测试命令如下:
# fbset -fb /dev/fb0
mode "800x480-0"
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 800 480 800 480 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode
# cat /sys/class/graphics/fb0/name
sun4i-drmdrmfb
# cat /dev/urandom > /dev/fb0
cat: write error: No space left on device
屏幕是能显示雪花的,只是中间竖着有几列规则的横条,说明分辨率没改对。我已经把board文件夹下所有的uboot的dts都改了,也尝试在output文件夹下找到simple-panel.c修改里面对应屏幕的参数然后make,上面的800x400没有任何变化。所以需要请教这个SDK想要修改LCD分辨率还需要改哪里?改完后直接用make编译吗?
2:使用了 荔枝派nano 的官方教程 https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/build_sys/build_flash_copy.html
uboot经过简单移植,已经能够正常显示了,具体可以看 https://whycan.com/t_11984.html ,但是启动kernel后就黑屏了。
# fbset -fb /dev/fb0
mode "320x960-0"
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 320 960 320 960 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode
# cat /sys/class/graphics/fb0/name
# cat /dev/urandom > /dev/fb0
cat: write error: No space left on device
虽然这个命令显示320x960,但是下面的查name 命令没有反馈,写入随机数也没有任何反应,这个参数是修改panel-simple.c文件的对应屏幕的参数,改完之后分辨率确实跟着变,但就是没法显示。我使用menuconfig想配置一下,但是一保存后编译就需要重新选所有的配置项,一路默认就会卡死,一个一个选,选花眼了都。后面我直接参考另一个sdk的配置文件修改这个的config文件,但没有任何有用的效果。
所以还是请教有经验的大佬,哪里是我没注意到的地方。总感觉显示都就差临门一脚了,但就是没找着门。
最后,就是请教,这个st7701没有横屏的硬件配置,Linux中有没有办法实现横屏?
离线