前言
大家好,又見(jiàn)面了。前文我們?cè)敿?xì)介紹了 S32K3 RTD MCAL 開(kāi)發(fā)環(huán)境的搭建過(guò)程,包括軟件的下載、安裝、例程介紹等。本文將在開(kāi)發(fā)環(huán)境都完備的前提下繼續(xù)展開(kāi),如果你還沒(méi)有搭建好 S32K3 開(kāi)發(fā)環(huán)境,請(qǐng)參考:
S32K3 RTD MCAL 開(kāi)發(fā)環(huán)境搭建(詳細(xì)教程)
如果不使用 MCAL(Microcontroller Abstraction Layer),只想生成 LLD (Low Level Driver)程序的話,我們?cè)撊绾闻渲媚? 下面我們用版本號(hào)為 “SW32K3_RTD_4.4_2.0.0”的 RTD 軟件包為例,創(chuàng)建一個(gè)簡(jiǎn)單的工程,編譯、燒錄并進(jìn)行功能演示。
1. 建立工程
- 在 NXP 官網(wǎng)上找到“4_2.0.0”的 RTD 包,下載并安裝(參考前文的第2.3和3.3章節(jié))。其中 MCAL 是 exe 執(zhí)行程序安裝,而 LLD 則是 zip 格式作為 S32DS 的一個(gè)插件來(lái)安裝,這是因?yàn)楣ぞ哝湶煌?/li>

- 打開(kāi)S32DS 3.4,進(jìn)入菜單欄“Help”->“Install New Software”,按下圖步驟添加安裝包。

- 創(chuàng)建工程并輸入工程名,選擇芯片型號(hào)以及編譯器版本,根據(jù)Release Note文檔的描述,我們需要使用2版本的GCC。 SDK 選擇“PlatformSDK_S32K3_2022_03_S32K344_M7 v2.0.0”, Debugger選擇你使用的調(diào)試器,我這里使用 PEMicro,最后點(diǎn)擊“Finish”工程就創(chuàng)建好了。

2. 配置 CT(Configuration Tool)
- 下圖所示為創(chuàng)建好的工程,雙擊“.mex” ,或者在菜單欄找到“配置工具”并點(diǎn)擊“引腳”。

- 配置每個(gè)引腳的功能和屬性,我們使用大聯(lián)大世平集團(tuán)基于 S32K344 的最小系統(tǒng)開(kāi)發(fā)板,其中 RGB 小燈使用 PTA29/30/31 分別控制紅/綠/藍(lán)三種顏色,將這三個(gè)引腳復(fù)用配置為“SIUL2,gpio”模式,方向選擇“output”,初始值均設(shè)為“Low”。

- 可通過(guò)路由詳情表格配置 I/O 屬性,例如:

- 點(diǎn)擊界面右上角的“外設(shè)”按鍵或者在菜單欄找到“配置工具”并點(diǎn)擊“外設(shè)”,按下圖步驟添加 Siul2_Port 和 Siul2_Dio 兩組外設(shè)驅(qū)動(dòng)模塊,進(jìn)行 SDK 外設(shè)驅(qū)動(dòng)程序的初始化配置。

- 點(diǎn)擊“更新源代碼”生成引腳配置代碼,你可以點(diǎn)擊“更改”來(lái)查看生成代碼的更新,并勾選你想要更新的文件。

3. 編寫(xiě)程序
- S32DS CT 生成的文件結(jié)構(gòu)
- Siul2_Port 相關(guān)的驅(qū)動(dòng)代碼文件:
- RTD\include\Siul2_Port_Ip_Types.h
- RTD\include\Siul2_Port_Ip.h
- RTD\src\Siul2_Port_Ip.c
- Siul2_Port包含引腳配置結(jié)構(gòu)的文件:
- Board\Siul2_Port_Ip_Cfg.h
- Board\Siul2_Port_Ip_Cfg.c
- Siul2_Dio 相關(guān)的驅(qū)動(dòng)代碼文件:
- RTD\include\Siul2_Dio_Ip.h
- RTD\src\Siul2_Dio_Ip.c
- Siul2_Dio 包含引腳配置結(jié)構(gòu)的文件:
- generate\include\Siul2_Dio_Ip_Cfg.h
- Siul2_Port 相關(guān)的驅(qū)動(dòng)代碼文件:
- 打開(kāi) Siul2_ToggleLed_S32K344 工程的c 文件,引入相關(guān)的頭文件

- 添加一個(gè)延時(shí)函數(shù)

