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

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

3天內(nèi)不再提示

學技術(shù) | 【S32K 進階之旅】S32K3 RTD LLD 從零開始創(chuàng)建工程及燒錄

大大通 ? 2022-11-02 16:20 ? 次閱讀

前言

大家好,又見面了。前文我們詳細介紹了 S32K3 RTD MCAL 開發(fā)環(huán)境的搭建過程,包括軟件的下載、安裝、例程介紹等。本文將在開發(fā)環(huán)境都完備的前提下繼續(xù)展開。

如果不使用 MCAL(Microcontroller Abstraction Layer),只想生成 LLD (Low Level Driver)程序的話,我們該如何配置呢? 下面我們用版本號為 “SW32K3_RTD_4.4_2.0.0”的 RTD 軟件包為例,創(chuàng)建一個簡單的工程,編譯、燒錄并進行功能演示。

1. 建立工程

NXP 官網(wǎng)上找到“4_2.0.0”的 RTD 包,下載并安裝(參考前文的第2.3和3.3章節(jié))。其中 MCAL 是 exe 執(zhí)行程序安裝,而 LLD 則是 zip 格式作為 S32DS 的一個插件來安裝,這是因為工具鏈不同。

3dad4fec-57a1-11ed-b116-dac502259ad0.jpg

打開S32DS 3.4,進入菜單欄“Help”->“Install New Software”,按下圖步驟添加安裝包。

3dbb4368-57a1-11ed-b116-dac502259ad0.jpg

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

3dd984f4-57a1-11ed-b116-dac502259ad0.jpg

2. 配置 CT(Configuration Tool)

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

3e02105e-57a1-11ed-b116-dac502259ad0.jpg

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

3e1e8fb8-57a1-11ed-b116-dac502259ad0.jpg

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

標識符:使用標識符字段給每個引腳一個有意義的 ID,可用于 API 函數(shù)。

Slew Rate:寄存器位MSCR_SRC

Output Buffer Enable:寄存器位MSCR_OBE

Pad keep enable:寄存器位MSCR_PKE

Driver Strength Field:寄存器位MSCR_DSE

Initial Value:寄存器位GPDO_PDO

3e432652-57a1-11ed-b116-dac502259ad0.jpg

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

3e5dc6c4-57a1-11ed-b116-dac502259ad0.jpg

點擊“更新源代碼”生成引腳配置代碼,你可以點擊“更改”來查看生成代碼的更新,并勾選你想要更新的文件。

3e7e15c8-57a1-11ed-b116-dac502259ad0.jpg

3. 編寫程序

S32DS CT 生成的文件結(jié)構(gòu)

Siul2_Port 相關(guān)的驅(qū)動代碼文件:

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ū)動代碼文件:

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_ToggleLed_S32K344 工程的c 文件,引入相關(guān)的頭文件

3e9bd2ac-57a1-11ed-b116-dac502259ad0.jpg

添加一個延時函數(shù)

3eaf78ac-57a1-11ed-b116-dac502259ad0.jpg

在< Siul2_Port_Ip_Cfg.h > 中我們可以找到下圖所示的宏定義,這是因為我們在配置 I/O 屬性時,在標識符字段填寫了引腳 ID。那“PTA_H_HALF”是什么意思呢,為什么 PTA29 的 PIN 設(shè)為 13?

通過《S32K3xx Reference Manual》附件中的《S32K344 IOMUX_Rev1.1.xlsx》表格可看出 IO 口按照A、B、C、D、E、F、G編號分成了7組(以 BGA257 為例),每組有0~31號共32個IO口,而H和L分別代表高16位和低16位,所以 PTA29實際屬于高16位的第13-Pin,其他引腳以此類推。

3eca6fea-57a1-11ed-b116-dac502259ad0.jpg3ee092f2-57a1-11ed-b116-dac502259ad0.jpg

