當前位置:
首頁 > 最新 > S32DS 使用 tips-工程屬性配置

S32DS 使用 tips-工程屬性配置

內容提要

引言

1. 如何打開S32DS應用工程的屬性設置

2. 設置Cross Settings

2.1 配置Create flash image

2.2 配置print size

3. 配置Target Processor

4. 配置Standard S32DS C Compiler(C編譯器)

4.1預處理器設置(Preprocessor)

4.2 包含路徑(Includes)

4.3設置優化等級(Optimization)

4.4 配置調試信息(debugging)

5. 配置Standard S32DS C Linker(C鏈接器)

5.1 添加/設置鏈接文件

5.2 添加用戶庫

6. 配置Standard S32DS Assembler (彙編器)

總結

引言

本文詳細介紹S32DS應用工程的工程屬性配置,包括彙編器(Assembler)、C編譯器(Compiler)、鏈接器(Linker)以及編譯器所使用的C標準庫、鏈接完成後輸出Flash編程文件格式和memory使用統計結果的配置。

1. 如何打開S32DS應用工程的屬性設置

在工程管理器(Project Explorer)中選中工程,右鍵-->Properities或者快捷鍵Alt + Enter;

Tips:同一個可以有多個編譯目標(Bulid Target),不同的編譯目標可以設置不同的屬性配置

2. 設置Cross Settings

勾選使能兩個比較有用的工具

?Create flash image-->生成編程文件工具使能

?Print Size-->控制台列印編譯鏈接輸出結果大小

2.1 配置Create flash image

通過配置Create flash image,我們可以控制編譯結果elf生成的編程文件Output file format(輸出文件格式)

-Motorola S-record-->摩托羅拉S19文件

-Intel HEX-->英特爾HEX文件

-Raw binary-->二進位BIN文件

Tips:設置輸出文件格式為Motorola S-record,重新編譯生成的S19文件其文件名後綴默認為.srec而非.s19,所以需要手動修改其後綴為.s19才能被某些編程器或者軟體工具識別。

2.2 配置print size

?Size Format-->Berkely/SysV

?HEX-->輸出16進位結果/十進位結果

?Show totals-->輸出總大小

配置使能print size之後重新編譯S32DS應用工程,編譯結束後將在其控制台(console)會輸出編譯結果所佔RAM和Flash的大小統計結果:

其中:

RAM size = .data + .bss(不包含堆棧(heap and stack)大小)

Flash size = .text + .data

上述編譯結果的S19文件(S19文件中只包含要下載到Flash的代碼和數據)結果如下:

Tips:heap和stack的大小可以從工程的鏈接文件(.ld)或者編譯結果map文件中獲得:

3. 配置Target Processor

用於設置工程目標MCU內核處理器配置選項

-內核架構(Architecture)

-大小端(Endianess)

-Float支持(Float ABI)

-FPU支持(FPU Type)

-非對齊訪問(Unligned access)

-C標準庫(Library support)

Tips:工程創建好了之後還可以通過工程屬性的Target Processor對目標MCU的處理器選項進行重新配置,使能FPU硬體加速,選擇不同的C標準庫,從而實現優化。

4. 配置Standard S32DS C Compiler(C編譯器)

4.1預處理器設置(Preprocessor)

在此可以添加全局宏定義/標誌,對整個工程的.c和.h文件起作用

4.2包含路徑(Includes)

添加C編譯器可以訪問的路徑,所有需要編譯的.c和.h文件所在的目錄都必須在此添加,編譯的時候才能找到相應的文件

Tips:a. 新建工程是創建的目錄都默認添加到Includes下了,但用戶自己創建的目錄,不會自動添加,必須手段添加,否則編譯的時候會報找不到文件的錯誤;

b.推薦添加相對路徑(通過Workspace選擇添加),絕對路徑(通過File system..添加)在其他電腦上不一定能正常工作:

4.3設置優化等級(Optimization)

-None(-O0):無優化,推薦使用

-其他優化等級:需要客戶自己測試保證優化結果的正確性

4.4 配置調試信息(debugging)

通過配置調試等級設置(Debug Level)可以選擇elf文件中所包含調試信息的多少:

-等級越高elf文件中包含的調試信息越豐富,推薦使用Maximum(-g3)

-該設置不影響最終Flash編程文件的大小,僅影響elf文件的大小

5. 配置Standard S32DS C Linker(C鏈接器)

5.1 添加/設置鏈接文件

?在通用(General)中添加/設置工程的鏈接文件,同一個工程目錄下可以有多個鏈接文件,具體某個編譯目標使用哪一個鏈接文件選在在此指定,默認新建S32DS工程的編譯目標Debug/release-->S32K144_64_flash.ld,Debug_RAM-->S32K144_64_ram.ld,用戶也可以使用其他的鏈接文件,完成對memory的個性化定義。

?推薦添加相對路徑

?絕對路徑在其他電腦上不一定能正常工作

5.2 添加用戶庫

如果在應用工程中需要使用到用戶庫(比如演算法庫,驅動庫等),比如我們的AMCLIB.a這個電機驅動庫,則需要在Libraries選項中配置相應的.a庫文件和庫文件及頭文件搜索路徑:

?推薦添加相對路徑

?絕對路徑在其他電腦上不一定能正常工作

?引用的庫和相應的API定義頭文件必須也同時添加到工程目錄下在可以正常調用

6. 配置Standard S32DS Assembler (彙編器)

與C編譯器類似,提供針對彙編代碼的:

General:添加文件路徑

Symbols:全局符號定義

Optimization:優化等級設置

Debugging:調試信息配置

總結

嵌入式應用工程開發,從用戶輸入的彙編和C源代碼到最終生成可下載調試的elf文件和Flash編程文件,需要經過預處理-->編譯-->彙編-->鏈接這四個工程,對應的會使用到IDE裡面集成的預處理器-->C編譯器-->彙編器-->鏈接器,通過S32DS的工程屬性選項配置,我們可以對其進行詳細的配置和控制,同時通過S32DS集成的print size和create flash image兩個使用工具,可以得到編譯結果所佔用memory資源的大小和生成不同格式的Flash編程文件。

本文雖然以S32DS for ARM v2.0的應用工程為例進行的介紹,但其設置適用於S32DS for Power v1.1/2以及同樣基於eclipse的CodeWarrior 10.6/7 IDE。

以上就是今天跟大家分享的內容。希望對大家有用。

本微信公眾號已經發布的個人原創精品----嵌套嵌入式系統技術文章鏈接如下,歡迎大家參考學習,並轉發分享:

胡恩偉

NXP汽車電子FAE

2017年9月7日於成都

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 公眾號 的精彩文章:

南京佛手湖四方當代藝術湖區——三合宅
「刻舟求劍」的故事發生在現在,這樣做就可以了?
番外之朱子情(4)
婚姻,該如何經營?
再見,SPARC處理器!再見,SUN!

TAG:公眾號 |