当前位置: 首页 > news >正文

衡山派开发板SDK编译全攻略:Env/VSCode双环境与OneStep命令详解

衡山派开发板SDK编译全攻略:Env/VSCode双环境与OneStep命令详解

最近有不少刚拿到衡山派(HSPi)开发板的朋友问我,SDK到手了,怎么才能快速编译出第一个能烧录的镜像文件?今天我就结合自己的实际使用经验,给大家详细梳理一下衡山派SDK的几种编译方法。

咱们拿到的SDK包叫luban-lite,里面已经为我们准备好了编译环境。总的来说,编译路径可以分成两大类:用SDK自带的终端,或者用咱们熟悉的VSCode。每种方式下又有不同的具体操作方法。别担心,你只需要选择其中一种最适合你的就行,不用全都试一遍。

1. 准备工作:找到你的SDK

首先,你得确保已经按照上一节的教程,成功下载并解压了luban-lite这个SDK文件夹。打开这个文件夹,你会看到里面有两个Windows批处理脚本文件,这就是我们编译的“入口”:

  • win_env.bat:用于启动Env终端。
  • win_cmd.bat:用于启动Windows终端。

这两个文件就是我们接下来要用到的“钥匙”。下面,咱们就分别看看怎么用它们。

2. 使用SDK自带终端编译

SDK自带的终端是最直接、最“原汁原味”的编译方式,因为它不需要你额外配置任何环境,所有东西都已经在SDK包里了。

2.1 Env终端编译(推荐)

Env是RT-Thread生态里常用的一个工具,SDK已经把它集成好了。

第一步:启动Env终端直接双击luban-lite文件夹里的win_env.bat文件。稍等片刻,会弹出一个命令行窗口。如果窗口正常打开,没有立刻闪退,并且出现了命令提示符(比如显示路径),就说明启动成功了。

注意:如果打开后窗口卡住,敲键盘没反应,可能是启动遇到了问题。直接关掉窗口,重新双击一次win_env.bat试试。

第二步:选择开发板配置每个开发板都有自己专属的配置文件,咱们衡山派也不例外。在打开的Env终端里,输入以下命令,查看所有可用的配置列表:

list

你会看到一个带编号的列表。找到带有“JLC”关键字的那个配置(JLC就是嘉立创,衡山派的生产商)。通常它就是列表里的第3项。接着,输入命令选择它:

lunch 3

当然,你也可以直接用配置文件名来选,效果是一样的:

scons --apply-def=d13x_JLC_rt-thread_helloworld_defconfig

第三步:开始编译配置选好后,就可以开始编译了。输入最简单的编译命令:

scons

如果你想充分利用电脑的多核性能,加快编译速度(第一次编译会慢一些),可以加上-j参数指定使用的核心数。比如我的电脑是16核的,我就用:

scons -j16

这里有个小技巧:-j后面的数字表示你想用几个CPU核心来并行编译。数字越大,理论上编译越快。但如果你写的数字超过了电脑实际的核心数,系统会自动按你电脑的最高可用核心数来运行,所以写大一点也没关系。

编译开始后,终端会滚动输出一大堆信息。耐心等待,直到最后出现编译成功的提示,并且没有报错。

第四步:找到编译好的镜像编译成功后,生成的固件镜像文件路径通常会在终端最后几行显示出来。对于衡山派,你可以在SDK目录下的out/d13x_JLC_rt-thread_helloworld/images/文件夹里,找到一个名为d13x_JLC_v1.0.0.img的文件。这个.img文件就是我们最终要烧录到开发板里的固件。

2.2 Windows终端编译(备用方案)

这个方法作为备用,步骤和上面的Env终端完全一样。唯一的区别在于启动方式:你需要双击的是win_cmd.bat这个文件。

它启动的是一个标准的Windows命令提示符(CMD),而不是RT-Thread的Env。如果你在使用Env终端时遇到了奇怪的问题,可以试试这个方式,有时候能避开一些环境兼容性的坑。

3. 终端里的高效命令:OneStep与SCons

在Env或CMD终端里工作,掌握几个快捷命令能极大提升效率。ArtInChip(衡山派主控芯片的厂商)贴心地为我们封装了一组叫OneStep的命令。

3.1 OneStep快捷命令

只要你在通过上面任一种.bat脚本打开的终端里,这些命令就已经可以直接使用了。它们最大的好处是:在SDK目录下的任何位置都能执行,不用每次都切回根目录。

  • lunch:打开配置选择菜单,和之前用listlunch 编号的效果一样。
  • m:最常用的命令,直接开始编译SDK(相当于scons)。
  • c:清除编译过程中产生的所有中间文件。注意:执行这个命令后,下次编译就需要从头开始了。
  • cr:快速跳转回SDK的根目录。
  • me:打开图形化的配置菜单(menuconfig),可以更直观地配置内核和组件。

3.2 SCons基础命令

SCons是底层使用的构建工具,类似Makefile。除了基本的scons,还有两个常用参数:

  • scons -c:功能和OneStep的c命令一样,清除构建文件。
  • scons -h:查看SCons的所有帮助信息。

4. 在VSCode中编译(适合代码编辑党)