主函數(shù)實現(xià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端口的電平。

3efb10c8-57a1-11ed-b116-dac502259ad0.jpg

4. 編譯并燒錄到開發(fā)板

點擊小錘子“Build” 按鍵編譯,出現(xiàn)“Build Finished”并生成“.elf”文件代表編譯成功。

3f17d3de-57a1-11ed-b116-dac502259ad0.jpg

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

3f3aca42-57a1-11ed-b116-dac502259ad0.jpg

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

3f5bdac0-57a1-11ed-b116-dac502259ad0.jpg

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

3f7b586e-57a1-11ed-b116-dac502259ad0.jpg

本次 S32K3 RTD LLD 工程建立已經(jīng)完成。之后會以大聯(lián)大世平集團推出的 S32K3xx-EVB 方案為硬件平臺,介紹 S32K3 MCAL 各模塊應用,也是對自己的學習過程做一個總結(jié)(不定期更新 =_=),如果有任何問題歡迎在博文下方留言,我們下次繼續(xù)~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5093

    瀏覽量

    97800
收藏 人收藏

    評論

    相關(guān)推薦

    基礎(chǔ)開發(fā)小安派-Eyes-S1【進階篇】——初識 LVGL 并搭建最小工程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學習小安派: 1、基礎(chǔ)開發(fā)小安派-Eyes-
    的頭像 發(fā)表于 01-06 16:14 ?148次閱讀
    <b class='flag-5'>零</b>基礎(chǔ)開發(fā)小安派-Eyes-<b class='flag-5'>S</b>1【<b class='flag-5'>進階</b>篇】——初識 LVGL 并搭建最小<b class='flag-5'>工程</b>

    S32K3xx參考手冊

    NXP單片機 S32K3xx系列完整版技術(shù)手冊,手冊PDF文檔包含IO MUX等附件
    發(fā)表于 12-30 16:12 ?0次下載

    S32K3xx微控制器的硬件設(shè)計指南

    電子發(fā)燒友網(wǎng)站提供《S32K3xx微控制器的硬件設(shè)計指南.pdf》資料免費下載
    發(fā)表于 12-30 15:46 ?0次下載

    S32K3系列汽車級MCU應用筆記

    電子發(fā)燒友網(wǎng)站提供《S32K3系列汽車級MCU應用筆記.docx》資料免費下載
    發(fā)表于 12-30 15:43 ?0次下載

    S32K3xxICU應用筆記

    S32K3xxICU應用筆記
    發(fā)表于 12-30 15:38 ?0次下載

    如何如何集成MCAL到S32DS_S32K344

    集成MCAL到S32DS_S32K344
    發(fā)表于 12-30 15:35 ?0次下載

    k8s和docker區(qū)別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術(shù)的兩大流行工具。Docker關(guān)注構(gòu)建和打包容器,適用于本地開發(fā)和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環(huán)境,具備自動化
    的頭像 發(fā)表于 12-11 13:55 ?145次閱讀

    基于 NXP S32K312+FS23 的汽車通用評估板方案

    S32K3系列是NXP推出的面向汽車電子和工業(yè)應用的微控制器,基于ARMCortex-M7內(nèi)核,支持單核、雙核和鎖步內(nèi)核配置。S32K3系列具有內(nèi)核、內(nèi)存和外設(shè)數(shù)量方面的可擴展性,符合
    的頭像 發(fā)表于 12-07 01:08 ?623次閱讀
    基于 NXP <b class='flag-5'>S32K</b>312+FS23 的汽車通用評估板方案

    死角帶你玩轉(zhuǎn)S32K344之實時時鐘RTC

    一、概述通過閱讀手冊可以知道S32K344是擁有一個內(nèi)部的RTC,并且可以運行在正常模式和低功耗模式之下,還可以用于低功耗的喚醒等等。而在配置時需要注意時鐘的配置,因為對于S32DS軟件來說,RTC
    的頭像 發(fā)表于 08-02 08:11 ?2113次閱讀
    <b class='flag-5'>零</b>死角帶你玩轉(zhuǎn)<b class='flag-5'>S32K</b>344之實時時鐘RTC

    S32K376 電池管理系統(tǒng)和車輛控制單元概念驗證

    S32K3 平臺的 S32K3 BMS SL SDK DEMO AUTOSAR 4.4 版本 1.0.0 版本。此版本中包含的 Bcc_775a_SL、Bcc_774a_SL、Bcc_772c_SL
    發(fā)表于 05-20 15:50

    關(guān)于STM8S103K3的數(shù)據(jù)保存問題求解

    關(guān)于STM8S103K3的數(shù)據(jù)保存問題,我用STM8S103K3開發(fā)一套溫控板小批量投產(chǎn),現(xiàn)在遇到的問題是,設(shè)置報警溫度有的時候不能保存(斷電后自動歸),并不是都不保存有的就可以保存,不知道是哪的問題,編程器換了也沒效果,程序
    發(fā)表于 05-10 06:38

    基于S32K3的ECU參考設(shè)計集成電池管理方案

    S32K396/376 BMS-EVB板現(xiàn)已供貨,同時S32K39 / 37 / 36系列芯片將于今年6月正式上市。相關(guān)的集中式電芯監(jiān)控參考設(shè)計板也已上市。
    發(fā)表于 04-26 10:59 ?531次閱讀

    基于 NXP S32K311 評估板的方案

    該方案是以 NXP S32K311 芯片為主控制器的評估板方案,S32K311 是基于 ARM Cortex-M7 的嵌入式應用微控制器,有 64 KB 的 Dflash、1 MB 的 Pflash
    的頭像 發(fā)表于 02-18 11:22 ?902次閱讀
    基于 NXP <b class='flag-5'>S32K</b>311 評估板的方案

    恩智浦 NXP S32K31x 系列簡介

    、電池管理系統(tǒng)、車身域控制器等。S32K31x的特點ARMCortex-M7內(nèi)核,頻率最高可達160MHz。符合車規(guī)級AEC-Q100標準,耐溫150℃,輸入3V/5
    的頭像 發(fā)表于 01-26 08:28 ?2029次閱讀
    恩智浦 NXP <b class='flag-5'>S32K</b>31x 系列簡介

    S32K 進階之旅】 NXP S32K3 以太網(wǎng) RMII 接口調(diào)試(1)

    大聯(lián)大世平集團推出了一款基于NXP車規(guī)級MCUS32K344的開發(fā)板——花名“Cavalry”,它使用BGA257封裝的32位ArmCortex-M7S32K344作為主控芯片,在69.6
    的頭像 發(fā)表于 01-18 08:26 ?2561次閱讀
    【<b class='flag-5'>S32K</b> <b class='flag-5'>進階</b><b class='flag-5'>之旅</b>】 NXP <b class='flag-5'>S32K3</b> 以太網(wǎng) RMII 接口調(diào)試(1)