您尚未登录。

#1 Re: 全志 SOC » 历时半个月,终于把F1C200S开发板的RTThread 触摸(GT911)+显示RGB(40PIN)565+LVGL8.3.0调通支持中文 » 2023-06-04 11:47:39

用xfel刷写spinand倒是能引导,xboot里面也有spinand的启动函数和自拷贝函数。单从xboot引导我倒是成功了,就是触摸一直用不了

#2 Re: 全志 SOC » 历时半个月,终于把F1C200S开发板的RTThread 触摸(GT911)+显示RGB(40PIN)565+LVGL8.3.0调通支持中文 » 2023-06-03 02:22:12

@tangloong
大佬,你贴的百度云链接里面的固件触摸可以用吗?我在ram运行以后触摸点不起来,用的GT911,和你是同款板子

#3 全志 SOC » 求助!t113使用xboot驱动gt911启动时序问题 » 2023-06-02 16:13:48

Ary_Ye
回复: 0

大佬们,我用xboot上面原有的gt911驱动,发现在触摸时没有拉低INT引脚(Tina上能驱动的是拉低的),猜测应该是启动时序问题。
这个是主线上的启动时序

		gpio_set_cfg(rst, rstcfg);
		gpio_set_pull(rst, GPIO_PULL_UP);
		gpio_set_direction(rst, GPIO_DIRECTION_OUTPUT);

		gpio_set_value(rst, 0);
		mdelay(10);
		gpio_set_pull(gpio, GPIO_PULL_UP);
		gpio_set_direction(gpio, GPIO_DIRECTION_OUTPUT);
		gpio_set_value(gpio, 1);
		udelay(100);
		gpio_set_value(rst, 1);
		mdelay(5);

触摸时不拉低
QQ20230602-162203.png
换成

			gpio_set_cfg(rst, rstcfg);
			

			gpio_set_direction(rst, GPIO_DIRECTION_OUTPUT);
			udelay(1);
			gpio_set_direction(gpio, GPIO_DIRECTION_OUTPUT);
			udelay(1);
			gpio_set_value(rst,0);
			gpio_set_value(gpio,0);
			
			mdelay(10);

			gpio_set_value(gpio,1);
			mdelay(1);

			gpio_set_value(rst,1);
			mdelay(5);

			gpio_set_value(gpio, 0);
			mdelay(50);
			gpio_set_value(gpio, 1);
			udelay(150);
			gpio_set_cfg(gpio, gpiocfg);
			gpio_set_pull(gpio, GPIO_PULL_UP);
			gpio_set_direction(gpio, GPIO_DIRECTION_INPUT);

就出现奇怪的时序
QQ20230602-150257.png
第一次尝试移植电容触摸,求大佬们帮忙看看啥问题

#5 Re: 全志 SOC » mqr_t113使用xboot在SPINAND无法启动 » 2023-05-27 16:35:13

@xboot
大佬好,我这边是已经修改了get_boot_device()里面的启动介质,改成了BOOT_DEVICE_SPINAND,但还是没能启动
这是编译的结果

copy from `../output/xboot' [elf32-littlearm] to `../output/xboot.bin' [binary]
Make header information for brom booting
The bootloader head has been fixed, spl size is 32768 bytes.
Ecdsa256 public key:
        03cfd18e4a4b40d6529448aa2df8bbb677128258b8fbfc5b9e492fbbba4e84832f
Ecdsa256 private key:
        dc57b8a9e0e2b7f8b4c929bd8db2844e53f01f171bbcdf6e628908dbf2b2e6a9
Compressed 4595712 bytes into 2987194 bytes ==> 64.999591%

这个是我在sys-copyself.c里面的自拷贝程序

void test()
{
	sys_uart_putc('B');
	sys_uart_putc('o');
	sys_uart_putc('o');
	sys_uart_putc('t');
	sys_uart_putc(' ');
	sys_uart_putc('t');
	sys_uart_putc('o');
	sys_uart_putc(' ');
	sys_uart_putc('F');
	sys_uart_putc('E');
	sys_uart_putc('L');
	sys_uart_putc(' ');
	sys_uart_putc('m');
	sys_uart_putc('o');
	sys_uart_putc('d');
	sys_uart_putc('e');
	sys_uart_putc('\r');
	sys_uart_putc('\n');
}

