很多使用過Keil MDK的工程師都發(fā)現(xiàn)了一個(gè)問題,Keil MDK編譯代碼的時(shí)候,速度很慢。 編譯速度慢有幾個(gè)原因:
編譯器
代碼量大小
工程配置(生成信息)
其中工程配置中生成信息包含多種,打開工程選項(xiàng)卡就能看見。Project -> Options for Target -> Output / Listing:


這里面有很多信息都會(huì)影響編譯速度,其中生成瀏覽信息(Browse Information),下面就來講講關(guān)于瀏覽信息的內(nèi)容。
嵌入式專欄
1
關(guān)于Keil瀏覽信息
Keil中瀏覽信息,就是我們平時(shí)編輯調(diào)試時(shí),右鍵(或者F12快捷鍵)使用Go To Definition xxx時(shí)所需要瀏覽的代碼信息:

需要在工程配置中勾選生成瀏覽信息才能正常使用該功能:

生成瀏覽信息會(huì)比較影響編譯速度,同時(shí)在Objects(OutPut配置輸出路徑)文件夾下面會(huì)多出*.crf文件(瀏覽信息文件)。 關(guān)于Keil MDK中各種文件的描述,可以參看我的文章:Keil系列教程10_文件類型及相關(guān)描述。
嵌入式專欄
2
AC5與AC6生成瀏覽信息的差異
Keil MDK編譯器默認(rèn)是使用Arm Compiler(簡(jiǎn)稱AC),目前主流的就是AC5和AC6.
之前也給大家分享過關(guān)于AC5和AC6的文章:
全面認(rèn)識(shí)ARM編譯器AC6.12Keil MDK 編譯器 AC5 和 AC6 優(yōu)化選項(xiàng)重要內(nèi)容和區(qū)別
其實(shí)AC5和AC6還真有很多地方不同,之前使用AC5的代碼工程,很多地方都存在兼容性問題。
1.AC5和AC6生成瀏覽信息速度不同
如果不生成瀏覽信息(不勾選),AC5的編譯速度其實(shí)也不算慢。
但是,一般情況下,軟件開發(fā)工程師為了方便編輯和調(diào)試代碼,一般都會(huì)生成瀏覽信息。
AC5和AC6明顯的區(qū)別就是編譯速度上差異很大,AC6即使生成瀏覽信息,在編譯的時(shí)候,速度相比AC5快很多。
而且代碼量也有差異:

2.AC5和AC6生成瀏覽信息方式不同
如果你使用過AC6,你會(huì)發(fā)現(xiàn):在不用編譯的情況下,可以直接Go To Definitionxxx瀏覽代碼。
比如:你直接使用STM32CubeMX配置生成Keil MDK的代碼,修改配置,使用AC6編譯器,你會(huì)發(fā)現(xiàn)不用編譯就可以直接Go To Definition。
當(dāng)然,前提你要配置使用AC6編譯器:

還有,AC6生成瀏覽信息是在后臺(tái)自動(dòng)完成的,可能需要等待幾秒鐘或者更長(zhǎng)時(shí)間(與你電腦配置有關(guān))。
責(zé)任編輯:xj
原文標(biāo)題:Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異
文章出處:【微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
keil
+關(guān)注
關(guān)注
69文章
1228瀏覽量
172461 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51404 -
MDK
+關(guān)注
關(guān)注
4文章
211瀏覽量
33603
原文標(biāo)題:Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在Keil5中查看棧大小
5 GHz,802.11ac,支持 LAA 的前端模塊 skyworksinc
scons --target=mdk5編譯不成功如何解決?
nano版本使用AC6編譯器下,不顯示msh怎么解決?
rt_list_for_each_entry編譯失敗怎么解決?
請(qǐng)問如何在keil μVision 5上進(jìn)行ARM編譯器的代碼優(yōu)化?
CW32L011_PD Power 口袋電源活動(dòng)
stm32f407ZGT6生成的bootloader打印的app分區(qū)偏移地址正常嗎?
求助,關(guān)于NanoEdge AI Studio生成的庫(kù)交叉編譯器版本疑問求解
5 GHz 802.11ac WLAN 前端模塊 skyworksinc
5 GHz,802.11n/ac 前端模塊 skyworksinc
Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異有哪些
評(píng)論