您尚未登录。

#1 Re: 全志 SOC » 《MangoPi-MQ 麻雀D1s上手教程》Tina系统编译烧录及基础分析 » 2024-07-17 16:51:56

@吴助建
你应该只执行了make,后面tina_d1-mangopi_mq_rgb480x272_rtp_uart0_20211216.img是pack命令生成的

#2 Re: 全志 SOC » 第一次用F133,驱动I80接口失败,求助大佬 » 2024-07-17 16:35:35

上面两个board的设备树,少加了disp的设置,补上

&disp {
	disp_init_enable         = <1>;
	disp_mode                = <0>;

	screen0_output_type      = <1>;
	screen0_output_mode      = <4>;

	screen1_output_type      = <1>;
	screen1_output_mode      = <4>;

	screen1_output_format    = <0>;
	screen1_output_bits      = <0>;
	screen1_output_eotf      = <4>;
	screen1_output_cs        = <257>;
	screen1_output_range     = <2>;
	screen1_output_scan      = <0>;
	screen1_output_aspect_ratio = <8>;

	dev0_output_type         = <1>;
	dev0_output_mode         = <4>;
	dev0_screen_id           = <0>;
	dev0_do_hpd              = <0>;

	dev1_output_type         = <4>;
	dev1_output_mode         = <10>;
	dev1_screen_id           = <1>;
	dev1_do_hpd              = <1>;

	def_output_dev           = <0>;

	fb0_format               = <0>;
	
/*	
	fb0_width                = <320>;
	fb0_height               = <240>;
*/
	fb0_width                = <320>;
	fb0_height               = <240>;
	fb1_format               = <0>;
	fb1_width                = <0>;
	fb1_height               = <0>;
	chn_cfg_mode             = <1>;

	disp_para_zone           = <1>;
	/*VCC-LCD*/
/*	dc1sw-supply = <&reg_dc1sw>;*/
	/*VCC-DSI*/
/*	eldo3-supply = <&reg_eldo3>;*/
	/*VCC-PD*/
/*	dcdc1-supply = <&reg_dcdc1>;*/
};

#3 全志 SOC » 第一次用F133,驱动I80接口失败,求助大佬 » 2024-07-17 15:45:13

一篮子bug
回复: 1

这是第一次弄全志soc和linux,一路跟着tina的文档走,前面调试rgb屏测试ok,不过后面想用i80接口,结果这几天折腾,没折腾明白,网上没找到对应的(有其他的,但没看明白,实力限制……),发个帖求助下大佬们,因为初次搞这个,操作步骤粗鄙不堪入目之处,请多多见谅,后面可以多给小弟批评指正下,多谢!

先说问题

进入系统后,启动日志:

[34]HELLO! BOOT0 is starting!
[37]BOOT0 commit : 88480af
[40]set pll start
[42]periph0 has been enabled
[44]set pll end
[46][pmu]: bus read error
[48]board init ok
[50]ZQ value = 0x30
[52]get_pmu_exist() = -1
[54]DRAM BOOT DRIVE INFO: V0.33
[57]DRAM CLK = 528 MHz
[59]DRAM Type = 2 (2:DDR2,3:DDR3)
[62]DRAMC read ODT  off.
[65]DRAM ODT off.
[67]ddr_efuse_type: 0xa
[69]DRAM SIZE =64 M
[71]dram_tpr4:0x0
[73]PLL_DDR_CTRL_REG:0xf8002b00
[76]DRAM_CLK_REG:0xc0000000
[78][TIMING DEBUG] MR2= 0x0
[83]DRAM simple test OK.
[85]dram size =64
[87]spinor id is: ef 40 19, read cmd: 0b
[90]Succeed in reading toc file head.
[94]The size of toc is 10c000.
[273]Entry_name        = opensbi
[276]Entry_name        = u-boot
[280]Entry_name        = dtb
[282]Jump to second Boot.

OpenSBI auto-t113-linux-V0.8-1-g771d82e
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name          : T-HEAD Xuantie Platform
Platform HART Features : RV64ACDFIMSUVX
Platform Max HARTs     : 1
Current Hart           : 0
Firmware Base          : 0x41fc0400
Firmware Size          : 75 KB
Runtime SBI Version    : 0.2

MIDELEG : 0x0000000000000222
MEDELEG : 0x000000000000b1ff
PMP0    : 0x0000000041fc0000-0x0000000041fdffff (A)
PMP1    : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
PMP2    : 0x0000000080000000-0x00000000bfffffff (A,R,W,X)
PMP3    : 0x0000000000020000-0x0000000000027fff (A,▒

U-Boot 2018.05-g2a1965a (Jul 10 2022 - 02:50:57 +0000) Allwinner Technology

[00.367]DRAM:  64 MiB
[00.369]Relocation Offset is: 01ed9000
[00.374]secure enable bit: 0
[00.377]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[00.383]flash init start
[00.385]workmode = 0,storage type = 3
[00.392]spi sunxi_slave->max_hz:100000000
SF: write offset not multiple of erase size
[01.109]spi sample_mode:1 sample_delay:1d
[01.114]spi sunxi_slave->max_hz:100000000
SF: Detected w25q256 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
[01.126]sunxi flash init ok
[01.128]line:703 init_clocks
[01.131]drv_disp_init
request pwm success, pwm7:pwm7:0x2000c00.
fdt get node offset faill: hdmi
[01.149]unable to map hdmi registers
[01.152]drv_disp_init finish
[01.156]Loading Environment from SUNXI_FLASH... OK
[01.170]boot_gui_init:start
[01.173]set disp.dev2_output_type fail. using defval=0
[01.180]boot_gui_init:finish
partno erro : can't find partition bootloader
** Unrecognized filesystem type **
[01.190]sunxi bmp info error : unable to open logo file bootlogo.bmp
[01.196]out of usb burn from boot: not need burn key
[01.201]get secure storage map err
partno erro : can't find partition private
root_partition is rootfs
set root to /dev/mtdblock5
[01.212]update part info
[01.215]update bootcmd
[01.217]change working_fdt 0x42a98da0 to 0x42a78da0
disable nand error: FDT_ERR_NOTFOUND
No reserved memory region found in source FDT
[01.247]update dts
noncached_alloc(): addr = 0x42ae8480
noncached_alloc(): addr = 0x42ae84c0
noncached_alloc(): addr = 0x42ae8500
noncached_alloc(): addr = 0x42ac27c0
geth_sys_init:639: get node 'gmac0' error
geth_sys_init fail!
[01.267]Board Net Initialization Failed
[01.271]No ethernet found.
Hit any key to stop autoboot:  1 FDT ERROR:get muxsel err returned FDT_ERR_INTERNAL
sunxi_pwm_pin_set_state, fdt_set_all_pin, ret=-1
[01.370]LCD open finish                                                                                                                                                                                     0
[02.417]no vendor_boot partition is found
Android's image name: f133-mq_r
Detect comp none
[02.433]
Starting kernel ...

[    0.000000] Linux version 5.4.61 (test@test-virtual-machine) (riscv64-unknown-linux-gnu-gcc (C-SKY RISCV Tools V1.8.4 B20200702) 8.1.0, GNU ld (GNU Binutils) 2.32) #102 PREEMPT Wed Jul 17 03:01:59 UTC 2024
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000]   DMA32 zone: 224 pages used for memmap
[    0.000000]   DMA32 zone: 0 pages reserved
[    0.000000]   DMA32 zone: 16384 pages, LIFO batch:3
[    0.000000] elf_hwcap is 0x20112d
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16160
[    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/mtdblock5 rootfstype=squashfs init=/pseudo_init partitions=boot-resource@mtdblock1:env@mtdblock2:env-redund@mtdblock3:boot@mtdblock4:rootfs@mtdblock5:UDISK@mtdblock6 cma=0M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun20iw1p1 boot_type=3 androidboot.boot_type=3 gpt=1 uboot_message=2018.05-g2a1965a(07/10/2022-02:50:57) mbr_offset=1556480
[    0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.000000] Sorting __ex_table...
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 56072K/65536K available (3963K kernel code, 419K rwdata, 1676K rodata, 136K init, 222K bss, 9464K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] plic: mapped 200 interrupts with 1 handlers for 2 contexts.
[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 64 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000027] riscv_timer_clockevent depends on broadcast, but no broadcast function available
[    0.000363] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000925] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000945] pid_max: default: 32768 minimum: 301
[    0.001116] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.001139] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.003003] ASID allocator initialised with 65536 entries
[    0.003180] rcu: Hierarchical SRCU implementation.
[    0.003869] devtmpfs: initialized
[    0.022074] random: get_random_u32 called from bucket_table_alloc.isra.27+0xfa/0x11c with crng_init=0
[    0.022946] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.022978] futex hash table entries: 256 (order: 0, 6144 bytes, linear)
[    0.023140] pinctrl core: initialized pinctrl subsystem
[    0.024565] NET: Registered protocol family 16
[    0.025315] DMA: preallocated 256 KiB pool for atomic allocations
[    0.025902] cpuidle: using governor menu
[    0.064749] rtc_ccu: sunxi ccu init OK
[    0.073056] clock: sunxi ccu init OK
[    0.074810] clock: sunxi ccu init OK
[    0.103572] iommu: Default domain type: Translated
[    0.103766] sunxi iommu: irq = 4
[    0.104930] SCSI subsystem initialized
[    0.105150] usbcore: registered new interface driver usbfs
[    0.105234] usbcore: registered new interface driver hub
[    0.105340] usbcore: registered new device driver usb
[    0.106322] Advanced Linux Sound Architecture Driver Initialized.
[    0.107207] pwm module init!
[    0.108815] g2d 5410000.g2d: Adding to iommu group 0
[    0.109329] G2D: rcq version initialized.major:252
[    0.109940] clocksource: Switched to clocksource riscv_clocksource
[    0.121725] sun8iw20-pinctrl 2000000.pinctrl: initialized sunXi PIO driver
[    0.124830] sunxi_usb_udc 4100000.udc-controller: 4100000.udc-controller supply udc not found, using dummy regulator
[    0.125661] NET: Registered protocol family 2
[    0.126536] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.126591] TCP established hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.126609] TCP bind hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.126624] TCP: Hash tables configured (established 512 bind 512)
[    0.126791] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.126837] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.127072] NET: Registered protocol family 1
[    0.128254] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pc not found, using dummy regulator
[    0.128875] spi spi0: spi0 supply spi not found, using dummy regulator
[    0.129124] sunxi_spi_resource_get()2116 - [spi0] SPI MASTER MODE
[    0.129193] sunxi_spi_resource_get()2163 - sample_mode:1 sample_delay:29
[    0.129250] sunxi_spi_clk_init()2205 - [spi0] mclk 100000000
[    0.130225] sunxi_spi_probe()2623 - [spi0]: driver probe succeed, base ffffffd00405a000, irq 31
[    0.132323] workingset: timestamp_bits=62 max_order=14 bucket_order=0
[    0.137849] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.138093] ntfs: driver 2.1.32 [Flags: R/W].
[    0.138379] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.138752] fuse: init (API version 7.31)
[    0.159206] io scheduler mq-deadline registered
[    0.159222] io scheduler kyber registered

