您尚未登录。

#2 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-04 19:02:23

我换了一个驱动,驱动内部设计到了SPI总线的设备添加,下面是装载驱动之后,然后插入USB设备,成功识别后打印一下信息

[   34.254274] usb 2-1: new full-speed USB device number 2 using ohci-platform
[   34.521700] spi-ch341-usb 2-1:1.0: ch341_cfg_probe: output cs0 SPI slave with cs=0
[   34.529412] spi-ch341-usb 2-1:1.0: ch341_cfg_probe: output cs1 SPI slave with cs=1
[   34.537011] spi-ch341-usb 2-1:1.0: ch341_cfg_probe: output cs2 SPI slave with cs=2
[   34.544597] spi-ch341-usb 2-1:1.0: ch341_cfg_probe: input  gpio4 gpio=0 irq=0 (hwirq)
[   34.552418] spi-ch341-usb 2-1:1.0: ch341_cfg_probe: input  gpio5 gpio=1 irq=1
[   34.559671] spi-ch341-usb 2-1:1.0: ch341_spi_probe: SPI master connected to SPI bus 1
[   34.602516] spi-ch341-usb 2-1:1.0: ch341_spi_probe: SPI device /dev/spidev1.0 created
[   34.620437] spi-ch341-usb 2-1:1.0: ch341_spi_probe: SPI device /dev/spidev1.1 created
[   34.647415] spi-ch341-usb 2-1:1.0: ch341_spi_probe: SPI device /dev/spidev1.2 created
[   34.684678] spi-ch341-usb 2-1:1.0: ch341_usb_probe: connected

但是我没找到在dev没有找到设备节点,驱动说明是会自动创建的,在bus目录下我也找到了

/ # find ./ -name "spi*"
./spi-ch341-usb.ko
./sys/devices/platform/soc/1c68000.spi/spi_master
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/spi0.0
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/spi0.0/statistics/spi_sync
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/spi0.0/statistics/spi_async
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/spi0.0/statistics/spi_sync_immediate
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/statistics/spi_sync
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/statistics/spi_async
./sys/devices/platform/soc/1c68000.spi/spi_master/spi0/statistics/spi_sync_immediate
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/statistics/spi_sync
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/statistics/spi_async
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/statistics/spi_sync_immediate
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.1
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.1/statistics/spi_sync
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.1/statistics/spi_async
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.1/statistics/spi_sync_immediate
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.2
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.2/statistics/spi_sync
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.2/statistics/spi_async
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.2/statistics/spi_sync_immediate
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.0
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.0/statistics/spi_sync
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.0/statistics/spi_async
./sys/devices/platform/soc/1c1a400.usb/usb2/2-1/2-1:1.0/spi_master/spi1/spi1.0/statistics/spi_sync_immediate
./sys/class/spi_master
./sys/class/spi_master/spi0
./sys/class/spi_master/spi1
./sys/firmware/devicetree/base/soc/pinctrl@01c20800/spi0
./sys/firmware/devicetree/base/soc/spi@1c68000
./sys/firmware/devicetree/base/soc/spi@1c68000/w25q128@0/spi-max-frequency
./sys/firmware/devicetree/base/soc/spi@1c68000/spi-max-frequency
./sys/bus/platform/drivers/spi_gpio
./sys/bus/spi
./sys/bus/spi/devices/spi0.0
./sys/bus/spi/devices/spi1.1
./sys/bus/spi/devices/spi1.2
./sys/bus/spi/devices/spi1.0
./sys/bus/spi/drivers/m25p80/spi0.0
./sys/bus/usb/drivers/spi-ch341-usb
./sys/module/spi_ch341_usb

晕哥有没有什么解决办法,在线等急,谢谢回复

#3 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-04 16:31:40

晕哥 说:

换一块板子比较。

可能usb口折腾坏了?

换了,另一块是可以的。。。。问题是这款板什么折腾坏了。。。难道是单单搞坏了IC的USB口?不可思议呀。。。。

#4 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-04 16:12:20

晕哥 说:

