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