RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驚爆內(nèi)幕:老MDK也可以使用新編譯器!

工程師 ? 來源:邏輯思維 ? 作者:邏輯思維 ? 2020-10-19 14:19 ? 次閱讀

【寫在前面的話】

如果說“喜新厭舊”是人類的天性,那么嵌入式程序員一定是特例——他們尤其不喜歡更換自己用慣了的工具——拿IDE來說吧,相當(dāng)一部分人仍然抱著老版本的MDK遲遲不愿意更新,這里的原因很多:

“忙的要死,哪有時(shí)間去嘗試新版本”

“新版本有啥特別的么?能用樹狀結(jié)構(gòu)管理工程文件了么?”

“新編譯器穩(wěn)定么?”

“有破解么?”

“啥?更新了?我怎么不知道?”

Arm官網(wǎng)太慢了……”

“目前的代碼是一坨屎山……MDK的版本沒人敢動……出了事你負(fù)責(zé)?”

……

即便如此,仍然有一部分“逆行者”特別喜歡嘗試全新版本的MDK——如果問起原因:“uVision萬年不更新為啥要對新版本的MDK如此執(zhí)著”——其回答一定是:“我想嘗試最新版本的編譯器”。

除此以外,還有另外一批人,他們因?yàn)槟承┰颍ū热鏛icense),被“束縛在了”某個(gè)版本的MDK上,即便如此,他們也有一些相當(dāng)合理的需求:

他們可能對當(dāng)前MDK所使用的編譯器版本并不滿意,并迫切希望使用過去某個(gè)“久經(jīng)考驗(yàn)”的編譯器版本;

他們可能希望嘗試Arm官方最新發(fā)布的編譯器(例如修復(fù)了某個(gè)困擾已久的bug),但通常只有新版本的MDK才會搭載最新的編譯器版本;最要命的是,一般來說新版本的MDK總是要比新版本的編譯器遲到好幾個(gè)月!

怎么辦呢?別急,今天就為大家曝光MDK一個(gè)鮮為人知的隱藏功能。

【正文】

最近,Arm發(fā)布了Arm Compiler 6的最新版本 6.15。而最新版本的MDK也不過支持到 6.14:

那么我們?nèi)绾卧诋?dāng)前MDK版本下使用最新的 Arm Compiler 6.15 呢?

第一步:

從Arm官方網(wǎng)站下載最新的 Arm Compiler 6。需要特別注意的是,一定要下載 32bit 的版本(默認(rèn)情況下會下載64bit的版本)

第二步:

將新的編譯器安裝到MDK所在的安裝目錄下:假設(shè)MDK被安裝在“C:\Keil_v5”,則將新的編譯器安裝到“C:\Keil_v5\Arm\”目錄下,如果有所疑問,請看截圖:

第三步:

打開MDK,并通過菜單 project-》manage-》project items 打開“manage project items” 窗口:

在窗口中,切換到“Folders/Extensions”選項(xiàng)卡,并單擊下圖中紅色矩形框所標(biāo)記的按鈕“。。.”

在彈出的對話框中,單擊“Add another ARM Compiler Verison to List.。。”

選中剛剛編譯器所安裝的目錄:

單擊OK。如果編譯器被正確的識別,我們將會看到它被加入到 ARM Compiler Versions 列表中:

此時(shí),單擊 Close、并關(guān)閉MDK。重新啟動MDK后,我們就可以在工程的配置選項(xiàng)中看到新加入的Arm編譯器了:

在Code Generation-》Arm Compiler 下來列表中選擇新加入的編譯器版本(比如這里的 6.15),立即試一下:

怎一個(gè)爽字了得!打完收工。

【結(jié)語】

其實(shí),在這一過程中,有以下幾點(diǎn)值得特別強(qiáng)調(diào)一下:

“下載 32bit 版本” 連同 “安裝新編譯器到 MDK 原有的安裝目錄下” 會“建議” 新的編譯器使用 MDK 已有的License;

你的MDK最少本身也要支持Arm Compiler 6;

這些步驟僅對 Arm Compiler 有效;

除了安裝最新版本的編譯器,你當(dāng)然也可以用來安裝老版本的Arm編譯器,這里同時(shí)包括 Arm Compiler 5(也就是armcc)和 Arm Compiler 6(也就是armclang);

仔細(xì)觀察窗口“Manage Project Items” 窗口,你會發(fā)現(xiàn),MDK實(shí)際上也支持 GCC 編譯器——通過勾選 “Use GCC Compiler (GNU) for ARM projects”,并正確配置GCC編譯器所在的目錄來啟用GCC作為MDK的當(dāng)前編譯器。

一旦設(shè)置成功,你會發(fā)現(xiàn),平時(shí)熟悉的工程選項(xiàng)也變了樣:

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9084

    瀏覽量

    367381
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1623

    瀏覽量

    49108
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    209

    瀏覽量

    32063
