社区
Linux/Unix社区
帖子详情
[讨论贴]板子跑了一段时间后出错了,该怎么办
guan323333
2009-11-23 12:18:33
板子刚开始跑得都很正常的,LINUX系统,3个小时后出错了,一堆数字(应该是内存地址),我应该从哪下手找错误呢? 各位朋友给我点指点啊,大家讨论下
...全文
223
17
打赏
收藏
[讨论贴]板子跑了一段时间后出错了,该怎么办
板子刚开始跑得都很正常的,LINUX系统,3个小时后出错了,一堆数字(应该是内存地址),我应该从哪下手找错误呢? 各位朋友给我点指点啊,大家讨论下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiantianping
2010-09-26
打赏
举报
回复
这个肯定越界访问了,你查一下程序里有没有指针指向了不知道的区域,或是野指针
dongjiawei316
2009-11-28
打赏
举报
回复
驱动里没有的话,那估计就是内核里的函数了。
guan323333
2009-11-27
打赏
举报
回复
MS 没有这个函数啊
guan323333
2009-11-27
打赏
举报
回复
我问问别的人看看有没有这个函数 应该没吧,奇怪的名字
Caballeroo
2009-11-26
打赏
举报
回复
代码本身也有可能,要是有内存泄露的话,长时间运行就会导致虚存以及可用的物理内存越来越少!
dongjiawei316
2009-11-26
打赏
举报
回复
内核打印的Oops信息
程序死在函数at start_this_handle中,这个函数是驱动的函数?还是内核的函数。
你的程序死过几次?每次都有如下行吗?
PC is at start_this_handle+0x214/0x490
建议你重点查查所用的驱动
快乐田伯光
2009-11-24
打赏
举报
回复
编一个PC版本,调试就方便多了。一般来说同步编一个PC版本是必须的。
guan323333
2009-11-24
打赏
举报
回复
谁还有别的意见吗?
pottichu
2009-11-23
打赏
举报
回复
贴出错误信息来看看。
有问题就解决问题!
guan323333
2009-11-23
打赏
举报
回复
[Quote=引用 8 楼 wenxy1 的回复:]
引用 6 楼 guan323333 的回复:
引用 5 楼 wenxy1 的回复:
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到
都拿几个板子测试你的程序,若只有这个板子出错,那极可能是板子的硬件问题。
要确认是板子的问题,用一个板子厂商的大型程序来跑,跑几天看会不会死掉。
[/Quote]
恩,44看
Wenxy1
2009-11-23
打赏
举报
回复
[Quote=引用 6 楼 guan323333 的回复:]
引用 5 楼 wenxy1 的回复:
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到
[/Quote]
都拿几个板子测试你的程序,若只有这个板子出错,那极可能是板子的硬件问题。
要确认是板子的问题,用一个板子厂商的大型程序来跑,跑几天看会不会死掉。
zkuang82
2009-11-23
打赏
举报
回复
[Quote=引用 5 楼 wenxy1 的回复:]
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
[/Quote]
同意一下。哈哈。。
内存越界或者野指针的debug比较麻烦。只能大概给出点方法。
首先要确定一下罪犯在那个模块,或者大概确定是哪些代码(你的驱动?你修改过的内核?)。
1.在你改动过或者自己写的内核代码中,检查数组访问有没有越界。
2.如果是指针的问题会相当麻烦。办法不是没有,能改写kmalloc和kfree来做一些检查,算法比较复杂,但也不是万能,只能检查出overflow和underflow,对野指针暂时无能为力。
3.最后不行就人工把代码读n遍。或者干脆重写可疑代码来看看哪里出的问题。
guan323333
2009-11-23
打赏
举报
回复
[Quote=引用 5 楼 wenxy1 的回复:]
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
[/Quote]
这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到
Wenxy1
2009-11-23
打赏
举报
回复
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
guan323333
2009-11-23
打赏
举报
回复
是EXT3文件系统,没改过,应该是内存问题,那能不能从这段代码里得到一些准确点的信息? 比如什么操作出了问题,或者是哪个函数呢?
zkuang82
2009-11-23
打赏
举报
回复
Unable to handle kernel paging request at virtual address 100e1017
内存访问出问题的,似乎是ext3文件系统,你有改过?
没有改过的话,似乎是内存越界访问。
guan323333
2009-11-23
打赏
举报
回复
错误信息如下:
Unable to handle kernel paging request at virtual address 100e1017
pgd = c40a8000
[100e1017] *pgd=00000000
Internal error: Oops: 801 [#1]
Modules linked in: ztemt gm8180irq ffgpio ds1307 ftmac100 usbhid usb_storage fotg2xx_drv usbcore fav
c_drv favc_common fcap100_tw2835_m2 fcap100_tw2835 fcap1 fcap0 fcap_common snd_fi2s_tw2835_c0 snd_ft
ssp010 tw2835 ftsdc010 cpe_wdt tve_tw2835 ct656 fi2c apb_dma
CPU: 0
PC is at start_this_handle+0x214/0x490
LR is at start_this_handle+0x98/0x490
pc : [<c0b86938>] lr : [<c0b867bc>] Tainted: P
sp : c02dbc2c ip : 00000000 fp : c02dbc9c
r10: c0a18320 r9 : 0000000a r8 : c004f7e0
r7 : c004f7e0 r6 : c02da000 r5 : c02da000 r4 : 00000000
r3 : 10fb2065 r2 : 100e100f r1 : ffffffd0 r0 : c0a18370
Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 397F Table: 040A8000 DAC: 00000015
Process tw2835_menu (pid: 113, stack limit = 0xc02da194)
Stack: (0xc02dbc2c to 0xc02dc000)
bc20: c02dbc38 00000000 c02243d8 00000000 00000000
bc40: 00000000 00000000 00000010 c4085a74 c4085a90 c02da000 c02da000 c09eb540
bc60: c02dbc94 c02dbc64 c02dbc64 c09eb540 00000000 c02243d8 c02243d8 c02da000
bc80: 0000000a c004f7e0 0000000a c0d99388 c02dbcc8 c02dbca0 c0b86c88 c0b86734
bca0: c02dbcc8 c0dcaa60 c1c4ce00 00000000 c0dcaa60 00001000 00000000 c02dbcd8
bcc0: c02dbccc c0b7fca8 c0b86bc4 c02dbd10 c02dbcdc c0b785e0 c0b7fc6c 00000000
bce0: c02dbd10 00000000 c0dcaa60 00000000 00000000 c02dbd38 00001000 01b17000
bd00: 00000000 c02dbdb0 c02dbd14 c0b17d80 c0b785ac 00001000 00001b17 4007a000
bd20: c1c4ce00 c0d3c6f0 c1c4cea0 c3ee7b40 00000001 c02dbeb0 00000000 00000000
bd40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bd60: c02dbd90 c02dbd8c c02dbd74 c0afc33c c0afc2a4 c1c4ce00 00000000 00000001
bd80: c02dbdb4 c02dbd90 01b17000 00000000 00000000 c02dbdec c1c4ce00 00000000
bda0: c02dbde8 c02dbe44 c02dbdb8 c0b189bc c0b17b50 01b17000 00000000 c02dbeec
bdc0: 00001000 00000000 00000000 c1c4ce00 00001000 c3ee7b40 c02dbeec c02dbe4c
bde0: c02dbeb0 00000001 00001000 01b17000 00000000 c0b46094 c0b447e0 00000408
be00: 00000081 00000101 c0ed4600 00000000 4083b400 407d6000 c625b005 01b17000
be20: c1c4ce70 c1c4ce00 01b17000 00000000 c3ee7b40 c1c4cea0 c02dbe7c c02dbe48
be40: c0b18cec c0b1848c c0ed1800 4007a000 00001000 01b17000 00000000 c1c4ce00
be60: c3ee7b40 c02dbf78 c02da000 c3ee7b40 c02dbea4 c02dbe84 c0b76e3c c0b18c74
be80: 01b17000 00000000 c02dbeb0 c02dbeec 00001000 4007a000 c02dbf4c c02dbeac
bea0: c0b356b0 c0b76e1c 01b17000 00000000 409d3008 00001fb4 00000000 00000001
bec0: ffffffff c3ee7b40 c0ada1a8 00000000 00000000 00000000 06a00400 06a98200
bee0: c09eb540 00000000 00000000 01b17000 00000000 00000000 ffffffff ffffffff
bf00: 00000000 00000000 c09eb540 c0b0d77c c02dbf10 c02dbf10 ffffffe7 00004175
bf20: bdbff96c c0adf924 00001000 c3ee7b40 4007a000 00000000 c02dbf78 c02da000
bf40: c02dbf74 c02dbf50 c0b357b4 c0b355fc c3ee7b60 c3ee7b40 c02dbf78 01b17000
bf60: 00000000 4023f000 c02dbfa4 c02dbf78 c0b35930 c0b35704 01b17000 00000000
bf80: 00000001 00001000 4007a000 00099a38 00000004 c0adf924 00000000 c02dbfa8
bfa0: c0adf7a0 c0b358f4 00001000 c0ae07f0 00000018 4007a000 00001000 00000000
bfc0: 00001000 4007a000 00099a38 00001000 00001fc8 00000000 4023f000 40375008
bfe0: 00000000 bdbff9b8 401f0184 401d70c4 60000010 00000018 fa1ef336 12ab7c00
Backtrace:
[<c0b86724>] (start_this_handle+0x0/0x490) from [<c0b86c88>] (journal_start+0xd4/0x118)
[<c0b86bb4>] (journal_start+0x0/0x118) from [<c0b7fca8>] (ext3_journal_start_sb+0x4c/0x60)
[<c0b7fc5c>] (ext3_journal_start_sb+0x0/0x60) from [<c0b785e0>] (ext3_prepare_write+0x44/0x14c)
[<c0b7859c>] (ext3_prepare_write+0x0/0x14c) from [<c0b17d80>] (generic_file_buffered_write+0x244/0x6
58)
[<c0b17b40>] (generic_file_buffered_write+0x4/0x658) from [<c0b189bc>] (__generic_file_aio_write_nol
ock+0x540/0x570)
[<c0b1847c>] (__generic_file_aio_write_nolock+0x0/0x570) from [<c0b18cec>] (generic_file_aio_write+0
x8c/0x110)
[<c0b18c64>] (generic_file_aio_write+0x4/0x110) from [<c0b76e3c>] (ext3_file_write+0x34/0xb8)
[<c0b76e0c>] (ext3_file_write+0x4/0xb8) from [<c0b356b0>] (do_sync_write+0xc4/0x108)
[<c0b355ec>] (do_sync_write+0x0/0x108) from [<c0b357b4>] (vfs_write+0xc0/0x17c)
[<c0b356f4>] (vfs_write+0x0/0x17c) from [<c0b35930>] (sys_write+0x4c/0x74)
[<c0b358e4>] (sys_write+0x0/0x74) from [<c0adf7a0>] (ret_fast_syscall+0x0/0x2c)
01245678
pre-FCS for setting PLL3 out = 36 * OSCH娒Run FCS finished...
GARY:BIT1=2,BIT2=4,CPE_LINUX_KERNEL_BASE=e24fe008,which_can_boot=6
嵌入式Linux——写jz2440BootLoader的第一阶段代码
简介: 本文主要介绍为JZ2440编写BootLoader来引导和启动Linux系统。本文为BootLoader的第一阶段,即对开发板硬件环境进行初始化来为第二阶段的引导内核和启动内核做准备。 声明: 本文主要是看了韦东山老师的视频后,所写的课程总结。希望对你有所帮助。 介绍内存分配: 我想很多人在看u-boot或者在了解BootLoade...
STM32串口第一个字节丢失问题的分析过程:硬件复位后,串口发送首个数据前,读一下USART_SR,能保证首个数据发送时,不出现覆盖情况,读取USARTx->SR能避免莫名其妙的错误,DR复位值不确定
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个
出错
的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。 故障排除过程: 1、刚开始怀疑是接收端的错误,我是使用电脑串口,运行串口辅助调试工具接收,换成其他软件后,..
开机上电:学了那么久的嵌入式,可知程序烧录到哪
学了那么久的嵌入式,可知程序烧录到哪本文
讨论
问题1. 固件烧录2. 51单片机固件烧录3. STM32固件烧录4. exynos4412固件烧录5. 小结 本文
讨论
问题 固件是烧录到哪里。 CPU/MCU是从哪个地址开始执行程序。 你有遇到烧录固件开机后,除了电源灯常亮,
板子
却没有任何反应吗,你有考虑过这种现象与烧录的地址有关吗? 1. 固件烧录 回想一下刚开始学习嵌入式软件开发的时候是怎么进行的。拿到开发板后,跟着商家提供的学习课程一步一步的照敲代码、编译、烧录、启动开发板。 奥耶!开发板正常运行且
J-Flash ARM烧写Nor Flash时
出错
:PC of target system has unexpected value after programming
【已解决】J-Flash ARM烧写Nor Flash时
出错
:PC of target system has unexpected value after programming 【问题】 最近在用J-Flash ARM去烧写TQ2440
板子
上的Nor Flash,但是在烧写过程中,经常会
出错
: PC of target system has unexpected val
交叉编译Qt5.15.2并移植到GEC6818
主机环境:Ubuntu20.04虚拟机 交叉工具链:粤嵌提供的arm-linux-gnueabi-5.4.0,一般开发板厂商都会提供相应的工具链 为什么我要自己来交叉编译Qt库,还发毫无技术含量的水
贴
? 答:第一个问题,因为粤嵌提供的Qt库是5.7版本,且包括qtlocation,multimedia在内的很多模块被裁剪掉了,导致我想移植的程序无法正常交叉编译,更不要说运行;第二个问题:本人属于啥都不会的菜鸡,很多步骤即使做完了也不明白原理,过
一段时间
就忘记该咋操作,故发帖记录下步骤,以防未来还要
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章