国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Keil切換到Armclang編譯器,到底強(qiáng)在哪里?

開發(fā) 前端
ARM Compiler 5(及更早版本)使用 armcc 編譯器。而AC6(ARM Compiler 6) 用 armclang 替換了 armcc,因此是一個(gè)新的編譯器。七年前就有人問了這樣的問題。

[[427278]]

大家好,我是小麥,上次寫過一篇文章 《Keil 編譯太慢怎么辦?教你一招,提速10倍 》,減少了中間文件的生成,確實(shí)把編譯速度提高了很多,其實(shí)沒有從根本上解決問題,有大佬提出用直接上AC6。

于是我就切換到AC6上嘗試了一下,效果還是不錯(cuò)的,我就分享一下,感興趣的小伙伴們可以看一下,希望對(duì)你有所幫助。

AC6有何不同?

ARM Compiler 5(及更早版本)使用 armcc 編譯器。而AC6(ARM Compiler 6) 用 armclang 替換了 armcc,因此是一個(gè)新的編譯器。七年前就有人問了這樣的問題。

AC6和AC5具體有哪些差異呢?

參考鏈接:https://developer.arm.com/documentation/100068/0612/migrating-from-arm-compiler-5-to-arm-compiler-6/migration-overview

Arm Compiler 6 基于現(xiàn)代 LLVM 編譯器框架。Arm Compiler 5 不是基于 LLVM 編譯器框架。因此,將您的項(xiàng)目和源文件從 Arm Compiler 5 遷移到 Arm Compiler 6 ,我們需要注意幾點(diǎn):

  • 調(diào)用編譯器時(shí)命令行選項(xiàng)的差異。
  • 遵守語言標(biāo)準(zhǔn)的差異。
  • 編譯器特定關(guān)鍵字、屬性和編譯指示的差異。
  • 編譯器優(yōu)化和診斷行為的差異。

下面是AC6和AC5的工具鏈差異:

工具鏈差異

從這里我們可以看到,出了C編譯器和預(yù)處理器不同以外,其他基本上都是相同的。

除了工具鏈的差異,優(yōu)化也有差異,還有一些默認(rèn)的差異,包括編譯選項(xiàng),生成的固件命后綴不同等等,詳細(xì)可以參考上述的鏈接。至于強(qiáng)不強(qiáng),用了才知道嘛。

Keil中切換編譯器

在Keil MDK 5.27中,我們打開項(xiàng)目選項(xiàng),就可以切換編譯器了,這里包括了AC5和AC6,具體如下圖所示;

為了測(cè)試,我用CubeMX生成了一個(gè)STM32F103CB基于HAL庫(kù)的Keil MDK工程,使用AC5編譯器進(jìn)行構(gòu)建;

總共耗時(shí) 10 秒;

后面我切換成AC6編譯器,進(jìn)行重新構(gòu)建;

總共耗時(shí) 5 秒;

如果單純基于HAL庫(kù),沒有加入其他第三方庫(kù)的話,直接在項(xiàng)目選項(xiàng)中的編譯器選項(xiàng)中,選擇AC5和AC6就可以實(shí)現(xiàn)無縫切換,這是因?yàn)樵贑MSIS中已經(jīng)幫你做好了兼容性的處理,在cmsis_compiler.h中,這里的條件編譯選項(xiàng),我們可以發(fā)現(xiàn)已經(jīng)通過判斷不同的編譯器版本,而包含了不同的頭文件,分別是對(duì)應(yīng)armcc和armclag的;如下圖所示;

項(xiàng)目已經(jīng)根據(jù)系統(tǒng)進(jìn)行了選擇;

  1. #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 
  2.   #include "cmsis_armclang.h" 

判斷當(dāng)前__ARMCC_VERSION的版本號(hào),然后在包含cmsis_armclang.h頭文件,這個(gè)文件中就已經(jīng)幫我們做好了AC6所需要的兼容性修改。參考官方的文檔“apnt_298,Migrate ARM Compiler 5 to ARM Compiler 6 MDK Tutorial”,可以知道在C語言部分需要做以下的修改:

當(dāng)然了,一些涉及到很底層的操作,需要C和匯編混合編程的地方,也需要進(jìn)行修改,這里在文檔中也有類似的說明;

參考鏈接:https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html#Using-Assembly-Language-with-C

添加FreeRTOS

通過ST官方的CubeMX可以非常方便地在項(xiàng)目中添加FreeRTOS。

不過通過這個(gè)軟件進(jìn)行添加RTOS的話,它默認(rèn)使用的是ARMCC VERSION 5,所以,我直接切換成ARMCC VERSION 6的時(shí)候,進(jìn)行編譯就出現(xiàn)了115個(gè)Errors。

