Edit online

RTOS

19 Nov 2024
Read time: 3 minute(s)

Luban-Lite 是 ArtInChip 基于 RT-Thread 系统深度优化的 RTOS SDK,支持 baremetal 构建模式,支持 freerots, rt-thread 核,支持 rt-thread 生态。

下载 Luban-Lite

下载 Luban-Lite 的仓库地址为:
git clone https://gitee.com/artinchip/luban-lite.git

Linux 系统

  1. 资源库更新
    在国内使用 apt 进行软件安装,会经常碰到 http://cn.archive.ubuntu.com/ubuntu 无法访问或者访问速度非常慢,最简单的办法是替换成国内比较快的镜像网站,测试中 mirrors.aliyun.com 的效果很好
    sudo gedit /etc/apt/sources.list   中  cn.archive.ubuntu.com 全部更换为 mirrors.aliyun.com
    sudo apt-get update
  2. 安装 scons
    scons 是一个开发源码,以 python 语言编码的自动化构建工具,它是 Make 的改进的、跨平台的替代品,因此 Luban lite 选择 scons 作为构建工具, 但同时支持对 Makefile 的调用
    sudo apt install scons
  3. 安装 pycryptodomex

    pycryptodomex 是 python 的一个加密库,可以通过用 pip 安装 whl 文件, 也可以通过源码进行编译安装, SDK tools/env/local_pkgs/ 中内置了 pycryptodomex 源码

    两种安装都需要安装 pip 来提供相应的组件, 并且 ubuntu20.04 中默认安装的 python3-pip
    sudo apt install pip
    cd tools/env/local_pkgs/
    tar xvf pycryptodomex-3.11.0.tar.gz
    cd pycryptodomex-3.11.0
    sudo python3 setup.py install

Windows 系统

Windows 下对应的各种工具已经存放在 luban-lite/tools/env/tools 目录当中,不需要安装。

在 SDK 根目录下有两个批处理文件来实现命令行的使用方法。

直接双击 luban-lite/win_env.bat 或者 luban-lite/win_cmd.bat 即可,后面所有命令都在该命令行工具中进行操作

ENV 是 RT-Thread 的原生工具,是 SDK 包中集成了编译所需要使用的所有的工具的一种使用方式


lbl_win_env2

直接双击 luban-lite/win_cmd.bat 打开 Windows 的 CMD 命令行工具,后面所有命令的使用和 ENV 相同


lbl_win_cmd2

CMD 是 windows 的使用环境,除了 SDK 的命令外,还可以使用系统自己安装的工具的命令,因此功能更强大

编译 Luban-Lite

scons --list-def            //查看有多少配置
scons --apply-def=0         //选择 0 号配置
scons                       //编译
......

Image file is generated: output/d13x_demo100-nand_rt-thread_helloworld/images/d13x_demo_nand_page_2k_block_128k_v1.0.0.img

编译后的固件名称为 d13x_demo100_nand_page_2k_block_128k_v1.0.0.img

Eclipse

Luban-Lite 支持使用 Eclipse IDE 来进行调试,遵照以下步骤流程:
  1. 首先下载最新版本的 [Eclipse IDE for Embedded C/C++ Developers]

    https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2023-03/R/eclipse-embedcpp-2023-03-R-win32-x86_64.zip) 。

  2. 使用命令生成当前工程对应的 Eclipse 工程文件:

    确保工程已经在命令行环境下正确配置并且能成功编译以后,再使用下述命令一键生成工程对应的 Eclipse 工程文件。在工程配置发生改变以后,需要重新在命令行下编译成功后再重新生成 Eclipse 工程文件。

    $ cd luban-lite
    $ scons --target=eclipse            // 生成当前工程对应的 Eclipse 工程文件
    生成的 Eclipse 工程文件存储在 luban-lite/output/xxxx/project_eclipse 目录:
    $ ls -a output/d21x_demo100-nand_rt-thread_helloworld/project_eclipse
    ./  ../  .cproject  .project  .settings/
    
    为了方便用户使用 Eclipse IDE 来添加自己的代码,还增加了一条命令来生成一个完整的 Eclipse SDK 软件包。该命令会把用户需要的所有源文件和库文件都独立的拷贝一份:
    $ scons --target=eclipse_sdk        // 生成当前工程对应的 Eclipse SDK 工程

    生成的 Eclipse 工程文件存储在 luban-lite/output/xxxx/project_eclipse_sdk 目录。因为所有需要的文件都已经拷贝,所以 project_eclipse_sdk 目录已经是一份独立的 SDK 了,可以拷贝到任何路径下进行调试。

  3. 打开下载的 Eclipse IDE for Embedded C/C++ Developers,通过菜单 File -> Import -> Existing Projects into Workspace 来导入上一步创建的 Eclipse 工程:


    eclipse_import_proj2

  4. Project Explorer 中选择成功导入的工程,在右键菜单中选择 Build Project 即可对整个工程进行编译。


    eclipse_build_proj

  5. 编译
    编译生成的目标文件在 luban-lite/output/xxxx/project_eclipse/Debug 目录:
    $ ll output/d21x_demo100-nand_rt-thread_helloworld/project_eclipse/Debug/
    d21x.bin
    d21x.elf                           // 调试需要的 elf 文件
    d21x.map
    d21x_demo100_nand_page_2k_block_128k_v1.0.0.img    // 烧录需要的 img 文件
    
  6. 调试
    Eclipse 通过 JTAG 调试器在线调试还需要以下关键组件:
    • ddr_init_only.img。 仅仅初始化 DDR 的固件,方便直接加载工程的 elf 文件到内存当中。

    • AiBurn。烧录软件,把上述固件烧录到单板。

    • CKLink。JTAG 调试器。

    • T-HeadDebugServer。调试器在 PC 端的代理,以 GDB-Server 的形式提供调试服务。

    Eclipse 在线调试的具体步骤如下:
    1. 安装 AiBurn 软件,使用 AiBurn 将 ddr_init_only.img 固件烧录到单板。烧录成功后,每次单板上电和复位后都会自动把 DDR 初始化好。

    2. 启动 T-HEADDebugServer,配置 GDB-Server 端口号:


      debug_server4

    3. Eclipse 中创建对应的 Debug Configuration。通过菜单 Run -> Debug Configurations 给编译成功的工程新建一个对应的调试配置:

      eclipse_debug_config2

      经过上述配置以后,就可以方便的在 Eclipse 下进行在线调试了。