引言
隨著嵌入式技術(shù)的飛速發(fā)展,芯片調(diào)試作為硬件開(kāi)發(fā)流程中的關(guān)鍵環(huán)節(jié),其重要性不言而喻。國(guó)科安芯的AS32系列MCU芯片憑借其卓越的性能和豐富的功能,逐漸在工業(yè)控制、物聯(lián)網(wǎng)等領(lǐng)域嶄露頭角。然而,對(duì)于許多開(kāi)發(fā)人員而言,如何高效地調(diào)試AS32系列MCU芯片仍是一個(gè)亟待解決的問(wèn)題。本文將深入探討基于免費(fèi) Eclipse+GCC+JLINK 的AS32系列MCU芯片調(diào)試方法,旨在為技術(shù)開(kāi)發(fā)人員提供一份詳盡、實(shí)用的實(shí)踐指南,助力其在AS32系列MCU芯片應(yīng)用開(kāi)發(fā)中實(shí)現(xiàn)高效調(diào)試與功能優(yōu)化。
一、開(kāi)發(fā)環(huán)境搭建
(一)平臺(tái)資源準(zhǔn)備
硬件設(shè)備
PC :本操作基于 Windows 10 系統(tǒng),確保電腦具備充足的存儲(chǔ)空間和穩(wěn)定的電源供應(yīng),以滿(mǎn)足 Eclipse開(kāi)發(fā)工具及調(diào)試過(guò)程中的資源需求。
AS32 開(kāi)發(fā)板 :作為調(diào)試的核心載體,需提前檢查開(kāi)發(fā)板的完整性,確認(rèn)其芯片型號(hào)、引腳定義等參數(shù)與所開(kāi)發(fā)項(xiàng)目要求相符。同時(shí),確保開(kāi)發(fā)板與電腦的連接線路無(wú)損壞,通信接口(如 JTAG/SWD 接口)能夠正常工作,以保障調(diào)試數(shù)據(jù)的穩(wěn)定傳輸。
Jlink 調(diào)試器 :選擇與 AS32 芯片兼容的 Jlink 調(diào)試器型號(hào),如 J-Link V9 或 J-Link EDU 等。在使用前,需仔細(xì)閱讀調(diào)試器的用戶(hù)手冊(cè),了解其工作原理、連接方式以及支持的調(diào)試協(xié)議等信息,確保調(diào)試器能夠準(zhǔn)確地與開(kāi)發(fā)板上的芯片進(jìn)行通信。
軟件工具
Eclipse IDE :選用 Eclipse IDE 2025 - 03(4.35.0)版本。Eclipse 作為一款功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境,為嵌入式開(kāi)發(fā)提供了豐富的插件和工具支持。其具備良好的跨平臺(tái)特性,界面友好且易于操作,能夠方便地進(jìn)行代碼編輯、編譯、調(diào)試等一系列開(kāi)發(fā)活動(dòng)。在安裝 Eclipse 時(shí),需注意選擇適合 Windows 10 系統(tǒng)的版本,并按照安裝向?qū)У奶崾就瓿砂惭b過(guò)程。安裝完成后,建議對(duì) Eclipse 進(jìn)行個(gè)性化配置,如設(shè)置代碼編輯器的字體、顏色、縮進(jìn)等格式,以提高代碼編寫(xiě)效率和可讀性。
ansilic_Toolchain :從國(guó)科安芯官網(wǎng)下載 ansilic_Toolchain,該工具鏈包含 GCC 工具鏈、OpenOCD 以及相關(guān)配置文件。GCC(GNU Compiler Collection)作為一款廣泛使用的開(kāi)源編譯器,為 RISC - V 架構(gòu)的 AS32 芯片提供了高效的代碼編譯和優(yōu)化功能;OpenOCD(Open - On - Chip Debugger)則負(fù)責(zé)實(shí)現(xiàn)調(diào)試器與芯片之間的通信,是調(diào)試過(guò)程中的關(guān)鍵組件。下載完成后,建議將 ansilic_Toolchain 文件夾放置于 Eclipse 的安裝目錄下,以便在后續(xù)工程配置中能夠方便地進(jìn)行路徑引用和工具鏈切換。
AS32 驅(qū)動(dòng)庫(kù) :同樣從國(guó)科安芯官網(wǎng)獲取 AS32 驅(qū)動(dòng)庫(kù)。驅(qū)動(dòng)庫(kù)為開(kāi)發(fā)人員提供了針對(duì) AS32 芯片各個(gè)外設(shè)(如 GPIO、UART、SPI、I2C 等)的底層驅(qū)動(dòng)函數(shù)和操作接口,使得開(kāi)發(fā)人員能夠更加便捷地進(jìn)行芯片功能的開(kāi)發(fā)和調(diào)試。在使用驅(qū)動(dòng)庫(kù)時(shí),需要仔細(xì)研讀其提供的文檔和示例代碼,了解每個(gè)驅(qū)動(dòng)函數(shù)的功能、參數(shù)設(shè)置以及調(diào)用流程,以便在實(shí)際項(xiàng)目中正確地調(diào)用和配置。
Zadig - 2.7.exe :用于配置 Jlink 驅(qū)動(dòng)。在 Windows 系統(tǒng)中,Zadig 能夠方便地將 Jlink 的驅(qū)動(dòng)程序轉(zhuǎn)換為 WinUSB 格式,從而確保 Jlink 調(diào)試器與電腦之間能夠建立穩(wěn)定可靠的通信連接。在使用 Zadig 軟件時(shí),需先將 Jlink 調(diào)試器連接至電腦的 USB 端口,然后按照軟件的操作提示,選擇設(shè)備相應(yīng)的并進(jìn)行驅(qū)動(dòng)轉(zhuǎn)換。在轉(zhuǎn)換過(guò)程中,軟件可能會(huì)要求用戶(hù)安裝一些必要的系統(tǒng)更新或驅(qū)動(dòng)組件,需確保這些安裝操作順利完成,以避免驅(qū)動(dòng)配置失敗導(dǎo)致調(diào)試無(wú)法正常進(jìn)行。
(二)Jlink 驅(qū)動(dòng)配置
在創(chuàng)建工程之前,Jlink 驅(qū)動(dòng)的正確配置是確保調(diào)試順利進(jìn)行的前提。具體操作步驟如下:
將 Jlink 調(diào)試器接入電腦的 USB 端口,確保電腦能夠識(shí)別到該設(shè)備。
打開(kāi) Zadig - 2.7.exe 軟件,點(diǎn)擊 “Options” 按鈕,在彈出的下拉菜單中勾選 “List All Devices” 選項(xiàng),使軟件能夠列出系統(tǒng)中所有連接的設(shè)備。
在 Zadig 的設(shè)備列表中,找到 Jlink 設(shè)備。此時(shí),軟件會(huì)自動(dòng)顯示與 Jlink 相關(guān)的驅(qū)動(dòng)信息,包括當(dāng)前使用的驅(qū)動(dòng)程序以及可用的驅(qū)動(dòng)程序列表。
選擇將 Jlink 轉(zhuǎn)為 WinUSB 格式。在軟件界面中,找到對(duì)應(yīng)的驅(qū)動(dòng)程序選項(xiàng)(通常為 “WinUSB” 或類(lèi)似名稱(chēng)),并點(diǎn)擊 “Install driver” 按鈕進(jìn)行驅(qū)動(dòng)安裝。在安裝過(guò)程中,系統(tǒng)可能會(huì)彈出安全警告提示,需用戶(hù)確認(rèn)并繼續(xù)安裝。
安裝完成后,Zadig 會(huì)提示驅(qū)動(dòng)轉(zhuǎn)換成功。此時(shí),可關(guān)閉 Zadig 軟件,Jlink 驅(qū)動(dòng)配置即告完成。通過(guò)此步驟,Jlink 調(diào)試器能夠以 WinUSB 模式與電腦進(jìn)行通信,為后續(xù)的調(diào)試工作奠定了基礎(chǔ)。
二、Eclipse 工程創(chuàng)建與配置
(一)創(chuàng)建新工程
打開(kāi) Eclipse IDE,點(diǎn)擊 “File->New”,選擇新建 “C/C++ Project”。
在彈出的新建項(xiàng)目向?qū)е?,選擇 “C Managed Build” 項(xiàng)目類(lèi)型,該類(lèi)型適用于 C 語(yǔ)言項(xiàng)目的開(kāi)發(fā)和管理,能夠方便地進(jìn)行項(xiàng)目構(gòu)建和調(diào)試設(shè)置。
點(diǎn)擊 “Next” 按鈕,進(jìn)入下一步配置界面。在 “Project name” 文本框中輸入工程名稱(chēng),建議使用簡(jiǎn)潔明了且具有項(xiàng)目標(biāo)識(shí)性的名稱(chēng),如 “AS32_LED_Demo”。在 “Project types” 區(qū)域中,選擇 “Empty Project” 作為項(xiàng)目類(lèi)型,這樣可以為項(xiàng)目提供一個(gè)干凈的基礎(chǔ)框架,便于開(kāi)發(fā)人員根據(jù)實(shí)際需求自定義項(xiàng)目結(jié)構(gòu)和配置。在 “Toolchains” 選項(xiàng)中,選擇 “RISC - V Cross GCC”,指定該工程使用 RISC - V 架構(gòu)的 GCC 工具鏈進(jìn)行編譯和鏈接。
再次點(diǎn)擊 “Next” 按鈕,在接下來(lái)的界面中,通常無(wú)需進(jìn)行額外配置,可直接點(diǎn)擊 “Next” 繼續(xù)。
進(jìn)入工具鏈配置界面后,在彈出的工程窗口中,找到 “Toolchain name and path” 配置項(xiàng),點(diǎn)擊路徑選擇按鈕,定位到 ansilic_Toolchain 所在的路徑,確保 Eclipse 能夠正確識(shí)別并使用該工具鏈進(jìn)行項(xiàng)目編譯和調(diào)試。完成路徑設(shè)置后,點(diǎn)擊 “Finish” 按鈕,即可成功創(chuàng)建一個(gè)新的 AS32 工程。
(二)目錄管理
手動(dòng)管理目錄
右鍵點(diǎn)擊工程名稱(chēng),選擇 “New->Folder”,創(chuàng)建子目錄 “Peripherals”,用于存放 AS32 芯片的驅(qū)動(dòng)文件。
在創(chuàng)建目錄時(shí),建議選擇 “Create virtual folders” 選項(xiàng),這樣可以將驅(qū)動(dòng)文件以虛擬路徑的形式添加到工程中,避免將文件全部復(fù)制到工程目錄下,便于后續(xù)對(duì)驅(qū)動(dòng)文件的統(tǒng)一管理和更新。點(diǎn)擊 “Finish” 按鈕完成目錄創(chuàng)建。
采用相同的方法,依次創(chuàng)建 “Core”(保存中斷入口和鏈接文件)、“Startup”(存放啟動(dòng)文件)、“System”(存放開(kāi)發(fā)人員自定義的延時(shí)函數(shù)和打印函數(shù)等輔助函數(shù)文件)、“User”(存放用戶(hù)應(yīng)用程序代碼文件)等目錄。創(chuàng)建完成后,工程的目錄結(jié)構(gòu)將變得更加清晰有條理,便于開(kāi)發(fā)人員對(duì)不同功能模塊的文件進(jìn)行分類(lèi)存放和管理。
接下來(lái),需要向工程目錄中導(dǎo)入相應(yīng)的文件。右鍵點(diǎn)擊相應(yīng)的目錄名稱(chēng),選擇 “Import”。
在彈出的導(dǎo)入向?qū)е?,選擇 “General->File System”,點(diǎn)擊 “Next” 按鈕。
在新窗口中,瀏覽并選擇之前下載的 Drivers 目錄下對(duì)應(yīng)的文件夾,勾選需要添加的文件。在導(dǎo)入文件時(shí),通常無(wú)需勾選頭文件(*.h),因?yàn)轭^文件主要起到代碼聲明和引用的作用,在實(shí)際編譯過(guò)程中,編譯器會(huì)根據(jù)需要自動(dòng)包含相應(yīng)的頭文件。同時(shí),建議勾選 “Advanced” 下的全部選項(xiàng),以確保文件導(dǎo)入過(guò)程中的各種參數(shù)配置能夠滿(mǎn)足項(xiàng)目要求。
對(duì)于 “User” 目錄,由于其是開(kāi)發(fā)人員自己創(chuàng)建的目錄,用于存放用戶(hù)自定義的代碼文件,因此可以直接右鍵點(diǎn)擊該目錄,選擇 “New->File” 創(chuàng)建新的 C 源文件(.c)和頭文件(.h)。在創(chuàng)建文件時(shí),需為文件命名,并根據(jù)項(xiàng)目需求編寫(xiě)相應(yīng)的代碼邏輯。
自動(dòng)創(chuàng)建
除手動(dòng)管理目錄外,還有一種更為簡(jiǎn)便的方法 —— 自動(dòng)創(chuàng)建目錄并導(dǎo)入文件。具體操作為:將國(guó)科安芯提供的 Driver 目錄下所有子目錄及其包含的文件復(fù)制到工程目錄下。然后返回 Eclipse,右鍵點(diǎn)擊工程名稱(chēng),選擇 “Refresh”,Eclipse 將自動(dòng)識(shí)別并加載新添加的目錄和文件,完成項(xiàng)目的快速搭建。這種方法適用于對(duì)項(xiàng)目目錄結(jié)構(gòu)和文件組織要求不是特別嚴(yán)格的場(chǎng)景,能夠快速地將驅(qū)動(dòng)文件和示例代碼等資源導(dǎo)入到工程中,節(jié)省開(kāi)發(fā)時(shí)間。
(三)項(xiàng)目配置
目標(biāo)處理器配置
右鍵點(diǎn)擊工程名稱(chēng),選擇 “Properties” 打開(kāi)工程屬性配置窗口。在左側(cè)配置項(xiàng)列表中,依次展開(kāi) “C/C++ Build->Settings->Tool Settings->Target Processor” 節(jié)點(diǎn),進(jìn)入目標(biāo)處理器配置頁(yè)面。
根據(jù) AS32 芯片的實(shí)際內(nèi)核類(lèi)型,選擇對(duì)應(yīng)的目標(biāo)處理器選項(xiàng)。在本例中,若芯片內(nèi)核為 RV32I,則在 “Target” 下拉菜單中選擇 RV32I 選項(xiàng)。此外,還需按照項(xiàng)目需求對(duì)其他相關(guān)參數(shù)進(jìn)行配置,如設(shè)置芯片的工作頻率、內(nèi)存大小等參數(shù),以確保編譯器能夠根據(jù)芯片的實(shí)際硬件特性進(jìn)行代碼優(yōu)化和編譯。
編譯器配置
在 “C/C++ Build->Settings->Tool Settings->GNU RISC - V Cross Assembler” 選項(xiàng)中,對(duì) Cross 匯編編譯選項(xiàng)進(jìn)行配置。在 “includes->Include paths” 選項(xiàng)中,添加工程所需的匯編頭文件路徑。例如,將 “Core” 和 “Startup” 目錄的路徑添加到此處,以便匯編器能夠在編譯過(guò)程中正確地找到并包含相應(yīng)的頭文件。
同樣地,在 “C/C++ Build->Settings->Tool Settings->GNU RISC - V Cross C Compiler” 選項(xiàng)中,對(duì) Cross C 編譯選項(xiàng)進(jìn)行設(shè)置。在 “includes->Include paths” 選項(xiàng)中,添加工程所需的 C 語(yǔ)言頭文件路徑。通常情況下,需要添加 AS32 驅(qū)動(dòng)庫(kù)中 Drivers 目錄下的相應(yīng)子目錄路徑,如 Drivers/Include、Drivers/Peripherals 等,這樣可以確保編譯器在編譯 C 源代碼時(shí)能夠正確解析對(duì)驅(qū)動(dòng)庫(kù)函數(shù)的調(diào)用和相關(guān)數(shù)據(jù)類(lèi)型的定義。
鏈接器配置
在 “C/C++ Build->Settings->Tool Settings->GNU RISC - V Cross C Linker” 選項(xiàng)中,對(duì) Cross C 鏈接選項(xiàng)進(jìn)行配置。在 “General->Script files” 選項(xiàng)中,添加鏈接腳本文件(link.lds)。鏈接腳本文件用于定義程序的內(nèi)存布局、各個(gè)代碼段和數(shù)據(jù)段的存放位置等關(guān)鍵信息,是鏈接過(guò)程中的重要依據(jù)。同時(shí),勾選 “Do not use standard start files” 和 “Remove unused sections” 選項(xiàng),以避免鏈接過(guò)程中引入不必要的標(biāo)準(zhǔn)啟動(dòng)文件和未使用的代碼段,從而減小程序的體積,提高程序的運(yùn)行效率。
在 “Miscellaneous” 選項(xiàng)下,勾選 “Use newlib - nano” 和 “Do not use syscalls” 選項(xiàng)。Newlib - nano 是一個(gè)輕量級(jí)的 C 標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn),相較于完整的新lib庫(kù),其占用的存儲(chǔ)空間更小,適合在資源受限的嵌入式環(huán)境中使用。而 “Do not use syscalls” 選項(xiàng)則表示不使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用接口,這對(duì)于在裸機(jī)環(huán)境下運(yùn)行的 AS32 芯片程序來(lái)說(shuō)是較為常見(jiàn)的配置,因?yàn)樵谶@種環(huán)境下,程序通常直接與硬件進(jìn)行交互,無(wú)需依賴(lài)操作系統(tǒng)的系統(tǒng)調(diào)用功能。
生成 bin/hex 文件配置
在 “C/C++ Build->Settings->Build Steps” 選項(xiàng)中,可以添加自定義的構(gòu)建命令,用于在編譯完成后生成 bin/hex 文件。bin/hex 文件是程序的二進(jìn)制或十六進(jìn)制格式的可執(zhí)行文件,能夠直接燒錄到芯片中運(yùn)行。在本例中,可在構(gòu)建步驟中添加如下命令:“riscv - none - embed - objcopy - O binary ”led.elf“ ”led.bin“; riscv - none - embed - objdump - D ”led.elf“ > ”led.dump“”。其中,led.elf 為編譯生成的可執(zhí)行文件,led.bin 和 led.dump 分別為生成的二進(jìn)制文件和反匯編文件。在更換工程時(shí),只需將命令中的目標(biāo)文件名稱(chēng)相應(yīng)修改即可。
可以看到,無(wú)報(bào)錯(cuò),到此,工程搭建全部完成。
審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
462文章
53166瀏覽量
453429 -
mcu
+關(guān)注
關(guān)注
147文章
18374瀏覽量
378549 -
Eclipse
+關(guān)注
關(guān)注
1文章
119瀏覽量
22298
發(fā)布評(píng)論請(qǐng)先 登錄
普冉PY32MD320系列芯片深度解析

生態(tài)芯進(jìn)階 | SEGGER J-Link/Flasher深度適配極海G32R50x系列實(shí)時(shí)控制MCU!

邊聊安全 | 安全芯片的守護(hù)神:BIST機(jī)制的深度解析

mcu芯片和soc芯片的區(qū)別解析

調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析

【微五科技CF5010RBT60開(kāi)發(fā)板試用體驗(yàn)】開(kāi)箱評(píng)測(cè)與環(huán)境搭建
Modus工具箱調(diào)試錯(cuò)誤怎么解決?
AS32系列MCU調(diào)試教程 SPI調(diào)試的常見(jiàn)問(wèn)題解析

AS32系列MCU芯片I2C模塊性能解析與調(diào)試

硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

RISC-V JTAG:開(kāi)啟MCU 芯片調(diào)試之旅

評(píng)論