void sys_copyself(void)
{
	int d = get_boot_device();
	test();
	if(d == BOOT_DEVICE_SPINOR)
	{
		struct zdesc_t * z = (struct zdesc_t *)__heap_start;
		void * mem = (void *)__image_start;
		void * tmp = (void *)z + sizeof(struct zdesc_t);
		uint32_t size = __image_end - __image_start;

		sys_mmu_init();
		sys_spinor_init();
		sys_spinor_read(65536, z, sizeof(struct zdesc_t));
		sys_spinor_exit();
		if((z->magic[0] == 'Z') && (z->magic[1] == 'B') && (z->magic[2] == 'L') && (z->magic[3] == '!'))
		{
			//if(sys_verify((char *)z->pubkey, (char *)z->sha256, (char *)z->signature))
			{
				uint32_t csize = (z->csize[0] << 24) | (z->csize[1] << 16) | (z->csize[2] << 8) | (z->csize[3] << 0);
				uint32_t dsize = (z->dsize[0] << 24) | (z->dsize[1] << 16) | (z->dsize[2] << 8) | (z->dsize[3] << 0);
				sys_spinor_init();
				sys_spinor_read(65536 + sizeof(struct zdesc_t), tmp, csize);
				sys_spinor_exit();
				//if(sys_hash((char *)(&z->majoy), (sizeof(struct zdesc_t) - 100) + csize, (char *)z->sha256))
				{
					sys_decompress(tmp, csize, mem, dsize);
				}
			}
		}
		else
		{
			sys_spinor_init();
			sys_spinor_read(0, mem, size);
			sys_spinor_exit();
		}
	}
	else if(d == BOOT_DEVICE_SPINAND)
	{
		struct zdesc_t * z = (struct zdesc_t *)__heap_start;
		void * mem = (void *)__image_start;
		void * tmp = (void *)z + sizeof(struct zdesc_t);
		uint32_t size = __image_end - __image_start;
		#if 0
		sys_mmu_init();
		sys_spinand_init();
		sys_spinand_read(1048576 + 65536, z, sizeof(struct zdesc_t));
		sys_spinand_exit();
		if((z->magic[0] == 'Z') && (z->magic[1] == 'B') && (z->magic[2] == 'L') && (z->magic[3] == '!'))
		{
			//if(sys_verify((char *)z->pubkey, (char *)z->sha256, (char *)z->signature))
			{
				uint32_t csize = (z->csize[0] << 24) | (z->csize[1] << 16) | (z->csize[2] << 8) | (z->csize[3] << 0);
				uint32_t dsize = (z->dsize[0] << 24) | (z->dsize[1] << 16) | (z->dsize[2] << 8) | (z->dsize[3] << 0);
				sys_spinand_init();
				sys_spinand_read(1048576 + 65536 + sizeof(struct zdesc_t), tmp, csize);
				sys_spinand_exit();
				//if(sys_hash((char *)(&z->majoy), (sizeof(struct zdesc_t) - 100) + csize, (char *)z->sha256))
				{
					sys_decompress(tmp, csize, mem, dsize);
				}
			}
		}
		else
		#endif
		{
			sys_spinand_init();
			sys_spinand_read(1048576, mem, size);
			sys_spinand_exit();
		}
	}
	else if(d == BOOT_DEVICE_SDCARD)
	{
	}
}

我在开头加上了一个test打印程序,但是没看到有信息打印,uart使用的是0,我看了下寄存器和sys_uart_putc()的地址是一样的

#6 Re: 全志 SOC » t113-s3用xboot编译成功烧录到nor没反应,sdram里面可以运行 » 2023-05-26 23:09:34

大哥,这个问题你解决了吗?我现在也是t113烧进去也没能启动。

#7 Re: 全志 SOC » mqr_t113使用xboot在SPINAND无法启动 » 2023-05-26 23:04:03

我在F1C200S上按上面的方法也能启动,但在T113上就没能启动,好奇怪啊。

#8 全志 SOC » mqr_t113使用xboot在SPINAND无法启动 » 2023-05-26 22:51:15

Ary_Ye
回复: 7

用xfel在ram里面运行程序是没有问题的,也能检测到spinand