收藏 人收藏

    評論

    相關(guān)推薦

    HighTec C/C++編譯器支持Andes晶心科技RISC-V IP

    汽車編譯器解決方案領(lǐng)先供貨商HighTec EDV-Systeme GmbH宣布其針對汽車市場的高度優(yōu)化C/C++編譯器支持Andes晶心科技的RISC-V IP。這項(xiàng)支持對汽車軟件開發(fā)人員來說是一
    的頭像 發(fā)表于 12-12 16:26 ?185次閱讀

    分享關(guān)于編譯器的科普

    源代碼分析工具和IDE集成。GCC被構(gòu)建成一個(gè)單一的靜態(tài)編譯器,這使得它非常難以被作為API并集成到其他工具中。 GCC比Clang支
    的頭像 發(fā)表于 12-09 09:49 ?83次閱讀

    分享一個(gè)keil MDK編譯信息增強(qiáng)工具

    今天給大家分享一個(gè) keil MDK 編譯信息增強(qiáng)工具:keil-build-viewer. 1 keil-build-viewer介紹 這是一個(gè) keil 的編譯信息展示增強(qiáng)工具,支持芯片存儲
    的頭像 發(fā)表于 11-14 11:01 ?411次閱讀

    C7000優(yōu)化C/C++編譯器

    電子發(fā)燒友網(wǎng)站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 09:45 ?0次下載
    C7000優(yōu)化C/C++<b class='flag-5'>編譯器</b>

    Keil編譯器優(yōu)化方法

    我們都知道,代碼是可以通過編譯器優(yōu)化的,有的時(shí)候,為了提高運(yùn)行速度或者減少代碼尺寸,會開啟優(yōu)化選項(xiàng)。
    的頭像 發(fā)表于 10-23 16:35 ?504次閱讀
    Keil<b class='flag-5'>編譯器</b>優(yōu)化方法

    AI編譯器技術(shù)剖析

    隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進(jìn)入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如將高級語言編寫的源代碼轉(zhuǎn)換為機(jī)器可執(zhí)行的代碼,還融入了人工智能技術(shù)
    的頭像 發(fā)表于 07-17 18:28 ?1615次閱讀

    人工智能編譯器與傳統(tǒng)編譯器的區(qū)別

    人工智能編譯器(AI編譯器)與傳統(tǒng)編譯器在多個(gè)方面存在顯著的差異。這些差異主要體現(xiàn)在設(shè)計(jì)目標(biāo)、功能特性、優(yōu)化策略、適用范圍以及技術(shù)復(fù)雜性等方面。以下是對兩者區(qū)別的詳細(xì)探討,旨在全面解析其內(nèi)在差異。
    的頭像 發(fā)表于 07-17 18:19 ?1834次閱讀

    Meta發(fā)布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構(gòu)建,并融合了先進(jìn)的代碼優(yōu)化和編譯器功能。LLM編譯器的推出,標(biāo)志著Meta在人工智能領(lǐng)域的又一重大突破,將
    的頭像 發(fā)表于 06-29 17:54 ?1489次閱讀

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設(shè)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸優(yōu)化:通過調(diào)整
    的頭像 發(fā)表于 06-04 15:31 ?1443次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    使用mdk編譯時(shí),提示警告的原因?

    在使用mdk編譯時(shí),提示警告..MiddlewarescJSONcJSON.c(2001): warning:#2803-D: unrecognized GCC pragma 我使用的是v5的編譯器,不想使用v6,有解決辦法嗎
    發(fā)表于 05-27 07:02

    C語言:嵌入式開發(fā)中的關(guān)鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關(guān),需要使用C語言來讀寫底層寄存、存取數(shù)據(jù)、控制硬件等,C語言和硬件之間由編譯器來聯(lián)系,一些C標(biāo)準(zhǔn)不支持的硬件特性操作,由編譯器提供。
    發(fā)表于 04-26 14:53 ?610次閱讀
    C語言:嵌入式開發(fā)中的關(guān)鍵<b class='flag-5'>編譯器</b>角色

    使用mdk的ac6編譯器一直報(bào)錯(cuò)是怎么回事?

    使用mdk的ac6編譯器一直報(bào)錯(cuò)
    發(fā)表于 04-10 06:01

    用CUBE生成STM32H743工程,用iar編譯器進(jìn)入硬件錯(cuò)誤是哪里的問題?

    最近在用CUBE 生成STM32H743工程,用iar編譯器進(jìn)入硬件錯(cuò)誤,用MDK就沒問題,STM32H743只能用MDK嗎?
    發(fā)表于 04-07 06:07

    STM32CubeMX生成FreeRTOS的MDK工程不支持AC6編譯器嗎?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯器有很多錯(cuò)誤,是STM32CubeM
    發(fā)表于 03-06 08:24

    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發(fā)表于 02-18 10:02 ?923次閱讀
    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉<b class='flag-5'>編譯器</b>)
    RM新时代网站-首页