就是说硬件恢复到出厂状态,也不能使用usb烧录了?

额,出厂状态是?这个不太明白是指什么,在整个过程中我们只是调整了PF6引脚的一个上拉电阻,把电阻调整回去也不能使用USB烧录

#5 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-04 15:50:33

我发现可能是驱动版本与linux kernal的版本不符,所以换了一个驱动正在尝试

现在发现另外一个问题,之前PF6拉低之后USB主机模式,用于调试USB设备,后来需要重新烧系统,就把PF6拉高,但是就无法进入到fel烧录模式了,电脑检测不正常,出现“未知USB设备(端口重置失败) ”,但是正常启动是可以把原来flash里的内核启动起来的,应该能说明IC和SPI flash是没问题的,不清楚问题造成原因是什么,无法进行USB通信了,无法读出PID和VID

一波未平一波又起。。。。感谢回复

#6 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 17:10:19

还有我发现应用层传递整形的指针地址给驱动层,驱动层只是访问该指针地址也出错了,总感觉问题不简单,如果问题出在内核那基本上无法解决了。。。

 
		int retval = 0;
	ULONG mLength, mReadlen;
	ULONG iReadStep,iReadTimes;
	struct{
		ULONG oReadlen;
		PUCHAR iBuf;	
		PUCHAR oBuffer;
		ULONG oReturnlen;
		}Read;
	iReadStep =*(PUCHAR)(iWriteBuffer+iWriteLength-8);
	iReadTimes = *(PUCHAR)(iWriteBuffer+iWriteLength-4);
	mReadlen = iReadStep * iReadTimes;
	if( mReadlen == 0 )
		return false;
	mLength = max( iWriteLength, mReadlen );
#if 0
	printf("iWriteLength : %d\n",iWriteLength);
	printf("iReadTimes : %d\n",iReadTimes);
	printf("iReadStep : %d\n",iReadStep);
#endif
	Read.iBuf = (PUCHAR)iWriteBuffer;
	Read.oBuffer = (PUCHAR)oReadBuffer;
	Read.oReturnlen = *oReadLength;
//	printf("iBuffer Addr is ------>:%p\n",Read.iBuf);
	Read.oReadlen = iWriteLength;
	retval = ioctl( dev_fd, CH34x_PIPE_WRITE_READ, (unsigned long)&Read );
	if( retval == -1 )
	{
		printf("Error in pipe write/read\n");
		return false;
	}	
	........................
        驱动层
        long ch34x_fops_ioctl( struct file *file, unsigned int ch34x_cmd,
	unsigned long ch34x_arg )
        ...........................
        case CH34x_PIPE_WRITE_READ:
			{	
				unsigned long addr;
				dbg("------> Use Pipe Date Write/Read\n");
				dbg("????????????????????????????????");
				dbg("Input number is %ld\n",*((unsigned long *)ch34x_arg));           //问题点
				dbg("????????????????????????????????");
				addr = (unsigned long)*(((long *)ch34x_arg) + 1 );	
				dbg("????????????????????????????????");
				bytes_read = ch34x_data_write_read( *((unsigned long *)ch34x_arg),
						(unsigned long)*(((long *)ch34x_arg) + 1),
						*(((long *)ch34x_arg) + 2),ch34x_pis_tmp );
..........................
 1035.572690] /home/yjy/samba/v3s/CH341PAR_LINUX/driver/ch34x_pis.c 886: ------> 2 Chip Version is sucessful 0xc00
VendorId : 0xc000[ 1035.583713] /home/yjy/samba/v3s/CH341PAR_LINUX/driver/ch34x_pis.c 941: ------> Use Pipe Date Write/Read
[ 1035.583713] 

