女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

如何將項目從IAR遷移到Embedded Studio

麥克泰技術 ? 來源:麥克泰技術 ? 2025-02-25 17:11 ? 次閱讀

本文描述如何將IAR EWARM項目遷移到SEGGER Embedded Studio(簡稱SES)中。通過Embedded Studio內置的項目導入器,用戶可以在SES中繼續使用IAR工具鏈或使用Embedded Studio內部集成的SEGGER工具鏈。將項目遷移到Embedded Studio,可以直接受益于SES的強大功能,如多線程編譯,快速簡單的項目搜索,精準的索引等功能。如果仍然決定在Embedded Studio中使用IAR工具鏈,也有許多可以使用的實用功能。

項目導入說明基于SEGGER emPower評估板,使用的示例項目可以訪問:https://kb.segger.com/images/6/6a/IAR_to_ES_Tutorial.zip(復制鏈接到瀏覽器)下載。

1導入步驟

1 打開Embedded Studio,選擇菜單File→Import IAR EWARM Project…,選擇要導入的項目文件Workspace.eww。

b78885bc-f325-11ef-9310-92fbcf53809c.png

2 接下來,設置使用的工具鏈:

?External Toolchain:導入項目并將其配置為使用原始的IAR工具鏈構建。

?Internal Toolchain:導入項目并設置使用SES工具鏈。

?Internal and External Toolchain:創建兩組構建配置,一組使用原始的IAR工具鏈構建項目,另一組使用Embedded Studio工具鏈進行構建。

?“IAR Installation Directory”,用于設置使用的外部IAR編譯器。

3 為了順利的將項目遷移到Embedded Studio,建議基于Internal and External Toolchain創建構建配置,后續開發中,可以根據應用需求,輕松地在工具鏈之間切換。

b79aa026-f325-11ef-9310-92fbcf53809c.png

4 如果導入過程順利,將彈出以下狀態窗口:

b7a535e0-f325-11ef-9310-92fbcf53809c.png

5 Embedded Studio將根據使用的內部和外部編譯器為debug和release版本自動創建構建配,配置將與IAR項目中已有的配置相匹配。要在不同的構建配置之間進行切換,可以使用“Project Explorer”中的下拉菜單實現。

b7bb2fda-f325-11ef-9310-92fbcf53809c.png

6 要使用IAR編譯器調試示例項目,請在下拉菜單中選擇“Debug_External”,然后按F7構建該項目。

7 對于大多數項目,都可以通過上述操作導入并成功運行,如果出現構建錯誤,請參考“故障排除”一節。

注意:雖然可以僅運行調用外部工具鏈的外部配置,但我們建議切換到SEGGER工具鏈,因為在調試外部工具鏈創建的代碼時,某些調試功能不可用。

2如何切換到EmbeddedStudio內部編譯器

為了充分利用Embedded Studio的功能,需要使用SEGGER內部編譯器,該編譯器基于Clang。

在提供的示例項目中,通過下拉菜單選擇“Debug_Internal”,按F7后,項目將使用SEGGER內部編譯器構建。如需使用其他內部編譯器,如gcc,可以在項目options中啟用。

使用內部編譯器成功構建項目之后,Embedded Studio將自動計算應用的Flash和RAM占用情況,并在輸出窗口中直觀地展示。

b85c5fd6-f325-11ef-9310-92fbcf53809c.png

注意:此功能僅在使用內部編譯器時可用。

如果你計劃使用SEGGER工具鏈,我們建議跳過導入工具,直接使用項目向導創建一個新項目。如果有可用CPU的支持包,可以基于支持包和向導方式創建新項目。通過這種方式,所有與Embedded Studio及目標相關的項目設置將自動配置。用戶僅需將IAR項目中的源代碼文件添加到Embedded Studio文件夾中,并修正特定于IAR的編譯錯誤,并參考故障排除一節說明,修訂鏈接器腳本和內存映射設置,這種方法能夠節省大量時間,提高項目遷移效率。

3故障排除