//	disp初始化
[    0.160168] [DISP]disp_module_init
[    0.160764] disp 5000000.disp: Adding to iommu group 0
[    0.161372] [DISP] disp_init,line:2386:
[    0.161379] smooth display screen:0 type:1 mode:4

// lcd初始化
[    0.161519] lcd_init
[    0.162442] display_fb_request,fb_id:0
[    0.164044] [DISP] Fb_copy_boot_fb,line:1505:
[    0.164052] src_height(480) > dst_height(240),please cut the height
[    0.164566] disp_al_manager_apply ouput_type:1
[    0.164686] lcd_clk_config
[    0.164714] [DISP] lcd_clk_config,line:895:
[    0.164724] disp 0, clk: pll(0),clk(0),dclk(0) dsi_rate(0)
[    0.164724]      clk real:pll(297000000),clk(288000000),dclk(0) dsi_rate(0)
[    0.165384] [DISP]disp_module_init finish
// 初始化完成
[    0.166269] sunxi_sid_init()551 - insmod ok
[    0.166844] pwm-regulator: supplied by regulator-dummy
[    0.168566] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pe not found, using dummy regulator
[    0.169052] uart uart0: uart0 supply uart not found, using dummy regulator
[    0.169458] uart0: ttyS0 at MMIO 0x2500000 (irq = 18, base_baud = 1500000) is a SUNXI
[    0.169485] sw_console_setup()1808 - console setup baud 115200 parity n bits 8, flow n
[    0.901824] printk: console [ttyS0] enabled
[    0.907650] misc dump reg init
[    0.912094] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pg not found, using dummy regulator
[    0.923384] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9
[    0.930643] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed
[    0.937997] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed
[    0.945427] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1)
[    0.951966] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power.
[    0.958911] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1)
[    0.966651] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=204 assert=1
[    0.974595] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1
[    0.982747] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled
[    0.990495] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power.
[    0.997223] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1)
[    1.004867] sunxi-rfkill soc@3000000:rfkill@0: bt_rst gpio=210 assert=0
[    1.013067] [ADDR_MGT] addr_mgt_probe: module version: v1.0.11
[    1.020810] [ADDR_MGT] addr_mgt_probe: success.
[    1.027372] spi-nor spi0.0: w25q256 (32768 Kbytes)
[    1.037933] 7 sunxipart partitions found on MTD device spi0.0
[    1.044469] Creating 7 MTD partitions on "spi0.0":
[    1.049818] 0x000000000000-0x000000180000 : "uboot"
[    1.060809] 0x000000180000-0x000000190000 : "boot-resource"
[    1.080774] 0x000000190000-0x0000001d0000 : "env"
[    1.090766] 0x0000001d0000-0x000000210000 : "env-redund"
[    1.110713] 0x000000210000-0x000000990000 : "boot"
[    1.120792] 0x000000990000-0x000001110000 : "rootfs"
[    1.140711] 0x000001110000-0x000002000000 : "UDISK"
[    1.151730] sunxi-rtc 7090000.rtc: Warning: Using internal RC 16M clock source. Time may be inaccurate!
[    1.162746] sunxi-rtc 7090000.rtc: Warning: Using internal RC 16M clock source. Time may be inaccurate!
[    1.173538] sunxi-rtc 7090000.rtc: Warning: Using internal RC 16M clock source. Time may be inaccurate!
[    1.184770] sunxi-rtc 7090000.rtc: registered as rtc0
[    1.190542] sunxi-rtc 7090000.rtc: Warning: Using internal RC 16M clock source. Time may be inaccurate!
[    1.201147] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T01:48:07 UTC (6487)
[    1.210372] sunxi-rtc 7090000.rtc: sunxi rtc probed
[    1.216333] sunxi cedar version 1.1
[    1.220563] sunxi-cedar 1c0e000.ve: Adding to iommu group 0
[    1.226850] VE: install start!!!
[    1.226850]
[    1.232424] VE: cedar-ve the get irq is 6
[    1.232424]
[    1.238767] VE: ve_debug_proc_info:(____ptrval____), data:(____ptrval____), lock:(____ptrval____)
[    1.238767]
[    1.250410] VE: install end!!!
[    1.250410]
[    1.255457] VE: sunxi_cedar_probe
[    1.260173] sunxi-wdt 6011000.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    1.270510] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.22 2021-12-20 15:40)
[    1.280594] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8
[    1.286778] sunxi-mmc 4021000.sdmmc: No vmmc regulator found
[    1.293187] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found
[    1.299594] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found
[    1.306032] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found
[    1.312599] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found
[    1.319103] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found
[    1.325677] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found
[    1.332240] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed
[    1.341805] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    1.352957] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[    1.373154] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    1.397401] sunxi-mmc 4021000.sdmmc: detmode:manually by software
[    1.405082] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[    1.412215] ashmem: initialized
[    1.415741] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[    1.422620] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    1.434591] exFAT: Version 1.3.0
[    1.443037] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    1.454731] [AUDIOCODEC][sunxi_codec_parse_params][2412]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1
[    1.454731]
[    1.472032] [AUDIOCODEC][sunxi_codec_parse_params][2448]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0
[    1.483505] [AUDIOCODEC][sunxi_internal_codec_probe][2609]:codec probe finished
[    1.491683] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[    1.499335] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[    1.506756] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present!
[    1.516485] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[    1.523390] [SNDCODEC][sunxi_card_init][583]:card init finished
[    1.530012] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[    1.536801] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    1.550507] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
[    1.561940] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input0
[    1.574246] [SNDCODEC][sunxi_card_dev_probe][836]:register card finished
[    1.583699] NET: Registered protocol family 10
[    1.590012] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch
[    1.597568] Segment Routing with IPv6
[    1.601987] NET: Registered protocol family 17
[    1.608786] HDMI 2.0 driver init start!
[    1.613210] boot_hdmi=false
[    1.616379] ERROR: can not get hdmi_cts_compatibility
[    1.622072] ERROR: pinctrl_get for HDMI2.0 DDC fail
[    1.627539] ERROR: can not get ddc_en_io_ctrl
[    1.632453] ERROR: can not get hdmi_power_cnt
[    1.638751] HDMI2.0 module init end
[    1.669910] UBI error: cannot open mtd sys, error -2
[    1.675558] UBI: block: can't open volume on ubi0_-1, err=-19
[    1.683395] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.693150] clk: Not disabling unused clocks
[    1.697919] ALSA device list:
[    1.701304] cfg80211: failed to load regulatory.db
[    1.706688]   #0: audiocodec
[    1.710043] alloc_fd: slot 0 not NULL!
[    1.718663] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    1.731227] devtmpfs: mounted
[    1.734722] Freeing unused kernel memory: 136K
[    1.739673] This architecture does not have kernel memory protection.
[    1.746982] Run /pseudo_init as init process
[    1.764008] random: fast init done
mount: mounting none on /dev failed: Device or resource busy
[    3.071008] MTD: Couldn't look up '/dev/by-name/rootfs_data': -2
mount: mounting /dev/by-name/rootfs_data on /overlay failed: No such file or directory
Mount Failed: formating /dev/by-name/rootfs_data to jffs2 ...
mkfs.jffs2: error!: Unrecognisable erase size

