Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页
    1. Home
    2. Negro
    N
    • Profile
    • Following 0
    • Followers 0
    • my integral 1462
    • Topics 9
    • Posts 26
    • Best 0
    • Groups 0

    NegroLV 5

    @Negro

    1462
    integral
    0
    Reputation
    11
    Profile views
    26
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Negro Unfollow Follow

    Latest posts made by Negro

    • V853怎么配置单目摄像头?

      V853做的板子,buildroot系统,要适配一个gc2503 4land的单目摄像头,,看了文档都是双目的,弄了好久没有弄出图像来,不知道怎么搞了,求指导。以下是做过的操作:
      1、DTS的vind节点如下:

                    vind0:vind@0 {
      			vind0_clk = <200000000>;
      			status = "okay";
      
      	                 csi2:csi@2 {
      		              pinctrl-names = "default","sleep";
                                    pinctrl-0 = <&ncsi_pins_a>;
                                    pinctrl-1 = <&ncsi_pins_b>;
                                    status = "disabled";
      	                };
      
      		/*offline mode*/
                   tdm0:tdm@0 {
                       work_mode = <1>;
                   };
      
                   isp00:isp@0 {
                       work_mode = <1>;
                   };
      
                   scaler00:scaler@0 {
                       work_mode = <1>;
                   };
      
                   scaler10:scaler@4 {
                       work_mode = <1>;
                   };
      
                   scaler20:scaler@8 {
                       work_mode = <1>;
                   };
      
                   scaler30:scaler@12 {
                       work_mode = <1>;
                   };
      
      			actuator0:actuator@0 {
      				device_type = "actuator0";
      				actuator0_name = "ad5820_act";
      				actuator0_slave = <0x18>;
      				actuator0_af_pwdn = <>;
      				actuator0_afvdd = "afvcc-csi";
      				actuator0_afvdd_vol = <2800000>;
      				status = "disabled";
      			};
      
      			flash0:flash@0 {
      				device_type = "flash0";
      				flash0_type = <2>;
      				flash0_en = <>;
      				flash0_mode = <>;
      				flash0_flvdd = "";
      				flash0_flvdd_vol = <>;
      				status = "disabled";
      			};
      
      			sensor0:sensor@0 {
      				device_type = "sensor0";
      				sensor0_mname = "gc2053_mipi";
      				sensor0_twi_cci_id = <1>;
      				sensor0_twi_addr = <0x6e>;
      				sensor0_mclk_id = <0>;
      				sensor0_pos = "rear";
      				sensor0_isp_used = <1>;
      				sensor0_fmt = <1>;
      				sensor0_stby_mode = <0>;
      				sensor0_vflip = <0>;
      				sensor0_hflip = <0>;
      				sensor0_iovdd-supply = <&reg_bldo1>;
      				sensor0_iovdd_vol = <1800000>;
      				sensor0_avdd-supply = <&reg_bldo2>;
      				sensor0_avdd_vol = <2800000>;
      				sensor0_dvdd-supply = <&reg_dldo2>;
      				sensor0_dvdd_vol = <1200000>;
      				sensor0_power_en = <>;
      				sensor0_reset = <&pio PA 18 1 0 1 0>;
      				sensor0_pwdn = <&pio PA 19 1 0 1 0>;
      				sensor0_sm_hs = <>;
      				sensor0_sm_vs = <>;
      				flash_handle = <&flash0>;
      				act_handle = <&actuator0>;
      				status	= "okay";
      			}
      
      			/* sensor1:sensor@1 {
      			 *     device_type = "sensor1";
      			 *     sensor1_mname = "gc2053_mipi_2";
      			 *     sensor1_twi_cci_id = <0>;
      			 *     sensor1_twi_addr = <0x7f>;
      			 *     sensor1_mclk_id = <1>;
      			 *     sensor1_pos = "front";
      			 *     sensor1_isp_used = <1>;
      			 *     sensor1_fmt = <1>;
      			 *     sensor1_stby_mode = <0>;
      			 *     sensor1_vflip = <0>;
      			 *     sensor1_hflip = <0>;
      			 *     sensor1_iovdd-supply = <&reg_aldo2>;
      			 *     sensor1_iovdd_vol = <1800000>;
      			 *     sensor1_avdd-supply = <&reg_bldo2>;
      			 *     sensor1_avdd_vol = <2800000>;
      			 *     sensor1_dvdd-supply = <&reg_dldo2>;
      			 *     sensor1_dvdd_vol = <1200000>;
      			 *     sensor1_power_en = <>;
      			 *     sensor1_reset = <&pio PA 20 1 0 1 0>;
      			 *     sensor1_pwdn = <&pio PA 21 1 0 1 0>;
      			 *     sensor1_sm_hs = <>;
      			 *     sensor1_sm_vs = <>;
      			 *     flash_handle = <>;
      			 *     act_handle = <>;
      			 *     status	= "okay";
      			 * }; */
      
      			vinc00:vinc@0 {
      				vinc0_csi_sel = <0>;
      				vinc0_mipi_sel = <0>;
      				vinc0_isp_sel = <0>;
      				vinc0_isp_tx_ch = <0>;
      				vinc0_tdm_rx_sel = <0>;
      				vinc0_rear_sensor_sel = <0>;
      				vinc0_front_sensor_sel = <0>;
      				vinc0_sensor_list = <0>;
      				work_mode = <0x1>;
      				status = "okay";
      			};
      /*
      			vinc01:vinc@1 {
      				vinc1_csi_sel = <1>;
      				vinc1_mipi_sel = <1>;
      				vinc1_isp_sel = <1>;
      				vinc1_isp_tx_ch = <0>;
      				vinc1_tdm_rx_sel = <1>;
      				vinc1_rear_sensor_sel = <1>;
      				vinc1_front_sensor_sel = <1>;
      				vinc1_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc02:vinc@2 {
      				vinc2_csi_sel = <2>;
      				vinc2_mipi_sel = <0xff>;
      				vinc2_isp_sel = <2>;
      				vinc2_isp_tx_ch = <2>;
      				vinc2_tdm_rx_sel = <2>;
      				vinc2_rear_sensor_sel = <0>;
      				vinc2_front_sensor_sel = <0>;
      				vinc2_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc03:vinc@3 {
      				vinc3_csi_sel = <0>;
      				vinc3_mipi_sel = <0xff>;
      				vinc3_isp_sel = <0>;
      				vinc3_isp_tx_ch = <0>;
      				vinc3_tdm_rx_sel = <0>;
      				vinc3_rear_sensor_sel = <1>;
      				vinc3_front_sensor_sel = <1>;
      				vinc3_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc10:vinc@4 {
      				vinc4_csi_sel = <0>;
      				vinc4_mipi_sel = <0>;
      				vinc4_isp_sel = <0>;
      				vinc4_isp_tx_ch = <0>;
      				vinc4_tdm_rx_sel = <0>;
      				vinc4_rear_sensor_sel = <0>;
      				vinc4_front_sensor_sel = <0>;
      				vinc4_sensor_list = <0>;
      				work_mode = <0x1>;
      				status = "okay";
      			};
      
      			vinc11:vinc@5 {
      				vinc5_csi_sel = <1>;
      				vinc5_mipi_sel = <1>;
      				vinc5_isp_sel = <1>;
      				vinc5_isp_tx_ch = <0>;
      				vinc5_tdm_rx_sel = <1>;
      				vinc5_rear_sensor_sel = <1>;
      				vinc5_front_sensor_sel = <1>;
      				vinc5_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc12:vinc@6 {
      				vinc6_csi_sel = <2>;
      				vinc6_mipi_sel = <0xff>;
      				vinc6_isp_sel = <0>;
      				vinc6_isp_tx_ch = <0>;
      				vinc6_tdm_rx_sel = <0>;
      				vinc6_rear_sensor_sel = <0>;
      				vinc6_front_sensor_sel = <0>;
      				vinc6_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc13:vinc@7 {
      				vinc7_csi_sel = <2>;
      				vinc7_mipi_sel = <0xff>;
      				vinc7_isp_sel = <0>;
      				vinc7_isp_tx_ch = <0>;
      				vinc7_tdm_rx_sel = <0>;
      				vinc7_rear_sensor_sel = <0>;
      				vinc7_front_sensor_sel = <0>;
      				vinc7_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc20:vinc@8 {
      				vinc8_csi_sel = <0>;
      				vinc8_mipi_sel = <0>;
      				vinc8_isp_sel = <0>;
      				vinc8_isp_tx_ch = <0>;
      				vinc8_tdm_rx_sel = <0>;
      				vinc8_rear_sensor_sel = <0>;
      				vinc8_front_sensor_sel = <0>;
      				vinc8_sensor_list = <0>;
      				work_mode = <1>;
      				status = "okay";
      			};
      
      			vinc21:vinc@9 {
      				vinc9_csi_sel = <2>;
      				vinc9_mipi_sel = <0xff>;
      				vinc9_isp_sel = <0>;
      				vinc9_isp_tx_ch = <0>;
      				vinc9_tdm_rx_sel = <0>;
      				vinc9_rear_sensor_sel = <0>;
      				vinc9_front_sensor_sel = <0>;
      				vinc9_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc22:vinc@10 {
      				vinc10_csi_sel = <2>;
      				vinc10_mipi_sel = <0xff>;
      				vinc10_isp_sel = <0>;
      				vinc10_isp_tx_ch = <0>;
      				vinc10_tdm_rx_sel = <0>;
      				vinc10_rear_sensor_sel = <0>;
      				vinc10_front_sensor_sel = <0>;
      				vinc10_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc23:vinc@11 {
      				vinc11_csi_sel = <2>;
      				vinc11_mipi_sel = <0xff>;
      				vinc11_isp_sel = <0>;
      				vinc11_isp_tx_ch = <0>;
      				vinc11_tdm_rx_sel = <0>;
      				vinc11_rear_sensor_sel = <0>;
      				vinc11_front_sensor_sel = <0>;
      				vinc11_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc30:vinc@12 {
      				vinc12_csi_sel = <0>;
      				vinc12_mipi_sel = <0x0>;
      				vinc12_isp_sel = <0>;
      				vinc12_isp_tx_ch = <0>;
      				vinc12_tdm_rx_sel = <0>;
      				vinc12_rear_sensor_sel = <0>;
      				vinc12_front_sensor_sel = <0>;
      				vinc12_sensor_list = <0>;
      				work_mode = <0x1>;
      				status = "okay";
      			};
      
      			vinc31:vinc@13 {
      				vinc13_csi_sel = <2>;
      				vinc13_mipi_sel = <0xff>;
      				vinc13_isp_sel = <0>;
      				vinc13_isp_tx_ch = <0>;
      				vinc13_tdm_rx_sel = <0>;
      				vinc13_rear_sensor_sel = <0>;
      				vinc13_front_sensor_sel = <0>;
      				vinc13_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc32:vinc@14 {
      				vinc14_csi_sel = <2>;
      				vinc14_mipi_sel = <0xff>;
      				vinc14_isp_sel = <0>;
      				vinc14_isp_tx_ch = <0>;
      				vinc14_tdm_rx_sel = <0>;
      				vinc14_rear_sensor_sel = <0>;
      				vinc14_front_sensor_sel = <0>;
      				vinc14_sensor_list = <0>;
      				status = "disabled";
      			};
      
      			vinc33:vinc@15 {
      				vinc15_csi_sel = <2>;
      				vinc15_mipi_sel = <0xff>;
      				vinc15_isp_sel = <0>;
      				vinc15_isp_tx_ch = <0>;
      				vinc15_tdm_rx_sel = <0>;
      				vinc15_rear_sensor_sel = <0>;
      				vinc15_front_sensor_sel = <0>;
      				vinc15_sensor_list = <0>;
      				status = "disabled";
      			};*/
      		};
      

      2、将模块放到板上insmod。可以出来/dev/video0节点

      Octops:/server/camera# ls
      csi_test_mplane          v4l2_demo                videobuf2-v4l2.ko
      da380.ko                 videobuf2-core.ko        vin_io.ko
      gc2053_mipi.ko           videobuf2-dma-contig.ko  vin_v4l2.ko
      ism.sh                   videobuf2-memops.ko
      Octops:/server/camera#
      Octops:/server/camera# cat ism.sh
      insmod videobuf2-core.ko
      insmod videobuf2-memops.ko
      insmod videobuf2-dma-contig.ko
      insmod videobuf2-v4l2.ko
      insmod vin_io.ko
      insmod gc2053_mipi.ko
      insmod  vin_v4l2.ko
      Octops:/server/camera# ./ism.sh
      [   90.451429] [VIN_WARN]sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
      Octops:/server/camera#
      Octops:/server/camera# ls -l /dev/video0
      crw-rw----    1 root     video      81,   0 Jan  1 01:51 /dev/video0
      Octops:/server/camera#
      

      3、执行csi_test_mplane如下:

      Octops:/server/camera# ./csi_test_mplane
      open /dev/video0 fd = 3
      resolution got from sensor = 640*480 num_planes = 3
      VIDIOC_STREAMON ok
      file length = 307200 76800 76800
      file start = 0xb6eee000 0xb6edb000 0xb6ec8000
      Got signal 11, exiting ...
      [   36.265546] [VIN_ERR]scaler0 channel ID nember is lost!!!
      Octops:/server/camera#
      Octops:/server/camera#
      Octops:/server/camera# ./csi_test_mplane 0 0 1920 1080 /server 1 20000 60 0
      open /dev/video0 fd = 3
      resolution got from sensor = 1920*1080 num_planes = 3
      VIDIOC_STREAMON ok
      Octops:/server/camera#
      Octops:/server/camera# ./csi_test_mplane 0
      please select the video device: 0-video0 1-video1 ......
      0
      please select the camera: 0-dev0 1-dev1 ......
      0
      please input the resolution: width height......
      1920
      1080
      please input the frame saving path......
      /server
      please input the test mode: 0~3......
      1
      please input the test_cnt: >=1......
      20
      open /dev/video0 fd = 3
      resolution got from sensor = 1920*1080 num_planes = 3
      VIDIOC_STREAMON ok
      [  107.543269] [VIN_ERR]scaler0 channel ID nember is lost!!!
      VIDIOC_STREAMOFF ok
      mode 1 test done at the 0 time!!
      time cost 1.221462(s)
      

      4、i2cdetect测试,发现器件地址对不上

      Octops:/server/camera# i2cdetect -y 1
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
      00:          -- -- -- -- -- -- -- -- -- -- -- -- --
      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      30: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      70: -- -- -- -- -- -- -- --
      
      

      问题:
      1、想确认下,4land的摄像头,需要专门指定4land吗?怎么指定?
      2、出现了video设备是可以说明硬件通了,只需要做软件的调试吗?
      3、为什么器件地址会变为原来的一半?
      4、有什么办法可以实时预览摄像头吗?

      posted in V853系列-AI视觉
      N
      Negro
    • V853编译buildroot+QT固件,发现QT程序被自动修改/优化了?求助

      大家有没有遇到这个情况?求助一下。
      Tina的SDK,在tina-v853/out/v853/vision/buildroot/buildroot/target/opt/目录里面添加了一个QT执行文件,大小是2.8M。然后去编译buildroot,不论是./build.sh 编译,还是在buildroot文件目录下直接make,都会发现这个QT执行文件好像被优化了,大小变成2.4M了。但是基本功能没有变化,可以执行起来,就是一些细节上的功能有缺陷。不知道为什么会这样?求助。

      posted in V853系列-AI视觉
      N
      Negro
    • Reply: V853 buildroot系统,SPI通信超时

      @chengwei_peng
      export后查看引脚属性,依旧是spi3功能没变,我再检查一下是不是我的测波形的方法不对,感谢指导。谢谢

      posted in V853系列-AI视觉
      N
      Negro
    • Reply: V853 buildroot系统,SPI通信超时

      @chengwei_peng
      感谢回复。
      现在这个测试程序是显示可正常发数据了,但是我用示波器量SPI的时钟,发现一直都是低电压,没有方波,MISO,MOSI,CS0三根线都是一只低电平,我甚至是可以echo 235~238 > /sys/class/gpio/export 导出GPIO并控制IO口输出高低电频。这样是正常的吗?虽然设备节/dev/spidev3.0点出来了,但是总感觉好像这几个IO口没有正确配置成SPI接口。
      我用的是buildroot系统。

      posted in V853系列-AI视觉
      N
      Negro
    • Reply: V853 buildroot系统,SPI通信超时

      将spi_dbi_enable = <1> 注释掉就可以了😵
      照着前边的spi节点写的dts,不知道这个是做什么用的。

      posted in V853系列-AI视觉
      N
      Negro
    • Reply: V853 buildroot系统,SPI通信超时

      想知道DTS里面的这个参数是什么含义呢?
      spi_dbi_enable = <1>;

      我是把这个注释掉之后,就正常了。

      posted in V853系列-AI视觉
      N
      Negro
    • V853 buildroot系统,SPI通信超时

      spi从设备是20MHz的频率,CS是低电平有效。dts配置如下:

      &spi3 {
          clock-frequency = <100000000>;
          pinctrl-0 = <&spi3_pins_a &spi3_pins_b>;
          pinctrl-1 = <&spi3_pins_c>;
          pinctrl-names = "default", "sleep";
          spi_slave_mode = <0>;
          spi_dbi_enable = <1>;
          spi_cs_bitmap = <1>;
          spi3_cs_number = <1>;
          status = "okay";
      
          spidev@0 {
              device_type = "spidev";
              compatible = "rohm,dh2228fv";
              spi-max-frequency = <100000000>;
              reg = <0x0>;
              spi-cs-high;
              spi-rx-bus-width = <0x8>;
              spi-tx-bus-width = <0x8>;
              status = "okay";
          };
      };
      
      ...
      
          spi3_pins_a: spi3@0 {
              allwinner,pins = "PH11", "PH12", "PH13";
              allwinner,pname = "spi3_sclk", "spi3_mosi","spi3_miso";
              allwinner,function = "spi3";
              allwinner,muxsel = <6>; 
              allwinner,drive = <1>; 
              allwinner,pull = <0>; 
          };   
      
          spi3_pins_b: spi3@1 {
              allwinner,pins = "PH14";
              allwinner,pname = "spi3_cs0";
              allwinner,function = "spi3";
              allwinner,muxsel = <6>; 
              allwinner,drive = <1>; 
              allwinner,pull = <1>;   // only CS should be pulled up
          };   
      
          spi3_pins_c: spi3@2 {
              allwinner,pins = "PH11", "PH12", "PH13", "PH14";
              allwinner,function = "io_disabled";
              allwinner,muxsel = <0xf>;
              allwinner,drive = <1>; 
              allwinner,pull = <0>; 
          }; 
      

      测试程序是这样的:

      #include <stdint.h>
      #include <unistd.h>
      #include <stdio.h>
      #include <stdlib.h>
      #include <getopt.h>
      #include <fcntl.h>
      #include <sys/ioctl.h>
      #include <linux/types.h>
      #include <linux/spi/spidev.h>
       
      static uint8_t mode = 0; /* SPI通信使用全双工,设置CPOL=0,CPHA=0。 */
      static uint8_t bits = 8; /* 8bits读写,MSB first。*/
      static uint32_t speed = 20 * 1000 * 1000;/* 设置20M传输速度 */
      static uint16_t delay = 0;
      static int g_SPI_Fd = 0;
      
      unsigned char r_buf[256];
      unsigned char w_buf[256];
      
      int SPI_Write(uint8_t *TxBuf, int len)
      {
          int ret;
          int fd = g_SPI_Fd;
       
          ret = write(fd, TxBuf, len);
          if (ret < 0)
              printf("SPI Write error\n");
          else
          {
              int i;
              printf("\nSPI Write [Len:%d]: ", len);
              for (i = 0; i < len; i++)
              {
                  if (i % 8 == 0)
                  printf("\n\t");
                  printf("0x%02X ", TxBuf[i]);
              }
              printf("\n");
          }
      
          return ret;
      }
      
      
      static int SPI_Open(const char* device)
      {
          int fd;
          int ret = 0;
      
          if (g_SPI_Fd != 0) /* 设备已打开 */
              return 0xF1;
      
          fd = open(device, O_RDWR);
          if (fd < 0)
              printf("can't open device");
          else
              printf("SPI - Open Succeed. Start Init SPI...\n");
      
          g_SPI_Fd = fd;
          /*
           * spi mode
           */
          ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
          if (ret == -1)
              printf("can't set spi mode");
            ret = ioctl(fd, SPI_IOC_RD_MODE, &mode);
          if (ret == -1)
              printf("can't get spi mode");
      
          /*
           * bits per word
           */
          ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
          if (ret == -1)
              printf("can't set bits per word");
      
          ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
          if (ret == -1)
              printf("can't get bits per word");
      
          /*
           * max speed hz
           */
          ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
          if (ret == -1)
              printf("can't set max speed hz");
      
          ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
          if (ret == -1)
              printf("can't get max speed hz");
      
          printf("spi mode: %d\n", mode);
          printf("bits per word: %d\n", bits);
          printf("max speed: %d KHz (%d MHz)\n", speed / 1000, speed / 1000 / 1000);
      
          return ret;
      }
      
      
      int SPI_Close(void)
      {
          int fd = g_SPI_Fd;
              if (fd == 0) /* SPI是否已经打开*/
              return 0;
          close(fd);
          g_SPI_Fd = 0;
      
          return 0;
      }
      
      
      int main(int argc, char* argv[])
      {
          char *str="hello";
          int len = 5;
          SPI_Open("/dev/spidev3.0");
          SPI_Write(str, len);
          SPI_Close();
          return 0;
      }
      
      

      交叉编译后放到板子上运行,会出现这样的超时报错,想问问看各位有没有什么思路解决,十分感谢。

      root:/root# ./spi
      SPI - Open Succeed. Start Init S[  586.085918] spi_set_clk()459 - set spi clock 100000000, mclk 20000000
      PI...
      [  586.095997] spi_set_clk()459 - set spi clock 100000000, mclk 100000000
      [  586.104382] spi_set_clk()459 - set spi clock 20000000, mclk 100000000
      spi mode: 0[  586.111792] sunxi_spi_transfer_one()1433 - [spi3] begin transfer, txbuf df6ab000, rxbuf   (null), len 5
      
      bits per word: 8
      max speed: 2[  586.123289] spi_set_clk()459 - set spi clock 20000000, mclk 20000000
      0000 KHz (20 MHz)
      [  586.133363] sunxi_spi_mode_check()1166 - [spi3] Single mode Half duplex tx
      [  586.142730] spi_config_dbi()376 - DBI mode configurate : 40
      [  586.148979] sunxi_spi_xfer()1376 - [spi3] tx -> by ahb
      [  586.155060] sunxi_spi_cpu_writel()1250 - t->len = 5
      [  586.160602] 000: 68 65 6c 6c 6f
      [  596.275684] sunxi_spi_cpu_writel()1276 - [spi3] cpu transfer data time out!
      [  596.283516] sunxi_spi_transfer_one()1462 - [spi3] dump reg:
      [  596.289762] 0x04028000: 00010001 00000098 00002104 00000000
      [  596.296582] 0x04028010: 00000000 00000012 00200020 000f0000
      [  596.303189] 0x04028020: 00000000 00000002 00002000 00000000
      [  596.309535] 0x04028030: 00000005 00000005 00000005 00000000
      [  601.351828] sunxi_spi_transfer_one()1471 - [spi3] xfer timeout
      [  601.358391] spidev spi3.0: SPI transfer failed: -1
      [  601.364475] spi_master spi3: failed to transfer one message from queue
      SPI Write error
      

      启动时的spi log

      [    0.650370] sunxi_spi_probe()2251 - [spi3] SPI DBI INTERFACE
      [    0.656168] sunxi_spi_probe()2260 - [spi3] SPI MASTER MODE
      [    0.661799] sunxi_spi_resource_get()1909 - Failed to get sample mode
      [    0.668268] sunxi_spi_resource_get()1914 - Failed to get sample delay
      [    0.674824] sunxi_spi_resource_get()1918 - sample_mode:aaaaffff sample_delay:aaaaffff
      [    0.682785] spi3 supply spi not found, using dummy regulator
      [    0.688624] sunxi_spi_request_gpio()1884 - [spi3] Pinctrl init spi3
      [    0.695128] sunxi_spi_clk_init()1955 - [spi3] mclk 100000000
      [    0.701466] spi_master spi3: spi-tx-bus-width 8 not supported
      [    0.707476] spi_master spi3: spi-rx-bus-width 8 not supported
      [    0.713865] sunxi_spi_probe()2340 - [spi3]: driver probe succeed, base e0834000, irq 295
      
      
      posted in V853系列-AI视觉
      N
      Negro
    • Reply: V853的QT被random进程阻塞了

      @sunchipv 在 V853的QT被random进程阻塞了 中说:

      haveged -w 1024 -v 1

      可以了,谢谢。我将这个命令写到 profile 里面,开机后熵池可以到2000+,可以很快的启动我的QT了。

      我也找到了rgnd工具,可以执行rngd -r /dev/urandom -o /dev/random,熵值可以到4000+

      posted in V853系列-AI视觉
      N
      Negro
    • Reply: Tina文件系统添加了一些文件后,rootfs编译不过

      实在找不到办法,我就直接把openwrt/include/package-ipkg.mk文件中的判断给删掉了,然后也编译出了固件,系统可以正常使用。就是QT现在启动的时候会被ramdon进程阻塞,开机自动启动QT的话,要等好久。

      posted in V853系列-AI视觉
      N
      Negro
    • V853的QT被random进程阻塞了

      v853编译出来的Openwrt固件,开机自动运行QT,但是要等好久页面才有显示。看到log,应该是被random给阻塞住了。这里也看到有同样的问题:https://bbs.aw-ol.com/topic/449/发现qt应用程序居然要等随机数就绪才能跑

      我在menuconfig里面设置了haveged了,但是还是一样的现象。这个有什么办法可以解决吗?我想开机后我的QT可以快速运行起来。

      这个是文件系统中队haveged的配置
      2c6a9a74-a2e1-43af-a4da-44d32b2dce04-image.png

      posted in V853系列-AI视觉
      N
      Negro