利用NXP S32DS和IAR Embedded Workbench for Arm加快基于NXP S32K3 MCU的汽車軟件開發(fā)
隨著市場需求和汽車行業(yè)不斷推進電動化、網(wǎng)聯(lián)化、智能化和共享化等“新四化”,工程師將會面對越來越多的軟件開發(fā)項目,去用高性能的、獲得車規(guī)級和功能安全認證的MCU開發(fā)相關應用。將MCU供應商匹配提供的MCU開發(fā)環(huán)境,與業(yè)內(nèi)領先的開發(fā)工具相結(jié)合,將會給開發(fā)人員帶來開發(fā)效率和成果性能的大幅提升。本文以在汽車行業(yè)被廣泛使用的S32K系列32位Arm Cortex汽車MCU為例,來介紹通過整合利用其S32DS開發(fā)環(huán)境和在行業(yè)中已被廣泛采用的IAR Embedded Workbench for Arm工具鏈,快速開發(fā)高性能汽車MCU應用。
自2017年推出以來,NXP S32K1 MCU在汽車電子市場上被廣泛應用。在此基礎上,NXP于2020年推出S32K3 MCU,進一步擴展了基于Arm Cortex-M0+/M4F的S32K1 MCU系列產(chǎn)品。全新的S32K3 MCU基于Arm Cortex-M7,并提供了多核和鎖步選項,可支持功能安全 ISO 26262 ASIL B/D。S32K3 MCU主要用于汽車車身電子系統(tǒng)、電池管理和新興的域控制器。
圖1:NXP S32K(來源:NXP)
為了解決與日俱增的軟件復雜度問題,NXP推出了實時驅(qū)動(RTD),可支持AUTOSAR和非AUTOSAR應用上的實時軟件,主要用于Arm Cortex-M內(nèi)核,使所有軟件層均符合ISO 26262要求。從而可以快速完成符合相關認證要求的應用。
圖2:NXP 實時驅(qū)動(RTD) (來源:NXP)
NXP S32K3 MCU擁有廣泛的合作伙伴來幫助客戶開發(fā)。作為NXP的重要合作伙伴,IAR Systems提供專業(yè)的嵌入式軟件開發(fā)工具。
最新推出的IAR Embedded Workbench for Arm V9.20.1已經(jīng)正式支持NXP S32K3 MCU (見參考材料1)。IAR Embedded Workbench for Arm V8.50.10 功能安全版本可用于基于S32K3實時驅(qū)動(RTD)的應用開發(fā)。
圖3:IAR Systems嵌入式軟件開發(fā)工具(來源:IAR Systems)
IAR Embedded Workbench for Arm廣泛應用于汽車電子軟件開發(fā)。其高度優(yōu)化的編譯器可以生成運行效率極高、并且體積小的可執(zhí)行代碼,最大程度釋放MCU性能,降低FLASH和RAM的占用。同時IAR Embedded Workbench for Arm具有強大的調(diào)試器、代碼分析工具可以幫助研發(fā)人員提升開發(fā)效率,提高代碼質(zhì)量,保障產(chǎn)品的可靠性。
為了方便客戶的應用開發(fā),IAR Embedded Workbench for Arm與NXP S32DS工具做了相應的集成,方便客戶在IAR Embedded Workbench for Arm工具上快速進行工程初始化。
NXP的S32 Design Studio中的S32配置工具(Configuration Tools) 可以快速配置引腳、時鐘和外設,大大簡化了S32K3 MCU的配置工作,可以加速開發(fā)前期的準備工作。通過S32DS做項目工程初始化,然后導入到IAR Embedded Workbench for Arm中進行項目開發(fā),可以為S32K3系列芯片用戶帶來極大的便捷。
下面將具體介紹如何利用NXP S32DS建立工程并導入到IAR Embedded Workbench for Arm來加快基于NXP S32K3 MCU的汽車軟件開發(fā)。
在NXP S32DS中安裝IAR Eclipse插件
NXP S32DS支持IAR Eclipse插件,但是IAR Eclipse插件沒有包含在S32DS安裝包中,需要單獨安裝,其方法可具體可以閱讀參考材料2。 在實際應用中,這適用于S32 Design Studio for ARM,同樣也適用于S32 Design Studio for S32 Platform。
在NXP S32DS中建立工程
在NXP S32DS中建立工程并選擇IAR Toolchain for Arm作為對應的工具鏈:
然后通過Configuration Tools配置對應的引腳、時鐘和外設并自動生成相應的代碼:
導出S32DS工程到IAR Embedded Workbench for Arm
在S32DS中建立工程時,如果選擇了IAR Toolchain for Arm 作為工具鏈,對應的工程可以導出并導入到IAR Embedded Workbench for Arm,具體步驟可以查閱參考材料3。導出工程的操作適用于S32 Design Studio for ARM和S32K1,同樣也適用于S32 Design Studio for S32 Platform和S32K3。
但是按照鏈接中的操作之后,IAR Embedded Workbench for Arm工程文件夾目錄和NXP S32DS里面的原有工程文件夾目錄不一致:
為此IAR提供了一個叫做EWPtool的插件,可以導入對應的源文件目錄到工程,具體可以查閱參考材料4。
下面是在從NXP S32DS導Workbench for Arm中之后的操作:
1. 刪除對應的Freescale Processor Expert文件夾(對應的工程文件夾目錄都會被刪除):
2. 添加新源文件目錄并選擇對應工程目錄(指向NXP S32DS創(chuàng)建工程的目錄):
3. 對應IAR Embedded Workbench for Arm的工程文件夾目錄和NXP S32DS里面的原有工程文件夾目錄一致:
4. 由于NXP S32DS中的startup代碼中的程序入口函數(shù)和中斷向量表與IAR Embedded Workbench for Arm默認使用的程序入口函數(shù)和中斷向量表不同,需要做下面的配置(在Linker選項中指定對應的程序入口函數(shù),在Debugger選項中指定對應的中斷向量表地址:“--drv_vector_table_base=_ENTRY_VTABLE”):
5. 然后就可以在IAR Embedded Workbench for Arm中進行編譯,下載和調(diào)試等相關操作了:
總結(jié)
本文以NXP最新推出的S32K3 MCU及相關的軟件開發(fā)資源為例,通過展示如何利用NXP原廠配置的S32DS工具建立基于S32K3 MCU的工程,并選擇業(yè)內(nèi)廣受歡迎的IAR Toolchain for Arm 作為工具鏈來提升對代碼質(zhì)量要求很高的項目的開發(fā)效率。通過NXP S32DS中的Configuration Tools配置對應的引腳、時鐘和外設,并自動生成相應的代碼,然后導出NXP S32DS工程到IAR Embedded Workbench for Arm進行后續(xù)開發(fā)。利用NXP S32DS的靈活配置和IAR Embedded Workbench for Arm高效的編譯效率加快基于NXP S32K3 MCU的汽車軟件開發(fā)。
當然,隨著越來越多的中國科技企業(yè)在工業(yè)應用、醫(yī)療設備和其他要求高可靠性和高性能的關鍵應用中發(fā)力,在這些領域中也存在著如何結(jié)合MCU原廠開發(fā)工具,以及諸如IAR Systems這些第三方廠商提供的高性能工具鏈各自的優(yōu)勢做應用開發(fā)的機會,工程師朋友們可以多做了解和嘗試。