linux-(from_timer)-定时器的升级

查看linux版本:cat proc/version

使用旧主板型号(SSD202D)4.9.84

使用新主板型号(RV1126)4.19.111

============================================================================

移植yaffs驱动时发现内核对定时器进行了升级,很扯淡啊!

linux-(from_timer)-定时器的升级_第1张图片

多亲切多易懂啊!

linux-(from_timer)-定时器的升级_第2张图片

你看这个回调函数,看不懂啊,花里胡哨的;看了别人的博客一知半解的;

linux-(from_timer)-定时器的升级_第3张图片

没太懂,然后我就自己理解说一下:

然后做个对比,旧版的方法和新版本的方法

linux-(from_timer)-定时器的升级_第4张图片

linux-(from_timer)-定时器的升级_第5张图片

struct ext4_sb_info {
......
	struct super_block *s_sb;
	/* timer for periodic error stats printing */
	struct timer_list s_err_report;
......
}

struct ext4_sb_info *sbi = from_timer(sbi, t, s_err_report);

struct super_block *sb = sbi->s_sb;

linux-(from_timer)-定时器的升级_第6张图片

直接就把传过来的timer_list *t甩进ext4_sb_info结构体里面

有点震撼,不知道是方便了,还是搞复杂了,还是觉得麻烦!

 ============================================================================

linux-(from_timer)-定时器的升级_第7张图片

后来我找到了高版本的,人家有以下修改来兼容定时器,经供参考

(左边旧版本的,右边新版本的)

linux-(from_timer)-定时器的升级_第8张图片

 用版本号来控制加载

linux-(from_timer)-定时器的升级_第9张图片

 linux-(from_timer)-定时器的升级_第10张图片

linux-(from_timer)-定时器的升级_第11张图片 linux-(from_timer)-定时器的升级_第12张图片

 linux-(from_timer)-定时器的升级_第13张图片

 linux-(from_timer)-定时器的升级_第14张图片

linux-(from_timer)-定时器的升级_第15张图片 

 前面是自己加的,后面看了高版本自愧不如,轻舟已过万重山!

你可能感兴趣的:(rv1126-rv1109,linux,rv1126-rv1109)