完整的S32K144的學習彙總如下:
https://github.com/GreyZhang/g_s32k144
這算是計劃之外的一份學習總結,本來打算錯誤能夠觸發捕獲到就結束這一項學習。不過,看了一下SDK的代碼之後我發現其實這裏還有一個小技巧值得去看看。這個技巧就是快速判斷出buserr、busoff之類的錯誤是否發生了。
之前做PowerPC的驅動開發,習慣了半導體提供的位域操作的頭文件。這次切換到了S32K144這個ARM平臺學習,感覺有那麼一點不順手。其實,相應的功能在基礎的代碼信息中也是有的,只是這算是另一個技巧:位操作。
注意到S32K144.h這個頭文件中有如下的宏定義:
有了這些,我們的一些位域提供的功能就可以通過位操作來實現了。接下來,寫一點測試代碼如下:
通過上面的代碼獲取到相應的錯誤狀態信息,雖然看上去比位域麻煩一點,但是也不算太麻煩。至少,比自己去重新設計要快捷一點。
代碼測試效果如下:
通過製造出之前的故障,成功獲取到了兩個錯誤狀態信息。這是一個很有用的小技巧,或許其他的功能探索中依然會有用到。
剛剛看了一個流行的小工具的代碼,十分精簡,代碼量也不是很大。但是,功能強大也受到很大的認可度。說起來,實現難度不見得高。這讓我突然間覺得,或許我們的學習一直在追求廣度,缺少了深度的探索。而真正有突破性的創作,或者是設計都跟深度有着高強度的聯繫。簡單的招數發揮到極致就是絕招,或許,我們應該在招數發揮的極致程度上進一步修煉。祝願看到我學習筆記的你,也能夠修煉出自己的絕招!
完整的S32K144的學習彙總如下: