色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

MDK-ARM編譯器從V5升級到V6需要做哪些工作 ?

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-12 11:42 ? 次閱讀

前面我分享過一篇文章【MDK v5.25比較實用的功能】,其中大概提了一下:編譯器升級到ARM Compiler 6.9。

就在前天,一關注我的朋友問了我這樣一個問題:

黃老師您好,前些日子您更新的公眾號中介紹最新版本的keil5.25中提到了伴隨更新的新編譯器6.9。在簡單的把原來的5版本編譯器修改為6后,重新編譯工程,出現(xiàn)了大量錯誤,并且大都包含在庫文件中,請問您是否曾注意過這一點,并怎么解決的呢?

本文主要內(nèi)容:

1.先給大家講述一下官方的解決辦法;

2.實際工程中的解決辦法;

Ⅰ你了解過ARM Compiler 6.9嗎?

MDK-ARM在16年就將編譯器升級到了V6版本,但很少有人關心這個功能。包括我在內(nèi),其實一直都只知道MDK-ARM支持V6版本的編譯器,但沒有真正使用過。

那位朋友前天問我時,我回復他:我也沒仔細研究過這個問題。

那位朋友對這個V6.9編譯的功能研究了一天之后,沒有完全解決這個問題,昨天晚上又給我說了他研究的情況。于是,我就開始了這個問題的研究。

最后,經(jīng)過我昨晚的研究,得出了解決辦法。而且,效果真的很好(編譯效率),編譯的速度,可以和IAR相比拼了。我想,我后面使用MDK-ARM就基于V6.9了。

ⅡARM Compiler 5 to 6

MDK-ARM編譯器從V5轉(zhuǎn)到V6的解決辦法,只要用心去研究的朋友都能在Keil官網(wǎng)找到官方的說明文檔。

官方說明文檔下載地址:

http://www.keil.com/appnotes/docs/apnt_298.asp

先看下這個說明文檔的目錄:

看目錄,其實很簡單,我大概說一下里面重要的幾點:

1.Switch the Compiler in μVision IDE

即配置工程,將編譯器切換到V6.9:Project -> Option for Target ->Target.

2.Diagnostic Settings: Warnings and Errors

即診斷設置,也就是配置工程,編譯時警告輸出的方式:先切換到V6.9,再配置(默認AC5-like即可,如果錯誤較多,可No Warning,不顯示警告):

這里想說一點:V6編譯器檢查的規(guī)則更加嚴格,簡單來說,就是編譯的警告會更多。如以前的一些代碼編譯都是沒有警告,但用V6.9就可能有警告,如:

void HardFault_Handler(void)

{

while (1)

{

}

}

while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);

{

}

3.Incompatible Language Extensions

即V5和V6的指令不兼容,我們需要修改不兼容的代碼。其實,就那么幾條不兼容的語句,編譯之后見到的錯誤基本就是由于這些語句的不兼容導致的。

4.Select a Compiler Optimization Level

這里編譯等級,其實不是重點,默認即可。

5.Object and Library Compatibility

關于使用庫存在的一些問題,在編譯的時候,添加關鍵字:-fshort-enums -fshort-wchar(一般默認都是添加了的):

6.Data Packing

這里主要是說數(shù)據(jù)結(jié)構(gòu),也是上面的指令不兼容的問題。如果之前使用typedef __packed struct定義,則替換成:__PACKED_STRUCT。

7.Assembler Migration

匯編遷移:這一節(jié)可以說是重點。

很多RTOS都有一個或多個與匯編有關的源代碼文件,所以,很多有RTOS的工程,編譯后都會存在許多錯誤。常見的就是“asm”這個關鍵字。

文件中大概說明了:兼容GNU標準,不兼容ARM標準。其中還特別強調(diào)了關于Inline Assembler的一點,僅支持GNU標準:

本節(jié)重點帶領大家分析官方的資料,下一章節(jié),實際應用中,我們的快捷的解決方法。

Ⅲ實際應用解決方法

