导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. baiwen
    • 资料
    • 关注 3
    • 粉丝 24
    • 我的积分 4383
    • 主题 66
    • 帖子 136
    • 最佳 52
    • 群组 1

    100askLV 6

    @baiwen

    4383
    积分
    132
    声望
    469
    资料浏览
    136
    帖子
    24
    粉丝
    3
    关注
    注册时间 最后登录

    baiwen 取消关注 关注
    Global Moderator

    baiwen 发布的最佳帖子

    • 基于LVGL编写的windows串口工具: LCOM

      LCOM: Serial Port Tools based on LVGL (PC Software)

      一直以来我都想用LVGL做一个真正意义上的PC软件,来验证或者表达LVGL出色的特性,现在我用LCOM做到了!

      LCOM 是一个基于LVGL编写的串口工具,界面简洁,功能出色,并且上手简单。

      LCOM的一些功能包括:

      • 以HEX或ASCII格式发送和接收数据。
      • 实时刷新COM端口列表。可设置COM端口的连接参数包括波特率、奇偶校验、数据位、停止位和流控。
      • 支持定时发送
      • 支持换行发送(CR、LR、CRLF)
      • 多种字符编码格式支持,比如 ASII,GBK(Chinese),UTF-8,UTF-16 等
      • Modbus模式支持(为
        百问网STM32H5 modbus解决方案准备(学习教程))
      • 界面多语言支持
      • 多条字符串发送
      • 自动保存设置(退出保存)
      • 串口自动检测,支持记住上次使用的串口号
      • 串口断线自动重连
      • TCP/UDP 支持,包括客户端和服务端模式支持
      • 自定义主题
      • More todo

      演示视频:https://www.bilibili.com/video/BV1bK4y1z7se

      Get LCOM

      • GitHub: https://github.com/100askTeam/LCOM/releases
      • Gitee:https://gitee.com/weidongshan/LCOM/releases

      Source code

      Not yet open source (soon)

      • GitHub: https://github.com/100askTeam/LCOM
      • Gitee:https://gitee.com/weidongshan/LCOM

      Issues

      https://github.com/100askTeam/LCOM/issues

      发布在 GUI
      baiwen
      100ask
    • 【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!

      使用buildroot编译构建系统

      • buildroot gitee仓库地址 https://gitee.com/weidongshan/neza-d1-buildroot.git
      • buildroot github仓库地址 https://github.com/100askTeam/neza-d1-buildroot.git
      • opensbi gitee仓库地址 https://gitee.com/weidongshan/NezaD1-opensbi.git
      • u-boot gitee仓库地址 https://gitee.com/weidongshan/NezaD1-u-boot-2018.git
      • Linuxkernel gitee仓库地址 https://gitee.com/weidongshan/NezaD1-linuxkernel.git
        欢迎大家编译使用提交问题和建议到对应的仓库

      编译完整系统或者各个部分

      • 我们编译使用的是ubuntu 18.04 系统,在进行如下编译之前需要先配置基本编译环境,参考下述命令来安装必须的软件包。
      book@virtual-machine:~/Neza-D1/buildroot-2021$ sudo apt-get install -y which sed make binutils build-essential  gcc g++ bash patch gzip bzip2 perl  tar cpio unzip rsync file  bc wget python ncurses5  bazaar cvs git mercurial rsync scp subversion android-tools-mkbootimg
      
      • 使用git命令clone源码
      book@virtual-machine:~$ mkdir -p  ~/Neza-D1/ &&  cd ~/Neza-D1/
      book@virtual-machine:~/Neza-D1$ git clone https://gitee.com/weidongshan/neza-d1-buildroot.git buildroot-2021
      

      构建完整系统镜像

      • 编译完整系统镜像
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  neza-d1_defconfig  //加载配置文件 
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  all //完整编译系统
      
      • 编译生成的系统镜像在output/image目录下,其中sdcard.img为完整的系统镜像。
      book@virtual-machine:~/Neza-D1/buildroot-2021/output/images$ ls
      board.dtb         boot.img          boot_package.fex  boot.vfat      env.cfg  fw_dynamic.bin  fw_jump.bin  Image        rootfs.cpio     rootfs.ext2  rootfs.tar  sunxi.fex              uImage
      boot0_sdcard.fex  boot_package.cfg  boot.scr          dragonsecboot  env.fex  fw_dynamic.elf  fw_jump.elf  ramdisk.img  rootfs.cpio.gz  rootfs.ext4  sdcard.img  u-boot-sun20iw1p1.bin
      book@virtual-machine:~/Neza-D1/buildroot-2021/output/images$
      

      单独编译各个部分

      • 单独编译 opensbi阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make opensbi-rebuild V=1
      
      • 单独编译 uboot阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make uboot-rebuild V=1
      
      • 单独编译 kernel阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make kernel-rebuild V=1
      
      • 单独编译文件系统
        • 指定完成工具链 系统配置 需要安装的包 以及所需的格式 执行如下命令,最后生成的镜像在 output/image目录下。
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  all //完整编译系统
      

      烧写启动

      • windows下使用wind32diskimage工具烧写,Linux下直接使用dd 命令完整写入
        19a6fbbe-0b81-417a-807c-59058de41c23-NezaD1wind32diskimag.png
        ![image-20210701105748748]

      • 烧写成功后把卡插入开发板 开发板上电 即可自动从sd卡启动进入系统
        ed025a88-2a7c-4578-8228-438338276627-nezaD1startupLog.png

      ToDoList

      已实现功能

      • 支持平头哥 rv64d外部工具链。
      • 支持buildroot构建 Tina sdk 内 Thead c910 opensbi 。
      • 支持buildroot 构建Tina sdk 内 u-boot 2018
      • 支持buildroot构建Linux kernel 5.4自动生成Image并后续打包为boot.img
      • 自动构建并打包生成SD卡 busybox udev最小系统启动。

      未实现 计划实现

      • 支持qt python mqtt gst等常用软件包。
      • 支持systemD init服务。
      • 支持板载wifi 模块。

      如何参与此项目

      提交PR

      提交issues


      20210706更新:
      Buildroot Git仓库最新支持如下图所示更丰富的常用软件包和lib库 方便大家学习与调试。
      e541b9a5-ecb7-498c-be6c-3103d9c85f82-image.png

      发布在 MR Series
      baiwen
      100ask
    • T527 AvaotaPI-A1 高清靓照来了!!!

      0b119481-eeb2-4e6a-91c7-a0e8c4022df1-image.png
      0676d954-4087-4f9b-8077-61d4cd2db6be-image.png
      5bd97c5d-41ea-4c9a-bc11-2d1cf3b1cc7e-image.png
      a2ad7c1b-0a74-414e-a215-f71aede163f6-image.png
      e6389f20-fbcc-4388-ae64-df4781f4342c-image.png

      发布在 T Series
      baiwen
      100ask
    • 全志R128开发板来啦!RISC-V C906 + Arm M33有机结合,支持 Wi-Fi/BT

      模组

      Pin2Pin ESP32S3

      可以直接无缝焊接使用(但是软件不是兼容的,R128支持的是FreeRTOS系统)。
      R128开发板4.jpg

      来一张超高清对比图
      FtA8SRxaAAM1hhx.jpg

      系统已经启动,来一张启动log图证明一下:

      41612ce3-aa97-4bf7-901a-26ef49438326-image.png

      启动流程示意图
      e854ca31-4c0b-4ac4-a8e2-9eabdd4339ad-image.png

      (屏蔽盖镭雕丝印打错了,应该是R128-S2,之前是想做S3的,因为样片还没到位,先做了S2)

      补充价格信息(预估):
      预计R128模组价格 29.99,
      最小核心板价格 59.99 ,
      还会做一个带屏幕摄像头的开发板套装版本 预计价格 499。
      (芯片价格全志原厂还不让透露,只能说非常美丽,不然我们模组也做不到29.99这么便宜)

      发布在 A Series
      baiwen
      100ask
    • 【R128学习案例】R128平衡小车

      R128是一颗专为“音视频解码”而打造的全新高集成度 SoC,主要应用于智能物联和专用语音交互处理解决方案。

      如果做一台能通过发挥R128的wifi&蓝牙特性的平衡小车,从而能通过wifi或蓝牙连接的方式进行控制,那将会是非常有趣的项目!
      但是我们还有一个计划,那就是发挥R128的音频处理单元功能,从而能通过语音识别进行控制。试想一下,我们可以动动嘴就能操控小车,这样项目将会更有趣!

      我们将这个项目命名为: B_ROBOT_100ASK
      项目代码及模型文件将会上传到git仓库:

      • Gitee: https://gitee.com/weidongshan/100ask_r128_demos
      • GitHub: https://github.com/100askTeam/100ask_r128_demos

      使用的R128硬件(淘宝购买链接):

      • https://item.taobao.com/item.htm?id=736154682975

      文档教程阅读地址:

      • https://aw-r128.100ask.net

      功能特性:

      自平衡功能

      WiFI控制功能(微信小程序或手机APP)

      蓝牙控制功能(微信小程序或手机APP)

      语音控制功能

      最后,希望大家喜欢这个项目,在边玩边学习的同时收获到有用的知识!😊

      发布在 A Series
      baiwen
      100ask
    • V853我们来了!!!

      感谢全志在线的大力支持,感谢晕哥的芯片支持,也感谢YuzuKi,芒果大佬的指点,我们终于设计好了 V853开发板核心板与底板,接下来将会进行打样生产,作为AI入门 与 多媒体框架学习的配套专用开发板。

      • 下图,左侧是V853核心板是BTB封装,右侧是YuzuKi大佬赏脸打100ask设计的V851s最小板。
      • V851S最小板,我们会将售价做到低至99元单板,接口丰富而且完善,详细的参数可以 @YuzukiTsuru
        2f52f2c6-676d-473d-9440-bea186eed507-image.png
      • 下面这张图是 配套的 项目1底板,我们暂且叫他 全功能底板,这个板子是用来学习Tina-SDK 开发与摄像头显示等,同时,我们正在设计针对于不同场景需要的不同底板,可以共用一款核心板。
        d0515e29-fd82-4150-a23b-a373ac199494-75e485ffd409f93830baa3c4caca0bb.jpg
      发布在 V Series
      baiwen
      100ask
    • R128适配SPI LCD+LVGL

      硬件

      • 板子: 全志R128开发板
      • 屏幕:SPI LCD 1.54寸 240x240分辨率

      bc93af96-fefc-4d7b-8268-afcc6a54e2f7-ccee4b66-13a0-4a8f-9f70-749ce8a0d94f.jpg

      效果演示

      [Video]

      发布在 A Series
      baiwen
      100ask
    • 分析Tina打包流程,并在buildroot上来实现打包生成tina镜像,支持PhoenixSuit烧写。
      • 镜像文件 tina_d1-h-nezha_uart0.img 欢迎烧写体验。

      b8a097c7-e4fd-4a31-bb07-3c8290d7f572-image.png
      68352bac-9caa-446c-93be-13d799e7c306-image.png
      eb965c91-015a-4a29-9c32-07332ff0a424-image.png

      步骤简述

      首先记录下官方 tina-sdk 打包的log输出。

      book@virtual-machine:~/D1s-Core/tina-d1-h$ pack
      --==========--
      PACK_CHIP         sun20iw1p1
      PACK_PLATFORM     tina
      PACK_BOARD        d1-h-nezha
      PACK_KERN
      PACK_DEBUG        uart0
      PACK_SIG          none
      PACK_SECURE       none
      PACK_MODE         normal
      PACK_FUNC         android
      PACK_PROGRAMMER   none
      PACK_TAR_IMAGE    none
      PACK_TOPDIR       /home/book/D1s-Core/tina-d1-h
      --==========--
      No kernel param, parse it from d1-h
      copying tools file
      copying configs file
      storage_type value is 5
      rm /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition_nor.fex
      rm /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/image_nor.cfg
      copying boot resource
      
      LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03
      copying boot file
      make user resource for : /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.fex
      handle partition user-res
      no user resource partitions
      APP_PART_DOWNLOAD_FILE = /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/app.fex
      Need size of filesystem
      no data resource partitions
      don't build dtbo ...
      
      create sys_partiton.fex +++++++++++++++++++++++++++++++++++++++++++++++++++++4
      argc = 2
      input name sys_partition.fex
      Script 1 source file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.fex
      Script 1 bin file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.bin
      update_fdt: num 1752 randto1k
      parser 1 file ok
      create sys_partiton.fex+++++++++++++++++++++++++++++++++++++++++++++++++++++5
      update_chip
      pack boot package
      GetPrivateProfileSection read to end
      content_count=3
      LICHEE_REDUNDANT_ENV_SIZE config in BoardConfig.mk
      --mkenvimage create redundant env data!--
      ---redundant env data size 0x20000---
      packing for tina linux
      normal
      update mbr use 4++++++++++++++++++++++
      mbr count = 4
      partitation file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.bin
      mbr_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sunxi_mbr.fex
      download_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/dlinfo.fex
      
      mbr size = 252
      mbr magic softw411
      disk name=boot-resource
      disk name=env
      disk name=env-redund
      disk name=boot
      disk name=rootfs
      disk name=dsp0
      disk name=recovery
      this is not a partition key
      update_for_part_info 0
      crc 0 = 4c7bc2df
      crc 1 = d9c69382
      crc 2 = bc706624
      crc 3 = 29cd3779
      gpt_head->header_crc32 = 0x892c53ba
      GPT----part num 8---
      gpt_entry: 128
      gpt_header: 92
      GPT:boot-resource: a1f8          c177
      GPT:env         : c178          c36f
      GPT:env-redund  : c370          c567
      GPT:boot        : c568          1161f
      GPT:rootfs      : 11620         1b597
      GPT:dsp0        : 1b598         1b987
      GPT:recovery    : 1b988         227c7
      GPT:UDISK       : 227c8         ffffffde
      update gpt file ok
      update mbr file ok
      temp = 20
      mbr count = 4 total_sectors = 15269888 logic_offset = 40960
      
      partitation file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.bin
      mbr_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sunxi_mbr.fex
      download_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/dlinfo.fex
      
      mbr size = 252
      mbr magic softw411
      disk name=boot-resource
      disk name=env
      disk name=env-redund
      disk name=boot
      disk name=rootfs
      disk name=dsp0
      disk name=recovery
      this is not a partition key
      update_for_part_info 0
      crc 0 = 4c7bc2df
      crc 1 = d9c69382
      crc 2 = bc706624
      crc 3 = 29cd3779
      gpt_head->header_crc32 = 0x1328fa28
      GPT----part num 8---
      gpt_entry: 128
      gpt_header: 92
      GPT:boot-resource: a1f8          c177
      GPT:env         : c178          c36f
      GPT:env-redund  : c370          c567
      GPT:boot        : c568          1161f
      GPT:rootfs      : 11620         1b597
      GPT:dsp0        : 1b598         1b987
      GPT:recovery    : 1b988         227c7
      GPT:UDISK       : 227c8         e8ffde
      update gpt file ok
      update mbr file ok
      cp sys parttion.fex  for dragon.fex ++++++++++++++++++++++++++++
      ====================================
      show "sys_partition_for_dragon.fex" message
      ------------------------------------
        [mbr]
        mbr_size  : 252 Kbyte
      ------------------------------------
        partition_name  : boot-resource
        partition_size  : 8064
        downloadfile  : boot-resource.fex
        boot-resource.fex size : 3.0M byte
      ------------------------------------
        partition_name  : env
        partition_size  : 504
        downloadfile  : env.fex
        env.fex size : 128K byte
      ------------------------------------
        partition_name  : env-redund
        partition_size  : 504
        downloadfile  : env.fex
        env.fex size : 128K byte
      ------------------------------------
        partition_name  : boot
        partition_size  : 20664
        downloadfile  : boot.fex
        boot.fex -> /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/boot.img
        boot.img size : 5.0M byte
      ------------------------------------
        partition_name  : rootfs
        partition_size  : 40824
        downloadfile  : rootfs.fex
        rootfs.fex -> /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/rootfs.img
        rootfs.img size : 5.9M byte
      ------------------------------------
        partition_name  : dsp0
        partition_size  : 1008
        downloadfile  : dsp0.fex
        dsp0.fex size : 249K byte
      ------------------------------------
        partition_name  : recovery
        partition_size  : 28224
      ------------------------------------
      /home/book/D1s-Core/tina-d1-h/out/host/bin/
      /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image
      Begin Parse sys_partion.fex
      Add partion boot-resource.fex BOOT-RESOURCE_FEX
      Add partion very boot-resource.fex BOOT-RESOURCE_FEX
      FilePath: boot-resource.fex
      FileLength=2f8c00Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion boot.fex BOOT_FEX00000000
      Add partion very boot.fex BOOT_FEX00000000
      FilePath: boot.fex
      FileLength=4f4000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=5e0000Add partion dsp0.fex DSP0_FEX00000000
      Add partion very dsp0.fex DSP0_FEX00000000
      FilePath: dsp0.fex
      FileLength=3e38cBuildImg 0
      Dragon execute image.cfg SUCCESS !
      ----------image is for nand/emmc----------
      ----------image is at----------
      
      /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/tina_d1-h-nezha_uart0.img
      
      pack finish
      
      

      分析打包过程

      从上述log可以看出整个打包过程大致分为这么几个步骤

      1. 指定一些比较环境变量,比如镜像输出目录 镜像的一些配置信息。
      2. 之后将镜像拷贝到需要打包的目录下,开始进行统一处理
      3. 根据文件系统分区信息,将其转换成 适合后续程序使用的格式。
      4. 转换分区信息为 专门的GPT/MBR分区头部。
      5. 使用dragon打包,将所有配置文件里指定的文件,进行汇总,打包输出。

      使用命令操作 主要分为4步

      busybox unix2dos sys_partition.fex
      tina-d1-h/tools/pack-bintools/src/script  sys_partition.fex
      tina-d1-h/tools/pack-bintools/src/update_mbr  sys_partition.bin 4
      tina-d1-h/tools/pack-bintools/src/dragon  image.cfg sys_partition.fex
      

      dragon分析

      这里面 最关键的就是 sys_partition.fex 文件,它定义了分区的信息 以及大小等。
      可以进入 编译后的 tina-d1-h/out/d1-h-nezha/image 目录下查看。
      714dc37f-d024-4ffd-86e1-5dabd9519a13-image.png
      我们可以直接cat sys_partition.fex文件

      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$ cat sys_partition_for_dragon.fex
      ;---------------------------------------------------------------------------------------------------
      ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
      ;---------------------------------------------------------------------------------------------------
      
      
      ;---------------------------------------------------------------------------------------------------
      ;                                   固件下载参数配置
      ;---------------------------------------------------------------------------------------------------
      ;***************************************************************************************************
      ;    mbr的大小, 以Kbyte为单位
      ;***************************************************************************************************
      [mbr]
      size = 252
      
      ;***************************************************************************************************
      ;                                              分区配置
      ;
      ;
      ;  partition 定义范例:
      ;    [partition]                ;  //表示是一个分区
      ;    name        = USERFS2      ; //分区名称
      ;    size        = 16384        ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T
      ;    downloadfile = "123.fex"   ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径
      ;    keydata     = 1            ; //私有数据分区,重新量产数据将不丢失
      ;    encrypt     = 1            ; //采用加密方式烧录,将提供数据加密,但损失烧录速度
      ;    user_type   = ?            ; //私有用法
      ;    verify      = 1            ; //要求量产完成后校验是否正确
      ;
      ; 注:1、name唯一, 不允许同名
      ;     2、name最大12个字符
      ;     3、size = 0, 将创建一个无大小的空分区
      ;     4、align to logical block size(504 sectors), leb size = 2*(1 nand phy block size - 1 phy page size)
      ;***************************************************************************************************
      [partition_start]
      
      [partition]
          name         = boot-resource
          size         = 8064
          downloadfile = "boot-resource.fex"
          user_type    = 0x8000
      
      
      [partition]
          name         = env
          size         = 504
          downloadfile = "env.fex"
          user_type    = 0x8000
      
      [partition]
          name         = env-redund
          size         = 504
          downloadfile = "env.fex"
          user_type    = 0x8000
      
      [partition]
          name         = boot
          size         = 20664
          downloadfile = "boot.fex"
          user_type    = 0x8000
      
      [partition]
          name         = rootfs
          size         = 40824
          downloadfile = "rootfs.fex"
          user_type    = 0x8000
      
      [partition]
          name         = dsp0
          size         = 1008
          downloadfile = "dsp0.fex"
          user_type    = 0x8000
      
      [partition]
          name         = recovery
          size         = 28224
          ;downloadfile = "recovery.fex"
          user_type    = 0x8000
      
      

      这里面所有的 downloadfile文件 都是我们编译出来要烧写的文件。所以只需要把相应的文件放到这个目录下,就可以进行打包操作了。
      如果你在不改变 文件大小的前提下,可以直接执行tina-d1-h/tools/pack-bintools/src/dragon image.cfg sys_partition.fex 命令,你会发现它生成了一个 tina_d1-h-nezha_uart0.img,镜像,这个镜像是和使用pack命令打包生成的一样。

      那么这里面还有一个 img.cfg文件。这个文件里面包含了很多 fex二进制文件,目前我认为这些文件都是和全志官方的烧写工具绑定死的,所以不用管它,只要制作的时候 当前目录下有这些工具即可。
      d3bfa508-7883-4286-bda4-9bbbd981cd98-image.png

      有了这两个文件以后,就可以直接使用 dragon打包生成可以用 凤凰烧写器 烧写的系统镜像啦。

      sys_partiton分析

      如果你的系统镜像格式 一直保持大小不变,那么上面这个命令 就可以一直用,但是这个时候 我想自己编译内核 增加 驱动模块,编译文件系统 增加组件 导致系统镜像变大了 这要怎么办?

      简单点,直接修改 sys_partition.fex为 文件大小不就可以了吗?
      但是你会发现 这样做不行,他会提示错误。
      这个时候 我们就要继续分析 log日志输出了,会发现,我们执行 dragon打包 只有下面这些输出信息,没有上面的 GPT/MBR分区信息。

      /home/book/D1s-Core/tina-d1-h/tools/pack-bintools/src/
      /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image
      Begin Parse sys_partion.fex
      Add partion boot-resource.fex BOOT-RESOURCE_FEX
      Add partion very boot-resource.fex BOOT-RESOURCE_FEX
      FilePath: boot-resource.fex
      FileLength=2f8c00Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion boot.fex BOOT_FEX00000000
      Add partion very boot.fex BOOT_FEX00000000
      FilePath: boot.fex
      FileLength=4f4000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=5e0000Add partion dsp0.fex DSP0_FEX00000000
      Add partion very dsp0.fex DSP0_FEX00000000
      FilePath: dsp0.fex
      FileLength=3e38cBuildImg 0
      Dragon execute image.cfg SUCCESS !
      
      

      那么这个时候 就需要往回找,这个文件是哪里来的 怎么生成的?
      通过 搜索 分析 发现是 来自于 sys_partiton.bin 文件,但是这个文件又是一个 二进制文件,而且也是后面打包生成的,那么还是要继续往回找 sys_partition.bin文件又是怎么生成的。

      64808bf4-975f-43bb-98a7-c9da0ce574f1-image.png

      同样是结合log 加打印
      a99c9ce5-8358-41c0-924f-25836a7db6ee-image.png

      找到了 如下这两个命令。
      busybox unix2dos sys_partition.fex
      script sys_partition.fex

      一开始以为这个 script 是ubuntu的某一个包,后来发现也是一个全志自家提供的工具。
      既然 工具都找全了 那我们可以修改试试看。

      修改 sys_partition.fex 把它的大小 调整为 70824
      c12aa287-2654-4674-aecd-563a9a0e735e-image.png
      之后保存退出,从头执行如下命令 来确认猜想是否正确。

      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$ busybox unix2dos sys_partition.fex
      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$ ~/D1s-Core/tina-d1-h/tools/pack-bintools/src/script  sys_partition.fex
      argc = 2
      input name sys_partition.fex
      Script 1 source file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.fex
      Script 1 bin file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.bin
      update_fdt: num 1752 randto1k
      parser 1 file ok
      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$ ~/D1s-Core/tina-d1-h/tools/pack-bintools/src/update_mbr  sys_partition.bin 4
      mbr count = 4
      
      partitation file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sys_partition.bin
      mbr_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/sunxi_mbr.fex
      download_name file Path=/home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image/dlinfo.fex
      
      mbr size = 252
      mbr magic softw411
      disk name=boot-resource
      disk name=env
      disk name=env-redund
      disk name=boot
      disk name=rootfs
      disk name=dsp0
      disk name=recovery
      this is not a partition key
      update_for_part_info 0
      crc 0 = ea84dacc
      crc 1 = 7f398b91
      crc 2 = 1a8f7e37
      crc 3 = 8f322f6a
      gpt_head->header_crc32 = 0x53fc3a66
      GPT----part num 8---
      gpt_entry: 128
      gpt_header: 92
      GPT:boot-resource: a1f8          c177
      GPT:env         : c178          c36f
      GPT:env-redund  : c370          c567
      GPT:boot        : c568          1161f
      GPT:rootfs      : 11620         22ac7
      GPT:dsp0        : 22ac8         22eb7
      GPT:recovery    : 22eb8         29cf7
      GPT:UDISK       : 29cf8         ffffffde
      update gpt file ok
      update mbr file ok
      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$
      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$ ~/D1s-Core/tina-d1-h/tools/pack-bintools/src/dragon  image.cfg sys_partition.fex
      /home/book/D1s-Core/tina-d1-h/tools/pack-bintools/src/
      /home/book/D1s-Core/tina-d1-h/out/d1-h-nezha/image
      Begin Parse sys_partion.fex
      Add partion boot-resource.fex BOOT-RESOURCE_FEX
      Add partion very boot-resource.fex BOOT-RESOURCE_FEX
      FilePath: boot-resource.fex
      FileLength=2f8c00Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion boot.fex BOOT_FEX00000000
      Add partion very boot.fex BOOT_FEX00000000
      FilePath: boot.fex
      FileLength=4f4000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=5e0000Add partion dsp0.fex DSP0_FEX00000000
      Add partion very dsp0.fex DSP0_FEX00000000
      FilePath: dsp0.fex
      FileLength=3e38cBuildImg 0
      Dragon execute image.cfg SUCCESS !
      book@virtual-machine:~/D1s-Core/tina-d1-h/out/d1-h-nezha/image$
      
      

      最后在当前目录下 生成了一个 名为 tina_d1-h-nezha_uart0.img 文件,把它用 凤凰烧录 工具烧录进去。
      你会发现你可以把你增加过文件的分区 烧进去 并启动啦。

      那么这个时候,还存在一个问题,就是D1使用的都是 squashfs 类型的文件系统,这个时候,你也需要分析一下 他们的这个文件系统 生产方式,这个就可以借助 grep 命令了,参考如下。

      分析文件系统生成方式

      72d42ef5-7dfe-4f6a-b9cb-a4bbc92602b0-image.png
      1c42a072-d173-4915-a342-93eab5e022ac-image.png
      ec4624ab-1368-434d-b409-56e15977b52c-image.png
      92a50753-628e-4338-bf6f-145ae53f7efd-image.png

      最后得到 这个
      rootfs.squashfs -noappend -processors 9 -nopad -noappend -root-owned -comp xz -b 256k -p '''/dev d 755 0 0''' -p '''/dev/console c 600 0 0 5 1''' -processors 4\n' >> /home/book/buildroot_dshannezhastu/buildroot-awol/output/build/buildroot-fs/squashfs/fakeroot

      然后 把它 扔进 buildroot 就可以制作出 可以供 D1内核使用的系统,
      注意 tina的环境变量里面的 init 进程位置和buildroot 不一样 需要修改。
      注意 tina的环境变量里面的 init 进程位置和buildroot 不一样 需要修改。
      注意 tina的环境变量里面的 init 进程位置和buildroot 不一样 需要修改。

      最后 给大家放上,我们已经支持过 NEZHA D1的buildroot完整系统镜像源码
      https://github.com/DongshanPI/buildroot_dshannezhastu

      clone下来后,需要更新git 子模块 执行如下命令来拉取子模块的源码。

      git submodule update --init --recursive
      git submodule update --recursive --remote
      git pull --recurse-submodules

      之后进入 buildroot-awol 目录下,稍等一会 就可以生成 供spi nand 烧写的flash镜像了。 当然,也可以烧到tf卡启动。。
      buildroot_dshannezhastu/buildroot-awol$ make BR2_DL_DIR=../Download BR2_EXTERNAL=../br2nezhastu/ dshannezhastu_spinand_core_defconfig

      编译完成后的输出信息。
      04ae1d5f-065b-4602-96ff-5325042b89b7-image.png

      镜像输出在 output/images/目录下
      77648afc-4b4c-45d3-81a7-64440c44a9f5-image.png

      发布在 MR Series
      baiwen
      100ask
    • 回复: 【R128学习案例】R128平衡小车

      【2023年11月8日更新】自平衡功能已实现,运行效果:

      发布在 A Series
      baiwen
      100ask
    • 百问网 哪吒D1-H 双屏异显项目板来啦!!!

      您还在为拿到D1-H不知道可以做什么而苦恼么?
      您还在为拿到D1-H不知道学什么而苦恼么?
      您的D1-H板还在吃灰么?
      d072e70d-6611-4237-9563-4b7e1a40a3c2-2743a471049ecbb53dd07ce7eda0d06.jpg
      这次我们专门针对于D1-H的显示特性,推出了首款D1-H项目板,专门用来学习 双屏异显项目,提供深入的MPP开发教程,显示接口开发教程等,欢迎大家了解!

      发布在 MR Series
      baiwen
      100ask

    baiwen 发布的最新帖子

    • Avaota F1 Ultra light Linux SBC, with Wi-Fi built-in, Dual RISC-V Core AMP within ultra light shape

      微信图片_20250116113725.jpg
      49a03c55-1888-4471-bf11-45039398d243-微信图片_20250116113713.jpg 微信图片_20250116113706.png

      发布在 V Series
      baiwen
      100ask
    • R818 DshanPI-ROSx 高清靓图来啦! WiFi6 + 千兆网卡 + 800万 MIPI 摄像头 + MIPI HDMI显示 + OTG USB 串口 + 电池BAT!

      76399dd2-a17a-4554-9bc7-fe02dc0c304d-未标题-1_09.jpg
      45a197fe-b757-47d4-82c4-d86dbec1a12e-未标题-1_07.jpg

      发布在 MR Series
      baiwen
      100ask
    • 韦东山 全志T113s3 PRO V1.3来啦!

      完全兼容V1.2版本软硬件+文档 视频教程,另外在此基础上,新增了 RS485 CAN2.0 TVIN 输入 TVOUT输出等接口,同时我们提供了 SD-NAND 4GB 大容量类EMMC版本 + WIFI6 + BT5无线 模块支持!
      T113-PRO_03.jpg
      T113-PRO_04.jpg
      T113-PRO_05.jpg
      T113-PRO_06.jpg

      发布在 其它全志芯片讨论区
      baiwen
      100ask
    • 全志T113 运行 谷歌 Flutter UI 示例,请问有没有哪位大佬了解怎么移植适配最新 Flutter 版本呢?

      ad7b6afe-a9da-4a7a-8dfe-31774e786a55-dccf71682fe1c2061c46daab0ffb7b9.jpg
      80b35408-babf-420d-be5d-df736a5fac7e-f30889f8bd30c55a2a537d859bc4bcf.jpg
      bd535d94-512c-4278-a41a-e23c2af2c6f7-image.png
      d254b762-a3cc-43c9-a6cc-b80d1608c494-image.png

      发布在 GUI
      baiwen
      100ask
    • 回复: t113(tina)加入paha.mqtt.c库,编译成固件烧录到板子上后报错找不到动态库

      我也遇到了编译QT5 无法打包所有qt so库的情况。
      经过调试发现
      是最后打包制作 rootfs.img 时 自动将 脚本认为无用的 文件资源 库 给移除掉了。所以导致最终目标系统没有包含进去。


      源码 build 目录 找到 reduce-rootfs-size.sh 脚本
      找到 downsize_rootfs 函数,注释掉里面的几个 remove函数

      6aad5b64-c79f-446e-988f-fac675fc2eee-image.png

      具体打包无效原因在。
      a552a01c-dff8-4cc1-80b5-d08e7e119784-image.png

      a2ee0e16-cfc0-4460-a51b-2ce0a98069fa-image.png

      发布在 MR Series
      baiwen
      100ask
    • AvaotaSBC 系列 A1 自带SPI显示屏 T527 开源版来啦!!!

      AvaotaA1_01.jpg
      详情_11.jpg
      详情_10.jpg
      详情_09.jpg
      详情_08.jpg
      详情_07.jpg
      详情_06.jpg
      详情_05.jpg
      详情_04.jpg
      详情_03.jpg
      详情_02.jpg
      详情_01.jpg
      详情_13.jpg
      详情_12.jpg

      发布在 T Series
      baiwen
      100ask
    • T113i-DevKit开发板审美开始变的花花绿绿起来了!

      3229a045-99b5-4fc9-ad56-70537076061e-image.png
      44fa59e3-db6b-493b-84c5-5f4ebf33a79c-image.png
      30944883-86b9-4ea5-bba7-724deaf4a725-image.png

      发布在 Linux
      baiwen
      100ask
    • 请问如何在D1-h上同时驱动MIPIDSI + HDMI实现双屏异显!

      参考大佬 https://bbs.aw-ol.com/topic/362/diy教程-d1的双屏异显第一弹来啦-d1同时支持两个屏幕-一共做ui交互-一边个播放视频?_=1713492912563
      帖子,
      尝试去做实验,
      发现修改 libuapi 库,videoOutPort.c 文件 SCREEN_0 为1 ,
      通过 tplayerdemo播放视频,HDMI无任何输出,
      但是通过 colorbar 调试,两边是可以显示不同的画面。
      如果不修改 videoOutPort.c 文件 SCREEN_0 为1 ,则MIPI DSI可以正常播放视频。

      db0b4ae5-5dd1-47cf-a8a9-f251ea3fa173-6042142a32cd7b6b063ecc28ebf0d80.jpg

      cd /sys/kernel/debug/dispdbg
      echo disp0 > name; echo switch1 > command; echo 1 4 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;
      echo 1 > /sys/class/disp/disp/attr/colorbar
      
      cd /sys/kernel/debug/dispdbg
      echo disp1 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;
      
      cat /sys/devices/virtual/disp/disp/attr/sys
      
      考官方文档截屏,导出的图像是正常的
      
      echo 0 > /sys/class/disp/disp/attr/disp
      echo /data/filename.bmp > /sys/class/disp/disp/attr/capture_dump
      使用colorbar,显示不正常
      
      echo 0 > /sys/class/disp/disp/attr/disp
      echo 1 > /sys/class/disp/disp/attr/colorbar
      echo 1 > /sys/class/disp/disp/attr/disp
      echo 3  > /sys/class/disp/disp/attr/colorbar
      重新对LCD初始化就正常了。
      
      mount -t debugfs none /sys/kernel/debug;
      cd /sys/kernel/debug/dispdbg;
      echo suspend > command; echo disp0 > name; echo 1 > start
      echo resume > command; echo disp0 > name; echo 1 > start
      

      目前认为是是 硬件部分 没问题,两个图层已经创建,单独 MIPI DSI 运行LVGL示例没问题,但是Tplayerdemo在调取disp图层 播放视频时无法从 hdmi 输出,有没有比较了解的大佬指点一二?
      不胜感激!

      发布在 MR Series
      baiwen
      100ask
    • T527 AvaotaPI-A1 高清靓照来了!!!

      0b119481-eeb2-4e6a-91c7-a0e8c4022df1-image.png
      0676d954-4087-4f9b-8077-61d4cd2db6be-image.png
      5bd97c5d-41ea-4c9a-bc11-2d1cf3b1cc7e-image.png
      a2ad7c1b-0a74-414e-a215-f71aede163f6-image.png
      e6389f20-fbcc-4388-ae64-df4781f4342c-image.png

      发布在 T Series
      baiwen
      100ask
    • 有哪位小伙伴知道 《Tina System init使用说明文档》 是哪里获取的么?

      2e5ec5f2-f253-408f-a461-63d93ffef5e8-image.png

      发布在 MR Series
      baiwen
      100ask