Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【Sipeed D1 Dock Pro】YoC RTOS 实战:LCD屏动态显示

    D1系列-RISC-V
    1
    1
    217
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 8 last edited by q1215200171

      1. 准备工作
      建议在操作前先阅读以下技术文章:
      Lichee D1 dock 开发板用户指南
      Lichee D1 dock 开发板快速上手教程

      2. 示例介绍
      本示例主要使用了chip_d1组件驱动组件里的mipi-dsi驱动,用户可以参考驱动,对屏显示进行控制显示,包括屏的亮度显示等。

      • 屏初始化
      int csi_display_init(void)
      
      • 屏显示控制
      int csi_display_ioctl(disp_cmd_e cmd, void *arg)
      

      屏显示控制命令包括以下几类:

      Global interface
      Layer interface
      Capture interface
      LCD interface
      Smart backlight
      

      具体可以参考sunxi_display2.h里的tag_DISP_CMD数据定义。

      **3. 示例演示

      3.1 剑池CDK(以下简称CDK)演示

      3.1.1 示例获取**

      双击打开CDK,点击工具栏最右侧的平头哥图标。点击新建工程按钮。

      05243b8590c4d1c12169954f5fdc05db.png

      在搜索栏里输入lcd_demo, 在结果里选择lcd_demo,点击右侧的创建工程,版本选择v7.5.1。

      cca15c0c3691857f5c5ede70e9b12d07.png

      3.1.2 编译

      右键点击lcd_demo工程,选择build,进行编译,直到结束。

      e387e6501d137b17a8fe5da86afcee57.png

      编译完成后,可以在工程目录下out文件夹里找到yoc_rtos_8M.img文件。

      3.1.3 下载

      • 通过CDK烧写

      先连接好硬件JTAG。然后点击红色框框处的按钮开始烧写。

      0e3a6d6f1207a0a2e7cd17226d9db97d.png
      8a834b2294ffed566dd4d0c1f4b37880.png

      烧写完毕之后,按复位键即可启动。

      • 通过全志工具烧写

      在没有JTAG的情况下,只能通过全志的PhoenixSuit工具进行烧写。将编译出来的yoc_rtos_8M.img文件选中,

      8cc1de653a2533e7524f7b63a9ec71be.png

      按住FEL按钮,重新上电后,重启后固件开始烧录,直到完成。

      如果当前镜像支持xfex模式烧写,直接在串口命令行执行“xfex"命令,再执行"reboot"命令进行重启,重启后固件开始烧录,直到完成。

      3.2 命令行演示
      3.2.1 示例获取

      docker-ubuntu18:~$ mkdir test
      docker-ubuntu18:~$ cd test
      docker-ubuntu18:~$ yoc init
      docker-ubuntu18:~$ yoc install sdk_app_d1 -b v7.5.1
      Start to install components...
      sdk_app_d1      (v7.5.1), clone https://gitee.com/yocop/sdk_app_d1.git ...
      …… (省略) ……
      d1_evb          (v7.5.1), clone https://gitee.com/yocop/d1_evb.git ...
      chip_d1         (v7.5.1), clone https://gitee.com/yocop/chip_d1.git ...
      Download components finish.
      docker-ubuntu18:~/test$ ls
      boards  components  solutions
      

      3.2.2 编译

      docker-ubuntu18:~/test/solutions$ cd lcd_demo
      docker-ubuntu18:~/test/solutions/lcd_demo$ make
      …… (省略) ……
      LINK out/lcd_demo/yoc.elf
      Generating yoc.bin
      riscv64-unknown-elf-objdump -d out/lcd_demo/yoc.elf > yoc.asm
      INSTALL yoc.elf
      scons: done building targets.
      YoC SDK Done
      [INFO] Create bin files
      [2022-02-23 16:12:38] Start to sign images with key:def_otp
      [2022-02-23 16:12:38] Sign [prim] with [def_otp]
      [2022-02-23 16:12:38] rsa verify ok....
      [2022-02-23 16:12:38] Sign prim ok.
      ----------------------------------------------------------------
                     boot0, 0, 0, 0x00000000, 0x0000c000, 0x0000c000, boot0
                       gpt, 0, 0, 0x0000c000, 0x00004000, 0x00010000, gpt
                      boot, 0, 0, 0x00010000, 0x00025000, 0x00035000, boot
                      imtb, 0, 0, 0x00035000, 0x00002000, 0x00037000, imtb
                      prim, 1, 0, 0x00037000, 0x00360000, 0x00397000, prim
                       lfs, 0, 0, 0x00397000, 0x00452000, 0x007e9000
                      misc, 0, 0, 0x007e9000, 0x00013000, 0x007fc000
                        kv, 0, 0, 0x007fc000, 0x00004000, 0x00800000
         boot0,    49152 bytes
           gpt,     8192 bytes
          boot,   143896 bytes
          prim,   229532 bytes
          imtb,     8192 bytes
      ----------------------------------------------------------------
      Create yoc_rtos_8M.img in out directory Success!
      

      3.2.3 下载

      可以通过3.1.3的下载方式进行烧录,也可以通过命令行进行烧录。

      命令行烧录之前要先连接好T-HeadDebugServer。然后在终端输入make flashall命令:

      lh@lh:~/.../solutions/lcd_demo > make flashall
      [2022-02-15 17:52:00] I am RISC-V
      Program partition: boot0        address: 0x0, size 49152 byte
      erasing...
      program 00x0000c000, 100%
      Program partition: gpt          address: 0xc000, size 8192 byte
      erasing...
      program 00x0000e000, 100%
      Program partition: boot         address: 0x10000, size 142980 byte
      erasing...
      program 0x00032000, 100%
      Program partition: imtb         address: 0x35000, size 8192 byte
      erasing...
      program 00x00037000, 100%
      Program partition: prim         address: 0x37000, size 131072 byte
      erasing...
      program 00x00057000, 100%
      lh@lh:~/.../solutions/lcd_demo >
      

      4. 运行

      重新上电或按下RST键,系统启动,串口会有以下打印信息,表示系统运行成功。

      [   0.190]<I>[app]<app_task>app start........
      
      [   0.200]<I>[app]<app_task>Display screen background color testing
      

      查看显示屏上会交错显示红、绿、蓝三色。

      a3198574f147bb369b7933f7f5a6b77e.jpeg 101e5fa9082cd235821b45b31bcba4ff.jpeg 83664986ff36efa4ae607e8ede1517f1.jpeg

      5. 总结
      本文介绍了DOCK开发板的LCD显示示例,包括如何进行显示屏的显示,底色显示等操作,从而达到了学习显示屏显示接口的目的。

      原文链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300979.0.0.6719180fD7t7rB&id=4037257955560267776
      作者@我爱下载

      1 Reply Last reply Reply Quote Share 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2022 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策