linux内核oops错误码说明,Oops 定位错误代码行

这篇博客详细记录了作者在调试Atmel AT91SAM9x25串口时遇到的Oops错误,错误码为17。通过分析Oops信息,定位到问题可能出在atmel_tasklet_func函数中。作者分享了解决方案,包括在编译内核时开启调试信息,使用arm-none-linux-gnueabi-gdb进行调试,并找到了错误代码行。最后,作者提到不是所有串口都不能使用DMA,而是部分串口存在这个问题,通过逐一测试和修改源码解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天一直在调试atmel at91sam9x25的串口,用着用着总会导致Oops,Oops内容如下:[ 1023.510000] Unable to handle kernel NULL pointer dereference at virtual address 00000000[ 1023.520000] pgd = c0004000[ 1023.520000] [00000000] *pgd=00000000[ 1023.520000] Internal error: Oops: 17 [#1][ 1023.520000] last sysfs file: /sys/devices/virtual/misc/at91flash/dev[ 1023.520000] Modules linked in: at91flash at91gpio at91mc323 ds18b20 at91adc[ 1023.520000] CPU: 0    Tainted: G        W    (2.6.39 #35)[ 1023.520000] PC is at atmel_tasklet_func+0x104/0x690[ 1023.520000] LR is at atmel_tasklet_func+0x10/0x690[ 1023.520000] pc : []    lr : []    psr: 20000013[ 1023.520000] sp : c7825f58  ip : 60000093  fp : 00000000[ 1023.520000] r10: 00000006  r9 : 00000000  r8 : 0000000a[ 1023.520000] r7 : 00000000  r6 : c7824000  r5 : c78a2484  r4 : c03c0cb8[ 1023.520000] r3 : 0000004c  r2 : 0000004c  r1 : 60000013  r0 : 00000001[ 1023.520000] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel[ 1023.520000] Control: 0005317f  Table: 27b40000  DAC: 00000017[ 1023.520000] Process ksoftirqd/0 (pid: 3, stack limit = 0xc7824270)[ 1023.520000]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值