一、測試環境
硬體: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)
- 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
更多資訊,請掃碼關注我們!
評論