- 在< Siul2_Port_Ip_Cfg.h > 中我們可以找到下圖所示的宏定義,這是因?yàn)槲覀冊(cè)谂渲?I/O 屬性時(shí),在標(biāo)識(shí)符字段填寫(xiě)了引腳 ID。那“PTA_H_HALF”是什么意思呢,為什么 PTA29 的 PIN 設(shè)為 13?
通過(guò)《S32K3xx Reference Manual》附件中的《S32K344 IOMUX_Rev1.1.xlsx》表格可看出 IO 口按照A、B、C、D、E、F、G編號(hào)分成了7組(以 BGA257 為例),每組有0~31號(hào)共32個(gè)IO口,而H和L分別代表高16位和低16位,所以 PTA29實(shí)際屬于高16位的第13-Pin,其他引腳以此類推。


- 主函數(shù)實(shí)現(xiàn)功能:紅、綠、藍(lán)三色小燈依次閃爍。
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);
//初始化所有引腳配置,“g_pin_mux_InitConfigArr0”在之前生成的代碼中定義。
Siul2_Dio_Ip_TogglePins(LED_PTA29_PORT, 1<<(LED_PTA29_PIN+led_Switch));
//切換指定GPIO端口的電平。

4. 編譯并燒錄到開(kāi)發(fā)板
- 點(diǎn)擊小錘子“Build” 按鍵編譯,出現(xiàn)“Build Finished”并生成“.elf”文件代表編譯成功。

- 如下圖打開(kāi)調(diào)試配置窗口。如果沒(méi)有出現(xiàn)可參照的調(diào)試目標(biāo),右鍵 “GDB PEMicro Interface Debugging”選擇“New Configuration”新建調(diào)試目標(biāo);如果有參考目標(biāo)可以右鍵目標(biāo)選擇“Duplicate”。為工程重命名,并將Main窗口中的elf文件路徑配置到工程路徑。

- 切換至“PEmicro Debugger”標(biāo)簽頁(yè),將Executable設(shè)置為“${S32DS_GDB_ARM32_EXE}”,并選擇好調(diào)試器接口和芯片型號(hào),建議無(wú)論是不是新建的都要將這幾個(gè)地方檢查一遍,如下圖。當(dāng)Port口讀到下圖信息,代表Multilink已經(jīng)連接到開(kāi)發(fā)板上。進(jìn)入debug頁(yè)面,并點(diǎn)擊綠色運(yùn)行按鍵

- 燒錄程序。

- 開(kāi)發(fā)板上電,連接Multilink并燒錄程序,可以看到 RGB LED 燈切換紅、綠、藍(lán)三色交替閃爍,程序燒錄成功。

本次 S32K3 RTD LLD 工程建立已經(jīng)完成。之后會(huì)以大聯(lián)大世平集團(tuán)推出的 S32K3xx-EVB 方案為硬件平臺(tái),介紹 S32K3 MCAL 各模塊應(yīng)用,也是對(duì)自己的學(xué)習(xí)過(guò)程做一個(gè)總結(jié)(不定期更新 =_=),如果有任何問(wèn)題歡迎在博文下方留言,我們下次繼續(xù)~
參考資料
[1] S32K3xx Reference Manual, Rev.2 Draft C, 04/2021, NXP
[2] Cavalry (S32K3 Core Board) Rev.1 - Schematic
登陸大大通,了解更多S32K進(jìn)階之旅系列文章
-
NXP
+關(guān)注
關(guān)注
61文章
1337瀏覽量
187886 -
恩智浦
+關(guān)注
關(guān)注
14文章
5960瀏覽量
114352 -
s32k
+關(guān)注
關(guān)注
1文章
15瀏覽量
9927
發(fā)布評(píng)論請(qǐng)先 登錄
簡(jiǎn)述K3S和K8S的區(qū)別
FS26和S32K3可以正常喚醒,當(dāng)添加與SJA1110的通信時(shí),喚醒過(guò)程會(huì)卡在斷言錯(cuò)誤處,為什么?
S32DS v3.5安裝S32k3開(kāi)發(fā)包失敗的原因?
使用RTD5.0.0的s32k312,C40_Ip擦除pflash存在一些問(wèn)題求解決
求助,關(guān)于S32K342 IAR啟動(dòng)代碼問(wèn)題求解
求助,關(guān)于S32K388啟用了DCache的lwip問(wèn)題求解
EB tresos導(dǎo)入S32K1 RTD中的例程,verify工程時(shí)報(bào)錯(cuò)怎么解決?
S32K3 Boot跳轉(zhuǎn)到App時(shí),App無(wú)法獲取重置原因怎么解決?
WD50-110S24K1 WD50-110S24K1

【S32K 進(jìn)階之旅】如何使用 S32K3 PIT 定時(shí)器實(shí)現(xiàn)精準(zhǔn)延時(shí)?

S32K3xx參考手冊(cè)
S32K3系列汽車級(jí)MCU應(yīng)用筆記
基于 NXP S32K312+FS23 的汽車通用評(píng)估板方案

評(píng)論