導入的項目可以直接使用外部工具鏈重新構建運行,但如果基于SEGGER內部工具鏈構建,可能需要對項目構建配置進行一些手動更改。

通常情況下,如果源代碼按Clang兼容的標準創建,這些文件可以直接在SEGGER工具鏈中使用。如果項目是基于軟件包或SDK創建,它可能已經包含了SEGGER工具鏈兼容的源文件,使用這些文件取代以前工具鏈兼容的文件即可。

以下列出了將項目遷移到Embedded Studio時,需要更改的要點

3.1 內部配置

內存鏈接器腳本

Embedded Studio項目導入器不會自動導入鏈接器腳本(如IAR的icf文件)。它僅為選定的目標處理器設置基本內存映射,將代碼放入內部Flash,并將數據放入內部RAM中。

對于更復雜或特殊的配置,必須相應地設置內存映射文件和段放置文件。

在Embedded Studio中有兩種方式可以設置內存段的放置:

1 通過項目options中的“Linker→Memory Segments”選項直接放置段。

2 創建一個內存映射.xml文件或編輯Embedded Studio提供的默認文件,并設置“Linker→Memory Map File”指向該文件。

示例如下,一個具有兩個名為FLASH和RAM的內存段的設備內存映射文件:

b8c81a78-f325-11ef-9310-92fbcf53809c.png

相應的鏈接器文件將引用內存映射文件的內存段,并列出要放置在這些段中的節。

要添加新的段或節,只需編輯Embedded Studio提供的默認文件。使用鏈接的文件可以在“Linker→Linker Script File”選項中找到。

第三方軟件和庫

第三方軟件,特別是庫,可能是基于某個工具鏈配置,無法用其他工具鏈直接編譯。

檢查是否有Embedded Studio/SEGGER工具鏈的軟件庫移植版本,或者基于SEGGER工具鏈配置并重構軟件庫。

盡管基于其它工具鏈構建的庫可以鏈接到Embedded Studio,但實際運行時,還需檢查與庫的接口是否按預期工作,避免系統錯誤。

匯編代碼

匯編程序代碼和控制命令的語法在不同的工具鏈中存在差異。盡管最終的匯編指令是相同的,但是在不同的工具鏈上編寫的匯編代碼可能不同,例如,IAR和GCC/Clang編譯器中,數值常量聲明方式并不相同。

編寫匯編代碼的控制命令也存在區別。符號、標簽、函數定義等的語法需要根據編譯器要求進行調整,確保代碼在新的工具鏈中正常工作。

下表顯示了一些常用的匯編指令及其在不同工具鏈中的指令代替:

b8d4a022-f325-11ef-9310-92fbcf53809c.png

完整的指令列表可以參考相應的匯編手冊。

預處理器定義

不同的工具鏈使用不同的預定義來識別所使用的編譯器,并允許基于core、device、endianness和其他設置進行條件編譯。

在項目遷移時,必須選擇正確的定義,并建議在未定義所需條件時產生警告或錯誤提示。

IAR定義了__ICCARM__和__IAR_SYSTEMS_ICC__用于標識自身工具鏈,Embedded Studio定義了__SES_ARM和__SEGGER_CC__。

對于目標設備,IAR在編譯Cortex-M4時定義了__ARM7M__和__CORE__=__ARM7M__,而Embedded Studio則使用__ARM_ARCH_7M__替代。

工具鏈內聯函數

一些特定于編譯器的函數,如__disable_interrupt()或__no_operation()在Embedded Studio中并不存在。需編寫相應的替換函數或避免使用類似函數。

對于SEGGER編譯器,__no_operation()的替換函數可以定義為:

b8e49e64-f325-11ef-9310-92fbcf53809c.png

為了實現與IAR的向后兼容性,重定義可以嵌套在預處理器定義中。IAR EWARM使用__ICCARM__,Embedded Studio使用__SEGGER_CC__。

項目設置

大多數項目設置都是由項目導入器為外部和內部構建配置自動設置的。在一些更復雜的項目中,需要手動添加某些項目設置。