------run rc.preboot file-----
[    3.610097] jffs2: notice: (99) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
------run rc.modules file-----
[    3.707454] random: crng init done
[    5.239976] hdmi_hpd_sys_config_release
[   20.156128] sunxi-rfkill soc@3000000:rfkill@0: wlan power on success
[   20.267209] sunxi-rfkill soc@3000000:rfkill@0: bus_index: 1
[   20.273730] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[   20.294444] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[   20.314953] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   20.340686] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   20.356451] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   20.370895] sunxi-mmc 4021000.sdmmc: card claims to support voltages below defined range
[   20.390608] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
[   20.403338] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
[   20.416776] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing SD-HS(SDR25) dt B
[   20.431008] mmc0: new high speed SDIO card at address 0001
[   31.849997] pio-18: disabling
[   31.853340] pio-33: disabling
[   31.856647] usb1-vbus: disabling
Successfully initialized wpa_supplicant
------run rc.final file-----


BusyBox v1.27.2 () built-in shell (ash)

------run profile file-----
 _____  _              __     _
|_   _||_| ___  _ _   |  |   |_| ___  _ _  _ _
  | |   _ |   ||   |  |  |__ | ||   || | ||_'_|
  | |  | || | || _ |  |_____||_||_|_||___||_,_|
  |_|  |_||_|_||_|_|  Tina is Based on OpenWrt!
 ----------------------------------------------
 Tina Linux (Neptune, 5C1C9C53)
 ----------------------------------------------
nodev   debugfs
root@TinaLinux:/# [   34.165790] file system registered
[   34.207543] configfs-gadget 4100000.udc-controller: failed to start g1: -19
sh: write error: No such device
[   34.268250] read descriptors
[   34.272099] read strings
[   34.437927] sunxi_set_cur_vol_work()485 WARN: get power supply failed
[   34.509331] configfs-gadget gadget: high-speed config #1: c

root@TinaLinux:/# 

lcd初始化部分,设备树设置的320*240,不知道这里fb的800哪里来的

然后查看disp的sys信息

root@TinaLinux:/# cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:-1
mgr0: 0x0 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[1] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] umap skip max[32]
        lcd output      backlight(  0)  fps:60.2           0x   0
        err:12387       skip:86 irq:12389       vsync:0 vsync_skip:0
   BUF    enable ch[1] lyr[0] z[16] prem[N] a[pixel 255] fmt[  0] fb[ 320, 240; 320, 240; 320, 240] crop[   0,   0, 320, 240] frame[   0,   0, 800, 480] addr[fff80000,       0,       0] flags[0x       0] trd[0,0]
depth[ 0] root@TinaLinux:/#
root@TinaLinux:/#

可以看到mgr0是0x0,后面frame又是800x480,有问题,但不知出在哪儿……前面rgb屏frame也是这样,不过我用测试代码修改了fb_var_screeninfo才行
切换到dispdbg,用suspend命令

root@TinaLinux:/# cd /sys/kernel/debug/dispdbg/
root@TinaLinux:/sys/kernel/debug/dispdbg# echo disp0 > name
root@TinaLinux:/sys/kernel/debug/dispdbg# echo suspend >command
root@TinaLinux:/sys/kernel/debug/dispdbg# echo 1 >start
[ 1170.840215] disp_suspend
[ 1170.843048] [DISP] disp_lcd_disable,line:2369:
[ 1170.843053] lcd_panel_fun[0](--).cfg_close_flow is NULL
[ 1170.870085] disp_suspend finish
root@TinaLinux:/sys/kernel/debug/dispdbg# 

lcd_panel_fun[0](--).cfg_close_flow is NULL这个搞的有点蒙,在lcdpanel里,这里cfg_close_flow是有的,不知道这里为啥是个NULL,另外lcd_panel_fun[0](--)这里括号,是我在源码
lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c----->disp_lcd_disable中改的

DE_WRN("lcd_panel_fun[%d](%s--%s).cfg_close_flow is NULL\n", lcd->disp,lcdp->panel_info.lcd_model_name,lcdp->panel_info.lcd_driver_name);

但似乎,都是空值,所以是不是驱动挂的不是指定的panel呢?

下面是我添加驱动到配置的具体步骤,新手操作,粗鄙难入眼之处,请多担待……

再说步骤

根据手头的Tina的开发文档,及自己的理解,我分为以下几个步骤:
1. 在lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/路径添加ili9341_80.c和ili9341_80.h
如下,c文件

/*
 * drivers/video/fbdev/sunxi/disp2/disp/lcd/ili9341/ili9341.c
 *
 * Copyright (c) 2007-2018 Allwinnertech Co., Ltd.
 * Author: zhengxiaobin <zhengxiaobin@allwinnertech.com>
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

[lcd0]
lcd_used            = 1

lcd_driver_name     = "ili9341"
lcd_x               = 240
lcd_y               = 320
lcd_width           = 108
lcd_height          = 64
lcd_dclk_freq       = 60

lcd_pwm_used        = 0
lcd_pwm_ch          = 0
lcd_pwm_freq        = 50000
lcd_pwm_pol         = 1
lcd_pwm_max_limit   = 255

lcd_hbp             = 20
;10 + 20 + 10 + 240*3 = 760  real set 1000
lcd_ht              = 1000
lcd_hspw            = 10
lcd_vbp             = 5
lcd_vt              = 340
lcd_vspw            = 2

lcd_frm             = 0
lcd_if              = 0
lcd_hv_if	= 8
lcd_hv_clk_phase    = 0
lcd_hv_sync_polarity   = 0
lcd_hv_srgb_seq		= 0

lcd_io_phase        = 0x0000
lcd_gamma_en        = 0
lcd_bright_curve_en = 1
lcd_cmap_en         = 0


lcd_rb_swap	= 0

deu_mode            = 0
lcdgamma4iep        = 22
smart_color         = 90


;reset
lcd_gpio_0			= port:PD16<1><0><default><1>

lcdd2                = port:PD00<2><0><2><default>
lcdd3				 = port:PD01<2><0><2><default>
lcdd4                = port:PD02<2><0><2><default>
lcdd5                = port:PD03<2><0><2><default>
lcdd6                = port:PD04<2><0><2><default>
lcdd7                = port:PD05<2><0><2><default>
lcdd10               = port:PD06<2><0><2><default>
lcdd11               = port:PD07<2><0><2><default>
lcdd12               = port:PD08<2><0><2><default>
lcdd13               = port:PD09<2><0><2><default>
lcdd14               = port:PD10<2><0><2><default>
lcdd15               = port:PD11<2><0><2><default>
lcdd18               = port:PD12<2><0><2><default>
lcdd19               = port:PD13<2><0><2><default>
lcdd20               = port:PD14<2><0><2><default>
lcdd21               = port:PD15<2><0><2><default>

lcdclk              = port:PD18<7><0><3><default>
lcdde               = port:PD19<7><0><3><default>
lcdhsync            = port:PD20<7><0><3><default>
lcdvsync            = port:PD21<7><0><3><default>
 *
 */
#include "ili9341_80.h"

#define CPU_TRI_MODE

#define ili9341c_spi_reset_1 sunxi_lcd_gpio_set_value(0, 0, 1)
#define ili9341c_spi_reset_0 sunxi_lcd_gpio_set_value(0, 0, 0)

static void lcd_panel_ili9341_init(struct disp_panel_para *info);

static void LCD_power_on(u32 sel);
static void LCD_power_off(u32 sel);
static void LCD_bl_open(u32 sel);
static void LCD_bl_close(u32 sel);

static void LCD_panel_init(u32 sel);
static void LCD_panel_exit(u32 sel);

extern s32 tcon0_cpu_set_tri_mode(u32 sel);

void write_tcon_register(int offset, int value)
{
	volatile int *tcon_reg = (int *)(0xf1c0c000 + offset);
	int reg = 0;

	reg = *((volatile int *)tcon_reg);
	reg |= value;
	*((volatile int *)tcon_reg) = reg;
}

