計(jì)算機(jī)系統(tǒng)2作為計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的核心課程,其實(shí)驗(yàn)環(huán)節(jié)對(duì)鞏固理論知識(shí)、培養(yǎng)實(shí)踐能力至關(guān)重要。實(shí)驗(yàn)一“實(shí)驗(yàn)環(huán)境配置與使用”是后續(xù)所有實(shí)驗(yàn)的基礎(chǔ),旨在幫助學(xué)生搭建并熟悉必要的軟件開(kāi)發(fā)與調(diào)試環(huán)境。本指南將詳細(xì)介紹所需的軟件、輔助設(shè)備及其配置與使用方法。
一、 實(shí)驗(yàn)?zāi)繕?biāo)
- 成功安裝并配置實(shí)驗(yàn)所需的軟件開(kāi)發(fā)環(huán)境(如特定版本的GCC、GDB、模擬器等)。
- 掌握在實(shí)驗(yàn)環(huán)境中編寫(xiě)、編譯、鏈接、運(yùn)行及調(diào)試C/C++程序的基本流程。
- 熟悉輔助設(shè)備(如實(shí)驗(yàn)板、邏輯分析儀等,如涉及)的連接與基本操作。
- 理解實(shí)驗(yàn)環(huán)境與底層硬件(如CPU、內(nèi)存)的關(guān)聯(lián),為后續(xù)系統(tǒng)級(jí)編程打下基礎(chǔ)。
二、 核心軟件環(huán)境配置
通常,計(jì)算機(jī)系統(tǒng)2實(shí)驗(yàn)側(cè)重于底層編程、體系結(jié)構(gòu)或操作系統(tǒng)概念,環(huán)境可能包括:
1. Linux 開(kāi)發(fā)環(huán)境
* 操作系統(tǒng):推薦使用 Ubuntu 22.04 LTS 或更高版本。可通過(guò)虛擬機(jī)(如 VirtualBox、VMware)或 Windows Subsystem for Linux (WSL2) 安裝。
* 編譯工具鏈:安裝 build-essential 包,包含GCC、G++、Make、GDB等。
`bash
sudo apt update
sudo apt install build-essential
`
- 文本編輯器/IDE:Vim、VS Code(配合C/C++插件)或 CLion。
2. 特定模擬器或工具(根據(jù)課程要求)
* CPU/系統(tǒng)模擬器:如 QEMU(用于模擬特定架構(gòu),如RISC-V)、SPIM或MARS(用于MIPS匯編)、LC-3模擬器等。安裝命令示例(QEMU):
`bash
sudo apt install qemu-system-x86 qemu-user
`
- 調(diào)試與分析工具:除GDB外,可能需使用
objdump(反匯編)、readelf(查看ELF文件信息)、strace(系統(tǒng)調(diào)用跟蹤)等。
3. 版本控制工具
* Git:用于管理實(shí)驗(yàn)代碼。安裝與基本配置:
`bash
sudo apt install git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
`
三、 輔助設(shè)備與使用(如課程涉及硬件實(shí)驗(yàn))
部分計(jì)算機(jī)系統(tǒng)2課程會(huì)引入簡(jiǎn)單的硬件實(shí)驗(yàn)平臺(tái),以加深對(duì)硬件/軟件接口的理解。
1. 實(shí)驗(yàn)開(kāi)發(fā)板
* 常見(jiàn)類(lèi)型:基于ARM Cortex-M的STM32板、基于RISC-V的HiFive板、或FPGA開(kāi)發(fā)板(如Basys3)。
- 連接與配置:
- 通過(guò)USB線(xiàn)連接至PC。
- 安裝板載芯片的驅(qū)動(dòng)(如ST-Link/V2驅(qū)動(dòng))。
- 安裝對(duì)應(yīng)的交叉編譯工具鏈(如
arm-none-eabi-gcc)。
- 使用OpenOCD或廠商IDE進(jìn)行程序燒錄與調(diào)試。
2. 調(diào)試與測(cè)試設(shè)備
* 邏輯分析儀/示波器:用于觀察數(shù)字信號(hào)時(shí)序,分析硬件行為。需安裝配套軟件,學(xué)習(xí)基本觸發(fā)與測(cè)量設(shè)置。
- 萬(wàn)用表:用于檢查電路連通性與電壓。
四、 基礎(chǔ)使用流程示例
以下以在Linux環(huán)境中編寫(xiě)、調(diào)試一個(gè)簡(jiǎn)單C程序?yàn)槔?/p>
1. 編寫(xiě)代碼:使用編輯器創(chuàng)建 hello.c。
`c
#include
int main() {
printf("Hello, Computer System II!\n");
return 0;
}
`
2. 編譯:使用GCC編譯,-g選項(xiàng)生成調(diào)試信息。
`bash
gcc -g -o hello hello.c
`
3. 運(yùn)行:直接執(zhí)行。
`bash
./hello
`
4. 調(diào)試:使用GDB進(jìn)行調(diào)試。
`bash
gdb ./hello
(gdb) break main # 在main函數(shù)設(shè)置斷點(diǎn)
(gdb) run # 運(yùn)行程序
(gdb) next # 單步執(zhí)行
(gdb) print variable # 查看變量值
(gdb) quit # 退出
`
五、 常見(jiàn)問(wèn)題與解決
- 軟件包安裝失敗:檢查網(wǎng)絡(luò)連接,更新軟件源列表(
sudo apt update)。 - 權(quán)限問(wèn)題:使用
sudo執(zhí)行需要管理員權(quán)限的命令;操作串口或USB設(shè)備時(shí),可能需要將用戶(hù)加入dialout組(sudo usermod -aG dialout $USER,需注銷(xiāo)重新登錄生效)。 - 交叉編譯工具鏈未找到:檢查PATH環(huán)境變量是否正確設(shè)置,或使用絕對(duì)路徑。
- 開(kāi)發(fā)板無(wú)法連接:檢查USB線(xiàn)、驅(qū)動(dòng)安裝,嘗試更換USB端口或重啟服務(wù)。
六、 實(shí)驗(yàn)報(bào)告要求
實(shí)驗(yàn)結(jié)束后,通常需提交報(bào)告,內(nèi)容應(yīng)包括:
- 實(shí)驗(yàn)環(huán)境詳細(xì)配置清單(軟件版本號(hào)、硬件型號(hào))。
- 配置過(guò)程中遇到的主要問(wèn)題及解決方法。
- 一個(gè)簡(jiǎn)單的測(cè)試程序(如點(diǎn)亮LED、匯編程序)從編寫(xiě)到運(yùn)行的完整過(guò)程截圖與說(shuō)明。
- 對(duì)實(shí)驗(yàn)環(huán)境工作的理解與心得體會(huì)。
成功配置實(shí)驗(yàn)環(huán)境是探索計(jì)算機(jī)系統(tǒng)奧秘的第一步。請(qǐng)務(wù)必耐心、仔細(xì)地完成本實(shí)驗(yàn),確保每一步都理解其作用,這將對(duì)后續(xù)學(xué)習(xí)產(chǎn)生深遠(yuǎn)影響。