高通LED相關問題解析

2021-08-01 01:21:08 字數 2112 閱讀 3851

除錯gpio-leds背光燈出現的問題。(改版後,gpio控制三色燈)

在進行msm8909專案的時候,在除錯gpio-led背光燈的時候,出現了乙個要求,這個要求是需要對兩個gpio口同時進行初始化,並且能在同乙個dtsi的裝置節點裡以相同的label進行宣告,並能讓上層在對這兩個led背光燈進行同時操作。

首先進行的想法是,如果能夠在節點中對同乙個label進行操作,那這樣就能直接解決問題,但是在**燒錄到板子上去的時候,出現了問題是在adb shell中sys/class/leds中的節點不存在了,後經過分析,得出這是label出現了衝突,導致驅動無法註冊。

之後經過詢問,有了以下思路,就是在驅動註冊gpio的過程中,通過在gpio中查詢到的已經註冊上的gpio號,也就是gpio920號,對後來需要進行註冊的gpio進行相同的處理,也就是再呼叫一次初始化的函式,對這個新的,也就是gpio921號口進行初始化。同時,也需要對gpio口進行輸入或者輸出的設定。

設定之後,再進行除錯的時候,發現sys/class/leds中的節點出現了,在adb shell中的sys/kernel/debug中的gpio發現,對gpio921的這個新定義的口雖然是註冊成功了,但是,在並無法控制。後經過分析發現,是沒有與gpio920進行同時賦值的問題,也就是在gpio920口拉高的時候,並沒有將gpio921口進行拉高的操作。

本次除錯中出現的leds節點的查詢和除錯方法:

adb shell中的sys/class/leds:可以查詢到相應的leds節點。其中對應節點的所在的資料夾中可以通過節點對相應的裝置的燈光進行操作。

adb shell中的sys/class/gpio:可以對沒有定義的節點的進行操作,具體操作**echo 920 > export

adb shell中的sys/kernel/debug 在進行cat gpio:可以查詢到註冊完成的gpio口的狀態及其其所屬於的裝置

2023年11月7日(改版前,使用aw2013擴充套件晶元)

除錯led三色燈aw2013擴充套件晶元出現的經驗彙總(一)

1.在源**中,在對gpio進行初始化的時include/input/inputeventlabels.h候,應該要將gpio的口拉低,在設定使用時,再將gpio拉高。

2.在專案中的goto函式,由於goto函式有時候會出現比較多,因此,在goto函式的呼叫上,要根據在goto最先的函式應當要放在最後的這個原則。

3.在gpio使用前,應該先定義和獲取初始化的函式,之後再進行呼叫

2023年12月5號

在msm8996專案除錯中,出現的led背光燈的問題

首先,msm8996專案中的兩顆led背光燈,與其他接觸過的板子的情況不一樣,過去接觸過的板子,主要是通過gpio口來對相應的燈進行控制,那麼這樣的問題就相對簡單一些,也就是說通過gpio來控制,gpio對於燈的控制,首先是要通過對相應的gpio口的控制。

從原理圖中看到,兩顆led燈接在了pmi上,原始設定是rgb模式,也就是三色燈模式,專案要求將這兩個燈的模式,設定成為類似於button-backlight的模式,也就是只通過乙個節點的控制,控制這兩個燈的同時亮暗。

在驅動中,通過查詢相應的的函式的名稱,找到了這幾個函式:

qpnp_rgb_set

qpnp_led_set

qpnp_get_config_rgb

第乙個函式主要是用來設定rgb模式中的使能還有相應的燈光的亮暗程度,也就是占空比等。

第二個函式主要是用來設定各個led的亮暗的,也就是說所有的有關於這個燈的問題,都需要通過這個函式設定亮讀度。

第三個函式主要是來對相應的燈所對應的引腳使能。

在最初的處理過程中,在qpnp_rgb_set函式中,找到了這個函式:qpnp_led_masked_write,這個函式的作用就是把相應的資訊寫入到暫存器中。通過對兩顆燈的比較,得出了在寫入到兩寄存中的使能訊號的不同,將兩個使能訊號進行亦或計算之後,則將兩個訊號進行了同步使能。

後來在進行程式的驗證的時候發現,使能的設定並沒有和燈光亮度的設定是同步的,也就是說在echo值的時候,也僅僅只是對乙個燈的brightness值進行操作。

之後在qpnp_led_set這個函式中找到設定相應燈光亮度值的地方,由於之後的燈光的使能和賦值都是通過工作佇列的形式來進行,因此,設定在查詢到對應的裝置樹節點的名稱的時候,將兩個燈光進行同時賦值。

TCP相關問題解析

首先來看看資料報的分片機制。分段特指發生在使用tcp協議的傳輸層中的資料切分行為 分片特指發生在使用ipv4協議的網路ip層中的資料切分行為 ip分片在乙太網上,由於電氣限制,一幀不能超過1518位元組,除去乙太網幀頭14位元組 mac位址等 和幀尾4位元組校驗,還剩1500位元組,這個大小稱為mt...

IntentFilter的相關問題解析

intentfilter是配合intent而生的,你有目標行動或者結果,那麼那些行動和結果就會有他完成的特定要求,這些要求就是intentfilter,可以理解為intent和intentfilter是相對應的。intent字面意思就是目標,目的。通俗一點,需要達成某些目標,則需要提供一些動作,這些...

程式開發字典樹相關問題解析

字典樹又稱字首樹或者trie樹,一種有序資料結構,用於儲存關聯陣列,鍵通常是字串。trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的開銷以達到提高效率的目的。它的插入和查詢時間複雜度都為 o k 其中 k 為 key 的長度,與 trie 中儲存了多少個元素無關。trie 的缺點是空...