[ 1035.596143] /home/yjy/samba/v3s/CH341PAR_LINUX/driver/ch34x_pis.c 942: ????????????????????????????????
[ 1035.605616] Unhandled fault: page domain fault (0x01b) at 0xbeca7874
[ 1035.611962] pgd = c31b4000
[ 1035.614665] [beca7874] *pgd=430b9835, *pte=42d8175f, *ppte=42d81c7f
[ 1035.620940] Internal error: : 1b [#5] SMP ARM
[ 1035.625290] Modules linked in: ch34x_pis(O) [last unloaded: ch34x_pis]
[ 1035.631821] CPU: 0 PID: 219 Comm: test Tainted: G      D W  O    4.14.14-licheepi-zero #6
[ 1035.639984] Hardware name: Allwinner sun8i Family
[ 1035.644681] task: c3a32280 task.stack: c3be2000
[ 1035.649219] PC is at ch34x_fops_ioctl+0x370/0xc08 [ch34x_pis]
[ 1035.654959] LR is at ch34x_fops_ioctl+0x368/0xc08 [ch34x_pis]
[ 1035.660697] pc : [<bf01525c>]    lr : [<bf015254>]    psr: 600e0013
[ 1035.666953] sp : c3be3ed0  ip : 00000000  fp : 00000000
[ 1035.672170] r10: 00000000  r9 : c3be2000  r8 : beca7874
[ 1035.677387] r7 : 00000003  r6 : c3270300  r5 : c391f100  r4 : beca7874
[ 1035.683904] r3 : c0a0c458  r2 : c0a0c458  r1 : 000061bc  r0 : 00006764
[ 1035.690423] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[ 1035.697547] Control: 10c5387d  Table: 431b406a  DAC: 00000051
[ 1035.703283] Process test (pid: 219, stack limit = 0xc3be2210)
[ 1035.709020] Stack: (0xc3be3ed0 to 0xc3be4000)
[ 1035.713373] 3ec0:                                     c03bfb94 00024008 c3be3f80 00000000
[ 1035.721541] 3ee0: 00000012 00000000 beca7890 c01f9034 c0951a40 c0951a40 00000002 00000048
[ 1035.729708] 3f00: ffffffff c30ba000 00000001 beca7874 c30b2350 c3270300 00000003 beca7874
[ 1035.737876] 3f20: c3be2000 00000000 00000000 c020a8e8 c3be3f8c c31ff300 00000000 c3b961c0
[ 1035.746043] 3f40: 00000002 00000012 c31ff308 00000000 beca7890 c01f9330 00000000 00000000
[ 1035.754211] 3f60: c30b2350 c31ff300 c31ff300 00000000 c3270300 00000003 c3270300 0000000a
[ 1035.762378] 3f80: beca7874 c3be2000 00000000 c020b174 00000001 00000000 00000000 00000036
[ 1035.770545] 3fa0: c0107964 c0107780 00000001 00000000 00000003 0000000a beca7874 00000003
[ 1035.778712] 3fc0: 00000001 00000000 00000000 00000036 00000000 00000000 b6f1e000 00000000
[ 1035.786880] 3fe0: 00023b74 beca785c 00010ddf b6e98166 000e0030 00000003 00000000 00000000
[ 1035.795074] [<bf01525c>] (ch34x_fops_ioctl [ch34x_pis]) from [<c020a8e8>] (do_vfs_ioctl+0x9c/0x8f4)
[ 1035.804118] [<c020a8e8>] (do_vfs_ioctl) from [<c020b174>] (SyS_ioctl+0x34/0x5c)
[ 1035.811426] [<c020b174>] (SyS_ioctl) from [<c0107780>] (ret_fast_syscall+0x0/0x54)
[ 1035.818990] Code: e34b0f01 eb452ca4 e30611bc e3060764 (e5943000) 
[ 1035.825078] ---[ end trace d40a735d917cf97a ]---
Segmentation fault

#7 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 16:45:39

晕哥 说:

ch34x_fops_write 调用了 memcpy

估计 memcpy 的 第一个参数的指针指向的区域非法。

未初始化?或者已经被释放?

看了一下程序流程,在获取设备信息的“usb_control_msg”函数上就出了问题了,下面是打印log,不知道是不是usb_hcd_map_urb_for_dma这个内核函数,这是内核USB总线上的问题吗,感觉上越来越多,不清楚是这个驱动问题还是内核问题,如果是内核问题,我估计得放弃这种通讯方式了,晕哥你的建议是?

/nfs/v3s/CH341PAR_LINUX/demo # ./test[   88.674253] usb 2-1: new full-speed USB device number 3 using ohci-platform

dev_path:/dev/ch34x_pis0[  121.513736] ------------[ cut here ]------------

Open sucessfuldrv_version : WCH CH34x Driver Version V0.1
[  121.520345] WARNING: CPU: 0 PID: 172 at drivers/usb/core/hcd.c:1598 usb_hcd_map_urb_for_dma+0x55c/0x674
[  121.534963] transfer buffer is on stack
[  121.538795] Modules linked in: ch34x_pis(O)
[  121.542986] CPU: 0 PID: 172 Comm: test Tainted: G           O    4.14.14-licheepi-zero #6
[  121.551149] Hardware name: Allwinner sun8i Family
[  121.555880] [<c010e808>] (unwind_backtrace) from [<c010b53c>] (show_stack+0x10/0x14)
[  121.563625] [<c010b53c>] (show_stack) from [<c068b63c>] (dump_stack+0x84/0x98)
[  121.570850] [<c068b63c>] (dump_stack) from [<c011b7e8>] (__warn+0xe8/0x100)
[  121.577809] [<c011b7e8>] (__warn) from [<c011b838>] (warn_slowpath_fmt+0x38/0x48)
[  121.585288] [<c011b838>] (warn_slowpath_fmt) from [<c048f228>] (usb_hcd_map_urb_for_dma+0x55c/0x674)
[  121.594416] [<c048f228>] (usb_hcd_map_urb_for_dma) from [<c048f66c>] (usb_hcd_submit_urb+0x13c/0x888)
[  121.603627] [<c048f66c>] (usb_hcd_submit_urb) from [<c04913cc>] (usb_start_wait_urb+0x4c/0xbc)
[  121.612230] [<c04913cc>] (usb_start_wait_urb) from [<c04914dc>] (usb_control_msg+0xa0/0xcc)
[  121.620582] [<c04914dc>] (usb_control_msg) from [<bf001698>] (ch34x_fops_ioctl+0x7ac/0xc50 [ch34x_pis])
[  121.629973] [<bf001698>] (ch34x_fops_ioctl [ch34x_pis]) from [<c020a8e8>] (do_vfs_ioctl+0x9c/0x8f4)
[  121.639013] [<c020a8e8>] (do_vfs_ioctl) from [<c020b174>] (SyS_ioctl+0x34/0x5c)
[  121.646319] [<c020b174>] (SyS_ioctl) from [<c0107780>] (ret_fast_syscall+0x0/0x54)
[  121.654032] ---[ end trace f58cb1ddabf1019c ]---
VendorId : 0x0000

#8 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 12:30:00

晕哥 说:

安装之ch341是驱动?串口?

从官网下载的CH341 USB转SPI驱动,编译好了之后,尝试运行,就出现下面的错误

/dev # echo "fsdf" > ch34x_pis0
[  114.877628] Unhandled fault: page domain fault (0x01b) at 0x000c51d8
[  114.883993] pgd = c30ac000
[  114.886697] [000c51d8] *pgd=43041835, *pte=409d475f, *ppte=409d4c7f
[  114.892971] Internal error: : 1b [#1] SMP ARM
[  114.897322] Modules linked in: ch34x_pis(O)
[  114.901511] CPU: 0 PID: 124 Comm: sh Tainted: G           O    4.14.14-licheepi-zero #6
[  114.909500] Hardware name: Allwinner sun8i Family
[  114.914197] task: c3a32e00 task.stack: c30e6000
[  114.918734] PC is at memcpy+0xe4/0x330
[  114.922490] LR is at ch34x_fops_write+0x3f8/0x558 [ch34x_pis]
[  114.928226] pc : [<c0689d24>]    lr : [<bf0007f0>]    psr: 20070013
[  114.934484] sp : c30e7eac  ip : 00000003  fp : 000914e8
[  114.939700] r10: 00000000  r9 : 00000000  r8 : 00000000
[  114.944917] r7 : 000c51d8  r6 : 00000006  r5 : c30f84c0  r4 : c30ed500
[  114.951434] r3 : 00000005  r2 : 00000001  r1 : 000c51d8  r0 : c30f84c1
[  114.957953] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[  114.965077] Control: 10c5387d  Table: 430ac06a  DAC: 00000051
[  114.970813] Process sh (pid: 124, stack limit = 0xc30e6210)
[  114.976378] Stack: (0xc30e7eac to 0xc30e8000)
[  114.980732] 7ea0:                            c30f84c1 c30ed500 bf0007f0 00000054 c0112ab8
[  114.988899] 7ec0: 00000005 00000005 00000000 c303f900 bf0003f8 000c51d8 c30e7f80 00000000
[  114.997067] 7ee0: 00000005 00000000 000914e8 c01f9034 00000007 c011281c 000678a8 c30e7fb0
[  115.005234] 7f00: 000c3274 00000000 000914e8 c010138c 00000000 00000000 00000000 00000000
[  115.013402] 7f20: 00000000 c3a32e00 c011daa8 00000100 00000200 fffffff6 c303f900 00000005
[  115.021570] 7f40: 000c51d8 c30e7f80 00000000 00000005 00000000 c01f92b4 0000000a 00000406
[  115.029737] 7f60: 00000001 c303f900 c303f900 00000000 00000000 000c51d8 00000005 c01f9478
[  115.037904] 7f80: 00000000 00000000 00000006 000c2d6c 00000001 000c51d8 00000004 c0107964
[  115.046072] 7fa0: c30e6000 c0107780 000c2d6c 00000001 00000001 000c51d8 00000005 00000000
[  115.054239] 7fc0: 000c2d6c 00000001 000c51d8 00000004 000c51d8 00000020 00000000 000914e8
[  115.062407] 7fe0: 00000000 be9a7644 00019eac b6f60056 20070030 00000001 00000000 00000000
[  115.070598] [<c0689d24>] (memcpy) from [<bf0007f0>] (ch34x_fops_write+0x3f8/0x558 [ch34x_pis])
[  115.079212] [<bf0007f0>] (ch34x_fops_write [ch34x_pis]) from [<c01f9034>] (__vfs_write+0x1c/0x128)
[  115.088164] [<c01f9034>] (__vfs_write) from [<c01f92b4>] (vfs_write+0xa4/0x168)
[  115.095468] [<c01f92b4>] (vfs_write) from [<c01f9478>] (SyS_write+0x3c/0x90)
[  115.102517] [<c01f9478>] (SyS_write) from [<c0107780>] (ret_fast_syscall+0x0/0x54)
[  115.110082] Code: 24c0c001 e8bd8011 e26cc004 e35c0002 (c4d13001)
[  115.116169] ---[ end trace aadf6533c2b1c6a0 ]---

好像错误出现在open上,贴上源码
int ch34x_fops_open(struct inode *inode, struct file *file)
{
    struct ch34x_pis *ch34x_p;
    struct usb_interface *interface;
    int retval = 0;
    unsigned int subminor;

#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) )
    subminor = iminor( inode );
#else
    subminor = iminor( file->f_path.dentry->d_inode );
#endif

    interface = usb_find_interface( &ch34x_pis_driver, subminor );
    if ( !interface )
    {
        err( "%s-error,cannot find device for minor :%d",
            __func__, subminor);
        retval = -ENODEV;
        goto exit;
    }
   
    ch34x_p = usb_get_intfdata( interface );
    if( !ch34x_p )
    {
        err("Get interface data error");
        retval = -ENODEV;
        goto exit;
    }

    /* add the usage for device*/
    kref_get( &ch34x_p->kref );

    mutex_lock( &io_mutex );
    if( !ch34x_p->open_count++ )
    {
        retval = usb_autopm_get_interface( interface );
        if( retval )
        {
            ch34x_p->open_count--;
            mutex_unlock( &io_mutex );
            kref_put( &ch34x_p->kref, skel_delete );
            goto exit;
        }
    }

    file->private_data = ch34x_p;
    mutex_unlock( &io_mutex );

exit:
    return retval;
}
不知道晕哥看不看得懂

后面想试试内核自带的,结果内核自带的没编译通过,驱动层的东西很难受

#9 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 11:58:58

晕哥 说:

这个就有点尴尬了...

菜单中要M,那个贴图是网上找的~~哈,谢谢晕哥

#10 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 11:58:19

我知道了,是要用M的标识才会编译模块,不好意思,谢谢晕哥

#11 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 11:48:56

晕哥 说:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=$PWD/../module

先执行前面那个命令, 再执行后面的, 就可以了。

make ARCH=arm menuconfig先菜单选中
FluxBB bbcode 测试

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     scripts/mod/devicetable-offsets.h
  Building modules, stage 2.
  MODPOST 3 modules
@ubuntu:~/samba/v3s/linux-zero-4.14.y$
@ubuntu:~/samba/v3s/linux-zero-4.14.y$
@ubuntu:~/samba/v3s/linux-zero-4.14.y$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=$PWD/../module
  INSTALL crypto/echainiv.ko
  INSTALL drivers/staging/rtl8723bs/r8723bs.ko
  INSTALL drivers/video/backlight/lcd.ko
  DEPMOD  4.14.14-licheepi-zero

结果还是没有。。。泪奔

#12 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 11:13:32

还有一个以为
就是我在linux-zero-4.14.y编译驱动模块
使用命令如下:
make ARCH=arm menuconfig
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=$PWD/../module
无论怎么菜单里加使能驱动模块,一直都是编译出下面这几个模块
  INSTALL crypto/echainiv.ko
  INSTALL drivers/staging/rtl8723bs/r8723bs.ko
  INSTALL drivers/video/backlight/lcd.ko
  DEPMOD  4.14.14-licheepi-zero
求解答。

#13 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 10:28:15

晕哥 说:

你有没有试过 sunxi-fel 烧录, 或者全志官方软件烧录,
也就是说 USB 口是不是正常的?

我这边尝试成功了,和USB_ID这个脚需要拉低才是芯片主机模式,而原理图上是拉高,这是这个原理图第二次坑我了。。。( ̄ー ̄)
还有另一个问题,USB设备已经识别到了,我该怎么在应用层打开使用呢。。。对USB驱动框架不是很了解,求解答
谢谢回复

LOG:[  253.724204] usb 2-1: new full-speed USB device number 8 using ohci-platform

#14 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-03 09:33:56

晕哥 说:

我前面可能说错了, 你检查 PF6 引脚电平状态.

作为 HOST 估计是要上拉.


https://whycan.cn/t_561.html
https://whycan.cn/files/members/3/lichee_zero-new.pdf

谢谢回复
我昨晚好像也确认错了,我这边的PF6是按照lichee_zero-new.pdf原理图上一样,加上一个上拉电阻持续拉高的,不好意思,那在PF6拉高烧录正常的情况,是不是PF6拉低才是作为HOST?

#15 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-02 19:45:22

yangzl 说:
晕哥 说:

是用荔枝派的 板子和 主线 SDK 吗?
如果是的,
下拉 USB_Id 引脚 PF6 试一试.

是使用USB烧录镜像的那两个引脚,用的是自己做的板子,关于PF6我好像没注意到,明天回去试试
PF6引脚的作用是?
谢谢回复

关于PF6引脚,我确认了一下,这个脚我们增加了一个下拉电阻,是一直拉低的

#16 Re: 全志 SOC » 关于V3s的USB core问题 » 2019-07-02 19:43:51

晕哥 说:

是用荔枝派的 板子和 主线 SDK 吗?
如果是的,
下拉 USB_Id 引脚 PF6 试一试.

是使用USB烧录镜像的那两个引脚,用的是自己做的板子,关于PF6我好像没注意到,明天回去试试
PF6引脚的作用是?
谢谢回复

#17 全志 SOC » 关于V3s的USB core问题 » 2019-07-02 19:03:24

yangzl
回复: 28

由于想要使用USB转告诉SPI,所以使用了外置的CH341A模块,已经将USB两条通讯口和开发板相连
在insmod CH341A驱动的时候也显示装载成功,如下图
FluxBB 测试
但是在给模块重新上电断电上电断电,在kernel都没有什么打印信息
我查了一下资料,如下图
FluB 测试
想问是怎么回事,求解答,谢谢~
补充:和CH341A模块接了四条线,两条USB通讯线,地线,电源线,这些线是自己外接的,如下图;还有模块直插电脑是可以识别到对应驱动的,VID和PID都一样
FluB 测试FluB 测试

#19 全志 SOC » V3s荔枝派开发板的如何直接使用USB驱动输出数据? » 2019-06-27 12:29:59

yangzl
回复: 2

我想用USB连接到一个外置的高速SPI芯片上,然后通过USB进行SPI通讯,我要怎么像串口一样直接使用USB口输出数据呢?谢谢

#20 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-04-01 17:24:54

开启内核的时候,1.2V拉扯电流太多,导致压降突然下降,导致一次0.4V的下降,持续十几ms,导致内核不能正常启动;现把手上两个LDO并联解决了;后期更换LDO。

#21 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-29 14:33:32

天边那朵白云 说:

1. 检查 1.2V, 1.8V, 看是否波纹过大, 可以加大电容或 dcdc的电感。

2. 调低 SPI 频率, 调到 10Mhz 以下试一试。

spi频率具体在哪里可以调低?
感谢回复

#22 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-29 11:53:05

晕哥 说:

看样子,有可能频率还得降下来才行

如果说主频要降频运行的话,那应该是硬件设计的问题吧
FluxBB bbcode 测试FluxBB bbcode 测试
硬件设计是底板+核心板的设计,图上高亮部分是芯片连接FLASH的地方,芯片的三组电压都正常德华,会不会是flash离芯片太远导致的问题呢?
感谢回复

#23 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 18:00:01

jimmy 说:

是不是按晕哥套路改了之后, 比17楼有进步?
能启动到 u-boot ?

是的,踏出了一小步,也就这样设置才能读出uboot,下面示波器图看出来了,但是uboot并没有继续往下走了
FluxBB bbcode

#24 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 17:27:15

晕哥 说:

这两次可能是 spl 和 uboot 两次报出来的信息。

现在还没有启动?

没有没有,现在到那个红色框范围就停止了,使用的固件明明是荔枝派可以使用的(挠头)

#25 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 17:16:53

晕哥 说:

感觉有点是 板子布线问题,试一试在 uboot 把 dram和cpu主频都降下来,

分别降为:  166Mhz,800Mhz

重新编译试一试

尝试了一下,更改了下面两个参数
FluxBB bbcode 测试FluxBB bbcode 测试
每次串口输出信息不同,下图
FluxBB bbcode 测试
感谢回复

#26 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 16:58:25

发现了原理图和实物有些差异,把线直接引出后现在有串口打印了
10 bbcode
然后没有进行下一步了

#27 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 16:13:41

晕哥 说:
yangzl 说:
晕哥 说:

@yangzl 先接 PB8, PB9 看是否有输出, 再谋划改代码吧。

尝试过将原有可用的固件烧写进去,用示波器查看PB8和PB9的电平输出,没有丝毫波动,应该是uboot并没有启动成功吧

注意: sunxi-fel 烧录的时候 不需要再短路 spi 的引脚了

sunxi-fel 没有校验机制, 到之后也不知道有没有写进去, 写进去的对不对,
你不接 flash, 他一样能告诉你写入成功。

sunxi-fel 的 read 功能貌似也有问题, 读的数据不对。

接逻辑分析仪或者 USB串口模块试一试.

至少能启动 u-boot 最开始的 spl(boot0),
这里有几行串口输出。


最后, 你交换一下 荔枝派(能正常启动的板子)的flash测试。

在使用sunxi-fel烧录前都会使用“sunxi-fei spiflash-info”命令确认能否读取到flash芯片信息后再进行烧写,短接SPI引脚使用镊子短接,识别到就松开了。
然后在确认荔枝派开发板上的固件可以正常串口输出后,把两块板子的flash更换,结果发现SPI引脚都没有读取了,如图。
9 bbcode
黄线DO,紫线是DI。
之前一块flash在荔枝派上重新烧写并检测能用,再更换回去,还是如上图......
我的内心好绝望。。。
感谢回复

#28 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 14:20:20

晕哥 说:

@yangzl 先接 PB8, PB9 看是否有输出, 再谋划改代码吧。

尝试过将原有可用的固件烧写进去,用示波器查看PB8和PB9的电平输出,没有丝毫波动,应该是uboot并没有启动成功吧

#29 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 12:02:28

晕哥 说:

既然能烧录,说明硬件问题应该不大,至少能启动spl (boot0)才对,spl时串口是有输出的。

还是检查有没有弄错串口

7 bbcode
USB调试串口已经可以烧写了,然后我修改了sun8i-v3s.dtsi里的PB8、PB9为PF2、PF4,重新编译,烧录进去后
8 bbcode
发现还是如上图没有任何输出,是否还能有其他方法确认uboot启动正常?感谢回复

#30 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 11:13:07

超级萌新 说:

我记得 荔枝派zero 默认串口是 PB8,PB9

6 bbcode
一个大大的UART0在上面,谁又能想到.......

#31 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-28 10:59:49

晕哥 说:

既然能烧录,说明硬件问题应该不大,至少能启动spl (boot0)才对,spl时串口是有输出的。

还是检查有没有弄错串口

三组电压都是检查过没有问题的。
4 bbcode 5 bbcode

仔细检查了一下串口,发现原理图里面有两个串口0的引脚,PB和PF,之前看到原理图就直接把芯片上方的PF引脚当成串口0了,看到uboot里配置的串口0PB引脚输出,待会尝试重新编译一下固件烧写进去
然后之前换了块芯片USB调试现在就出问题了。。。。我晕。。。硬件上也没有短路看不出什么问题,电脑显示设备描述符出错,只能换个芯片重新焊试试了,未完待续.......

#32 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-27 18:49:58

晕哥 说:

你是如何确定 u-boot 没有启动成功的? 是用示波器确定? 还是用串口输出确定?

3 bbcode
刚刚再次确认了一下,这一段是自制开发板上用示波器显示读取UBOOT的区域,然后就没有继续读取dtb、kernal,串口只打印了“”这一个符号,这个uboot固件在荔枝派上能正常运行串口0打印。
因为在示波器上读取两者之间波形不一致,以及串口只打印了“”这一个符号所以觉得uboot没有启动成功。
请问这个问题可能是出在哪里?谢谢回复

#33 Re: 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-27 17:37:54

硬件上现在是芯片SPI引脚和flash是直连的,中间没有任何配件,很奇怪的是可以通过USB烧写固件,也验证了烧写成功,但是芯片无法从SPI读取到这个uboot固件,有人知道这应该怎么解决吗?万分感谢!

#34 全志 SOC » 有关全志V3s硬件电路上的关于SPI flash的问题 » 2019-03-27 17:25:24

yangzl
回复: 30

我在lichee zero开发板上完成了SPI flash固件编译生成,在开发板上也可以正常运行,而后将固件烧录到自制的开发板中,发现无法正常启动,而后接上SPI引脚观察引脚波形,发现uboot未读取成功,不知道是SPI引脚与芯片直连就可以还是需要中间添加其他配件。具体的波形如下图
frist bbcode
这是荔枝派开发板上读取uboot的MOSI和MISO的波形。
second bbcode
这是自制开发板上读取uboot的MOSI和MISO的波形。
想问硬件上要怎么连接才能正常读取

页脚

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

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