例如,默認情況下,內部構建配置中不會排除任何文件,所以如果存在編譯器不兼容的文件,編譯器將嘗試編譯它并顯示錯誤(例如GCC/Clang不兼容的匯編文件)。

可以Project Explorer右鍵單擊項目,并選擇“Edit options”修改。

用戶包含目錄

許多復雜項目的源代碼分布在不同路徑的多個文件夾中。確保所有需要的文件夾都包含在“Preprocessor→User Include Directories”下的構建配置中。

Pre/Post Build命令

Embedded Studio提供了類似IAR EWARM中的pre/post構建命令。然而,由于IAR和Embedded Studio之間的語法存在差異,項目導入器不會自動導入這些命令。

如果在IAR中使用這些命令,請確保在Embedded Studio的內部和外部構建配置中相應地模擬這些指令。要一次執行多個命令,也可以使用批處理腳本。

例如,要啟用post-link批處理腳本,可以打開項目options中的構建配置,在“User build Step”下編輯post-link Command命令。在該條目中,輸入bat文件的相對或絕對路徑以及可選參數,格式如下:路徑/ Example.bat Param1 Param2…。

3.2 外部配置

由于Embedded Studio只是通過命令行調用IAR工具鏈,因此只需以與EWARM相同的方式調用它即可使外部構建工作。導入工具將嘗試從IAR項目設置中檢測盡可能多的項目設置。但是,由于IAR IDE可能會隨著更新而變化,因此可能無法正確檢測到某些選項。

要解決這個問題,最簡單的方法是從IAR導出build命令行,并將其與Embedded Studio中的設置進行匹配,操作步驟如下:

在EWARM中打開IAR項目

在Build窗口中右鍵單擊并選擇Filter Level:All

重新構建項目

將構建日志復制到編輯器中

關閉EWARM并打開Embedded Studio

在項目資源管理器中右鍵單擊項目并選擇Export Build

比較EWARM和Embedded Studio的構建命令行,查看Embedded Studio缺少的選項并修正。

修正構建配置

要修正IAR構建命令行和Embedded Studio之間的差異,只需在Embedded Studio打開項目options。在大多數情況下必須糾正針對編譯器(iccarm)、匯編器(iasmarm)和鏈接器(ilinkarm)的命令行調用。用戶可以自己設置構建命令行的相應項目選項,或者直接轉到項目選項中的外部構建選項并直接編輯命令行。

完成上述步驟后,如果成功地匹配了EWARM和Embedded Studio的構建命令,那么應用程序可以基于Embedded Studio成功構建了。

麥克泰技術提供SEGGER Embedded Studio商業授權,具有豐富的軟件開發與調試工具使用方面的知識和經驗,歡迎咨詢[email protected]

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

    關注

    5

    文章

    369

    瀏覽量

    37242
  • Embedded
    +關注

    關注

    0

    文章

    49

    瀏覽量

    22642
  • 編譯器
    +關注

    關注

    1

    文章

    1654

    瀏覽量

    49887
  • Studio
    +關注

    關注

    2

    文章

    204

    瀏覽量

    29508
  • 評估板
    +關注

    關注

    1

    文章

    645

    瀏覽量

    29945

