完整的S32K144的学习汇总如下:
https://github.com/GreyZhang/g_s32k144
这算是计划之外的一份学习总结,本来打算错误能够触发捕获到就结束这一项学习。不过,看了一下SDK的代码之后我发现其实这里还有一个小技巧值得去看看。这个技巧就是快速判断出buserr、busoff之类的错误是否发生了。
之前做PowerPC的驱动开发,习惯了半导体提供的位域操作的头文件。这次切换到了S32K144这个ARM平台学习,感觉有那么一点不顺手。其实,相应的功能在基础的代码信息中也是有的,只是这算是另一个技巧:位操作。
注意到S32K144.h这个头文件中有如下的宏定义:
有了这些,我们的一些位域提供的功能就可以通过位操作来实现了。接下来,写一点测试代码如下:
通过上面的代码获取到相应的错误状态信息,虽然看上去比位域麻烦一点,但是也不算太麻烦。至少,比自己去重新设计要快捷一点。
代码测试效果如下:
通过制造出之前的故障,成功获取到了两个错误状态信息。这是一个很有用的小技巧,或许其他的功能探索中依然会有用到。
刚刚看了一个流行的小工具的代码,十分精简,代码量也不是很大。但是,功能强大也受到很大的认可度。说起来,实现难度不见得高。这让我突然间觉得,或许我们的学习一直在追求广度,缺少了深度的探索。而真正有突破性的创作,或者是设计都跟深度有着高强度的联系。简单的招数发挥到极致就是绝招,或许,我们应该在招数发挥的极致程度上进一步修炼。祝愿看到我学习笔记的你,也能够修炼出自己的绝招!
完整的S32K144的学习汇总如下: