1477_AURIX TC275 iLLD中看门狗密码获取接口分析
全部學習匯總: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
在基礎的工程中有一組看門狗的接口操作,按照前面看文檔的理解,這是因為CPU0的看門狗定時器是默認啟動的。因此,為了保證例程能夠正常運行,這里進行了看門狗的禁用。
這一組看門狗的接口操作主要是指的這部分,這一次,我來嘗試分析一下IfxScuWdt_getCpuWatchdogPassword接口的實現。
從命名語義看,這個函數的功能是明確的,就是獲取CPU看門狗定時器的密碼。更確切有點,應該是獲取當前CPU的看門狗定時器密碼,因為這里判斷了內核ID。這樣,我們的接口分析應該就轉向了對立面這個接口實現的分析。
關于MCU的數據結構抽象以及與地址的映射處理,分析的意義不是很大,這只是語言表達技巧,簡單注意一下就好。
這是一個內聯函數,通過看門狗的控制寄存器0來獲取相應的密碼信息。這個密碼信息的獲取不是讀取一個寄存器就結束了,而是經過了一定的運算。為了能夠看清運算的結果,我增加了兩個全局量存儲中間的信息,后面就可以通過打印看到這其中的變化。
打印的信息我是按照二進制來打印的,這主要是我看了文檔之后進行的一個簡單的設計修改。接下來先看打印的結果,之后再結合文檔來理解。
從上面的結果可以看出來,讀出來的原始信息是0b11,獲取到的密碼是0b111100。為什么會是這樣的狀態呢?接下來需要參考一下文檔。
這是對這個寄存器位域的解釋,這個信息其實是用戶定義的密碼區域。讀取的時候,bit7~bit2的信息是翻轉的,這算是一種安全設計。讀出來進行了翻轉,那么想要恢復就得再翻轉回去,這也就解釋了前面的代碼的行為了。而從打印的結果看,其實也能夠看得出來這個翻轉的效果。從結果看,獲取到的密碼其實是默認的密碼信息。
那么為什么用這個異或操作呢?按位進行異或操作其實是最簡單的一個方式,如果跟每一個bit都是1的數值進行按位異或,那么不是1的信息會出來一個1,而不是1就一定是0。如果是1,那么出來的是0。這也就實現了0變成1,1變成0的翻轉操作。
有了上面的基礎,其實再處理安全看門狗也就很容易了,這是很類似的操作。
安全看門狗是系統級的,跟獨立的CPU沒有綁定關系,因此這個接口更簡潔了一步。
密碼處理方面,采用的方式一致。這樣,文檔也都不需要再進行分析落實了。
以上是對TC275的看門狗,確切說是看門狗定時器如何獲取密碼的接口進行的簡單分析。看起來,后面似乎得了解下如何去把這個用戶密碼修改掉,因為這樣比較有實用的價值。
總結
以上是生活随笔為你收集整理的1477_AURIX TC275 iLLD中看门狗密码获取接口分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机在艺术娱乐的应用,计算机技术在艺术
- 下一篇: 图纸中bs是什么意思_园建施工图中WL、