全部博文(1493)
发布时间:2014-04-16 19:25:28
一、检测指针出错的函数//将错误号转化为指针地址static inline void * __must_check ERR_PTR(long error){ return (void *) error;}//将错误指针转化为错误号static inline long __must_check PTR_ERR(__force const void *ptr){ return (long) ptr;}//若是错误指针返回.........【阅读全文】
发布时间:2014-04-15 10:15:02
根据 内核调用链提示的信息,走查代码,发现缺页异常时,获取mmap_sem信号量的时候,没有获取成功,然后主动调用schedule放弃cpu。也就是说app中的多数任务在缺页异常时,获取mmap_sem信号量失败,导致大多数任务都被阻塞在mmap_sem信号量上。从代码上看是请求mmap_sem信号量失败,但是什么情景下会出现这种现象,为什么会出现这种现象暂时不清楚。跟同事讨论,觉得应该是个信号量死锁问题。
如果是信号量死锁问题,那么当前系统必须满足三个条件:
1)高优先级任务抢占中优先级任务,并申请mmap_semp信号量
2)存在中优先级的死循环任务,将低优先级级任务压制,导致低优先级任务得不到调度
3)存在低优先级级任务占用mmap_semp信号量......【阅读全文】
发布时间:2014-04-15 10:14:32
嵌入式系统的基础是交叉编译工具cross-compiler,本文是一个实际的tool chain制作脚本。......【阅读全文】