龙芯1B 开发学习套件这套东西在国产芯片教学和入门级嵌入式系统实践里算是一个绕不开的存在。整套套件通常由一块 LS1B 核心板加配套底板、若干教程文档、示例源码以及一个叫 LoongIDE 的集成开发环境组成。手上这块板子拿到之后真正让人卡住的往往不是写代码而是 LoongIDE 集成开发环境怎么装、装完怎么连板子、连上以后为什么编译下载总是报错。这篇就围绕 LoongIDE 的安装步骤把我自己在实验室里反复装过好几台机器之后总结的流程、参数和踩坑记录完整地讲一遍。不管你是刚开始接触龙芯 1B 的学生还是带课的老师或者是想用一块国产 SoC 做小项目的工程师这套安装流程和里面的细节都能直接照着走。LoongIDE 说白了是一个基于 Eclipse 框架二次开发的 C/C 嵌入式开发环境龙芯方面把交叉编译工具链、下载器、调试器、芯片相关的配置都封装了进去。它的定位有点像大家熟悉的 Keil、IAR只不过面向的是龙芯 1B/1C 这类芯片而且是跑在 PC 上、通过串口或者调试接口把程序弄进板子里。安装这套环境本身不复杂复杂的是版本匹配和一堆前置依赖。下面我会从为什么这么装讲到每一步具体怎么做再到装完连不上板子怎么办尽量把每个环节背后的道理说清楚。1. 先搞明白龙芯1B和LoongIDE到底是什么关系1.1 从一块国产嵌入式开发板说起龙芯 1B芯片型号一般写作 LS1B是龙芯早期面向嵌入式控制领域的一颗 SoC。它的内核基于 32 位精简指令集主频通常在两百多兆赫兹这个量级片上集成了内存控制器、Flash 控制器、串口、网口、CAN、SPI、I2C、PWM 等一堆外设属于典型的一颗芯片加少量外围就能跑起来的 MCU 级别方案。它和 STM32 那类芯片的定位类似区别在于指令集架构不同龙芯 1B 用的是 MIPS 风格的指令编码所以编译的时候不能用 PC 上常见的编译器必须用专门的交叉工具链。所谓交叉编译意思是你在 x86 的电脑上写代码、编译生成的却是指令集完全不同的另一种芯片能执行的机器码。这就好比你在中文环境里写了一份说明书但要翻译成另一种文字才能给对方看。编译器就是那个翻译而交叉两个字点明了编译发生的平台和目标平台不是同一个。龙芯 1B 的工具链名字里通常带 mipsel 字样el 表示小端字节序这是这套环境里第一个容易搞混的点。开发学习套件一般会配一块底板板上引出了串口、网口、USB、按键、LED、数码管这些练手用的东西。板子出厂时 Flash 里一般烧好了 PMON也就是一个类似 BIOS 的引导程序负责上电初始化、等待你通过串口或者网络把新程序传进来。理解这一点很重要因为 LoongIDE 的下载本质上很可能就是通过串口驱动 PMON 去接收数据而不是像单片机那样用一个专门的烧录器。1.2 LoongIDE到底封装了哪些东西LoongIDE 不是一个从零写的编辑器它的底子是 Eclipse 加 CDT 插件外面套了一层龙芯自己做的壳。这么做的好处是省事Eclipse 本身有工程管理、代码编辑、语法高亮、断点调试这些成熟功能龙芯只需要把交叉编译工具链、芯片配置文件、下载和调试的后端接进去就行。所以你在 LoongIDE 里看到的界面很多地方和用 Eclipse 开发 Java 是相似的左边是工程资源管理器中间是编辑区下面是控制台和问题面板。但正因为底子是 Eclipse它对 Java 运行时环境有硬性依赖。Eclipse 是用 Java 写的没有 Java 虚拟机它根本起不来。老版本的 LoongIDE 通常对应较老的 JDK比如 JDK 1.6 到 1.7 这个区间新一些的版本可能兼容到 JDK 8。这里是个大坑很多人装完 LoongIDE 一启动就闪退或者报找不到主类的错九成是因为 Java 版本不匹配。所以在装 LoongIDE 之前先把 Java 的事情理清楚能省掉后面一大半的排查时间。提示LoongIDE 版本和 JDK 版本是强绑定关系安装前务必翻一下随套件附带的说明文档确认它要求的 Java 版本不要随手就装最新版。1.3 什么人适合照着这篇流程走这篇内容主要面向三类人。第一类是高校里上嵌入式课程的学生实验室发了板子和资料但老师不一定手把手教安装环境第二类是参加相关培训或者做毕设的同学需要在几天内把环境跑通、把示例程序烧进去看到现象第三类是想拿龙芯 1B 做点小控制项目的工程师图它国产、便宜、外设全。无论哪一类安装环境这件事都躲不开而且学校机房的电脑环境往往比较乱杀毒软件、系统权限、串口驱动都可能出问题这些我都会在后面的排查部分专门讲。需要提前说明的是龙芯 1B 属于比较早期的产品官方资料和社区讨论的时效性参差不齐网上有些帖子写的步骤和现在的安装包对不上。我的做法是凡是涉及具体版本号和路径的地方我都会讲清楚判断依据你自己环境不一样的时候可以按这个思路去调整而不是死记硬背。2. 装之前先把依赖项摸清楚2.1 硬件和操作系统的底线要求先说硬件。开发机本身不需要多强一台普通的 x86 电脑就够双核加 4G 内存跑 LoongIDE 和编译都绰绰有余因为交叉编译本身吃资源不多。真正要留意的是接口你的电脑得有可用的串口或者说有一个能当串口用的 USB 口。现在的笔记本基本都没有原生串口了所以通常要配一根 USB 转串口线线里的芯片可能是 CH340、PL2303 或者 FT232不同芯片驱动不一样这直接决定了你后面装驱动要装哪个。操作系统方面老版本 LoongIDE 一般是在 Windows XP 或 Windows 7 上开发和验证的Win7 32 位兼容性最好。如果你手上是 Win10 或 Win11多数情况下也能跑但需要额外注意两点一是安装路径和工程路径都别带中文和空格老工具对非 ASCII 路径的处理经常出问题二是安装和运行时最好用管理员权限避免工具往系统目录写配置文件被拦下来。我自己在 Win10 上装过整体能用只是在驱动签名和权限上折腾了一阵。至于目标板这一侧你需要确认板子的供电方式、串口是哪个口、波特率是多少。开发学习套件的底板一般会印清楚串口默认通信参数常见的是 115200 波特率、8 位数据位、无校验、1 位停止位。这些参数在后面配置 LoongIDE 和串口终端时都要用到先记下来。2.2 Java运行时环境怎么选、怎么装Java 这一块是重中之重。LoongIDE 需要的不是完整的 JDK大多数情况下一个 JRE 就够它启动但如果你要写点 Java 小程序或者用它的某些插件功能装 JDK 更省心。判断该装哪个版本最快的办法是打开 LoongIDE 安装目录下的配置文件通常能看到类似-vm参数或者对 Java 版本的说明。如果文档写着需要 JDK 1.6你就别装 1.8反过来也一样。安装 Java 的时候有一步特别关键就是配置环境变量。装了 JRE/JDK 之后系统里需要能通过JAVA_HOME找到它并且把 Java 的可执行文件目录加进PATH。这样在命令行敲java -version才能看到版本号。如果你敲完报不是内部或外部命令那就是环境变量没配好LoongIDE 大概率也起不来。验证的时候看输出的版本号是否和你预期一致这一步很多人跳过结果后面一直报莫名其妙的错。# 检查 Java 是否可用及版本 java -version # 若已配置 JAVA_HOME可继续确认 echo %JAVA_HOME%Windows 下配置环境变量的位置在此电脑 - 属性 - 高级系统设置 - 环境变量里用户变量和系统变量都可以建议改系统变量免得换用户登录就失效。配置完之后一定要新开一个命令行窗口因为环境变量对已经打开的窗口不生效这个细节坑过不少人。注意如果机器上同时装了多个版本的 JavaPATH里排在前面的那个生效。LoongIDE 启动时实际用的是哪个 Java可以在它的启动参数里显式指定避免被系统里其他 Java 干扰。2.3 交叉工具链和串口驱动的前置准备交叉工具链是真正干活的编译器。它一般是一个压缩包解压之后里面有bin目录里面有mipsel-linux-gcc之类的一堆可执行文件。这个工具链有两种用法一是把它所在目录加到系统PATH里全局可用二是不加PATH直接在 LoongIDE 里配置工具链路径指向它。我更推荐第二种因为开发机上往往还装着别的工具链全局PATH一乱编译时调用的到底是哪个编译器都说不清排查起来很痛苦。在 LoongIDE 里显式指定路径能保证用的就是龙芯配的这一套。工具链解压同样要遵守无中文、无空格的原则最好放在盘的根目录下一级比如D:\LS1B\toolchain。为什么这么讲究因为编译脚本里经常会拼接路径空格会被当成参数分隔符中文在某些编码下会变成乱码最后报的错往往是找不到文件让人一头雾水。串口驱动则是连接目标板的前提。USB 转串口线插上电脑后正确装好驱动的话在设备管理器里能看到新增一个 COM 端口比如 COM3、COM4具体编号记下来。如果设备管理器里出现的是带黄色感叹号的未知设备那就是驱动没装对得根据线里的芯片型号去装对应驱动。这个 COM 号后面配 PMON 连接和 LoongIDE 下载时都要填填错就连不上。3. LoongIDE安装全过程拆解3.1 安装包获取与解压位置的选择套件附带的光盘或者资料包里通常会有 LoongIDE 的安装文件。它的形式可能是 exe 安装程序也可能是一个绿色压缩包解压即用。拿到之后第一件事不是急着双击而是先确认几样东西文件是否完整有没有杀毒软件把它当威胁删掉了部分内容、版本号是多少、随包有没有 README 或者安装说明。很多人装环境失败其实问题就出在安装包被安全软件拦截了压出来的文件少那么一两个运行起来自然报错。解压或者安装的位置我再强调一遍路径里不要有中文、不要有空格、不要太深。推荐像D:\LoongIDE这样干净利落的位置。为什么不要太深因为老工具对长路径支持不好Windows 路径长度超过一定字符数可能会出问题工具链一层套一层路径太长很容易触发这类边界 bug而这种 bug 报出来的错误信息往往和真实原因八竿子打不着非常难查。如果安装包是 exe双击之后按向导走就行一般会让你选安装目录、是否创建桌面快捷方式。安装目录按前面说的选。安装过程中如果杀毒软件弹窗询问是否允许你要确认这一步是可信的否则可能被拦。安装完成后先别急着配置确认一下安装目录里的结构通常会有主程序、配置目录、文档目录这几块。3.2 主程序首次启动与工作空间设置第一次启动 LoongIDE它会问你工作空间workspace放在哪。工作空间就是它存放工程、配置、索引文件的目录你可以理解成它的项目仓库。这个目录同样要遵守无中文无空格的规矩建议单独建一个目录比如D:\LS1B\workspace。为什么单独建因为工作空间会随使用不断变大里面还有各种缓存混在系统盘或者别的项目目录里一是占地方二是删除重建的时候容易误删单独放一个干净的目录出问题直接清空重来最省事。启动过程中如果 Java 环境有问题这一步就会暴露出来要么闪退要么弹一个报错框提示找不到 Java 虚拟机或者版本不符。遇到这种情况回去检查java -version和环境变量或者干脆在 LoongIDE 的启动配置里手动指定 Java 的绝对路径。顺利进入主界面之后你会看到一个类似 Eclipse 的布局这时先熟悉一下菜单结构重点记住两个地方一个是首选项Preferences里放工具链和调试器配置另一个是新建工程的入口。有人会问工作空间以后能不能改能改但一旦换了工作空间原来的工程不会自动跟过去需要重新导入。所以第一次就把位置定好后面别老折腾能省不少事。我见过有同学每次装都不选默认丢到 C 盘用户目录结果系统重装或者换账户之后工程全丢了这个坑完全可以避免。3.3 工具链路径配置与编译环境验证进入主界面后接下来是最核心的一步把交叉工具链接进 LoongIDE。打开首选项找到和工具链、编译相关的配置项把编译器路径指向你前面解压的工具链bin目录。有的版本还需要分别指定 C 编译器、C 编译器、链接器、汇编器的完整路径虽然它们都在同一个bin目录下但工具界面就是一个一个让你填耐心点全部对准。配置完成之后怎么验证别急着建大工程先建一个最简单的测试工程写一个只打印一行字符的main函数编译一下。如果编译通过控制台会输出编译过程信息最后生成一个可执行文件这就说明工具链通了。如果报错说找不到某个命令那多半是路径填错或者工具链解压不完整。这一步的价值在于用最小的成本验证环境把工具链问题和工程配置问题分离开后面调试板子的时候心里就有底。# 命令行里也可以用工具链直接编译交叉验证环境是否正常 mipsel-linux-gcc -v mipsel-linux-gcc hello.c -o hello.elf我习惯在用 LoongIDE 之前先在命令行手动编译一个 hello 程序确认工具链本身是好的。这样进到 IDE 里如果编译失败基本可以判断是 IDE 配置问题而不是工具链坏掉。这种分层验证的思路在排查嵌入式环境问题的时候特别有用一次只怀疑一个环节比一股脑全怀疑效率高得多。提示工具链里的-v参数能打印版本和编译选项如果它输出的目标平台信息里带 mipsel 字样说明这套工具链就是给龙芯 1B 这类小端 MIPS 芯片用的方向没错。4. 接上目标板跑起第一个程序4.1 串口驱动安装与端口号确认板子接电脑这一步物理上是拿 USB 转串口线一头插电脑 USB 口一头接到底板串口。有的套件用的是板载 USB 转串口那就省了外接线。插好之后打开设备管理器看端口分类下有没有新增的设备。正常情况下能看到类似USB-SERIAL CH340 (COM3)这样的条目括号里的 COM3 就是端口号记下来。如果设备带黄色感叹号说明驱动没装好。处理办法是查清楚线的芯片型号去装对应驱动。CH340、PL2303、FT232 是常见的三种驱动不通用装错了照样不认。这里有个细节某些系统更新后系统自带的老驱动会和芯片不匹配表现为设备能识别但通信异常这时候要手动更新驱动、指定一个已知版本。这类问题看着琐碎但它是板子连不上最常见的根源之一。端口号还有一个坑就是它会变。同一根线换了个 USB 口插端口号可能从 COM3 变成 COM5所以每次联调前都重新确认一下当前端口号别拿着上次的配置直接用连不上还以为板子坏了。我一般会在设备管理器里对着端口号多看一眼这个习惯帮我省掉了大量无谓的排查。4.2 新建工程时的关键参数设置工程配置是决定程序能不能跑到板子上的关键。新建工程的时候除了工程名和路径通常还要选目标芯片型号、工具链、链接脚本和启动文件。芯片型号要选对比如 LS1B 就选对应的那个链接脚本决定了程序各段放在内存的哪个地址这块搞错了程序即使编译通过烧进去也不跑或者跑飞。这里要理解一个概念龙芯 1B 的程序启动方式和单片机不一样。板子上有 PMON 引导程序它负责把 Flash 里的程序搬运到内存里执行。你的程序如果是放在 Flash 里由 PMON 加载的链接地址就要按 Flash 和内存的映射关系来定如果是打算直接下载到内存里运行的调试程序链接地址又不一样。套件附带的示例工程一般已经配好了这些参数最稳妥的做法是直接拿官方示例工程当模板改改里面的代码别从零配链接脚本那是给自己找麻烦。工程里一般还会有一个和下载、调试相关的配置项要填串口号、波特率、下载方式。波特率必须和 PMON 的设置一致用户手册上写了多少就填多少常见是 115200。下载方式常见的有串口下载和网络下载两种用串口的话就选串口、填 COM 号。这些参数和前面记下来的信息对应上工程就能连板子了。4.3 编译、下载到运行的现象验证配置好之后点编译看控制台输出。编译成功会生成目标文件通常是 elf 格式或者二进制格式。接下来是下载LoongIDE 会通过你配置的串口或网络把程序传给 PMON由 PMON 写到指定位置或者直接跳到内存里执行。下载过程可以在串口终端里看到 PMON 的提示信息这其实是个很好的观察点终端里刷出来的信息能告诉你通信是否正常、数据是否传完。下载完成之后复位或者按提示操作板上应该能看到现象比如某个 LED 亮了、串口打印出你写的字符、数码管显示数字。第一次看到现象的那一刻前面的折腾就都值了。如果没现象先看串口终端里有没有打印有打印说明程序跑起来了只是外设配置可能不对没打印那就要怀疑程序没下进去或者启动地址不对。这里有个经验值得分享第一次联调别急着写复杂程序就点个灯、打个字符把整条链路走通。链路通了之后再往里加功能出问题也容易定位。很多人一上来就写一堆代码结果编译下载都过了但板子没反应然后从代码逻辑一路怀疑到硬件排查成本极高。先把最小可运行程序跑通是最划算的策略。5. 装完连不上这些坑我替你踩过了5.1 常见报错与解决思路速查安装和联调过程中会冒出各种各样的报错我把最常见的几类整理成表方便对着查。要说明的是报错信息只是表象真正的解法往往要先想清楚它对应的环节是哪一层。现象或报错大概率原因处理办法LoongIDE 启动闪退提示找不到 JavaJava 未装或版本不匹配装对应版本 JRE/JDK配置 JAVA_HOME 和 PATH编译报找不到编译器命令工具链路径未配置或含中文空格重新指定工具链 bin 目录移到无中文路径编译通过但下载无反应串口号或波特率填错重新确认设备管理器端口号和 PMON 波特率设备管理器出现黄色感叹号串口驱动未装或不匹配芯片按芯片型号装对应驱动必要时更新驱动程序下载了但板子不跑链接地址或启动配置不对对照官方示例工程检查链接脚本和启动文件编译报路径过长、找不到文件路径太深或含特殊字符把工程和工具链移到浅层纯英文路径安装包解压文件缺失被安全软件拦截关闭或放行安全软件后重新解压看这个表的时候要注意同一个现象可能对应好几个原因排查时按从外到内的顺序来先确认硬件连接和驱动再确认端口和通信参数最后才是软件配置和代码。这样一层层排除比乱试要快得多。5.2 几条只有踩过才知道的实战经验第一条关于杀毒软件。老版本的安装程序、工具链里的一些小工具经常被杀毒软件误判。表现是安装到一半失败或者解压出来少文件或者运行时某个进程被拦。处理办法是在安装和首次运行期间把相关目录加入白名单或者临时关掉实时防护。装完之后再把防护打开不影响安全。第二条关于 Java 多版本共存。开发机上经常同时有好几个项目一个要 JDK 8一个要 JDK 17。这时候系统PATH里的 Java 到底是哪个很容易搞混。解决办法是给 LoongIDE 的启动器单独指定 Java 路径不走系统默认。LoongIDE 的启动配置文件一般是 ini 文件里有-vm参数可以指定 Java 可执行文件的绝对路径把它指到你确认过的那个版本就能避免被系统里别的 Java 干扰。这个小技巧能解决很多昨天还好好的今天突然起不来的怪问题。第三条关于工作空间和工程备份。环境配好、第一个程序跑通之后立刻把整个工作空间目录复制一份备份。因为嵌入式环境有时候会因为系统更新、驱动变化、误操作而坏掉重装一遍环境少说要半天。有备份的话直接恢复目录几分钟搞定。我自己给每个做过的板子都留了一份配好的工作空间换机器的时候直接搬过去省了大量重复劳动。第四条别忽视用户手册里的连接示意图。板子怎么供电、串口跳线怎么插、下载模式怎么选这些硬件上的小开关图纸上写得清清楚楚但很多人不看凭感觉插结果连不上还以为是软件问题。硬件配置错误导致的问题软件层面怎么调都没用先把硬件对照手册确认一遍是性价比最高的一步。5.3 环境装好之后还能怎么往前走环境通了以后学习路径其实很清晰。先用官方示例把各个外设过一遍串口收发、GPIO 点灯、定时器、中断这些是嵌入式的基本功龙芯 1B 的示例基本都覆盖了。然后可以试着把几个外设组合起来做个小项目比如用按键控制 LED、用串口接收命令控制板子状态把输入输出这条链路彻底打通。再往后就是研究 PMON 的启动流程、自己写链接脚本、理解程序从 Flash 到内存的搬运过程这一步是从会用到懂原理的分水岭。我个人在带人入门的时候会建议大家养成一个习惯每做完一个小实验就在串口终端里把关键信息打印出来看一眼。嵌入式开发和纯软件开发最大的不同就是你看不到程序内部的变量串口打印几乎是唯一的眼睛。把串口用熟练了调试效率会成倍提升。龙芯 1B 虽然芯片不算新但正因为它结构清晰、资料集中反而是理解嵌入式系统从启动到运行整条链路的很好载体。把 LoongIDE 这套环境装明白、把第一个程序跑起来后面的事情就顺理成章了。