static void lcd_cfg_panel_info(struct panel_extend_para *info)
{
	u32 i = 0, j = 0;
	u32 items;
	u8 lcd_gamma_tbl[][2] = {
	    //{input value, corrected value}
	    {0, 0},     {15, 15},   {30, 30},   {45, 45},   {60, 60},
	    {75, 75},   {90, 90},   {105, 105}, {120, 120}, {135, 135},
	    {150, 150}, {165, 165}, {180, 180}, {195, 195}, {210, 210},
	    {225, 225}, {240, 240}, {255, 255},
	};

	u32 lcd_cmap_tbl[2][3][4] = {
	    {
		{LCD_CMAP_G0, LCD_CMAP_B1, LCD_CMAP_G2, LCD_CMAP_B3},
		{LCD_CMAP_B0, LCD_CMAP_R1, LCD_CMAP_B2, LCD_CMAP_R3},
		{LCD_CMAP_R0, LCD_CMAP_G1, LCD_CMAP_R2, LCD_CMAP_G3},
	    },
	    {
		{LCD_CMAP_B3, LCD_CMAP_G2, LCD_CMAP_B1, LCD_CMAP_G0},
		{LCD_CMAP_R3, LCD_CMAP_B2, LCD_CMAP_R1, LCD_CMAP_B0},
		{LCD_CMAP_G3, LCD_CMAP_R2, LCD_CMAP_G1, LCD_CMAP_R0},
	    },
	};

	items = sizeof(lcd_gamma_tbl) / 2;
	for (i = 0; i < items - 1; i++) {
		u32 num = lcd_gamma_tbl[i + 1][0] - lcd_gamma_tbl[i][0];

		for (j = 0; j < num; j++) {
			u32 value = 0;

			value =
			    lcd_gamma_tbl[i][1] +
			    ((lcd_gamma_tbl[i + 1][1] - lcd_gamma_tbl[i][1]) *
			     j) /
				num;
			info->lcd_gamma_tbl[lcd_gamma_tbl[i][0] + j] =
			    (value << 16) + (value << 8) + value;
		}
	}
	info->lcd_gamma_tbl[255] = (lcd_gamma_tbl[items - 1][1] << 16) +
				   (lcd_gamma_tbl[items - 1][1] << 8) +
				   lcd_gamma_tbl[items - 1][1];
	memcpy(info->lcd_cmap_tbl, lcd_cmap_tbl, sizeof(lcd_cmap_tbl));
}

static s32 lcd_open_flow(u32 sel)
{
	LCD_OPEN_FUNC(sel, LCD_power_on, 40);
#ifdef CPU_TRI_MODE
	LCD_OPEN_FUNC(sel, LCD_panel_init, 50);
	LCD_OPEN_FUNC(sel, sunxi_lcd_tcon_enable, 50);
#else
	LCD_OPEN_FUNC(sel, sunxi_lcd_tcon_enable, 50);
	LCD_OPEN_FUNC(sel, LCD_panel_init, 50);
#endif
	LCD_OPEN_FUNC(sel, LCD_bl_open, 0);

	return 0;
}

static s32 lcd_close_flow(u32 sel)
{
	LCD_CLOSE_FUNC(sel, LCD_bl_close, 50);
#ifdef CPU_TRI_MODE
	LCD_CLOSE_FUNC(sel, sunxi_lcd_tcon_disable, 10);
	LCD_CLOSE_FUNC(sel, LCD_panel_exit, 10);
#else
	LCD_CLOSE_FUNC(sel, LCD_panel_exit, 10);
	LCD_CLOSE_FUNC(sel, sunxi_lcd_tcon_disable, 10);
#endif
	LCD_CLOSE_FUNC(sel, LCD_power_off, 10);

	return 0;
}

static void LCD_power_on(u32 sel)
{
	sunxi_lcd_power_enable(sel, 0);
	sunxi_lcd_pin_cfg(sel, 1);
}

static void LCD_power_off(u32 sel)
{
	sunxi_lcd_pin_cfg(sel, 0);
	sunxi_lcd_power_disable(sel, 0);
}

static void LCD_bl_open(u32 sel)
{
	sunxi_lcd_pwm_enable(sel);
	/*config lcd_bl_en pin to open lcd backlight*/
	sunxi_lcd_backlight_enable(sel);
}

static void LCD_bl_close(u32 sel)
{
	/*config lcd_bl_en pin to close lcd backlight*/
	sunxi_lcd_backlight_disable(sel);
	sunxi_lcd_pwm_disable(sel);
}

static void LCD_WRITE_DATA(u32 value)
{
    sunxi_lcd_cpu_write_data(0,value&0xFFFF);
}

static void LCD_WRITE_COMMAND(u32 value)
{
    sunxi_lcd_cpu_write_index(0,value&0xFFFF);
}

static void LCD_panel_init(u32 sel)
{
	struct disp_panel_para *info =
	    kmalloc(sizeof(struct disp_panel_para), GFP_KERNEL | __GFP_ZERO);

	bsp_disp_get_panel_info(sel, info);
	lcd_panel_ili9341_init(info);
	kfree(info);
	return;
}

static void LCD_panel_exit(u32 sel)
{
	struct disp_panel_para *info =
	    kmalloc(sizeof(struct disp_panel_para), GFP_KERNEL | __GFP_ZERO);

	LCD_WRITE_COMMAND(0x28);
	LCD_WRITE_COMMAND(0x10);
	sunxi_lcd_delay_ms(300);
	bsp_disp_get_panel_info(sel, info);
	kfree(info);
	return;
}

static void lcd_panel_ili9341_init(struct disp_panel_para *info)
{
	//************* Start Initial Sequence **********//
	//************* Reset LCD Driver ****************//
	ili9341c_spi_reset_1;
	sunxi_lcd_delay_ms(1);
	ili9341c_spi_reset_0;
	/*Delay 10ms  This delay time is necessary*/
	sunxi_lcd_delay_ms(10);
	ili9341c_spi_reset_1;
	/*Delay 120 ms*/
	sunxi_lcd_delay_ms(120);
	/************** Start Initial Sequence ***********/
	/*Pixel Format Set*/
	LCD_WRITE_COMMAND(0x3A);
	LCD_WRITE_DATA(0x55);
	LCD_WRITE_COMMAND(0xF6);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_DATA(0x33);
	LCD_WRITE_COMMAND(0xB5);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x0A);
	LCD_WRITE_DATA(0x14);
	LCD_WRITE_COMMAND(0x35);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_COMMAND(0xCF);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0xEA);
	LCD_WRITE_DATA(0xF0);
	LCD_WRITE_COMMAND(0xED);
	LCD_WRITE_DATA(0x64);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x12);
	LCD_WRITE_DATA(0x81);
	LCD_WRITE_COMMAND(0xE8);
	LCD_WRITE_DATA(0x85);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x78);
	LCD_WRITE_COMMAND(0xCB);
	LCD_WRITE_DATA(0x39);
	LCD_WRITE_DATA(0x2C);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x33);
	LCD_WRITE_DATA(0x06);
	LCD_WRITE_COMMAND(0xF7);
	LCD_WRITE_DATA(0x20);
	LCD_WRITE_COMMAND(0xEA);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x00);
	/*VRH[5:0]*/
	LCD_WRITE_COMMAND(0xC0);
	LCD_WRITE_DATA(0x21);
	LCD_WRITE_COMMAND(0xC1);
	LCD_WRITE_DATA(0x10);
	LCD_WRITE_COMMAND(0xC5);
	LCD_WRITE_DATA(0x31);
	LCD_WRITE_DATA(0x3C);
	LCD_WRITE_COMMAND(0x36);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_COMMAND(0xB0);
	/*E0,E9D340*/
	LCD_WRITE_DATA(0xE9);
	LCD_WRITE_COMMAND(0xB1);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x13);
	LCD_WRITE_COMMAND(0xB6);
	LCD_WRITE_DATA(0x0A);
	LCD_WRITE_DATA(0xA2);
	LCD_WRITE_COMMAND(0xF2);
	LCD_WRITE_DATA(0x02);
	LCD_WRITE_COMMAND(0xF6);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_DATA(0x30);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_COMMAND(0x26);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_COMMAND(0xE0);
	LCD_WRITE_DATA(0x0F);
	LCD_WRITE_DATA(0x30);
	LCD_WRITE_DATA(0x24);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x51);
	LCD_WRITE_DATA(0x50);
	LCD_WRITE_DATA(0x45);
	LCD_WRITE_DATA(0x0a);
	LCD_WRITE_DATA(0x15);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x10);
	LCD_WRITE_DATA(0x40);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_COMMAND(0xE1);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x15);
	LCD_WRITE_DATA(0x0a);
	LCD_WRITE_DATA(0x12);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_DATA(0x13);
	LCD_WRITE_DATA(0x21);
	LCD_WRITE_DATA(0x22);
	LCD_WRITE_DATA(0x38);
	LCD_WRITE_DATA(0x32);
	LCD_WRITE_DATA(0x06);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x20);
	LCD_WRITE_DATA(0x2c);
	LCD_WRITE_DATA(0x34);
	LCD_WRITE_COMMAND(0x36);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_COMMAND(0x11);
	sunxi_lcd_delay_ms(120);
	LCD_WRITE_COMMAND(0x29);
	/*Display on*/
	LCD_WRITE_COMMAND(0x2C);
}