查看了錯(cuò)誤的源頭,主要錯(cuò)誤都在port.c和portmacro.h這兩個(gè)文件中,自己動(dòng)手移植過FreeRTOS的同學(xué)應(yīng)該知道,一般適配自己的硬件平臺(tái),所要做的移植工作,都會(huì)放到這個(gè)兩個(gè)文件中;

我查看了錯(cuò)誤,基本上是C編譯器語法,還有C和匯編混合編程語法不兼容所造成的問題;

從圖中可以知道,__forceinline和__asm{ }在AC6中都是不兼容的。

下面是來自文檔apnt_298對(duì)于匯編語法的兼容性修改;

當(dāng)然,我們可以根據(jù)文檔將不兼容的部分都修改過來,不過這里需要對(duì)ARM匯編有較好的掌握。不過FreeRTOS已經(jīng)有對(duì)AC6有較好的支持了。這里下載FreeRTOS的源碼,需要和前面的項(xiàng)目中所使用的FreeRTOS版本保持一致。

在源碼中找到了相應(yīng)文件,提示讓我們使用GCC-ports;

在GCC的路徑下找到ARM_CM3,這里包含了我們移植所需要的兩個(gè)文件,port.c和portmacro.h;

只要把這兩個(gè)文件拷貝到項(xiàng)目中,替換原來的文件即可;

重新構(gòu)建rebulid,可以看到構(gòu)建成功,耗時(shí)也很少;

總結(jié)

 

本文參考了官方的文檔,簡(jiǎn)單介紹了AC5和AC6的異同,并在Keil MDK環(huán)境下進(jìn)行測(cè)試,添加了FreeRTOS,要從AC5移植到AC6則需要參考文檔Migrate ARM Compiler 5 to ARM Compiler 6 MDK Tutorial,這里面解釋地非常詳細(xì)。

 

責(zé)任編輯:武曉燕 來源: 小麥大叔
相關(guān)推薦

2021-12-15 06:58:28

RedisEhCache緩存

2024-04-10 08:15:17

模型語言模型GPT

2021-02-26 07:17:47

MySQLMariaDB

2025-10-29 00:00:00

光通信AI人工智能

2014-01-07 13:54:40

Hadoop日志

2017-06-22 16:18:58

IBM光譜存儲(chǔ)軟件定義存儲(chǔ)

2019-05-22 10:38:00

5G芯片中興

2023-01-09 08:32:00

編譯器虛擬機(jī)操作系統(tǒng)

2012-09-13 14:11:07

Windows Ser微軟云平臺(tái)

2021-10-08 14:43:24

WiFi 5WiFi 6遠(yuǎn)程

2010-01-18 10:34:21

C++編譯器

2010-01-21 09:11:38

C++編譯器

2017-11-30 14:14:53

2015-06-30 14:33:52

物聯(lián)網(wǎng)

2023-06-27 17:30:13

數(shù)字化

2020-08-06 09:08:51

開發(fā)谷歌微軟

2017-03-16 14:31:11

2010-03-23 11:17:16

Python 動(dòng)態(tài)編譯

2017-03-20 18:01:55

編譯器匯編

2009-08-10 17:12:54