上面官方的解決辦法,可以總結(jié)為兩點:

1.修改工程配置;

2.修改源代碼;

實際應用中,我們也是這樣按照官方一步一步修改源代碼嗎?

答案:如果兼容的源代碼,替換即可; 如果沒有,就只有按照官方說明一步一步修改。

下面,我就來教大家如何使用官方提供的、兼容V6.9的代碼替換,這種快捷解決問題的辦法。

1.解決CMSIS不兼容問題

下載最新的CMSIS文件替換你工程中CMSIS文件。

下面是關于CMSIS的一份官方說明,大概意思就是向下兼容。

下載地址:http://www.keil.com/dd2/Pack

如果我們安裝了最新的MDK-ARM V5.25,在安裝目錄下都有這些文件:

這種方法可解決Cortet-M等處理器程序編譯的錯誤問題,如STM32F0、F1、F4等Cortet-M等程序。

2.解決帶FreeRTOS編譯錯誤問題

FreeRTOS解決辦法,除了解決上面CMSIS的問題,還需要解決操作系統(tǒng)部分匯編帶來的問題,簡單說就是【FreeRTOSSourceportableRVDS】這個目錄下源代碼不兼容的問題。

解決辦法,替換相應文件:

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

    關注

    134

    文章

    9098

    瀏覽量

    367679
  • 編譯器
    +關注

    關注

    1

    文章

    1634

    瀏覽量

    49139
  • MDK
    MDK
    +關注

    關注

    4

    文章

    209

    瀏覽量

    32076
