匠芯创Luban/Luban lite开发环境搭建

发布时间:2026/11/4 10:36:04

匠芯创Luban/Luban lite开发环境搭建 一、开发环境1、获取源码1.1、下载源码另外记得设置权限sudochown-R$USER:$USERxxx1.1.1、Luban官方地址gitclone https://gitee.com/artinchip/d211.gitgitclone gitgitee:artinchip/d211.git工程结构├── dl -- 第三方源码的压缩包保存目录 ├── output -- 默认的编译输出目录 ├── package -- 各编译源码包/组件的配置 │ ├── Config.in -- menuconfig 配置的顶层入口 │ ├── artinchip -- ArtInChip 开发的组件配置 │ ├── linux -- 内核的配置 │ ├── opensbi -- OpenSBI 的配置 │ ├── uboot -- UBoot 的配置 │ ├── third-party -- 其它开源软件包的配置 │ ├── ... │ ├── prebuilt -- 预编译二进制包的保存目录 ├── source -- 源码保存目录 │ ├── artinchip -- ArtInChip 开发的组件源码目录 不会删除 │ ├── linux-5.10 -- 内核的源码目录 不会删除 │ ├── opensbi -- OpenSBI 的源码目录 不会删除 │ ├── uboot-2021.10 -- U-Boot 的源码目录 不会删除 │ └── third-party -- 其它开源软件包解压后的源码目录 make distclean 会删除 │ ├── target -- 芯片和具体板子的配置 │ └── configs -- 存放项目的配置文件 │ ├── d211_initramfs_defconfig │ ├── d211_per1_mmc_defconfig │ ├── d211_per2_spinand_defconfig │ ├── d211_per2_spinor_defconfig │ ├── d211_fpga_mmc_defconfig │ ├── configs_busybox - ../../package/third-party/busybox/configs/ │ ├── configs_linux_arm - ../../source/linux-5.10/arch/arm/configs/ │ └── configs_uboot - ../../source/uboot-2021.10/configs/ │ ├── tools -- 辅助脚本和工具 │── toolchain -- 编译所使用的 gcc 工具链保存目录 └── Makefile -- SDK 的顶层 Makefile1.1.2、Luban lite官方地址gitclone https://gitee.com/artinchip/luban-lite.gitgitclone gitgitee:artinchip/luban-lite.git工程结构├── application // 存放 APP 入口helloword 应用的 main 函数 │ ├── baremetal │ ├── freertos │ ├── Kconfig │ └── rt-thread ├── bsp // 存放 BSP 代码和 RT-Thread 原生的 bsp 目录功能相同 │ ├── artinchip // ArtInChip SoC 内部的 driver、hal 以及最小系统 sys 代码 │ ├── common // 公共头文件 │ ├── peripheral // 一些外设模块的驱动 │ ├── examples_bare // 各模块使用 HAL 层 API 的示例代码 │ └── examples // 各模块使用 RT-Thread 应用层 API 的示例代码 │ ├── test-alarm │ ├── test-audio │ ├── test-can │ ├── test-dma │ ├── test-qspi │ ├── test-touch │ └── test-uart ├── doc // Luban-Lite SDK 的介绍文档 ├── win_env.bat // 启动 RT-Thread 的 env 工具用于 Windows 环境的开发 ├── win_cmd.bat // 启动 CMD.exe用于 Windows 环境的开发 ├── kernel // 存放各种 RTOS 内核 │ ├── baremetal │ ├── common │ ├── freertos │ └── rt-thread ├── output // SDK 的编译输出 ├── packages // 组件包 │ ├── artinchip // ArtInChip 开发的组件包 │ └── third-party // 第三方的组件包 ├── target // 方案 板级的代码和配置 │ ├── configs // 整个方案的 SDK 配置文件 │ ├── d12x //D12x 开发板配置 │ │ ├── common │ │ ├── demo68-nand │ │ ├── demo68-nor │ │ └── hmi-nor │ ├── d13x //D13x 开发板配置 │ │ ├── common │ │ ├── demo88-nand │ │ ├── demo88-nor │ │ └── kunlunpi88-nor │ ├── d21x //D21x 开发板配置 │ │ ├── common │ │ └── demo128-nand │ └── g73x //G73x 开发板配置 │ ├── common │ ├── scan //扫码头开发板 │ └── demo100-nor ├── toolchain // 解压后的工具链存放目录 └── tools // 一些工具 ├── onestep.sh // ArtInChip 开发的 OneStep 命令行增强工具 └── toolchain // 工具链的压缩包2、自建仓库管理放到GitHubGitHub免费版对个人开发和小团队已经比较友好尤其比Gitee免费版对Git LFS支持更好。1、Luban最合理的长期维护方案GitHub Repo - 源码 GitHub Release - dl/prebuilt/toolchain1、管理架构d211/ ├── source/ ├── package/ ├── target/ ├── tools/ ├── README.md └── prepare_sdk.shGit仓库只保留这些。而大文件放到ReleaseRelease v1.0 ├── dl.tar.zst ├── prebuilt.tar.zst └── toolchain.tar.zst2、操作步骤环境工具sudoaptinstall-ygit-lfs zstd完整上传步骤打包大文件dltar--zstd-cfdl.tar.zst dlprebuilttar--zstd-cfprebuilt.tar.zst prebuilttoolchaintar--zstd-cfprebuilt.tar.zst prebuilt创建GitHub仓库并上传源码别忘记修改.gitignore# 注意修改此文件后请运行命令 git ls-files -i --exclude-standard 以检查是否有任何原本处于跟踪状态的文件在修改后被忽略了。 output/ target/d211/Config.in.old source/third-party/ source/uboot-2021.10/arch/riscv/dts/d211-ddr.dtsi source/uboot-2021.10/arch/riscv/dts/d211-ddr2-512Mb.dtsi source/uboot-2021.10/arch/riscv/dts/d211-ddr3-2Gb.dtsi source/uboot-2021.10/arch/riscv/dts/d211-pinctrl.dtsi source/uboot-2021.10/arch/riscv/dts/d211-qemu.dtsi source/uboot-2021.10/arch/riscv/dts/d211.dtsi tools/scripts/pinmux_check.pyc source/uboot-2021.10/include/dt-bindings/clock/artinchip,aic-cmu.h source/uboot-2021.10/include/dt-bindings/display/artinchip,aic-disp.h source/uboot-2021.10/include/dt-bindings/reset/artinchip,aic-reset.h dl/ dl.tar.zst prebuilt/ prebuilt.tar.zst toolchain/ toolchain.tar.zst上传gitadd.gitcommit-mfirst commitgitpush-uorigin master创建Release进入仓库点击Create a new releaseTag(Create a new Tag)v1.0.0TitleD211 SDK v1.0.0自动下载脚本prepare_sdk.sh#!/bin/bashset-eVERSIONv1.0.0BASE_URLhttps://github.com/username/artinchip-sdk-Luban/releases/download/${VERSION}download_if_missing(){FILE$1if[!-f$FILE];thenechoDownloading$FILE...wget${BASE_URL}/${FILE}fi}download_if_missing dl.tar.zst download_if_missing prebuilt.tar.zst download_if_missing toolchain.tar.zsttar--zstd-xfdl.tar.zsttar--zstd-xfprebuilt.tar.zsttar--zstd-xftoolchain.tar.zstechoSDK ready.拉取gitclone gitgithub.com:username/artinchip-sdk-Luban.gitcdartinchip-sdk-Luban ./prepare_sdk.sh2、Luban lite1、LFS安装并初始化LFSsudoaptinstallgit-lfsgitlfsinstall设置追踪规则在仓库根目录下执行以下命令让 LFS 接管该文件夹下的所有文件gitlfs tracktoolchain/**gitlfs tracktools/toolchain/**提交配置gitadd.gitattributesgitcommit-mchore: 配置指定文件夹和文件使用 Git LFS迁移历史如果大文件之前已经被提交过必须把历史记录也转换过来才可以gitlfs migrateimport--includetoolchain/**--everything2、忽略指定文件编辑.gitignore文件在项目根目录找到或新建.gitignore文件在最后添加规则*.pyc .config .config.old .defconfig .dirlist cconfig.h rtconfig.h partition_table.h .sconsign.dblite .Kconfig.prj *.bak .log/ .cscope/ output/ /toolchain/ build/ !bsp/peripheral/wireless/aic8800/build/ tools/toolchain/Xuantie-900-gcc-elf-newlib-x86_64 tools/toolchain/Xuantie-900-gcc-elf-newlib-mingw tools/env/tools/qemu/qemu-win tools/env/tools/qemu/qemu-linux packages/packages.dbsqlite packages/pkgs_error.json packages/pkgs.json .clang-format .commit .editorconfig .gitattributes /docs-user/test-app/__pycache__/ /docs-user/**/*.log /docs-user/**/*.mp4 /docs-user/**/*.png /docs-user/**/*.jpg /application/rt-thread/**/*.o清理已经被Git跟踪的文件如果这些文件之前已经被误提交了光写.gitignore是没用的需要先从Git缓存中删除gitrm-r--cacheddocs-user/test-app/__pycache__/gitrm-r--cacheddocs-user/**/*.loggitrm-r--cacheddocs-user/**/*.mp4gitrm-r--cacheddocs-user/**/*.pnggitrm-r--cacheddocs-user/**/*.jpggitrm-r--cachedapplication/rt-thread/**/*.ogitcommit-mchore: 移除被误提交的文件3、使用上传gitpush# 有过没有失败但是下载时没有拉到lfs的内容有做以下操作gitlfs push--allorigin master确认LFS状态正常gitlfsenvgitlfs ls-files重新下载时gitclone gitgithub.com:username/artinchip-sdk-LubanLite.gitcdartinchip-sdk-LubanLitegitlfs pull2、环境工具安装官方脚本的工具sudo./tools/scripts/oneclick.sh安装必要工具sudoaptinstall-ygitvimnanoscons git-lfs samba zstd3、共享文件夹目标是Linux上编译/运行Windows上编辑代码两边实时同步像本地磁盘一样访问步骤安装工具sudoaptupdatesudoaptinstallsamba-y创建共享目录mkdir-p/home/mo/my-project/project-sdkchmod777/home/mo/my-project/project-sdk配置编译sudo nano /etc/samba/smb.conf[project] path /home/mo/my-project/project-sdk/gitee/project browseable yes read only no valid users username create mask 0775 directory mask 0775创建用户sudosmbpasswd-amo开启# 开启sudosystemctl restart smbdsudosystemctlenablesmbd# 检查systemctl status smbd连接此电脑-映射网络驱动器-\\ip\project
延伸阅读

