ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

中科蓝讯RV32开发环境搭建避坑指南:CodeBlocks与工具链配置

中科蓝讯RV32开发环境搭建避坑指南:CodeBlocks与工具链配置 1. 为什么中科蓝讯RV32开发环境值得单独写一篇避坑指南中科蓝讯的RV32系列芯片在蓝牙音频、TWS耳机、智能穿戴这些领域出货量非常大很多做嵌入式音频产品的团队都在用它。但凡是第一次接触这套工具链的人几乎都会在环境搭建这一步卡住——不是CodeBlocks启动报错就是RV32-Toolchain死活编译不过再不然就是编译通过了但烧录进去没反应。我自己前前后后在不同机器上搭过七八次这套环境从Windows 7到Windows 11都试过踩的坑足够写一本小册子。这套环境的核心其实就两块一个是CodeBlocks 17.12作为IDE另一个是RV32-Toolchain作为交叉编译工具链。听起来简单但中科蓝讯用的CodeBlocks不是官方原版而是经过定制的版本里面集成了他们自己的编译器配置、烧录插件和工程模板。这就导致一个问题网上能找到的CodeBlocks教程基本都是针对官方原版的直接照搬过来大概率会出问题。比如那个经典的thesaurus files \spellchecker\th_en_us.idx not found报错就是定制版CodeBlocks的一个典型症状。这篇文章适合三类人看第一类是刚拿到中科蓝讯开发板、准备从零搭建环境的嵌入式新手第二类是之前用Keil或者IAR做开发、第一次转到RV32平台的老手第三类是环境搭了一半卡住了、想找具体报错解决方案的开发者。我会把整个搭建流程拆开讲每个步骤都说明为什么这么做以及不做会出什么问题。重点放在那些官方文档里不会写、但实际一定会遇到的坑上。需要提前说明的是中科蓝讯的SDK和工具链版本迭代比较快不同芯片型号比如AB53系列、AB56系列对应的工具链版本可能不一样。我下面讲的是通用流程和排查思路具体版本号请以你拿到的SDK包里的说明为准。另外所有操作都在Windows环境下进行这也是中科蓝讯官方支持最好的平台。2. 装之前先把这些准备工作做扎实2.1 确认你拿到的工具链包是否完整中科蓝讯的RV32-Toolchain通常不会单独提供而是跟着SDK一起打包给你的。拿到压缩包之后先别急着解压检查一下文件结构。一个完整的工具链包一般包含这几个目录bin存放riscv32-unknown-elf-gcc等可执行文件、lib库文件、include头文件、riscv32-unknown-elf目标平台相关文件。如果解压后发现缺少bin目录或者bin里面没有gcc可执行文件那这个包大概率是不完整的需要重新找FAE要。我遇到过好几次这种情况从同事那里拷贝过来的工具链包解压后编译报错riscv32-unknown-elf-gcc: not found查了半天才发现是拷贝过程中杀毒软件把gcc.exe当成可疑文件给隔离了。所以解压之后第一件事就是打开bin目录确认里面至少有riscv32-unknown-elf-gcc.exe、riscv32-unknown-elf-objcopy.exe、riscv32-unknown-elf-ld.exe这几个关键文件。如果杀毒软件弹窗拦截了一定要选择信任或恢复否则后面编译必然失败。另外要注意路径问题。工具链的存放路径绝对不能包含中文和空格。我见过有人把工具链放在D:\我的项目\中科蓝讯\工具链下面结果CodeBlocks调用gcc时直接报错因为Makefile里的路径解析不了中文。正确的做法是放在纯英文、无空格的路径下比如D:\RV32\toolchain或者C:\BlueTrum\toolchain。这个规则对SDK工程目录同样适用整个开发路径链路都要保证纯英文。2.2 CodeBlocks 17.12定制版的来源与校验中科蓝讯提供的CodeBlocks 17.12通常是定制版安装包大小在100MB到200MB之间取决于是否捆绑了MinGW。官方原版的CodeBlocks 17.12不带编译器需要自己配MinGW但中科蓝讯的定制版一般会预置好编译器路径和工程模板省去很多配置工作。拿到安装包后先核对一下版本信息。打开安装包属性看看数字签名或者发布者信息。有些第三方渠道流传的中科蓝讯定制版CodeBlocks其实是被人重新打包过的里面可能夹带了其他东西。最稳妥的方式是直接从官方FAE或者公司内部共享盘获取。安装的时候建议选择Full installation不要选Minimal因为定制版的一些插件比如烧录工具集成插件在Minimal模式下不会安装。安装路径同样要遵循纯英文无空格原则。我一般习惯装在C:\CodeBlocks或者D:\CodeBlocks不要装在Program Files下面因为那个路径带空格某些老版本的Makefile处理不了。安装完成后先别急着打开右键点击快捷方式选择以管理员身份运行这样可以避免后续因为权限问题导致配置文件写入失败。2.3 系统环境变量的清理与预留在安装工具链之前建议先检查一下系统环境变量里的PATH。如果你之前装过其他RISC-V工具链比如SiFive的或者平头哥的或者装过多个版本的MinGWPATH里可能已经存在冲突的gcc路径。这种情况下即使你装好了中科蓝讯的工具链CodeBlocks调用gcc时也可能调到错误的版本上去。我的做法是先打开命令行输入where gcc和where riscv32-unknown-elf-gcc看看当前系统里有没有已经注册的编译器。如果有记下路径然后在安装中科蓝讯工具链时把它的bin目录加到PATH的最前面或者干脆在CodeBlocks里手动指定编译器路径不走系统PATH。后者更稳妥因为不会影响其他项目的编译环境。还有一个容易被忽略的点Windows的PATH变量有长度限制虽然Windows 10之后放宽了很多但老版本仍然有1024字符的限制。如果你的PATH已经很长了再加工具链路径可能导致截断。这时候可以考虑用CodeBlocks的全局变量功能来管理工具链路径而不是硬塞进系统PATH。3. CodeBlocks 17.12安装过程中的那些坑3.1 安装卡在Extracting files不动了怎么办这个问题我遇到过至少三次表现是安装进度条走到某个百分比通常是70%到90%之间就卡住等十分钟都没反应。一开始以为是安装包坏了重新下载了好几次后来发现原因其实很简单杀毒软件在实时扫描安装包解压出来的文件。CodeBlocks定制版里包含了很多小文件尤其是编译器相关的头文件和库文件安装程序解压这些文件时杀毒软件会逐个扫描导致安装过程变得极慢甚至卡死。解决办法有两个一是在安装前暂时关闭杀毒软件的实时防护安装完成后再打开二是把安装包和安装目标目录都加到杀毒软件的排除列表里。如果已经卡住了不要直接强制结束进程那样可能留下不完整的安装目录。正确的做法是打开任务管理器找到安装程序进程先结束它然后手动删除安装目录下的所有文件重新安装。重新安装前记得把杀毒软件排除项配好。3.2 启动时报thesaurus files \spellchecker\th_en_us.idx not found的根因这个报错几乎是中科蓝讯定制版CodeBlocks的标配——十个新手里有八个会遇到。报错内容是说找不到拼写检查器的词库文件th_en_us.idx。这个文件是CodeBlocks的拼写检查插件SpellChecker用的官方原版会自带但中科蓝讯定制版在打包时可能为了减小体积把它去掉了或者安装过程中被杀毒软件误删了。这个报错本身不影响编译和烧录你点确定之后CodeBlocks照样能用。但每次启动都弹一下很烦人而且有些新手会误以为环境没装好反复重装浪费大量时间。彻底解决的方法有三种第一种直接禁用拼写检查插件。打开CodeBlocks进入Plugins菜单选择Manage plugins找到SpellChecker把它禁用掉。这样启动时就不会再加载词库文件报错自然消失。这是最省事的做法反正写嵌入式代码也不太需要拼写检查。第二种手动补上词库文件。从官方原版CodeBlocks的安装目录里找到share\CodeBlocks\SpellChecker\th_en_us.idx拷贝到定制版对应的目录下。注意路径要一致否则还是找不到。这个方法的缺点是不同版本的CodeBlocks目录结构可能略有差异需要自己核对。第三种修改配置文件跳过检查。找到CodeBlocks的用户配置目录通常在%APPDATA%\CodeBlocks下打开default.conf搜索SpellChecker相关的配置项把CheckAtStartup改成false。这个方法比较绕不推荐新手操作。提示如果你后续要用CodeBlocks的代码补全功能禁用SpellChecker不会有任何影响。这两个是独立的插件。3.3 编译器自动检测失败的手动配置方法CodeBlocks首次启动时会自动扫描系统里的编译器但中科蓝讯的RV32-Toolchain不是标准MinGW自动检测大概率识别不到。表现是新建工程后点编译提示编译器未配置或者直接找不到gcc。这时候需要手动配置编译器。步骤是打开Settings菜单选择Compiler在Selected compiler下拉框里选择GNU GCC Compiler如果没有就选GNU ARM GCC Compiler或者新建一个然后切换到Toolchain executables标签页。在Compilers installation directory里填入工具链的根目录比如D:\RV32\toolchain。填完之后下面的C compiler、C compiler、Linker for dynamic libs等字段会自动填充你需要核对一下它们指向的可执行文件名是否正确。中科蓝讯的RV32-Toolchain里C编译器通常是riscv32-unknown-elf-gcc.exeC编译器是riscv32-unknown-elf-g.exe链接器是riscv32-unknown-elf-ld.exe调试器是riscv32-unknown-elf-gdb.exe。如果自动填充的名字不对手动改过来。改完之后点OK保存。这里有个细节要注意Toolchain executables页面里有一个Additional Paths选项如果工具链依赖一些动态库比如libwinpthread-1.dll需要把库所在目录也加进去。否则编译时可能报找不到xxx.dll的错误。中科蓝讯的工具链一般把这些dll放在bin目录下所以把bin目录加到Additional Paths里就行。4. RV32-Toolchain的部署与验证4.1 工具链目录结构的正确理解很多人拿到RV32-Toolchain后直接解压到某个目录就开始用结果编译时报各种找不到头文件、找不到库的错误。根本原因是没有理解工具链的目录结构。一个标准的RV32-Toolchain目录长这样toolchain/ ├── bin/ # 可执行文件 ├── include/ # 通用头文件 ├── lib/ # 通用库文件 ├── riscv32-unknown-elf/ # 目标平台专用文件 │ ├── include/ # 平台相关头文件 │ ├── lib/ # 平台相关库文件 │ └── sysroot/ # 系统根目录 └── share/ # 文档和示例编译时gcc会去riscv32-unknown-elf/include和riscv32-unknown-elf/sysroot/usr/include下面找头文件去riscv32-unknown-elf/lib下面找库文件。如果你把工具链解压到了一个非标准路径或者解压过程中目录层级变了gcc就找不到这些文件。我建议解压后先检查一下riscv32-unknown-elf目录是否存在以及里面是否有include和lib子目录。如果缺少说明工具链包不完整或者解压方式不对。有些压缩包解压后会多一层目录比如toolchain-v1.0/toolchain/...需要把内层的toolchain目录提出来否则路径就多了一层。4.2 用命令行验证工具链是否可用在配置CodeBlocks之前先在命令行里验证一下工具链本身能不能正常工作。打开CMD或者PowerShellcd到工具链的bin目录输入riscv32-unknown-elf-gcc --version如果输出类似riscv32-unknown-elf-gcc (GCC) 10.2.0的版本信息说明工具链基本可用。如果提示不是内部或外部命令说明PATH没配好或者文件缺失。这时候可以试试用绝对路径调用D:\RV32\toolchain\bin\riscv32-unknown-elf-gcc.exe --version如果绝对路径能调用成功那就是PATH的问题如果绝对路径也报错那就是文件本身有问题需要重新获取工具链包。接下来做一个更完整的验证写一个最简单的C文件用工具链编译一下。新建一个test.c内容如下int main(void) { volatile int a 1; volatile int b 2; return a b; }然后在命令行里执行riscv32-unknown-elf-gcc -c test.c -o test.o如果没有报错并且生成了test.o文件说明工具链的编译功能正常。再试试链接riscv32-unknown-elf-gcc test.o -o test.elf如果链接也通过说明工具链的库文件路径配置正确。这一步很重要因为有些工具链包虽然gcc能运行但库文件缺失编译单个文件没问题一链接就报错。提前在命令行验证可以避免在CodeBlocks里浪费时间排查。4.3 环境变量配置的两种方式对比工具链的路径可以通过两种方式让CodeBlocks找到一种是配系统PATH另一种是在CodeBlocks里手动指定。两种方式各有优劣我列个表对比一下配置方式优点缺点适用场景系统PATH命令行和IDE都能用一次配置全局生效可能与其他工具链冲突PATH过长可能截断只装一套工具链的机器CodeBlocks手动指定不影响系统环境多版本共存方便命令行下无法直接调用每个工程都要确认配置同时维护多个芯片平台的开发者我个人的习惯是主力开发机上只装中科蓝讯这一套工具链配系统PATH这样命令行调试和IDE编译都方便。但如果你的机器上还有ESP32、STM32等其他平台建议用CodeBlocks手动指定避免PATH冲突。具体做法就是在Settings→Compiler→Toolchain executables里填绝对路径不依赖系统PATH。还有一个折中方案用CodeBlocks的全局变量Settings→Global variables来管理工具链路径。新建一个变量比如RV32_TOOLCHAIN值设为工具链根目录然后在编译器配置里用$(RV32_TOOLCHAIN)\bin来引用。这样切换工具链版本时只需要改一个变量不用动编译器配置。5. 工程配置与首次编译的完整链路5.1 导入SDK工程时Makefile的路径适配中科蓝讯的SDK工程通常自带Makefile用CodeBlocks导入后可以直接编译。但导入过程中最容易出问题的就是Makefile里的路径。SDK自带的Makefile一般用相对路径引用工具链和源码比如../../toolchain/bin/riscv32-unknown-elf-gcc。如果你把SDK和工具链的目录结构改了这些相对路径就失效了。导入工程之前先打开SDK根目录下的Makefile或者Makefile.def、config.mk之类的配置文件找到TOOLCHAIN_DIR、CC、AR这些变量的定义。确认它们指向的路径与你的实际目录结构一致。如果不一致有两种改法一是改Makefile里的路径二是调整目录结构让相对路径成立。我一般倾向于后者因为改Makefile可能导致后续SDK升级时合并冲突。具体来说中科蓝讯SDK的标准目录结构通常是这样的sdk_root/ ├── toolchain/ # 工具链目录 ├── apps/ # 应用代码 ├── include/ # 公共头文件 ├── lib/ # 库文件 └── Makefile如果你把工具链放在了sdk_root外面就需要改Makefile里的TOOLCHAIN_DIR。如果放在sdk_root里面保持默认的相对路径就行。导入工程时在CodeBlocks里选择File→Open找到Makefile所在的目录CodeBlocks会自动识别为Makefile工程。5.2 编译选项里容易配错的几个参数工程导入后在编译之前检查一下编译选项。右键工程选择Properties进入Build targets标签页。这里有几个关键参数容易配错第一个是Compiler选项。确保选中的是你刚才配置好的RV32编译器而不是默认的GNU GCC。如果下拉框里没有说明编译器配置那一步没做对需要回去检查。第二个是Make commands里的Build project/target命令。默认是$make -f $makefile这个一般不用改。但如果你的Makefile文件名不是标准的Makefile比如叫makefile.mk就需要在这里指定。第三个是Execution directory。这个参数指定了Make命令在哪个目录下执行。如果Makefile里用了相对路径而这个参数配错了就会导致找不到文件。通常设为$(PROJECT_DIR)就行也就是工程文件所在目录。还有一个隐藏的坑CodeBlocks默认会把编译输出显示在Build log里但如果Makefile用了颜色输出或者特殊字符日志可能会乱码。这时候可以在Settings→Environment→General settings里把Console output encoding改成UTF-8或者直接在Makefile里加--no-print-directory参数减少输出。5.3 首次编译报错的排查顺序第一次编译大概率不会一次通过这很正常。关键是要有系统的排查顺序不要东改一下西改一下。我的排查顺序是这样的第一步看报错的第一行。Make的报错会级联第一行才是根因后面的都是连锁反应。比如第一行报riscv32-unknown-elf-gcc: command not found那后面的recipe for target failed都不用看问题就是编译器路径没配好。第二步确认是工具链问题还是代码问题。如果报错涉及stdio.h、stdlib.h这类标准头文件找不到那是工具链的include路径问题。如果报错涉及项目自己的头文件找不到那是工程配置里的include路径问题。两者排查方向完全不同。第三步检查路径中的空格和中文。这是最隐蔽也最常见的问题。Makefile对空格极其敏感路径里有一个空格就可能导致命令解析错误。中文路径则可能导致编码问题。用echo %CD%确认当前目录确保全英文无空格。第四步单独编译一个文件试试。如果整个工程编译报错太多可以先在命令行里单独编译一个源文件比如riscv32-unknown-elf-gcc -c apps/main.c -I include -o main.o。如果能通过说明工具链和头文件路径没问题问题出在Makefile的批量编译逻辑上。5.4 编译通过但烧录没反应的检查点编译通过、生成了.bin或.elf文件但烧录到板子上没反应这种情况也很常见。排查思路如下先确认生成的固件文件是否正确。用riscv32-unknown-elf-objdump -h your_firmware.elf查看段信息确认.text段有内容大小不为0。如果.text段大小为0说明链接脚本有问题代码没有被正确链接进去。再确认烧录地址是否正确。中科蓝讯的芯片通常有固定的烧录起始地址比如0x00000000或者0x10000000。如果烧录工具里的地址配错了固件写到了错误的位置芯片上电后自然找不到代码。这个地址信息一般在SDK的链接脚本.ld文件里搜索MEMORY关键字可以看到。最后确认烧录工具本身的配置。中科蓝讯一般提供专用的烧录工具需要选择正确的芯片型号、通信接口USB或串口和波特率。如果烧录工具提示烧录成功但板子没反应可以试试降低波特率或者换一根USB线有些线只供电不传数据。6. 那些官方文档不会告诉你的实操经验6.1 工具链版本与SDK版本的匹配问题中科蓝讯的SDK和工具链是有版本对应关系的。用错了版本轻则编译报错重则生成的固件运行异常。比如AB53系列早期SDK用的是GCC 6.3.0的工具链后期升级到了GCC 10.2.0。如果你拿GCC 10.2.0的工具链去编译早期SDK可能会遇到-march参数不兼容的问题。判断版本是否匹配的方法打开SDK根目录下的release_notes.txt或者README.md里面通常会写明本版本SDK需要配合xxx版本的工具链使用。如果没有这个文件可以看SDK里Makefile中指定的-march和-mabi参数然后对比工具链支持的参数列表。比如-marchrv32imc要求工具链支持RV32IMC指令集如果工具链只支持RV32I编译就会报错。我个人的经验是SDK和工具链一定要用同一个发布包里的。中科蓝讯在发布SDK时通常会把匹配的工具链一起打包。如果你从不同渠道分别获取了SDK和工具链版本不匹配的风险很高。实在需要混用先在命令行里编译一个最简单的工程验证一下不要直接上完整项目。6.2 多工程共存时的配置隔离技巧如果你同时维护多个中科蓝讯的项目比如一个AB53的耳机项目和一个AB56的音响项目这两个项目可能用不同版本的SDK和工具链。这时候如果都用系统PATH里的同一个工具链必然有一个项目编译不过。解决办法是用CodeBlocks的工程级编译器配置。具体操作是在Settings→Compiler里复制一份编译器配置命名为RV32-AB53和RV32-AB56分别指向不同版本的工具链。然后在每个工程的Properties→Build targets里选择对应的编译器。这样两个工程可以共存互不干扰。另一个技巧是用符号链接。在Windows上可以用mklink /D命令创建目录链接把不同版本的工具链链接到不同的路径下然后在Makefile里用变量控制。这个方法稍微复杂一些适合对Windows命令行比较熟悉的开发者。6.3 编译速度优化的几个实用手段中科蓝讯的SDK工程文件数量不少全量编译一次可能要几分钟。如果每次改一行代码都全量编译开发效率会很低。几个优化手段开启并行编译。在CodeBlocks的Build targets里把Make commands的Build project/target改成$make -j8 -f $makefile其中-j8表示用8个线程并行编译。具体数字根据你CPU的核心数来定一般设为核心数的1.5到2倍。这个改动可以让编译速度提升好几倍。使用ccache。ccache是一个编译缓存工具可以缓存之前的编译结果重复编译同样的文件时直接命中缓存速度极快。中科蓝讯的工具链一般不带ccache需要自己下载一个Windows版的ccache然后在Makefile里把CC变量改成ccache riscv32-unknown-elf-gcc。第一次编译会慢一些要填充缓存后续编译速度提升非常明显。只编译修改过的文件。Make本身支持增量编译但前提是依赖关系配置正确。如果Makefile里的依赖关系不完整改了一个头文件可能导致所有文件都重新编译。检查Makefile里是否有-MMD -MP参数这两个参数会让gcc自动生成依赖文件确保增量编译的准确性。6.4 常见报错速查与对应处理我把这些年遇到的高频报错整理成了一个速查表方便大家快速定位报错信息根因处理方法riscv32-unknown-elf-gcc: not found工具链路径未配置或文件缺失检查PATH或CodeBlocks编译器配置确认bin目录下有gcc.exethesaurus files \spellchecker\th_en_us.idx not found拼写检查插件词库缺失禁用SpellChecker插件或补上词库文件cannot find -lc工具链库文件路径错误检查riscv32-unknown-elf/lib目录是否存在确认sysroot配置undefined reference to _start链接脚本或启动文件缺失检查链接脚本是否正确指定确认启动汇编文件已加入工程region RAM overflowed by xxx bytes代码或数据超出芯片RAM容量优化代码体积检查是否有大数组或未使用的全局变量error: unrecognized command line option -marchrv32imc工具链版本不支持该指令集更换匹配版本的SDK和工具链make: *** No rule to make target xxx.oMakefile依赖关系错误或文件缺失检查源文件是否存在确认Makefile里的路径配置这个表建议保存下来遇到报错先查表能省不少搜索时间。当然实际报错可能更复杂但大部分都能归到这几类里。7. 环境搭好之后的验证与固化7.1 用一个最小工程跑通全流程环境搭好之后不要急着上完整项目先用一个最小工程验证全流程。这个最小工程应该包含一个main.c点灯或者打印一段信息、一个链接脚本、一个Makefile。编译通过后烧录到板子上确认能正常运行。这个步骤的目的是把环境问题与项目代码问题隔离开。如果最小工程能跑通说明工具链、CodeBlocks配置、烧录工具都没问题后续遇到问题就可以专注于代码本身。如果最小工程都跑不通那就是环境还有问题继续排查环境不要浪费时间在代码上。最小工程的main.c可以简单到只有几行#include stdio.h int main(void) { printf(RV32 toolchain works!\n); while(1); return 0; }链接脚本用SDK里自带的就行Makefile也可以从SDK的示例工程里拷贝一份改改路径。关键是跑通编译→链接→生成固件→烧录→运行这条完整链路。7.2 把可用配置导出备份环境配置好之后一定要做备份。CodeBlocks的配置文件、工具链的路径信息、Makefile里的关键参数这些如果丢了重新配一遍又要踩一遍坑。CodeBlocks的配置可以通过Settings→Export导出为一个.cbp文件里面包含了编译器配置、插件配置等。工具链本身不需要备份重新解压就行但工具链的路径信息要记下来。我一般会在SDK根目录下建一个env_setup.md记录以下信息工具链版本号、工具链存放路径、CodeBlocks版本号、CodeBlocks安装路径、编译器配置的关键参数、烧录工具的版本和配置。这样即使换了电脑照着文档也能快速恢复环境。7.3 团队协作时的环境统一方案如果是团队开发环境不统一会带来很多麻烦。A同事编译通过的代码B同事编译报错排查半天发现是工具链版本不一样。解决这个问题有两个方案方案一把工具链和CodeBlocks都放到版本控制里。在Git仓库里建一个tools目录把工具链和CodeBlocks的安装包放进去。每个新同事入职时从仓库里拉下来按照统一的文档配置。这个方案的缺点是仓库体积会变大工具链通常几百MB但好处是版本绝对统一。方案二用脚本自动化配置。写一个PowerShell或者批处理脚本自动完成工具链解压、环境变量配置、CodeBlocks配置文件的替换。新同事只需要运行一下脚本环境就配好了。这个方案需要前期投入时间写脚本但长期来看效率最高。脚本里要注意处理路径中的空格和权限问题建议以管理员身份运行。我个人推荐方案二因为工具链和IDE的安装包放在Git仓库里确实太占空间了。脚本可以放在仓库里安装包放在公司内部的文件服务器上脚本运行时自动下载。这样既保证了版本统一又不会让仓库变得臃肿。8. 一些零散但重要的补充关于CodeBlocks的汉化中科蓝讯定制版一般自带中文语言包。如果界面是英文的可以在Settings→Environment→View里把Language改成Chinese (Simplified)。如果下拉框里没有中文选项说明语言包没装需要从官方原版CodeBlocks的share\CodeBlocks\locale目录里拷贝zh_CN文件夹过来。关于调试中科蓝讯的RV32芯片支持JTAG调试但需要额外的调试器硬件比如CK-Link或者J-Link。CodeBlocks的调试功能配置起来比较繁琐需要指定gdb路径、调试器接口和初始化脚本。如果只是做常规开发用printf打印调试信息通常就够了不一定非要上JTAG。关于SDK升级中科蓝讯会不定期发布新的SDK版本。升级SDK时不要直接覆盖旧版本而是新建一个目录把新SDK放进去然后对比新旧版本的Makefile和配置文件差异。直接覆盖可能导致旧项目的配置被冲掉到时候编译报错都找不到原因。最后说一个心态问题。嵌入式开发环境搭建本身就是一件繁琐的事情遇到报错很正常不要急躁。我见过很多新手因为环境搭不起来就放弃了其实只要按照系统的排查思路一步步来大部分问题都能解决。关键是要理解每一步在做什么而不是机械地照搬教程。理解了原理遇到新问题也能自己分析。
返回列表