原文標題:如何將項目從IAR遷移到Embedded Studio

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何將PC Vivado項目遷移到Linux?

    大家好,我需要將Vivado項目PC遷移到Linux工作站。我應該為此目的做些什么?PC上的Vivado版本:2015.4PC:Win7 x64謝謝!以上來自于谷歌翻譯以下為原文Hi All, I
    發表于 12-21 11:01

    如何將項目開發板遷移到實際板

    所以,我有一個全歌舞的應用程序,我想從PIC32 MZ EF DEV Boad遷移到我自己的自定義板。(其使用PIC32 MZ2048 EFM100與144)。它的設置是在Harmony 1.08中,當然,引腳和材料設置不同……遷移項目的最佳方法是什么?MHC似乎很快就破
    發表于 10-22 13:52

    如何將EDK planAhead項目遷移到vivado

    大家好,我正在EDK planAhead項目遷移到vivado。在遷移我的一個pcoreblock時,我收到了該錯誤,并且遷移根本沒有發生
    發表于 05-05 16:59

    如何將CCSv3.3遷移到CCSv4?

    如何將CCSv3.3遷移到CCSv4
    發表于 02-25 07:15

    如何將SES工程GNU工具鏈遷移到Segger工具鏈上?

    的STM32F401RE的GNU工具鏈項目為例,介紹如何將遷移到Segger自己的工具鏈上。#遷移過程1、鏈接器改成Segger選中
    發表于 04-21 14:34

    請問哪里可以找到用于IAR Embedded Workbench的STM32G0處理器的啟動文件?

    于 G0(確切地說是 STM32G070RB)處理器的庫。IAR 的文件 startup_stm32g070rbtx.s 是否在任何地方可用,還是我需要自己創建它?或者是否有更簡單的方法 G0 的 STMCubeIDE 項目
    發表于 12-12 08:27

    如何將項目STM32F746G-disco遷移到STM32H735-DK?

    您好, touchGFX 項目 STM32F746G-disco 遷移到 STM32H735-DK 的最快方法是什么?實際上在touchGFX應用模板上我無法選擇STM32H735
    發表于 01-11 06:56

    如何將CubeMX項目從一系列MCU遷移到新系列的MCU?

    如何將 CubeMX 項目從一系列 MCU 遷移到新系列的 MCU?
    發表于 01-16 07:02

    如何將Keil μVision工程遷移到SEGEGR Embedded Studio

    和GCC,也支持外部工具鏈,如Clang/LLVM、IAR或ARM/KEIL編譯器。我們以一個基于Keil μVision 5.32的項目為例,介紹如何將遷移到SES 中。操作步驟打
    發表于 01-31 14:00

    如何將項目Arm Compiler 5遷移到Arm Compiler 6

    按照本教程中的步驟,現有的Arm Compiler 5裸機項目遷移到Arm Compiler 6裸機項目。完成遷移后,就可以重新構建您的可
    發表于 08-02 14:42

    如何將項目VDK遷移到μC/OS-III中

    本培訓模塊一步一步地說明如何將一個項目VDK (VisualDSP++ Kernel)遷移到μC/OS-III?
    的頭像 發表于 07-12 06:10 ?2366次閱讀

    如何將Keil μVision工程遷移到SEGEGR Embedded Studio

    和GCC,也支持外部工具鏈,如Clang/LLVM、IAR或ARM/KEIL編譯器。我們以一個基于Keil μVision 5.32的項目為例,介紹如何將遷移到SES 中。
    的頭像 發表于 01-13 11:24 ?2857次閱讀

    如何將LPC84x遷移到LPC86x

    電子發燒友網站提供《如何將LPC84x遷移到LPC86x.pdf》資料免費下載
    發表于 08-16 16:56 ?0次下載
    <b class='flag-5'>如何將</b>LPC84x<b class='flag-5'>遷移到</b>LPC86x

    如何將數據MySQL遷移到Influxdb中

    如果以前是時序數據存放在MySQL,現在為了獲取更好的性能和使用可視化工具,我們需要將數據MySQL遷移到Influxdb中。 這看起來是一個常見場景,經過一番查閱,發現了
    的頭像 發表于 11-02 10:54 ?1528次閱讀

    Keil MDK到IAR EWARM:通過工程遷移實現項目資產的更好管理

    對于需要統一開發環境或涉及多核架構(如Cortex-A/R)的項目,越來越多的用戶選擇Keil MDK遷移到IAR EWARM。這就會面臨著需要將之前的Keil MDK工程
    的頭像 發表于 05-08 09:03 ?310次閱讀
    <b class='flag-5'>從</b>Keil MDK到<b class='flag-5'>IAR</b> EWARM:通過工程<b class='flag-5'>遷移</b>實現<b class='flag-5'>項目</b>資產的更好管理