<ul id="gu0q4"></ul>
  • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
    <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    • <samp id="gu0q4"></samp>

      技術(shù)貼|如何在ELF-RK3506開發(fā)板上構(gòu)建AI編程環(huán)境原創(chuàng)

      發(fā)布時(shí)間:2026-01-20 13:34:41
      AI編程工具 RK3506開發(fā)板

      特別感謝北京理工大學(xué)的李海老師提供以下文章,供大家學(xué)習(xí)與參考。

      ?

      RK-3506開發(fā)板開箱

      ELF-RK3506開發(fā)板的核心板與底板通過郵票孔方式連接,其核心板搭載基于ARM架構(gòu)的低功耗高性能處理器RK3506。該處理器集成3核 Cortex-A7配備獨(dú)立的NEON協(xié)處理器可廣泛適用于計(jì)算機(jī)、手機(jī)、個(gè) 人移動(dòng)互聯(lián)網(wǎng)以及數(shù)字多媒體設(shè)備。飛凌嵌入式推出這款板子顯然是吸引單片機(jī)開發(fā)者進(jìn)入Linux開發(fā)領(lǐng)域。

      串口連接

      ELF-RK3506供電電源和調(diào)試串口功能共同使用一根USB typeC線。連接PC機(jī)的USB接口和板卡的typeC口(絲印DEBUG),就可以通過串口登錄開發(fā)板,用戶名是root,無密碼。登錄后,使用uname命令可以查看操作系統(tǒng)的版本。

      root@elf3506-buildroot:~# uname -aLinux?elf3506-buildroot?6.1.99+ #1?SMP PREEMPT Fri Nov ?7?10:16:11?HKT?2025?armv7l GNU/Linux

      ?

      網(wǎng)口連接

      ?ELF-RK3506開發(fā)板沒有WiFi模塊,提供了一個(gè)網(wǎng)口和一根網(wǎng)線,可以直接連接到家里的路由器上。默認(rèn)該網(wǎng)口是固定IP,需要改成DHCP以獲得路由器分配的IP地址。

      root@elf3506-buildroot:~# udhcpcudhcpc: started, v1.36.1udhcpc: broadcasting discoverudhcpc: broadcasting select for?192.168.1.122, server?192.168.1.1udhcpc: lease of?192.168.1.122?obtained from?192.168.1.1, lease time?86400deleting?routersadding?dns?192.168.1.1root@elf3506-buildroot:~#

      ?

      配置WSL編譯環(huán)境

      廠商提供了用于編譯的VMWare環(huán)境,不過我沒有用,還是喜歡使用Windows自帶的WSL2。下面介紹一下如何配置WSL編譯環(huán)境。首先從廠商的資料云盤上下載兩個(gè)軟件包:http://www.51meinv.cn/information/detail.html?id=8

      將上述交叉編譯工具拷貝到開發(fā)環(huán)境/home/test/(這里假設(shè)用戶是test)目錄下,并在該目錄下解壓。

      test@Star:~$?tar -vxf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.bz2test@Star:~$?tar -vxf?3506-toolchain.tar.bz2

      ?

      解壓后執(zhí)行一下下面的命令測試是否正常:

      gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -v

      ?

      TRAE環(huán)境構(gòu)建

      接下來就要進(jìn)入AI編程工具TRAE的環(huán)境構(gòu)建了。TRAE是豆包推出的一個(gè)AI編程工具,它提供完整的IDE核心能力,支持多種主流編程語言與熱門開發(fā)框架,集成代碼編輯、智能補(bǔ)全、調(diào)試運(yùn)行、版本控制等一體化工具鏈。適用于獨(dú)立開發(fā)者、學(xué)生及自由職業(yè)者,用于項(xiàng)目開發(fā)、技術(shù)學(xué)習(xí)與實(shí)踐探索。國內(nèi)用戶可以從下面網(wǎng)站下載最新版本:https://www.trae.cn/

      ?

      WSL連接

      TRAE的遠(yuǎn)程開發(fā)功可以支持WSL,使你能夠像連接遠(yuǎn)程服務(wù)器一樣,直接在本地WSL環(huán)境中編寫、調(diào)試和運(yùn)行代碼。在TRAE的官方文檔中對這部分有詳細(xì)的介紹,直接安裝步驟進(jìn)行即可:https://docs.trae.cn/ide/wsl

      ?

      ?

      連接成功之后,就可以打開一個(gè)WSL中目錄,假定是simple。

      ?

      生成測試程序

      我們采用TRAE的默認(rèn)配置,模型是Auto,采用Builder方式工作,輸入如下提示詞:

      完成如下任務(wù):1. 創(chuàng)建一個(gè)基于Linux控制臺(tái)的測試程序,驗(yàn)證編譯工具鏈,簡短有趣2. 創(chuàng)建vscode中進(jìn)行編譯的任務(wù)文件,交叉編譯命令為~/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc3. 創(chuàng)建vscode中進(jìn)行SSH連接的任務(wù),服務(wù)器IP為192.168.1.122,拷貝編譯得到的可執(zhí)行文件到服務(wù)器上,并進(jìn)行執(zhí)行。

      ?

      在上面的提示詞,使用的是vscode,而不是TRAE IDE,一是因?yàn)門RAE IDE本身就是基于VSCode,二是因?yàn)槿绻肨RAE IDE,則模型不能很好地處理。

      ?

      TRAE開始勤奮的工作,開始生成C程序代碼(test_program.c)和任務(wù)代碼(task.json)。


      在檢查代碼時(shí),發(fā)現(xiàn)自己剛才忘了提供服務(wù)器的用戶名和密碼,導(dǎo)致生成的task.json有點(diǎn)小問題,我告訴TRAE“忘了告訴你服務(wù)器的用戶名是root,沒有密碼”。TRAE馬上把這個(gè)問題改過來了。

      ?

      編譯程序

      現(xiàn)在使用TRAE IDE菜單上的“終端→運(yùn)行生成任務(wù)”,就可以交叉編譯生成可執(zhí)行文件test_program了。

      ?

      部署并運(yùn)行程序

      接下來使用TRAE IDE菜單上的“終端→運(yùn)行任務(wù)..”,然后選擇“Deploy and Run via SSH”就可以將文件拷貝到開發(fā)板上了。

      ?

      在運(yùn)行程序時(shí)遇到一個(gè)問題,就是chmod命令執(zhí)行失敗,導(dǎo)致整個(gè)任務(wù)失敗。

      ?

      把錯(cuò)誤信息反饋給TRAE,它很快分析出來是對JSON中轉(zhuǎn)義字符處理不當(dāng)導(dǎo)致錯(cuò)誤,并進(jìn)行了修正。

      ?

      再次運(yùn)行修改之后的代碼,就可以得到正確的結(jié)果了(帶有彩色的文字輸出)。

      ?

      最終生成的代碼

      貼一下最終的代碼供大家參考。

      C語言代碼

      test_program.c代碼如下:

      #include?#include?int?main() {? ??//?彩色ASCII藝術(shù):笑臉? ? const char *colors[] = {? ? ? ??"\033[31m", ?//?紅色? ? ? ??"\033[33m", ?//?黃色? ? ? ??"\033[32m", ?//?綠色? ? ? ??"\033[34m", ?//?藍(lán)色? ? ? ??"\033[35m", ?//?紫色? ? ? ??"\033[36m"? ?// 青色? ? };? ? const char *reset?=?"\033[0m";? ??printf("\n");? ??printf("%s? ************************** ?%s\n", colors[0],?reset);? ??printf("%s?* ? ? ? ? ? ? ? ? ? ? ? ? ?*?%s\n", colors[1],?reset);? ??printf("%s?* ? ?Hello from Console! ? *?%s\n", colors[2],?reset);? ??printf("%s?* ? ? ? ? ? ? ? ? ? ? ? ? ?*?%s\n", colors[3],?reset);? ??printf("%s * ? ?\033[1m ?ASCII Art! \033[0m ? * %s\n", colors[4],?reset);? ??printf("%s?* ? ? ? ? ? ? ? ? ? ? ? ? ?*?%s\n", colors[5],?reset);? ??printf("%s? ************************** ?%s\n", colors[0],?reset);? ??printf("\n");? ??//?簡單的動(dòng)畫效果? ??printf("%sLoading", colors[2]);? ? fflush(stdout);? ??for?(int?i =?0; i 3; i++) {? ? ? ? usleep(500000);?//?500ms? ? ? ??printf(".");? ? ? ? fflush(stdout);? ? }? ??printf("%s?Done!?%s\n\n", colors[3],?reset);? ??//?系統(tǒng)信息? ??printf("%sSystem?Info:?%s\n", colors[1],?reset);? ??printf("- Architecture: ARM\n");? ??printf("- OS: Linux\n");? ??printf("- Compiler: GCC\n\n");? ??printf("%sTest?completed successfully!?%s\n\n", colors[5],?reset);? ??return?0;}

      ?

      任務(wù)文件

      vscode/task.json文件如下:

      {??"version":?"2.0.0",??"tasks": [? ? {? ? ??"label":?"Build (ARM Cross-Compile)",? ? ??"type":?"shell",? ? ??"command":?"~/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc",? ? ??"args": [? ? ? ??"-o",? ? ? ??"test_program",? ? ? ??"test_program.c"? ? ? ],? ? ??"group": {? ? ? ??"kind":?"build",? ? ? ??"isDefault":?true? ? ? },? ? ??"presentation": {? ? ? ??"echo":?true,? ? ? ??"reveal":?"always",? ? ? ??"focus":?false,? ? ? ??"panel":?"shared",? ? ? ??"showReuseMessage":?true,? ? ? ??"clear":?false? ? ? },? ? ??"problemMatcher": [? ? ? ??"$gcc"? ? ? ]? ? },? ? {? ? ??"label":?"Clean",? ? ??"type":?"shell",? ? ??"command":?"rm",? ? ??"args": [? ? ? ??"-f",? ? ? ??"test_program"? ? ? ],? ? ??"presentation": {? ? ? ??"echo":?true,? ? ? ??"reveal":?"always",? ? ? ??"focus":?false,? ? ? ??"panel":?"shared",? ? ? ??"showReuseMessage":?true,? ? ? ??"clear":?false? ? ? },? ? ??"problemMatcher": []? ? },? ? {? ? ??"label":?"Deploy and Run via SSH",? ? ??"type":?"shell",? ? ??"dependsOn": ["Build (ARM Cross-Compile)"],? ? ??"command":?"bash",? ? ??"args": [? ? ? ??"-c",? ? ? ??"scp test_program root@192.168.1.122:/tmp/ && ssh root@192.168.1.122?\"chmod +x /tmp/test_program && /tmp/test_program\""? ? ? ],? ? ??"presentation": {? ? ? ??"echo":?true,? ? ? ??"reveal":?"always",? ? ? ??"focus":?true,? ? ? ??"panel":?"shared",? ? ? ??"showReuseMessage":?true,? ? ? ??"clear":?false? ? ? },? ? ??"problemMatcher": []? ? }? ]}

      ELF-RK3506開發(fā)板基于Linux,為嵌入式系統(tǒng)開發(fā)提供了很好的基礎(chǔ)平臺(tái),而TRAE這樣的AI編程工程的引入使得嵌入式開發(fā)變得非常簡單而有趣。

      ?

      其它推薦:

      推薦閱讀:

      /* 53客服*/ /* 百度統(tǒng)計(jì)*/ /* 百度站長*/
      <ul id="gu0q4"></ul>
    • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
      <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      • <samp id="gu0q4"></samp>