簡體   English   中英

如何讀取BeagleBone Black上的外部計時器?

[英]How to read the external timer counter on the BeagleBone Black?

我需要使用BBB計算50KHz二進制信號的躍遷。 我認為使用由連接到引腳P8.07的外部信號觸發的TIMER4是最簡單的方法。

因此,我發出了以下命令來加載適當的海角並將引腳設置為計時器:

./config-pin overlay cape-universaln
./config-pin P8.07 timer

一切似乎都正常運行, dmesg什么也沒有出現。

我的問題是 :如何讀取TIMER4的值? 我查看了SysF,沒有發現任何有趣的東西。 /dev中也沒有。 如何獲取剛剛設置的計時器的值? 我也對C / C ++解決方案持開放態度,但我想避免進行內核空間編程。

我正在為BeagleBone使用最新的Ubuntu Linux,內核4.1.10-ti-r21。

稍作搜索,我在這里看到了AM335x DMTimer子系統的pps驅動程序: https : //github.com/ddrown/pps-gmtimer

似乎它尚未被上游合並,並且自述文件給出了將其構建到3.8內核中的說明-您可以還原到3.8,或者可以將其改編為4.1,在這種情況下,您可能需要調整設備樹覆蓋以及4.1中較新版本的dtc編譯器。

您還可以為PRU編寫一個脈沖計數器固件(只需輸入50KHz,就不需要完全優化以捕獲每個脈沖)。 您可以經常向ARM發送信號並將其捕獲到您的用戶空間程序中。

另一個選擇是使用mmap從用戶空間直接訪問DMTimer寄存器,以映射/dev/mem文件( 此處為GPIO的此方法的示例),但這是一種非常“ hacky”的方式,通常對此不以為然。 GNU / Linux世界可以從用戶空間而不是內核空間進行此類操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM