导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. Bruce_Gan
    3. 帖子
    B
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 485
    • 主题 2
    • 帖子 4
    • 最佳 0
    • 群组 0

    Bruce_Gan 发布的帖子

    • F133 Melis 32M 文件系统问题

      原版SDK 中没有32M的pack 但又64M的,不知道啥原因。spinor 中也看到有4字节宽地址的支持了。
      目前遇到问题的是:

      1. 想把20M空间分到UDISK中。

      rootfs.ini及partition_nor.fex 中都限定了rootfs 为4.5M内。但UDISK 挂载到的/mnt/E 却只有4.9M。
      38a247ff-2a47-4b4c-99dd-45ab1d5562c0-image.png
      算下拉就是 UDISK+ROOTFS+bootA+gpt+boot0 大约是在16M内。

      查看加载文件系统的启动部分代码blkpart_drv.c ,在函数 melis_udisk_part_check 中打印 udisk_part_size 又的确是 32M flash 减下来这么个数……
      2523ed4b-7d32-4ca4-b48d-532751f7db63-image.png

      整得有点懵逼了,不知道怎么把32Mflash 后面利用起来

      发布在 MR Series
      B
      Bruce_Gan
    • 回复: 跑目标检测时,报G2D的错误

      @cruise33 请问是那部分预处理的问题啊?我也遇到类似的问题

      发布在 V Series
      B
      Bruce_Gan
    • 回复: 有用过F133 melis系统的g2d吗?

      rect 的size 需要比dst_image 的小。你有没高反啊?

      发布在 MR Series
      B
      Bruce_Gan
    • G2D性能比较慢的问题(melis4.0)

      在使用G2D,的填充接口,发现比其计算完的时间比SW还慢。
      同样BLEND 掐出的时间也是比 软算法的要慢好多。
      屏幕分辨率是1280*800 的ARGB格式 ,掐的是ioctl(lv_port_data.h_rotate, G2D_CMD_FILLRECT_H, (unsigned long)&info) 这接接口。需要4.9ms。
      LVGL 的Fill 软件算法只要1ms 。

      难道硬件G2D 就是要这么长时间么?

      FILL代码如下:

         g2d_fillrect_h info;
         memset(&info, 0, sizeof(g2d_fillrect_h));
          if (opa > LV_OPA_MAX) {
              info.dst_image_h.alpha = 255;
          } else {
              info.dst_image_h.alpha = opa;
              color.ch.alpha = opa;
          }
          info.dst_image_h.mode = G2D_PIXEL_ALPHA;
          info.dst_image_h.color = color.full;
          info.dst_image_h.format = G2D_FORMAT_ARGB8888;
          info.dst_image_h.clip_rect.x = draw_area->x1;
          info.dst_image_h.clip_rect.y = draw_area->y1;
          info.dst_image_h.clip_rect.w = draw_area_w;
          info.dst_image_h.clip_rect.h = draw_area_h;
          info.dst_image_h.width = disp_w;
          info.dst_image_h.height = disp_h;
          info.dst_image_h.align[0] = 0;
          info.dst_image_h.align[1] = info.dst_image_h.align[0];
          info.dst_image_h.align[2] = info.dst_image_h.align[0];
          info.dst_image_h.laddr[0] = (unsigned int)esMEMS_VA2PA(dest_buf);
          info.dst_image_h.laddr[1] = 0;
          info.dst_image_h.laddr[2] = 0;
          info.dst_image_h.use_phy_addr = 1;
      
          int ret;
          if(lv_port_data.h_rotate < 0) {
              lv_port_data.h_rotate = open("/dev/g2d", O_WRONLY);
          }
      
          ret = ioctl(lv_port_data.h_rotate, G2D_CMD_FILLRECT_H, (unsigned long)&info);
          if(ret < 0) {
              __err("ERROR: sunxifb_g2d_fill G2D_CMD_FILLRECT_H failed");
          }
          close(lv_port_data.h_rotate);
      
      发布在 MR Series
      B
      Bruce_Gan
    • 1 / 1