更多相关文章

2026/10/31 18:08:00

C#会议室预约系统源码深度解析与企业级调优指南

简介:MF00535-C#会议室预约系统是一套面向C#初学者与.NET全栈开发学习者的实战型教学源码,聚焦企业级资源调度场景,解决会议室查询、时段预订、权限管控与数据跟踪等核心管理问题。资源包共177个文件,含28个C#业务逻辑文件&#x…

2026/11/4 10:35:02

JavaScript模块化:从CommonJS到ES Modules的深度解析

1. 模块化发展背景与核心概念JavaScript模块化的发展历程可以看作是一部解决代码组织问题的进化史。早期的JS代码都是直接写在script标签里,随着前端项目越来越复杂,这种简单粗暴的方式带来了全局污染、依赖混乱等问题。于是社区先后出现了多种模块化方案…

2026/11/4 10:35:02

POJ基础题单AC指南:判题规则、六类模板与易错点

简介:面向ACM算法入门与课程练习的北大POJ题解代码包,覆盖1000至1008、1011至1014等一批基础题目,适合刚开始接触在线评测、需要对照参考实现来理解题意与边界处理的读者。压缩包共157个文件,其中156个cpp源码和1个txt说明文件&am…

2026/11/4 10:35:02

ROS2高效学习路线与核心架构解析