void lcd_reflush(void)
{
	/************** Start Initial Sequence ***********/
	/************** Reset LCD Driver *****************/
	ili9341c_spi_reset_1;
	sunxi_lcd_delay_ms(1);
	ili9341c_spi_reset_0;
	/*Delay 10ms  This delay time is necessary*/
	sunxi_lcd_delay_ms(10);
	ili9341c_spi_reset_1;
	/*Delay 120 ms*/
	sunxi_lcd_delay_ms(120);
	/************** Start Initial Sequence ***********/
	/*Pixel Format Set*/
	LCD_WRITE_COMMAND(0x3A);
	LCD_WRITE_DATA(0x55);
	LCD_WRITE_COMMAND(0xF6);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_DATA(0x33);
	LCD_WRITE_COMMAND(0xB5);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x0A);
	LCD_WRITE_DATA(0x14);
	LCD_WRITE_COMMAND(0x35);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_COMMAND(0xCF);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0xEA);
	LCD_WRITE_DATA(0xF0);
	LCD_WRITE_COMMAND(0xED);
	LCD_WRITE_DATA(0x64);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x12);
	LCD_WRITE_DATA(0x81);
	LCD_WRITE_COMMAND(0xE8);
	LCD_WRITE_DATA(0x85);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x78);
	LCD_WRITE_COMMAND(0xCB);
	LCD_WRITE_DATA(0x39);
	LCD_WRITE_DATA(0x2C);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x33);
	LCD_WRITE_DATA(0x06);
	LCD_WRITE_COMMAND(0xF7);
	LCD_WRITE_DATA(0x20);
	LCD_WRITE_COMMAND(0xEA);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x00);
	/*VRH[5:0]*/
	LCD_WRITE_COMMAND(0xC0);
	LCD_WRITE_DATA(0x21);
	LCD_WRITE_COMMAND(0xC1);
	LCD_WRITE_DATA(0x10);
	LCD_WRITE_COMMAND(0xC5);
	LCD_WRITE_DATA(0x4F);
	LCD_WRITE_DATA(0x38);
	LCD_WRITE_COMMAND(0x36);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_COMMAND(0xB0);
	LCD_WRITE_DATA(0xE9);
	LCD_WRITE_COMMAND(0xB1);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x13);
	LCD_WRITE_COMMAND(0xB6);
	LCD_WRITE_DATA(0x0A);
	LCD_WRITE_DATA(0xA2);
	LCD_WRITE_COMMAND(0xF2);
	LCD_WRITE_DATA(0x02);
	LCD_WRITE_COMMAND(0xF6);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_DATA(0x30);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_COMMAND(0x26);
	LCD_WRITE_DATA(0x01);
	LCD_WRITE_COMMAND(0xE0);
	LCD_WRITE_DATA(0x0F);
	LCD_WRITE_DATA(0x30);
	LCD_WRITE_DATA(0x24);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x51);
	LCD_WRITE_DATA(0x50);
	LCD_WRITE_DATA(0x45);
	LCD_WRITE_DATA(0x0a);
	LCD_WRITE_DATA(0x15);
	LCD_WRITE_DATA(0x04);
	LCD_WRITE_DATA(0x10);
	LCD_WRITE_DATA(0x40);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_COMMAND(0xE1);
	LCD_WRITE_DATA(0x00);
	LCD_WRITE_DATA(0x15);
	LCD_WRITE_DATA(0x0a);
	LCD_WRITE_DATA(0x12);
	LCD_WRITE_DATA(0x07);
	LCD_WRITE_DATA(0x13);
	LCD_WRITE_DATA(0x21);
	LCD_WRITE_DATA(0x22);
	LCD_WRITE_DATA(0x38);
	LCD_WRITE_DATA(0x32);
	LCD_WRITE_DATA(0x06);
	LCD_WRITE_DATA(0x03);
	LCD_WRITE_DATA(0x20);
	LCD_WRITE_DATA(0x2c);
	LCD_WRITE_DATA(0x34);
	LCD_WRITE_COMMAND(0x36);
	LCD_WRITE_DATA(0x08);
	LCD_WRITE_COMMAND(0x11);
	sunxi_lcd_delay_ms(120);
	LCD_WRITE_COMMAND(0x29);
	/*Display on*/
	LCD_WRITE_COMMAND(0x2C);
}

static s32 lcd_user_defined_func(u32 sel, u32 para1, u32 para2, u32 para3)
{
	return 0;
}

struct __lcd_panel ili9341_80_panel = {
    /* panel driver name, must mach the name of lcd_drv_name in sys_config.fex
       */
	.name = "ili9341_80",
	.func = {
		.cfg_panel_info = lcd_cfg_panel_info,
		.cfg_open_flow = lcd_open_flow,
		.cfg_close_flow = lcd_close_flow,
		.lcd_user_defined_func = lcd_user_defined_func,
		},
};

H文件

#ifndef __ILI9341_80_PANEL_H__
#define  __ILI9341_80_PANEL_H__

#include "panels.h"

extern struct __lcd_panel ili9341_80_panel;

#endif

2.在kconfig添加驱动项
文件lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/Kconfig,增加

config LCD_SUPPORT_ILI9341_80_PANEL
	bool "LCD support ili9341 i80 panel"
	default y
	---help---
		If you want to support led panel for display driver, select it.This panel used for ili9341 i80 mode.

3. makfile添加编译
文件lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/Makefile,在屏幕编译部分添加

disp-$(CONFIG_LCD_SUPPORT_HE0801A068) += lcd/he0801a068.o
...
disp-$(CONFIG_LCD_SUPPORT_K101_MM2QA01_A) += lcd/K101_MM2QA01_A.o
disp-$(CONFIG_LCD_SUPPORT_ILI9341_80_PANEL) += lcd/ili9341_80.o

4. 将上面的panel添加到panels
文件lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/panels.h
在后面最后一行#endif前添加

#ifdef CONFIG_LCD_SUPPORT_ILI9341_80_PANEL
extern __lcd_panel_t ili9341_80_panel; 
#endif

文件lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/panels.c
panel_array结构体最后的null前面添加

#ifdef CONFIG_LCD_SUPPORT_ILI9341_80_PANEL
	&ili9341_80_panel,
#endif

5. 修改设备树
在lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi添加I80的引脚分配

pio: pinctrl@2000000 {
	...
	I8080_16bit_pins_a: I8080_16bit@0 {
		pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
			"PD6", "PD7" ,"PD8","PD9","PD10", "PD11","PD12","PD13","PD14","PD15", \
			"PD18", "PD19", "PD20", "PD21";
		function = "lcd0";
		drive-strength = <30>;
		bias-disable;
	};

	I8080_16bit_pins_b: I8080_16bit@1 {
		pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
			"PD6", "PD7" ,"PD8","PD9","PD10", "PD11","PD12","PD13","PD14","PD15", \
			"PD18", "PD19", "PD20", "PD21";
		function = "io_disabled";
		bias-disable;
	};
}

在device/config/chips/f133/configs/mq_r/linux-5.4/board.dts
添加lcd0的配置,将其他lcd0屏蔽
根据Tina_lcd的文档,lcd_cpu_if取值
0: 18bit/1cycle (RGB666)
2: 16bit/3cycle (RGB666)
4: 16bit/2cycle (RGB666)
6: 16bit/2cycle (RGB666)
8: 16bit/1cycle (RGB565)
10: 9bit/1cycle (RGB666)
12: 8bit/3cycle (RGB666)
14: 8bit/2cycle (RGB565)

/*
;8080 320*240*/
&lcd0 {
	lcd_used            = <1>;
	lcd_driver_name     = "ili9341_80";
	lcd_backlight       = <80>;
	lcd_if              = <1>;
	lcd_cpu_if			= <8>;
    lcd_x = <320>;
    lcd_y = <240>;
    lcd_width = <108>;
    lcd_height = <64>;
    lcd_dclk_freq = <16>;
    lcd_hbp = <20>;
    lcd_ht = <360>;
    lcd_hspw = <10>;
    lcd_vbp = <8>;
    lcd_vt = <256>;
    lcd_vspw = <4>;

	lcd_pwm_used        = <1>;
	lcd_pwm_ch          = <7>;
	lcd_pwm_freq        = <500>;
	lcd_pwm_pol         = <0>;
	/*
	lcd_lvds_if         = <0>;
	lcd_lvds_colordepth = <1>;
	lcd_lvds_mode       = <0>;
	*/
	lcd_frm             = <0>;
	lcd_io_phase        = <0x0000>;
	lcd_gamma_en        = <0>;
	lcd_bright_curve_en = <0>;
	lcd_cmap_en         = <0>;
	deu_mode            = <0>;
	lcdgamma4iep        = <22>;
	smart_color         = <90>;
	pinctrl-0 = <&I8080_16bit_pins_a>;
	pinctrl-1 = <&I8080_16bit_pins_b>;
	lcd_gpio_0 = <&pio PD 16 GPIO_ACTIVE_HIGH>;	
	status              = "okay";
};