如果你习惯用VSCode写代码,那直接在VSCode里完成编译会更方便,不用在多个窗口间切换。

4.1 使用VSCode集成终端

第一步:用VSCode打开SDK启动VSCode,通过“文件”->“打开文件夹”,选择你的luban-liteSDK根目录。

第二步:打开集成终端在VSCode里按快捷键Ctrl + Shift +(反引号键),或者从顶部菜单选择“终端”->“新建终端”。这时,VSCode下方会弹出终端窗口。

第三步:执行编译命令接下来的操作就和在独立的Env终端里一模一样了:

  1. 输入list查看配置。
  2. 输入lunch 3选择衡山派(JLC)配置。
  3. 输入scons -j16开始编译(-j后面的数字根据你的电脑CPU核心数调整)。

编译成功的输出信息也会显示在这个集成终端里。

4.2 使用VSCode任务快捷命令(更省事)

这是我最推荐在VSCode里使用的方式,几乎不用敲命令。

第一步:准备终端同样,先按Ctrl + Shift +打开一个集成终端。然后输入listlunch 3` 完成开发板配置的选择。

重要提示:执行完lunch 3后,这个终端窗口要保持打开,不要关闭!因为配置环境需要在这个终端会话中生效。

第二步:调用编译任务现在,按下VSCode的快捷键Ctrl + Shift + B。这是“运行生成任务”的快捷键。按下后,VSCode顶部会弹出一个小菜单,让你选择要执行的任务。你会看到几个选项:

  • Luban-Lite make:这就是编译命令,选择它。
  • Luban-Lite clean:清除编译缓存。
  • Luban-Lite list:列出所有配置文件。
  • Luban-Lite menuconfig:打开图形化配置菜单。

选择“Luban-Lite make”,VSCode就会自动在后台启动编译任务。编译进度和结果会在VSCode的“终端”面板中显示。这样,你以后编译只需要按Ctrl + Shift + B然后回车就行了,非常方便。

好了,以上就是为衡山派开发板编译SDK的几种主流方法。我个人平时开发喜欢用VSCode+快捷命令的方式,编码和编译都在一个环境里,效率很高。如果你是纯粹的命令行爱好者,直接用Env终端配合OneStep的m命令,也非常流畅。选择你觉得最顺手的一种,赶紧编译出你的第一个镜像,体验一下烧录和运行的乐趣吧!如果在编译过程中遇到问题,首先检查是否正确执行了lunch 3选择了衡山派的配置,这是最常见的一步。

http://www.cnnetsun.cn/news/1262607.html

相关文章:

  • 墨语灵犀在跨文化传播中的应用:短视频字幕AI生成+文化注释自动附加方案
  • Pixai.art:探索AI绘画与漫画生成的多语言创意之旅
  • Local AI MusicGen一键部署教程:3步搭建Linux本地音乐生成环境
  • 6 个 Linux 基础指令的硬核拆解,原理 + 实操一次吃透!
  • RTX 4090+Qwen2.5-VL-7B-Instruct开源方案:低成本构建企业级视觉AI助手
  • 黑丝空姐-造相Z-Turbo结合爬虫技术:自动化采集灵感素材并生成图像
  • 阿里造相Z-Image保姆级教程:3步搭建你的专属AI画师
  • L-BFGS算法在自动驾驶路径规划中的平滑优化实践
  • CasRel关系抽取步骤详解:级联二元标记框架原理与代码映射
  • 立创桌面能源站-PD3.0 100W升降压充电站:基于LM5175+IP2726方案的高效DIY电源模块设计
  • 4大场景高效保存网络音频内容:twspace-dl全功能操作指南
  • Android悬浮球实战指南:从零构建高效快捷操作控件
  • Python实战:单目三维重建从原理到实现
  • 掌握UI-TARS-desktop:解锁自然语言控制电脑的智能交互体验
  • Citizens2全栈指南:从架构设计到落地实践
  • 双网卡内外网共存:静态IP与路由表优化解决0.0.0.0冲突
  • 高效长读长测序数据过滤:Chooper与NanoFilt性能对比及实战指南
  • 人工智能篇---NLP(自然语言处理)
  • 5倍效率提升:BiliTools AI视频总结如何重构你的内容消费方式
  • 深入浅出解析Faster RCNN中的RPN网络工作原理
  • CE修改器实战指南:从精确值扫描到动态修改的进阶技巧
  • 基于STM32与MPU6050的智能跌倒预警系统设计与实现
  • 英伟达斥资20亿美元投资Nebius “循环投资”泡沫争议再起
  • 【CVPR26-美国伊利诺伊大学】视觉-语言模型中的链路追踪:理解多模态思维的内部机制
  • WorkBuddy 安装与远程配置笔记
  • 深入浅出策略模式:一个C++模板实现的灵活策略管理库
  • SFT构造数据的一些经验
  • 打卡信奥刷题(2945)用C++实现信奥题 P5864 [SEERC 2018] Broken Watch
  • 丝杆升降机如何正确选型?参数、工况、电机匹配一篇讲透
  • MATLAB R2021B环境下基于Takagi-Sugeno-Kang模糊神经网络的时间序列...