如何修改RK3568核心板的心跳燈引腳
在嵌入式開發中,LED 指示燈是監控系統狀態最直觀的方式之一。心跳燈(Heartbeat LED) 更是其中的核心,它通過周期性閃爍來指示系統正在正常運行。本文將以杭州維芯科電子的 RK3568 核心板為例,詳細介紹如何在 Linux 環境中修改心跳燈的默認 GPIO 引腳,使其指向你指定的硬件 LED。

1. 確定硬件與引腳
首先,你需要確認你的硬件上用于心跳燈的 LED 引腳。在本例中,我們假設心跳燈連接到 GPIO1_A4 引腳。
要將 GPIO1_A4 映射到 Linux 內核,我們需要知道其對應的 GPIO 編號。在 Rockchip 平臺中,GPIO 編號通常以 &gpioRK_P的格式表示。因此,GPIO1_A4 對應的設備樹表示為 &gpio1 RK_PA4。
2. 設備樹 (Device Tree) 修改
Linux 內核通過設備樹來管理硬件資源。要修改心跳燈的引腳,我們需要修改設備樹文件。通常,這個文件位于 arch/arm64/boot/dts/rockchip/ 目錄下,文件名可能類似于 rk3568-xxxx-board.dts。
在設備樹文件中,你需要找到或添加一個名為 leds 的節點。這個節點用于定義系統中的所有 LED 燈。在 leds 節點中,添加一個名為 led-alive 的子節點來配置心跳燈。
下面是具體的修改代碼,請將其添加到你的設備樹文件中:
// leds 節點定義了系統中的所有 LED
leds {
compatible = "gpio-leds"; // 兼容性屬性,指定使用 GPIO 控制的 LED 驅動
// led-alive 子節點用于配置心跳燈
led-alive {
status = "disabled"; // 默認禁用,由 led-trigger 控制
gpios = <&gpio1 rk_pa4="" gpio_active_high="">; // 關鍵配置:指定 LED 連接到 GPIO1_A4
default-state = "off"; // 系統啟動后 LED 默認關閉
linux,default-trigger = "heartbeat"; // 指定 LED 的默認觸發器為“心跳”
function = LED_FUNCTION_HEARTBEAT; // 指定 LED 的功能為心跳燈
};
};
關鍵屬性解釋:
gpios = <&gpio1 rk_pa4="" gpio_active_high="">: 這是最重要的一行。它告訴內核心跳燈連接到了 GPIO1_A4 引腳。GPIO_ACTIVE_HIGH 表示當 GPIO 輸出高電平時,LED 會點亮。如果你的硬件是低電平點亮,則需要使用 GPIO_ACTIVE_LOW。
linux,default-trigger = "heartbeat": 這行指定了 LED 的默認行為。系統啟動后,內核的 heartbeat 驅動會自動接管這個 LED,讓它開始周期性閃爍。
status = "disabled": 這一行通常用于在設備樹中預先定義好一個節點,但默認不啟用。在本例中,heartbeat 觸發器會自動啟用該 LED,因此此處的 disabled 并不影響心跳燈的正常功能。
修改完成后,你需要重新編譯設備樹并將其更新到核心板上。
3. 驗證與測試
在核心板啟動后,觀察物理 LED:
如果你已經正確連接了硬件 LED,此時它應該開始以緩慢而有規律的頻率閃爍。
4. 總結
通過以上步驟,你就可以成功地將 杭州維芯科電子的 RK3568 核心板 的心跳燈引腳修改到你指定的 GPIO 上。這個方法同樣適用于其他基于 gpio-leds 驅動的指示燈配置。
EN