在device/config/chips/f133/configs/mq_r/uboot-board.dts同样修改

/*
;8080 320*240*/
&lcd0 {
	lcd_used            = <1>;
	lcd_driver_name     = "ili9341_80";
	lcd_backlight       = <80>;
	lcd_if              = <1>;
	lcd_cpu_if			= <8>;
    lcd_x = <320>;
    lcd_y = <240>;
    lcd_width = <108>;
    lcd_height = <64>;
    lcd_dclk_freq = <16>;
    lcd_hbp = <20>;
    lcd_ht = <360>;
    lcd_hspw = <10>;
    lcd_vbp = <8>;
    lcd_vt = <256>;
    lcd_vspw = <4>;

	lcd_pwm_used        = <1>;
	lcd_pwm_ch          = <7>;
	lcd_pwm_freq        = <500>;
	lcd_pwm_pol         = <0>;
	/*
	lcd_lvds_if         = <0>;
	lcd_lvds_colordepth = <1>;
	lcd_lvds_mode       = <0>;
	*/
	lcd_frm             = <0>;
	lcd_io_phase        = <0x0000>;
	lcd_gamma_en        = <0>;
	lcd_bright_curve_en = <0>;
	lcd_cmap_en         = <0>;
	deu_mode            = <0>;
	lcdgamma4iep        = <22>;
	smart_color         = <90>;
	pinctrl-0 = <&I8080_16bit_pins_a>;
	pinctrl-1 = <&I8080_16bit_pins_b>;
	lcd_gpio_0 = <&pio PD 16 GPIO_ACTIVE_HIGH>;	
	status              = "okay";
};

6. 在lichee/brandy-2.0/u-boot-2018/configs/sun20iw1p1_defconfig屏幕部分添加
CONFIG_LCD_SUPPORT_ILI9341_80_PANEL=y
7. 编译打包烧录

这是整个操作步骤,最后结果就是开头部分,是哪里没有改到还是弄错了的

#4 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 不拆SoC,不用X光机,利用已知IO探测未知的IO连接情况 » 2022-01-22 09:33:31

以前mcu搞过 yikes ,丝印被磨,重塑封装,引脚打乱,但板子一般不复杂,时间支付不太大
但soc扫io的方式,估计时间上会支出比较大,起码板子探测就要比较久的时间了

哦,不过探测部分引出的io,应该可行

#6 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 网线直连,网卡单向ping通,求问应该从哪里入手解决。 » 2021-12-29 10:40:53

我之前遇到过一个这样的问题,是phy与控制芯片的时钟线冲突导致,收发的情况,有时可以,有时又没有

#7 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » lvgl7重复调用lv_img_set_src后造成系统(RTOS)死机 » 2021-12-29 10:33:22

我在esp32上v5.3使用的情况看,lvgl导致rtos挂掉的,多出现在在lv_task_hander之外的线程调用了lv_obj_del导致,这个跨线程删除控件,有一定的操作风险,而这个风险导致rtos挂掉是随机出现的;建议del操作,建立一个lv_task来做del;
v7版本有个lv_obj_del_async的操作就是,你可以尝试一下看
我怀疑崩掉不一定是这里的问题

#8 Re: RISC-V » 基于qlexcel大佬开源的热成像仪 » 2021-12-29 10:21:56

我前几天帮别人用esp32也搞了一个,是直接在温度map做差值,最后出图 big_smile

#12 Re: ESP32/ESP8266 » esp-idf v4.3怎么设置gpio0输出时钟信号给rmii? » 2021-08-05 10:19:08

在menuconfig里Ethernet里有选项
4.3RMII clock部分用宏做到hal里了
参考idf里hal部分

void emac_hal_lowlevel_init(emac_hal_context_t *hal);
..
#if CONFIG_ETH_RMII_CLK_INPUT
#if CONFIG_ETH_RMII_CLK_IN_GPIO == 0
    /* RMII clock (50MHz) input to GPIO0 */
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_EMAC_TX_CLK);
    PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[0]);
#else
#error "ESP32 EMAC only support input RMII clock to GPIO0"
#endif
#endif
#if CONFIG_ETH_RMII_CLK_OUTPUT
#if CONFIG_ETH_RMII_CLK_OUTPUT_GPIO0
    /* APLL clock output to GPIO0 (must be configured to 50MHz!) */
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
    PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[0]);
#elif CONFIG_ETH_RMII_CLK_OUT_GPIO == 16
    /* RMII CLK (50MHz) output to GPIO16 */
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO16_U, FUNC_GPIO16_EMAC_CLK_OUT);
    PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[16]);
#elif CONFIG_ETH_RMII_CLK_OUT_GPIO == 17
    /* RMII CLK (50MHz) output to GPIO17 */
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO17_U, FUNC_GPIO17_EMAC_CLK_OUT_180);
    PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[17]);
#endif
#endif // CONFIG_ETH_RMII_CLK_OUTPUT
    /* Clock configuration */
...

#17 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » little vgl的移植,完全不得要领?? » 2020-08-19 09:21:29

juri3953 说:

就是stm的片子,我的屏幕是黑白的,spi驱动,我怀疑我的回调函数有问题;

disp_drv.flush_cb = my_flush_cb;
my_flush_cb中调用的put_px(x, y, *color_p)函数,我实现的非常简单,
由于是黑白屏幕,*color_p 实际上没有引用,实现的方式就是把屏幕坐标(x,y)的点,点亮;

你可以把这部分贴出来,感觉是你实现的flush的问题吧

#20 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » littlevgl 在List上创建btn,btn上的label自动滚动 » 2020-07-23 10:03:34

style的问题,btn要显示中文,需要设置三个style的font,press,inv,rel

#21 Re: 全志 SOC » 求littervgl源码 » 2020-07-13 10:12:38

应该不是下载不了,是太慢了……
试试fastgit
git clone --recurse-submodules https://hub.fastgit.org/littlevgl/lvgl.git

#25 Re: ESP32/ESP8266 » 求解esp-wrover-kit无法烧写 » 2020-06-22 10:34:00

不知道你说的没反应是啥,:笑哭

#27 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 寻找立创EDA比赛队友 » 2020-06-15 14:04:57

mooniscrazy 说:

智能家居不错。我有很多想法,比如对空调的控制系统不满意,太土了,居然不能用手机控制,也没有wifi,不能编程。

哈哈,这个想法,我在等家里的部分电器过保,过保了之后,准备看看那些能够改装的,准备试试做个控制器

#29 Re: ESP32/ESP8266 » make: *** 没有规则可制作目标“check_python_dependencies”,由“menuconfig” 需求 » 2020-06-03 16:07:09

缺少依赖文件,看提示你的idf应该是4.0或者以前的(猜测)
可以参考
https://github.com/espressif/esp-idf/tree/release/v4.0进行配置环境
在esp-idf目录下,执行

python -m pip install -r requirements.txt

#31 Re: 全志 SOC » Littlevgl移植ARM环境 » 2020-05-21 09:42:28

lvgl官网的例程应该可以作为很好的参考

#35 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 求推荐电容触摸控制芯片 » 2020-05-11 11:15:55

貌似有的是,台湾和泰bs,通泰tty,ttp4-16键,韩国ads1-16键,博晶微的sc系列 4-12键
我现在用的是通泰tty6955,16键i2c输出,出现个奇怪的问题,上月中旬过后,天气热燥导致触摸受干扰(随机性的个别按键误触发),开了空调就没事

#36 Re: Cortex M0/M3/M4/M7 » 基于新唐M0516的MDK+GCC的编译环境建立与LOOK应用开发--缥缈九哥 » 2020-05-11 09:38:50

哈哈,九哥,你也来坑网了 big_smile
看帖子,你是把你博客的都搬过来了啊

#39 Re: ESP32/ESP8266 » 编译esp-aliyun的两个例程,遇到了问题,求助。 » 2020-04-11 13:42:11

Gentlepig 说:

嗯,确实是烧录的分区表不对,我不该用esp-aliyun/config/mass_mfg目录下的single_mfg_config.csv.
在esp-aliyun/examples/mqtt/mqtt_example目录下有个partitions_esp32.csv,在menuconfig里设置分区表为自定义的,然后默认的名称是partitions.csv,改成partitions_esp32.csv即可。
然后idf.py build,报错,提示超过2m,按提示进入Menuconfig菜单,串口下载那里配置,把flash容量改成4M。
再次编译,通过,下载,重启,程序成功启动,不过提示mqtt订阅失败。

有两个疑惑点:
1:mqtt/mqtt_example目录下有两个.csv文件,一个是8266的,一个是esp32的。但是esp-idf的esp-idf.py set-target命令,后面跟的参数只能是esp32或者是esp32s2,没法设置成8266吧?
2:默认配置里串口下载参数那里程序大小是2M,为什么是2M呢?买的esp32-wroom模块都是4M flash的啊。

1.因为我用8266的时候,没有用过idf工具,所以没办法回答,不过还是建议先看py工具的源码,最近我的项目是esp32,我自己使用esptool做了生产及相关的具有gui界面的工具,看了下源码,里面是包含了esp8266和esp32的接口,想必最新的idf工具也是这样
2.串口下载,我的esptool工具里,是有flash容量检测的接口的,你可以留意下工具源码,或者menuconfig里flash部分的设置没有设置对

#40 Re: ESP32/ESP8266 » 编译esp-aliyun的两个例程,遇到了问题,求助。 » 2020-04-11 13:35:59

Gentlepig 说:

第二个问题,在报错文件里加入了#include "esp_sleep.h"后,通过编译。
不过下载程序,启动后,还是报错:

[inf] wrapper_mqtt_subscribe(2879): mqtt subscribe packet sent,topic = /sys/a10FtPOWmu8/esp32_modbus_test1/thing/property/desired/delete_reply!
I (6705) factory_rst: Quick reboot timeout, clear reboot times
I (6715) app main: IOTX_AWSS_BIND_NOTIFY
user_awss_status_event_handler.68: Awss Status 4111

***ERROR*** A stack overflow in task Tmr Svc has been detected.

Backtrace:0x40090623:0x3ffbd480 0x400902e9:0x3ffbd4a0 0x40092ffd:0x3ffbd4c0 0x400946a2:0x3ffbd540 0x400930f0:0x3ffbd560 0x400930a6:0x3ffd6530 0x0000027d:0x401014d4 |<-CORRUPTED
0x40090623: panic_abort at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/esp_system/panic.c:330

0x400902e9: esp_system_abort at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/esp_system/system_api.c:68

0x40092ffd: vApplicationStackOverflowHook at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/freertos/xtensa/port.c:436

0x400946a2: vTaskSwitchContext at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/freertos/tasks.c:2769

0x400930f0: _frxt_dispatch at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/freertos/xtensa/portasm.S:431

0x400930a6: _frxt_int_exit at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/freertos/xtensa/portasm.S:231

0x401014d4: sntp_retry at /home/any/EclipseWorkship/MCU/ESP32/esp-idf/components/lwip/lwip/src/apps/sntp/sntp.c:367

从你的log里看,是任务Tmr Svc的栈溢出了,你适当调整下试试

#41 Re: ESP32/ESP8266 » 编译esp-aliyun的两个例程,遇到了问题,求助。 » 2020-04-10 17:41:19

分区文件csv各个键值部分的说明
参考分区表 esp32 — ESP-IDF 编程指南 latest 文档
报错信息是分区表不对应bootloader,你跑的aliyun的例程,也应烧对应的例程的Bootloader
可以参考

$IDF_PATH$/components/bootloader_support/src/bootloader_utility.c

#43 Re: ESP32/ESP8266 » 编译esp-aliyun的两个例程,遇到了问题,求助。 » 2020-04-10 16:39:01

aliyun没跑过
第一个问题,看提示应该是分区表,你检查下你的程序对应的分区表
第二个问题,像你说的一样,配置文件有没有对应的宏关闭了
我是来水贴的 cool

#46 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » littlevgl多界面切换问题 » 2020-01-15 10:11:14

我的界面切换思路也差不多
也是创建一个base_obj作为界面的parent控件,其他界面元素都以该控件为parent,切换时删除旧的base_obj,创建新的base_obj;
至于hide操作整个base_obj没试过,但是在操作界面内其他元素是没有问题的,比如一个列表选择后显示对应的图表

Blizzard 说:

好像确实不行,界面切换,我是直接创建,删除,再创建,再删除这样循环

#47 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » littlevgl多界面切换问题 » 2020-01-15 09:13:26

不管用,具体是怎么不管用?没有隐藏掉当前界面?还是要切换的界面没有出现?还是其他? neutral

#50 Re: 好钜润半导体(TIKY) » 早上起来刷根天线,无意中看到好钜润更新了一个板子,不知道啥时候更新的,大家看看 » 2020-01-11 09:49:53

看店铺标价,单零卖应该就是88,液晶的话应该是他店里这款https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-1175222619.26.69975228i8Alrv&id=527324515844
不过发现就是没有触摸

红白机 说:

看起来不错, 这个液晶是什么型号, 单卖什么价格呢?

#51 好钜润半导体(TIKY) » 早上起来刷根天线,无意中看到好钜润更新了一个板子,不知道啥时候更新的,大家看看 » 2020-01-11 09:29:09

夏雨夜寐
回复: 30

早上起来刷根天线,无意中看到3.2寸800x480全视角IPS液晶屏WIFI物联网智能显示屏M4
地址淘宝网 https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-1175222619.19.6d51516cIIPLZo&id=608671060640
产品特点:

1、IPS全视角液晶屏,阳光下可视度高;

2、高分辨率800*480;

3、超大存储空间:16MB的FLASH及8MB的RAM,可以运行复杂的界面程序;

4、采用高性能TK499芯片,240MHz,带FPU,支持硬件浮点运算;

5、USB方式下载,可以用USB更新程序,图标及字库;

6、带WIFI模块,支持无线显示,利于接入IoT物联网

6、提供丰富外设:串口、SPI、GPIO、USB,SDIO、五向按键、3路LED灯;

7、性价比高,88元包含了高性能M4芯片,16M FLASH与8M RAM及高分辨率TFT屏,可以直接片上编程,比串口屏灵活,速度更快;

8、提供参考程序,原理图等;

9、批量客户支持定制;
O1CN01hQNgSm1UGvB3fLSAs_!!23732491.jpg
O1CN01j1cWcj1UGvAyc0jtQ_!!23732491.jpg

#52 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 闲鱼捡漏,拆解一台收银机【多图警告,流量党劝退】 » 2019-12-23 13:12:17

有很多公司都是直接用的,快啊

伍零壹 说:

我靠  做这个项目的人也是不缺钱   直接上树莓派啊

#60 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 感谢@weiyongwill 赠送的某银行淘汰终端机,AM3354 CPU,运行Android【开车了, 凑满50台就发车, 60元+运费】 » 2019-11-29 17:47:22

哈哈,团长,来一块

weiyongwill 说:

现在开团,凑够50个(3天之内吧,要快,迟了怕没了),我去拿了帮大家发货(老板是垃圾佬,基本不零卖)。
需要的在下面留言,要几个

#62 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 一个商业化的Qt组件 (多图预警!!!考验剩余流量和网速) » 2019-11-29 13:15:41

这个做自定义控件挺六的,去年自己写工具时,用到自定义控件,搜到过这个大全了

#68 Re: RT1050/RT10XX » keil MDK 5.25 下载 » 2019-11-19 16:15:34

这么大,竟然快1G了,没注册机,明年就不好玩了

晕哥 说:
[uVision updated to V5.29.0.0] ◾Added: option in License Manager to request a 30-day evaluation license of the MDK Professional edition.
◾Added support for v8.1-M architecture extensions (requires MDK Professional).
◾Enhanced: auto-generated scatter files can manage multiple modules with the same name.
◾Enhanced: librarian is skipped in build if all contained objects are up to date shortening the build times.

◾[Arm Compiler included] ◾Included Arm Compiler 5 version 5.06u6 - unchanged: see Release Notes for further details.
◾Updated Arm Compiler 6 to version 6.13 - see Release Notes for further details.

◾[Software Packs included] ◾Keil - MDK Middleware 7.10.0 ◾Updated File System Component to version 6.13.0 ◾Added ftime_set and ftime_get functions used to manage the file or directory timestamps.
◾Added status codes fsAlreadyExists and fsNotDirectory that allow more control when using fmkdir, frmdir and fchdir.
◾Added debug configuration for debugging with Event Recorder.
◾Added second instance of the RAM drive (drive R1).
◾Corrected bug in FAT file name compare for names with equal root and 13 characters in length (LFN).
◾Corrected bug in FAT cluster handling when deleting file which could cause false out of space error.
◾Corrected bug in fmedia which could cause non-initialized pointer access when using uninitialized drive.

