【SemiDrive G9 系列軟體開發】 PTG5.1.2 + MCAL_v1.0.5 GPIO 中斷測試

一、測試環境

 硬體:SemiDrive G9H ref A02 圖(1)

軟體:PTG5.1.2 Linux + MCAL_v1.0.5

        軟體環境搭建以及 G9H Ref A02 操作方法參考:《SD_G9_Quick_Start_Rev2.4.pdf》

圖(1)

二、配置與 Demo

1.測試原理:

        MCAL_v1.0.5 的默認代碼中沒有提供 Dio 相關的配置與 demo,參考 E3 MCAL 的 Dio demo。因此選擇 GPIO_A0 作為輸入引腳,圖(2)。測試過程為:使用外部信號(PWM 波)作為中斷觸發源,在中斷回調函數中列印信息,確認測試成功。

圖(2)

2.EB 配置

       在 EB 配置時,首先需要將 General→PortSetPinINTDetect 選中,表示啟用中斷監測功能;

       參考技術手冊,進入 GPIO_A0 並配置選項為 MUX_0、PORT_PIN_IN、FALLING_EDGE。

圖(3)

Dio 模塊配置 DioChannelld0,即 GPIO_A0,做為觸發中斷的通道號(對照 Log 列印信息)。

圖(4)

  1. Demo & 代碼

Demo 部分:綁定和使能中斷源 GPIO_INT0_NUM,GPIO_Irq0Handler 為對應的中斷處理函數;(圖5)

圖(5)

        中斷處理函數的調用關係,通過讀內部寄存器和 GetLowestINTBitPos 函數獲得 ChannelId。圖(6)和圖(7)

圖(6)

圖(7)

三、測試操作


        1. 版本G9 PTG5.1.2 使用 eMMC Only 的啟動方式,不使用 OSPI Flash。

編譯打包時注意以下三點:

1)請使用最新版本的 docker 鏡像,否則 make build_all 時 python 版本會報錯;如圖(8)

圖(8)


2)編譯前請安裝lz4c pzstd zstd 工具;如圖(9)

圖(9)

3)編譯配置文件選項。圖(10)

圖(10)

        完成以上操作後,編譯 iar MCAL 工程,然後用新生成的 safe.bin 替換 SDFactoryTool 裡面 safety 域的 bin 文件,見圖(11)。

圖(11)

        2. 啟動撥碼開關設置為 0001,命令行執行 dio,GPIO_A0 每檢測到一次下降沿信號就列印一次。

ChannelID為0,見Log 參考圖(12)。

圖(12)

四、參考文獻:

1. SemiDrive_9Series_MCAL User Guide

2. SD_G9_Quick_Start_Rev2.4.pdf



歡迎在博文下方留言評論,我們會及時回復您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   
作者:Alan


更多資訊,請掃碼關注我們!
  
 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

評論