加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異

2021/01/13
568
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

很多使用過(guò) Keil MDK 的工程師都發(fā)現(xiàn)了一個(gè)問(wèn)題,Keil MDK 編譯代碼的時(shí)候,速度很慢。

編譯速度慢有幾個(gè)原因:

編譯器

代碼量大小

工程配置(生成信息)

其中工程配置中生成信息包含多種,打開工程選項(xiàng)卡就能看見(jiàn)。Project -> Options for Target -> Output / Listing:

 

這里面有很多信息都會(huì)影響編譯速度,其中生成瀏覽信息(Browse Information),下面就來(lái)講講關(guān)于瀏覽信息的內(nèi)容。

關(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)描述。

AC5 與 AC6 生成瀏覽信息的差異

Keil MDK 編譯器默認(rèn)是使用 Arm Compiler(簡(jiǎn)稱 AC),目前主流的就是 AC5 和 AC6.

之前也給大家分享過(guò)關(guān)于 AC5 和 AC6 的文章:

全面認(rèn)識(shí) ARM 編譯器 AC6.12

Keil MDK 編譯器 AC5 和 AC6 優(yōu)化選項(xiàng)重要內(nèi)容和區(qū)別

其實(shí) AC5 和 AC6 還真有很多地方不同,之前使用 AC5 的代碼工程,很多地方都存在兼容性問(wèn)題。

1.AC5 和 AC6 生成瀏覽信息速度不同

如果不生成瀏覽信息(不勾選),AC5 的編譯速度其實(shí)也不算慢。

但是,一般情況下,軟件開發(fā)工程師為了方便編輯和調(diào)試代碼,一般都會(huì)生成瀏覽信息。

AC5 和 AC6 明顯的區(qū)別就是編譯速度上差異很大,AC6 即使生成瀏覽信息,在編譯的時(shí)候,速度相比 AC5 快很多。

而且代碼量也有差異:

2.AC5 和 AC6 生成瀏覽信息方式不同

如果你使用過(guò) AC6,你會(huì)發(fā)現(xiàn):在不用編譯的情況下,可以直接 Go To Definition xxx 瀏覽代碼。

比如:你直接使用 STM32CubeMX 配置生成 Keil MDK 的代碼,修改配置,使用 AC6 編譯器,你會(huì)發(fā)現(xiàn)不用編譯就可以直接 Go To Definition。

當(dāng)然,前提你要配置使用 AC6 編譯器:

還有,AC6 生成瀏覽信息是在后臺(tái)自動(dòng)完成的,可能需要等待幾秒鐘或者更長(zhǎng)時(shí)間(與你電腦配置有關(guān))。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。