◾Updated Network Component to version 7.12.0 ◾Added support for Digest access authentication in HTTP server.
◾Added support for user accounts in HTTP server Digest authentication.
◾Added support for passwords stored as MD5 hash value HA1.
◾Added support for the WiFi interface.
◾Added send frame buffering, if the MAC address in the IPv6 NDP cache is not resolved (the first call to the netUDP_Send function does not fail anymore).
◾Corrected possible memory corruption in CHAP authentication, when PPP interface used in client mode, and the server generates CHAP challenges of less than 16 bytes.
◾Corrected memory issue when receiving fragmented broadcast message.
◾Corrected return code from BSD_EINVAL to BSD_ESOCK if BSD socket is not created.
◾Corrected filtering for link-layer addressed UDP messages (datagrams with correct MAC address and invalid IP address are no longer received).
◾Corrected Neighbor Discovery failure, when the requested global IPv6 address is on-link.
◾Corrected problem in BSD socket timeouts, when the blocked receiving and blocked sending in the socket are simultaneously used from two threads.
◾Corrected problem, that the device is not accessible to IPv6 after changing the MAC address.
◾Corrected possible TCP socket retransmission failure in keep-alive mode for very short time limits, when the keep-alive timer expired before the retransmission timer.
◾Corrected CHAP authentication failure in the PPP interface, when used in client mode.
◾Improved and optimized network core processing.
◾Improved versioning, added library version to a map file (i.e.: "network_ip4_release_v7.10.6").
◾Improved access to ethernet, serial and modem drivers.
◾Improved Event Recorder debug support and updated documentation for the debug events available in the Network Services.
◾Optimized send_frame functions for network interfaces.
◾Updated IGMP multicast address filtering.
◾Updated lease renewal in the DHCP client also updates the default Gateway.

◾Updated USB Component to version 6.13.7 ◾Added thread name for all threads created by the USB stack.
◾USB Host ◾Corrected CMSIS-RTOS1 compatibility mode compilation error in USART_CDC_ACM.c and USART_PL2303.c templates.
◾Corrected USBH_Device_GetController, USBH_Device_GetPort, USBH_Device_GetAddress, USBH_Device_GetVID, and USBH_Device_GetPID functions to work in device enumeration Initialize callbacks.

◾USB Device ◾Corrected delay on USB out transfer when multiple USB devices are used.
◾Corrected handling if endpoint configuration in driver fails.
◾Corrected MSC class support for sector size different than 512.
◾Corrected MAC_str_to_addr function in Ethernet RNDIS driver.
◾Corrected MAC_str_to_addr function in USBD_User_CDC_ACM_RNDIS_ETH.c and USBD_User_CDC_ACM_RNDIS_VETH.c templates.
◾Improved USB input buffers alignment (aligned to 32 bytes, support cache up to 32 bytes per cache line).


◾Unchanged Graphics Component to version 5.50.
◾Unchanged Board Support Interface specification.

◾ARM - CMSIS 5.6.0 ◾Updated:  CMSIS-Core (Cortex-M) to version 5.3.0. ◾Added provisions for compiler-independent C startup code.
◾Corrected a compilation issue in cmsis_armclang_ltm.h introduced in 5.2.0.

◾Updated:  CMSIS-Core (Cortex-A) to version 1.1.4. ◾Corrected an issue in the Floating Point Unit Function __FPU_Enable().
◾Modified functions __get_SP_usr() / __set_SP_usr() to work with ArmClang.
◾Corrected a zero argument handling in function __CLZ().

◾Updated: CMSIS-DSP to version 1.7.0. ◾Modified arm_math.h . ◾Removed dependance on cores.
◾Deprecated __SIMD32 and introduced new functions for SIMD accesses.

◾Added compilation flags for FFT. It is now possible to include only the tables required for FFTs.

◾Updated: CMSIS-NN to version 1.2.0. ◾Added arm_status arm_depthwise_conv_u8_basic_ver1 function for depthwise convolution with asymmetric quantization.
◾Added arm_nn_sat_doubling_high_mult and arm_nn_divide_by_power_of_two support functions for quantization.

◾Updated: CMSIS-RTOS to version 4.82. ◾Corrected: Recursive Mutex 16-bit lock counter is now checked to not overflow.

◾ Devices ◾Generalized C startup code for all Cortex-M family devices.
◾Updated Cortex-A memory regions and system configuration files.

◾ Utilities ◾Updated SVDConv to version 3.3.27.
◾Updated PackChk to version 1.3.87.


◾ARM - CMSIS-Driver 2.4.1 ◾Added CMSIS-WiFi driver for the Espressif ESP8266 WiFi module.
◾Updated CMSIS-WiFi driver for the Inventek ISM43362 WiFi module to version 1.2.0. ◾Corrected SocketClose functionality.
◾Updated Initialization function to handle unavailable reset pin.
◾Updated functionality to comply with CMSIS WiFi Driver Validation.
◾Added debug of SPI traffic to Event Recorder.
◾Corrected PHY_LAN8742A power down bit definition.


◾Keil - Arm Compiler 1.6.2 (Software Pack) ◾Added ARMV81MML to the list of supported processors.
◾Updated EventRecorder.scvd: ◾using level 'Detail' for start/stop A event group to not show in red.
◾adding prefix attribute to enable linking the event property to the doxygen documentation.



◾[Target debugging] ◾ULINKpro: ◾updated firmware to version 1.59 adding support for JTAG-DPv3 (ADIv6).
◾added support for CoreSight DAP v3 based on ADIv6.
◾added support for SDF files from CMSIS debug description for complex trace topologies.
◾added support for switch out of dormant state for CoreSight SW-DPv2 (Serial Wire Debug Port).

◾ULINKplus: ◾added support for CoreSight DAP v3 based on ADIv6.
◾added support for SDF files from CMSIS debug description for complex trace topologies.
◾added support for switch out of dormant state for CoreSight SW-DPv2 (Serial Wire Debug Port).

◾ULINK2: ◾added support for SDF files from CMSIS debug description for complex trace topologies.
◾added support for switch out of dormant state for CoreSight SW-DPv2 (Serial Wire Debug Port).

◾CMSIS-DAP: ◾added support for CoreSight DAP v3 based on ADIv6.
◾added support for SDF files from CMSIS debug description for complex trace topologies.
◾added support for switch out of dormant state for CoreSight SW-DPv2 (Serial Wire Debug Port).

◾ST-LINK (STMicroelectronics): ◾updated debug driver to version 3.0.7.0.
◾including firmware upgrade utility ST-LinkUpgrade.exe version 2.5.2.

◾NULink (Nuvoton) updated debug driver to version 3.01.6951.
◾Stellaris ICDI support has been removed.

◾ [Cortex-M Architecture models] ◾Updated Fixed Virtual Platform (FVP)  support to version 11.8.59.

◾[Supported Operating Systems] ◾Refer to System Requirements Overview for hardware and operating system requirements.

https://armkeil.blob.core.windows.net/eval/MDK529.EXE

MDK 529 下载。

#69 Re: 全志 SOC » 请问大家荔枝派网盘里面的 V3s TF卡 debian 桌面镜像有哪位朋友跑起来了? » 2019-11-19 10:30:35

大佬想找个理由睡一觉……你看,我在等--它。启。。动。。。

Jmhh247 说:

一个小。。。。。。时,比。。。闪电。。。还。。。。慢。。。。,大佬你想干啥

#70 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LittlevGL新版本在线生成字体还可以用么? » 2019-11-18 11:02:03

你如果单单要使用awesome图标的话,我这里有个24*24的awesome的c文件
builtin_Symbol24P.zip,已转换好的当前awesome已有的图标
使用参考lvgl内部的图标宏
其实你也可以直接在awesome官网下了ttf文件,然后在lvgl转换

cdft 说:

不限定任何方式,只要是能生成littlevgl 可用的awesome图标字体就可以。

#72 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LittlevGL新版本在线生成字体还可以用么? » 2019-11-16 11:56:48

论坛里有网友阿里写的lvgl_font_convert工具,用起来不错,你找下看

cdft 说:

最近发现老版本上 https://littlevgl.com/ttf-font-to-c-array-old 可以在线生成字体,但是新版本 https://littlevgl.com/ttf-font-to-c-array 上尝试生成字体,一直无法成功。。请问下有成功的么?

#81 Re: ESP32/ESP8266 » 如何实现ESP32开发板接入物联网平台,实现通过远程app与ESP32进行通信和控制? » 2019-09-29 09:51:22

dreams2084 说:

如何实现ESP32开发板接入物联网IoT平台,实现远程app与ESP32进行通信和控制?
百度的DuerOS平台除了提供智能语音服务还有物联网功能吗?若有如何实现及其例程?

试试emqx,可以自己搭一个测试,下过如下图
FluxBB bbcode emqx

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn