![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核调试
木木总裁
车载BSP
手机BSP
展开
-
Linux驱动调试-根据oops定位错误代码行(一)
1.当驱动有误时,比如,访问的内存地址是非法的,便会打印一大串的oops出来1.1以LED驱动为例将open()函数里的ioremap()屏蔽掉,直接使用物理地址的GPIOF,如下图所示:1.2然后编译装载26th_segmentfault并执行测试程序后,内核便打印了oops出来,如下图所示:2.接下来,我们便来分析oops:Unable to han...原创 2019-06-04 12:36:45 · 490 阅读 · 0 评论 -
Linux驱动调试-根据oops的栈信息,确定函数调用过程(二)
继续上一章https://blog.csdn.net/ll148305879/article/details/90766784来讲1.上章的oops栈信息如下图所示:9fe0:代表最初的栈顶SP寄存器位置 9e80:代表函数出错的SP寄存器位置2.我们先来分析上图的栈信息,又是怎样的过程呢?2.1内核主要是通过STMDB和LDMIA汇编命令来入栈和出栈(STMDB和L...原创 2019-06-04 12:37:57 · 187 阅读 · 0 评论 -
Ubuntu18.04安装arm-linux-gcc交叉编译工具(附arm-linux-gcc 5.4.0包)
Ubuntu18.04安装arm-linux-gcc交叉编译工具(附arm-linux-gcc 5.4.0包)一、下载arm-linux-gcc 5.4.0包下载(百度云)链接:https://pan.baidu.com/s/1AeqzkboWkJDJjU9HxtXhrA 提取码:uzup二、在/usr/local目录下新建arm文件夹,并且给予最高权限后进入新建的文件目录里...转载 2019-07-02 15:21:29 · 1882 阅读 · 1 评论