如视频所示,在我的平台上面运行lvgl只有半截
我的设备分辨率是800*480(从设备开机的log可以看到)
在linux下的dts配置如下
// SPDX-License-Identifier: (GPL-2.0+ OR X11)
/*
* Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
*/
/dts-v1/;
#include "suniv-f1c100s.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Lichee Pi Nano";
compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s",
"allwinner,suniv";
aliases {
serial0 = &uart0;
spi0 = &spi0;
};
chosen {
stdout-path = "serial0:115200n8";
};
panel: panel {
compatible = "lg,lb070wv8", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&de {
status = "okay";
};
&mmc0 {
vmmc-supply = <®_vcc3v3>;
bus-width = <4>;
broken-cd;
status = "okay";
};
&otg_sram {
status = "okay";
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
status = "okay";
spi-max-frequency = <50000000>;
flash: w25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,w25q128", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x100000>;
read-only;
};
partition@100000 {
label = "dtb";
reg = <0x100000 0x10000>;
read-only;
};
partition@110000 {
label = "kernel";
reg = <0x110000 0x400000>;
read-only;
};
partition@510000 {
label = "rootfs";
reg = <0x510000 0xAF0000>;
};
};
};
};
&tcon0 {
pinctrl-names = "default";
pinctrl-0 = <&lcd_rgb666_pins>;
status = "okay";
};
&tcon0_out {
tcon0_out_lcd: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_input>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy {
usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */
status = "okay";
};
与LCD屏幕相关是参考荔枝派Nano官网设置的
panel: panel {
compatible = "lg,lb070wv8", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
lvgl里面也配置成800*480(程序运行起来的时候也能够打印)
请问这个问题应该如何解
离线
通过将UBoot分辨率修改为1024*600,发现我的之前的开机闪花屏的问题 https://whycan.cn/t_2932.html 没有了
具体log如下
U-Boot 2018.01-05680-gee09b52-dirty (Oct 29 2019 - 22:58:39 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM: 32 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
Setting up a 1024x600 lcd console (overscan 0x0)
In: serial@1c25000
Out: serial@1c25000
Err: serial@1c25000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 80e5f000, end 80e63f36 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.15.0-rc8-licheepi-nano+ (root@59a7f169bc59) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #17 Tue Oct 29 23:01:56 CST 2019
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Nano
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] random: fast init done
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 22672K/32768K available (6144K kernel code, 240K rwdata, 1420K rodata, 1024K init, 246K bss, 10096K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff800000 ( 976 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (7136 kB)
[ 0.000000] .init : 0x(ptrval) - 0x(ptrval) (1024 kB)
[ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 241 kB)
[ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 247 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000054] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000125] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000858] Console: colour dummy device 80x30
[ 0.000968] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[ 0.070250] pid_max: default: 32768 minimum: 301
[ 0.070592] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070648] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.072384] CPU: Testing write buffer coherency: ok
[ 0.074421] Setting up static identity map for 0x80100000 - 0x80100058
[ 0.077248] devtmpfs: initialized
[ 0.084261] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.084327] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.084582] pinctrl core: initialized pinctrl subsystem
[ 0.087046] NET: Registered protocol family 16
[ 0.089574] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.091841] cpuidle: using governor menu
[ 0.120509] SCSI subsystem initialized
[ 0.120909] usbcore: registered new interface driver usbfs
[ 0.121114] usbcore: registered new interface driver hub
[ 0.121347] usbcore: registered new device driver usb
[ 0.121860] pps_core: LinuxPPS API ver. 1 registered
[ 0.121888] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.121961] PTP clock support registered
[ 0.122519] Advanced Linux Sound Architecture Driver Initialized.
[ 0.124260] clocksource: Switched to clocksource timer
[ 0.155245] NET: Registered protocol family 2
[ 0.156949] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.157037] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.157102] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.157541] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.157623] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.158202] NET: Registered protocol family 1
[ 0.159650] RPC: Registered named UNIX socket transport module.
[ 0.159694] RPC: Registered udp transport module.
[ 0.159711] RPC: Registered tcp transport module.
[ 0.159726] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.162061] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.164139] Initialise system trusted keyrings
[ 0.164894] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.184022] NFS: Registering the id_resolver key type
[ 0.184132] Key type id_resolver registered
[ 0.184156] Key type id_legacy registered
[ 0.184442] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
[ 0.200474] Key type asymmetric registered
[ 0.200519] Asymmetric key parser 'x509' registered
[ 0.200763] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[ 0.200803] io scheduler noop registered
[ 0.200821] io scheduler deadline registered
[ 0.201711] io scheduler cfq registered (default)
[ 0.201746] io scheduler mq-deadline registered
[ 0.201766] io scheduler kyber registered
[ 0.202983] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[ 0.213514] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.411693] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.419585] console [ttyS0] disabled
[ 0.439876] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[ 0.914900] console [ttyS0] enabled
[ 0.925932] panel-simple panel: panel supply power not found, using dummy regulator
[ 0.935536] SCSI Media Changer driver v0.25
[ 0.943794] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.948720] 4 ofpart partitions found on MTD device spi0.0
[ 0.954208] Creating 4 MTD partitions on "spi0.0":
[ 0.959093] 0x000000000000-0x000000100000 : "u-boot"
[ 0.967107] 0x000000100000-0x000000110000 : "dtb"
[ 0.974859] 0x000000110000-0x000000510000 : "kernel"
[ 0.982562] 0x000000510000-0x000001000000 : "rootfs"
[ 0.991238] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.997907] ehci-platform: EHCI generic platform driver
[ 1.003444] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.009768] ohci-platform: OHCI generic platform driver
[ 1.015508] usbcore: registered new interface driver usb-storage
[ 1.022814] i2c /dev entries driver
[ 1.084398] sunxi-mmc 1c0f000.mmc: base:0x26b51b13 irq:19
[ 1.091949] usbcore: registered new interface driver usbhid
[ 1.097672] usbhid: USB HID core driver
[ 1.121343] NET: Registered protocol family 17
[ 1.126263] Key type dns_resolver registered
[ 1.133291] Loading compiled-in X.509 certificates
[ 1.152011] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739e58)
[ 1.161005] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc073913c)
[ 1.168809] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.175484] [drm] No driver support for vblank timestamp query.
[ 1.313927] Console: switching to colour frame buffer device 100x30
[ 1.353630] sun4i-drm display-engine: fb0: frame buffer device
[ 1.360796] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[ 1.370029] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.382001] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.387973] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[ 1.398197] hub 1-0:1.0: USB hub found
[ 1.402131] hub 1-0:1.0: 1 port detected
[ 1.408687] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.426705] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.433467] vcc3v3: disabling
[ 1.436557] ALSA device list:
[ 1.439532] #0: Loopback 1
[ 1.443367] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.452089] cfg80211: failed to load regulatory.db
[ 1.561036] random: crng init done
[ 2.740261] jffs2: notice: (1) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 2.760968] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[ 2.769670] devtmpfs: mounted
[ 2.779054] Freeing unused kernel memory: 1024K
Starting syslogd: OK
Starting klogd: OK
Initializing random number generator... done.
Starting network: OK
但是lvgl运行时候,任然检测到系统是800*480的分辨率,屏幕的Ui界面仍然是非全屏
离线
屏幕的Ui界面仍然是非全屏 是怎样的?你屏幕分辨率是多少?
我用的是荔枝派淘宝店铺标配的 5寸电容屏 应该是800*480
离线
设备分辨率都是手动指定的,不存在自动检测这一说。所以请查阅面板的spec并正确设置分辨率。
我在Uboot里面设置了1024*600 或者800*480 都是可以开机
但是运行lvgl的时候,确实是lvgl的linux项目工程通过io读取的屏幕分辨率及位深
不知道你说指定设备分辨率是否指的是uboot设置屏幕分辨率?
离线
确实是lvgl的linux项目工程通过io读取的屏幕分辨率及位深
lvgl是从framebuffer读取的分辨率,而framebuffer汇报的分辨率是从内核使用的dts中panel项设置的
好的谢谢
这个问题解决了,是我的一个失误导致的
#define LV_HOR_RES_MAX (800)
#define LV_VER_RES_MAX (480)
被我写成
#define LV_HOR_RES (800)
#define LV_VER_RES (480)
然后lv_conf_checker.h文件的代码中会有如下处理
#ifndef LV_HOR_RES_MAX
#define LV_HOR_RES_MAX (480)
#endif
#ifndef LV_VER_RES_MAX
#define LV_VER_RES_MAX (320)
#endif
因此,每次开机都是480*320的分辨率
离线
最后在上传我的运行图片
离线