1、 文檔目標(biāo)
解決Green?Hills構(gòu)建完工程后,對(duì)于代碼生成后的匯編指令進(jìn)行查看。
2、 問題場(chǎng)景
用于解決在代碼構(gòu)建完成之后,需要查看對(duì)應(yīng)代碼轉(zhuǎn)換之后的匯編指令情況,確認(rèn)語句或者變量在存儲(chǔ)地址上的情況,從而判斷對(duì)于語句的執(zhí)行是否達(dá)到預(yù)期效果。大多數(shù)情況為工程的功能實(shí)現(xiàn)上存在問題,但是,C語言代碼編寫邏輯上不存在bug,這個(gè)時(shí)候就需要通過查看匯編器將對(duì)應(yīng)語句轉(zhuǎn)換為匯編語句的情況。判斷語句最終的實(shí)現(xiàn)是否達(dá)到預(yù)期。
3、軟硬件環(huán)境
1)、軟件版本:MULTI 8.1.4,Compiler 2023.1.4 Final Release for Embedded ARM
2)、電腦環(huán)境:Windows 11
3)、外設(shè)硬件:無
4、解決方法
1)、在Debug模式下,可以通過匯編窗口查看不同源文件的匯編信息。(如圖4-1)

圖4-1
2)、上面的方法適合在線去查看,但是會(huì)比較麻煩,每次都需要進(jìn)入到Debug模式下,下面的方法可以將匯編代碼在本地生成文件保留下來,用于匯編指令的查看。
(1)、在Build Options中,Assembler->Source Listing Generation配置可以生成對(duì)應(yīng)的匯編列表信息。該配置有三個(gè)選項(xiàng):
a、Generate Default Listing:生成默認(rèn)以源文件的文件名命名的匯編列表文件。
b、Generate User-Specified Listing:用于生成指定文件名的匯編列表文件。僅限于對(duì)單獨(dú)文件進(jìn)行配置。
c、Suppress Listing:不成列表信息。(默認(rèn)配置選項(xiàng))

圖4-2-1
生成之后,就可以在工程目錄下objdebug文件夾中看到對(duì)應(yīng)的源文件的列表文件了,打開后,可以看到對(duì)應(yīng)源文件的匯編信息。(如圖4-2-2)

圖4-2-2
(2)、還在Build options中,可以將Advanced->Project Options->Temporary Assembly File配置成Retain選項(xiàng)。開啟在構(gòu)建過程中保留匯編臨時(shí)文件的設(shè)置。(如圖4-3-1)

圖4-3-1
生成后,就可以在工程目錄下,查看到對(duì)應(yīng)的.s文件,里面也包含了匯編信息。

圖4-3-2
(3)、兩個(gè)不同的配置選項(xiàng)生成文件中".s"文件中的內(nèi)容在“.lst”中都包含,“.lst”文件中包含了更加完整的匯編指令的參數(shù)信息和各類環(huán)境信息。并且還包含了匯編指令的地址信息等內(nèi)容。(如圖4-4)

圖4-4

首頁 > 資源中心 > FAQ