收藏 人收藏

    評論

    相關推薦

    ARM優(yōu)化C/C++編譯器 v20.2.0.LTS

    電子發(fā)燒友網(wǎng)站提供《ARM優(yōu)化C/C++編譯器 v20.2.0.LTS.pdf》資料免費下載
    發(fā)表于 11-07 10:46 ?0次下載
    <b class='flag-5'>ARM</b>優(yōu)化C/C++<b class='flag-5'>編譯器</b> <b class='flag-5'>v</b>20.2.0.LTS

    ADS7813升級到ADS8513

    電子發(fā)燒友網(wǎng)站提供《ADS7813升級到ADS8513.pdf》資料免費下載
    發(fā)表于 10-21 09:59 ?0次下載
    <b class='flag-5'>從</b>ADS7813<b class='flag-5'>升級到</b>ADS8513

    keil5怎么利用sys進行配置ti環(huán)境

    設計。 安裝TI ARM工具鏈: 要為TI微控制開發(fā)應用程序,您需要安裝TI ARM工具鏈。這包括編譯器、鏈接
    的頭像 發(fā)表于 09-02 10:19 ?579次閱讀

    將Non-OS SDK1.3.0升級到1.4.0后,AT CWLAP命令將無法再找到我的AP,為什么?

    將Non-OS SDK1.3.0升級到1.4.0(AT版本0.40升級到0.50)后,AT CWLAP命令將無法再找到我的AP。它仍然會找到一些 AP,但不是我想使用的 AP,它在物理上最接近
    發(fā)表于 07-17 06:00

    升級到RTOS SDK v1.5版本編譯報錯如何解決?

    準備升級到RTOS SDK v1.5版本,在進行工程編譯的時候出現(xiàn)問題,cJSON.c使用了floor和pow兩個方法,并且該文件#include ,但在鏈接的時候庫中找不到這兩個方法的定義,出現(xiàn)
    發(fā)表于 07-12 06:10

    浪潮信息發(fā)布AIStation 人工智能開發(fā)平臺V5升級

    7月9日,在“元腦中國行”全國巡展?jié)险旧希顺毙畔l(fā)布「AIStation 人工智能開發(fā)平臺V5升級版」,具備全面的大模型流程支持能力,幫助企業(yè)用戶降低構(gòu)建大模型微調(diào)任務門檻,提供標準、安全
    的頭像 發(fā)表于 07-10 16:25 ?703次閱讀

    VSCode使用ESP-IDF插件1.50升級到1.5.1之后Monitor快捷鍵命令報錯怎么解決?

    系統(tǒng)環(huán)境:Win7 IDF版本:V4.2.1 VSCode版本:1.70.1 硬件芯片:ESP32-PICO-D4 問題描述: 1.ESP-IDF插件升級到1.5.1之后Monitor快捷鍵命令報錯,報錯日志如下 2.回滾到1.5.0版本后功能正常,日志如下:
    發(fā)表于 06-13 06:54

    使用mdk編譯時,提示警告的原因?

    在使用mdk編譯時,提示警告..MiddlewarescJSONcJSON.c(2001): warning:#2803-D: unrecognized GCC pragma 我使用的是v5
    發(fā)表于 05-27 07:02

    如何將stm32f207的以太網(wǎng)庫中l(wèi)wip1.3.2升級到1.4.1?

    如何將stm32f207的以太網(wǎng)庫中l(wèi)wip1.3.2升級到1.4.1
    發(fā)表于 05-17 08:04

    stm32cubemx生成mdk-arm v4項目文件無法打開是什么原因?qū)е碌模?/a>

    stm32cubemx 生成mdk-arm v4 項目文件無法打開
    發(fā)表于 05-14 06:43

    如何將CubeMX生成的FreeRTOS V9工程升級成FreeRTOS V10?

    發(fā)現(xiàn)CubeMX 自帶的 FreeRTOS 版本太舊了, 是V9 而最新的FreeRTOS 是V10 而且調(diào)試起來 V9 配合MDKV5
    發(fā)表于 04-25 07:08

    如何在Keil MDK-ARM環(huán)境下開發(fā)STM32L011K4T6

    在Keil MDK-ARM環(huán)境下開發(fā)STM32L011K4T6
    發(fā)表于 04-22 06:49

    STM32CubeMX版本升級由6.2.1升級到6.3.0后原工程重新編譯code文件變大什么原因?

    STM32CubeMX版本升級由6.2.1升級到6.3.0后原工程重新編譯code文件變大什么原因
    發(fā)表于 04-02 07:31

    UPDATE工程ACIM-NUCLEOG431RB-IHM023V3-VF_OL報錯如何解決?

    FreeMarker template,選用的STM32CubeMX為6.2.0,package選用STM32 FW V1.3.0,編譯器選用的Keil MDK-ARM V5。換成I
    發(fā)表于 03-19 08:28

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

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯
    發(fā)表于 03-06 08:24
    主站蜘蛛池模板: 杨幂视频在线观看1分30秒| 亚洲国产女人aaa毛片在线| 97国产精品久久精品国产| 青草国产在线视频免费| 久久vs国产| 国产成人高清在线观看播放| 最新高清无码专区在线视频| 亚洲视频免费看| 亚洲精品自在在线观看| 色综合伊人色综合网站| 欧美性xxx免费看片| 欧美GV肉片视频免费观看| 蜜柚影院在线观看免费高清中文| 黄梅戏mp3大全| 精品成人在线视频| 娇妻玩4P被三个男人伺候电影| 亚洲AV久久久噜噜噜久久| 无码中文字幕热热久久| 亚洲AV噜噜狠狠网址蜜桃尤物| 帅哥男男GV在线1080P| 色戒无删减流畅完整版| 亚洲第一页视频| 伊人国产在线观看| 91看片淫黄大片.在线天堂| fryee性欧美18 19| 丰满老熟好大bbbxxx| 国产精品伊人| 久久免费视频1| 青青草原国产| 亚洲 欧美 国产 伦 综合| 亚洲AV久久久久久久无码| 国产精品自在自线亚洲| 佐山爱痴汉theav| 国产成人无码精品久久久按摩| 美女扒开尿口让男生添动态图| 亚洲国产AV一区二区三区四区| 猪蜜蜜网站在线观看电视剧| 国产99久久| 欧美色偷偷亚洲天堂bt| 中文字幕人妻无码系列第三区 | 美女脱衣服搞鸡|