1. ROS2学习路线全景解析作为机器人操作系统的最新迭代版本,ROS2在架构设计和功能特性上相比ROS1有着显著提升。对于刚接触ROS2的开发者而言,系统化的学习路径至关重要。我结合三年来的ROS2教学经验,总结出这条经过验证的高效学习路线&#x…

2026/11/4 10:35:02

PSM-NMF语音增强算法:原理与工程实践

1. 项目背景与核心价值 语音增强技术一直是音频信号处理领域的核心课题之一。在实际应用中,我们常常会遇到录音环境嘈杂、背景噪声干扰严重的情况——比如远程会议时键盘敲击声、车载语音系统中的引擎噪声、或是老旧录音档案中的磁带底噪。传统降噪方法如谱减法、维…

2026/11/4 10:35:02

数据质量管理办法:七维标准、三层组织与五步闭环落地指南

简介:《数据质量管理办法》是一份面向数据治理、数据质量管理从业者及企业数据管理部门的制度参考文档,适合用于搭建数据质量管理制度框架、明确组织分工与规范问题闭环流程。文档围绕组织与职责、数据质量定义、质量发现、原因分析及整改等环节展开&…

2026/11/4 10:30:02

傅里叶变换与FFT在周期信号处理中的应用

1. 傅里叶变换的本质与周期信号处理 傅里叶变换(Fourier Transform)作为信号处理领域的基石工具,其核心思想是将时域信号分解为不同频率的正弦波叠加。快速傅里叶变换(FFT)则是其高效算法实现,计算复杂度从…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