pmic, 暫存器讀取, mtk
【mtk】pmic暫存器讀取與設定
[description]
在產品的除錯過程中或者eservice處理中,經常會遇到讀取或者設定pmic暫存器的情況,以下會介紹幾種方式,方便大家除錯用。
[solution]
1.adb 方式:
讀取0x330的值:
cd /sys/devices/platform/mt-pmic
echo 330 > pmic_access
cat pmic_access //read 0x330 register value
將0x330設定為f08:
echo 330 f08 > pmic_access //set 0x330 registers by value 0xf08
cat pmic_access
需要注意的是,無論是read還是set命令,user版本均無法使用。有些branch的eng版本,set命令可能也無法生效。所以需要set完之後cat一下,檢視設定是否生效。
2.apk 方式:
撥號介面使用##3646633##進入工模-》hardware testing-》power-》pmu-》pmu register中
3.code方式:
該方式可以直接讀取暫存器的bit位的值,以讀取0x330的bit4~5為例:
原型:pmic_read_inte***ce(unsigned int regnum, unsigned int *val, unsigned int mask, unsigned int shift)
pmic_read_inte***ce(0x330,&val,0x3,4); //讀取的是兩個bit,所以mask是0x11即0x3,因為讀取的是bit4~5,所以shift是4;
直接設定0x330的bit4~5為10,即0x2:
原型:
pmic_config_inte***ce(unsigned int regnum, unsigned int val, unsigned intmask, unsigned int shift)
pmic_config_inte***ce(0x330,0x2,0x3,4);
總結:1.無論是採用哪種方法進行pmic暫存器的設定,都需要在設定後再讀取確認是否已寫入.尤其是發現暫存器寫了,但並沒有生效的情況;
2.無論是調節cv點、還是充電電流、或者ldo/buck電壓,均可查閱相應平台的pmic datesheet來獲取暫存器資訊,然後按照以上方式進行除錯。
esp暫存器與ebp暫存器介紹
esp extended stack pointer 是指標暫存器的一種 另一種為ebp 用於堆疊指標。esp為棧指標,用於指向棧的棧頂 下乙個壓入棧的活動記錄的頂部 而ebp為幀指標,指向當前活動記錄的頂部。棧指標與幀指標標識出了當前活動記錄的位置。當函式被呼叫的時候,執行如下操作 將幀指標壓入棧...
暫存器對映與直接操作暫存器
一 儲存器對映 與重對映 儲存器本身不具有位址資訊,它的位址是由晶元廠商或使用者分配,給 物理儲存器分配 邏輯位址的過程就稱為儲存器對映 通過這些邏輯位址就可以訪問到相應的儲存器的物理儲存單元。如果給儲存器再分配乙個位址就叫儲存器重對映。如stm32,對於 片上外設,它們以四個位元組為乙個單元,共3...
暫存器(通用暫存器)
因為學習使用的是王爽的 組合語言 第3版 因此也只能提到8086cpo的暫存器。對於其他而言,原理都是相通的。對於8086暫存器,有14個暫存器,主要是 ax bx cx dx si di sp bp ip cs ss ds es psw。一 通用暫存器 8086的通用暫存器有ax bx cx dx...