[    0.161625]Found spi nand flash 'GD5F1GQ4xAYIG' with 128.000MB
[    0.167369]Found partition:
[    0.170153]  0x0000000000000000 ~ 0x0000000007ffffff 128.000MB - blk-spinand.                                                                                                                                                                                                                                 0
[    0.177361]  0x0000000000000000 ~ 0x00000000005fffff 6.000MB   - blk-spinand.                                                                                                                                                                                                                                 0.xboot
[    0.185462]  0x0000000000600000 ~ 0x00000000007fffff 2.000MB   - blk-spinand.                                                                                                                                                                                                                                 0.reserve
[    0.193348]  0x0000000000800000 ~ 0x0000000007ffffff 120.000MB - blk-spinand.                                                                                                                                                                                                                               0.private

参考https://whycan.com/t_7323.html中xboot大佬在39楼以后的内容,了解到f133使用的是2kB一个page,
所以我使用sudo xfel spinand splwrite 2048 1048576 output/xboot.bin这条命令,烧写以后已经退出了FEL,但是没有启动LOG。
在sys-copyself.c里面的get_boot_device默认是return BOOT_DEVICE_SPINOR;改成return BOOT_DEVICE_SPINAND;
在sys_copyself的一部分改成

	else if(d == BOOT_DEVICE_SPINAND)
	{
		struct zdesc_t * z = (struct zdesc_t *)__heap_start;
		void * mem = (void *)__image_start;
		void * tmp = (void *)z + sizeof(struct zdesc_t);
		uint32_t size = __image_end - __image_start;
		#if 0
		sys_mmu_init();
		sys_spinand_init();
		sys_spinand_read(1048576 + 65536, z, sizeof(struct zdesc_t));
		sys_spinand_exit();
		if((z->magic[0] == 'Z') && (z->magic[1] == 'B') && (z->magic[2] == 'L') && (z->magic[3] == '!'))
		{
			//if(sys_verify((char *)z->pubkey, (char *)z->sha256, (char *)z->signature))
			{
				uint32_t csize = (z->csize[0] << 24) | (z->csize[1] << 16) | (z->csize[2] << 8) | (z->csize[3] << 0);
				uint32_t dsize = (z->dsize[0] << 24) | (z->dsize[1] << 16) | (z->dsize[2] << 8) | (z->dsize[3] << 0);
				sys_spinand_init();
				sys_spinand_read(1048576 + 65536 + sizeof(struct zdesc_t), tmp, csize);
				sys_spinand_exit();
				//if(sys_hash((char *)(&z->majoy), (sizeof(struct zdesc_t) - 100) + csize, (char *)z->sha256))
				{
					sys_decompress(tmp, csize, mem, dsize);
				}
			}
		}
		else
		#endif
		{
			sys_spinand_init();
			sys_spinand_read(1048576, mem, size);
			sys_spinand_exit();
		}
	}

但是没能启动成功,求大佬支支招。

#9 Re: 全志 SOC » f1c100s上跑xboot,移植gt911求助 » 2023-05-26 22:17:11

大佬,请问你驱动成功了吗?我现在是启动log里面看到gt911已经检测到了,但是进到window里面还是没能触摸,想问一下你是怎么解决的。

#10 全志 SOC » f1c200s使用xboot驱动gt911在window上不工作 » 2023-05-26 18:17:29

Ary_Ye
回复: 0

从mach-t113/driver里面复制ts-gt911.c到mach-f1c200s/driver里面,然后修改romdisk里面的设备树,我的板子的触摸INT是PE12(140),RST是PA0(0),
    "ts-gt911@0": {
        "i2c-bus": "i2c-f1c200s.0",
        "slave-address": 20,
        "interrupt-gpio": 140,
        "interrupt-gpio-config": 6,
        "reset-gpio": 0,
        "reset-gpio-config": 1
    },
添加完以后,烧录启动是GT911 Version: 911(0x1060)(0x00)[    0.241688]Probe device 'ts-gt911.0' with ts-gt911,
但在window上还是没能使用触摸,求大佬们支支招:o

#11 全志 SOC » mqr_T113使用编译的lvgl程序报错Segmentation fault » 2023-05-04 13:44:23

Ary_Ye
回复: 1

我使用的是gui-guider生成的文件,编译工具用的芒果Tina-Linux里面的arm-linux-gnueabi-gcc,运行./demo以后就报Segmentation fault,求大佬给给建议。

root@TinaLinux:~# ./demo
unable to open evdev interface:: No such file or directory
Segmentation fault


这个是程序https://pan.baidu.com/s/1u2u7kgYaFwokEhc9qjApdQ?pwd=1234

页脚

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

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