C#編譯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91精品国产精品| 欧美美女直播网站| 国产国语刺激对白av不卡| 久操视频在线免费播放| 成人黄色大片在线观看 | 欧美精品一区二区三| 九九热只有这里有精品| 欧美先锋影音| 欧美制服第一页| 日韩av一级| 日韩欧美国产wwwww| 中文字幕中文字幕在线中文字幕三区| 国产v综合v亚洲欧| 蜜桃成人在线| 欧美日韩国产高清电影| 美日韩在线视频| 绿色成人影院| 欧美精品久久99久久在免费线 | 久久青草精品视频免费观看| 99视频免费在线观看| 偷窥国产亚洲免费视频| 污片在线免费看| 国产宾馆实践打屁股91| 亚洲综合五月天| 亚洲一区观看| 久久99精品久久久久子伦| 欧美福利网址| 成人免费福利在线| 亚洲aa在线| 欧洲亚洲女同hd| 岳的好大精品一区二区三区| 欧美激情网站在线观看| 日韩成人精品| 久久久久久久999| 97超碰成人| 国产综合在线看| 蜜臀av一区| 日韩女优在线播放| 奇米影视777在线欧美电影观看| 九九热精品视频国产| 亚洲视频国产| 777777777亚洲妇女| 亚州av一区| 国产精品亚洲视频在线观看| 水蜜桃精品av一区二区| 成人激情直播| 久久国产直播| 日韩亚洲一区在线播放| 国产一区二区三区香蕉| 成人免费观看cn| 久久久久久99久久久精品网站| 天天操天天爽天天射| 综合电影一区二区三区| 美女av网站| 香蕉av福利精品导航| 国产免费av高清在线| 欧美一区二区久久久| 九色porny丨首页入口在线| 在线播放日韩av| 久久综合五月婷婷| 99久久久精品免费观看国产| 视频一区二区三区在线| 97在线国产视频| 中文字幕一区二区视频| 男同在线观看| 亚洲精品久久久一区二区三区| 亚洲成人1区| 国产精品久久久久久久久久ktv | 2021中文字幕一区亚洲| 天堂中文视频在线| 亚洲午夜免费福利视频| 国产乱视频在线观看| 精品剧情v国产在线观看在线| 亚洲女同av| 97视频在线观看视频免费视频| 欧美3p视频| 婷婷久久伊人| 久久久久9999亚洲精品| 玖草视频在线| 日韩欧美一级二级| 国产亚洲观看| 亚洲一区二区三区成人在线视频精品| 日韩精品久久久久久| 777久久久精品一区二区三区| 亚洲激情五月婷婷| 男人天堂亚洲| 欧美亚洲国产精品| 国产欧美日韩综合一区在线播放| 男女激烈动态图| 樱桃国产成人精品视频| 免费a级在线播放| 欧美另类xxx| 在线日本成人| 无码无遮挡又大又爽又黄的视频| 日韩欧中文字幕| 成人全视频免费观看在线看| 国产日韩在线视频| 国产成人免费xxxxxxxx| 性欧美精品孕妇| www高清在线视频日韩欧美| 亚洲色图二区| 国产91在线视频观看| 欧美喷水一区二区| 好吊妞国产欧美日韩免费观看网站 | 午夜精品三级视频福利| 狠狠干综合网| 青青在线视频免费| 91精品国产品国语在线不卡| 好吊妞视频这里有精品| 日本一区二区三区四区高清视频| 中文字幕一区在线观看视频| 免费在线观看av电影| 国产精品高潮呻吟久久av黑人| 国内外成人在线视频| 在线一区观看| 欧美成人免费视频| 久久精品盗摄| 有码在线播放| 久久久久久网址| 国产精品自拍在线| 日韩伦理在线观看| 青草热久免费精品视频| 成人免费视频免费观看| 在线heyzo| 亚洲一区亚洲二区亚洲三区| 日本一区二区免费在线观看视频| 日本不卡网站| 精品一区二区国产| 性感美女极品91精品| 欧美激情久久久久久久久久久| 麻豆一区二区三区在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲午夜免费| 亚洲黄色网址在线观看| 欧美日韩高清在线播放| 日韩欧美午夜| 国产超碰在线播放| 正在播放国产一区| 欧美a级一区二区| 免费a在线看| 国产精品一区免费观看| 亚洲成a天堂v人片| 亚洲桃色综合影院| 一道本在线免费视频| 欧美成人高清视频| 99久久99久久精品免费看蜜桃| 欧美片第1页| 成人av在线不卡| 国产一区二区三区欧美| 国产在线不卡视频| 国产福利电影在线播放| 日本一区二区三区免费观看| 欧美一区二区大片| 久久av一区| 国产91足控脚交在线观看| 亚洲不卡1区| 精品偷拍一区二区三区在线看| 久久精品国产第一区二区三区| 国产精品yjizz视频网| 欧美日韩亚洲国产成人| 国产亚洲精品久久久久久| 不卡一区二区在线| 午夜视频在线观看精品中文| 国产精品一区二区羞羞答答| 欧美性做爰毛片| 精品久久久久久久久久久| 一区在线观看| 欧洲性视频在线播放| avove在线观看| 精品国产一区二区三区久久久狼| 成年人国产精品| 日韩精品一区二区三区免费视频| 爱情岛论坛成人| 国产精品香蕉在线观看| 在线欧美小视频| 日本欧美久久久久免费播放网| 自拍偷拍欧美视频| 黄色av免费在线播放| 琪琪亚洲精品午夜在线| 欧美日韩国产专区| 亚洲精品系列| 台湾佬中文娱乐久久久| 成人免费观看视频在线观看| 欧美亚洲日本网站| 欧美视频一区二区三区四区 | 欧美日韩一本到| 久久久久国产一区二区| 香蕉伊大人中文在线观看| 国产麻花豆剧传媒精品mv在线| 欧美一区二区大胆人体摄影专业网站| 亚洲大片一区二区三区| 一本一道久久综合狠狠老精东影业| 蜜桃视频在线观看免费视频| 久色视频在线播放| 国产成人综合亚洲| 51精品久久久久久久蜜臀| 国产成人精品aa毛片| 欧美精选一区二区三区| 大黄网站在线观看| av网站一区|