根据pc和lr地址怎么看coredump文件怎么看的地址

wince|LOFTER(乐乎) - 让兴趣,更有趣
LOFTER for ipad —— 让兴趣,更有趣
下载移动端
关注最新消息
&nbsp&nbsp被喜欢
&nbsp&nbsp被喜欢
{list posts as post}
{if post.type==1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type==2}
{if post.type == 3}
{if !!post.image}
{if post.type == 4}
{if !!post.image}
{if !!photo.labels && photo.labels.length>0}
{var wrapwidth = photo.ow < 500?photo.ow:500}
{list photo.labels as labs}
{var lbtxtwidth = Math.floor(wrapwidth*(labs.ort==1?labs.x:(100-labs.x))/100)-62}
{if lbtxtwidth>12}
{if !!labs.icon}
{list photos as photo}
{if photo_index==0}{break}{/if}
品牌${make||'-'}
型号${model||'-'}
焦距${focalLength||'-'}
光圈${apertureValue||'-'}
快门速度${exposureTime||'-'}
ISO${isoSpeedRatings||'-'}
曝光补偿${exposureBiasValue||'-'}
镜头${lens||'-'}
{if data.msgRank == 1}{/if}
{if data.askSetting == 1}{/if}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post_index < 3}
{if post.type == 1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
{if drlist.length>0}
更多相似达人:
{list drlist as dr}{if drlist.length === 3 && dr_index === 0}、{/if}{if drlist.length === 3 && dr_index === 1}、{/if}{if drlist.length === 2 && dr_index === 0}、{/if}{/list}
暂无相似达人,
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
this.p={ currentPage:1,pageNewMode:true,isgooglead3:false,ishotrecompost:false,visitorId:0, first:'',tag:'wince',recommType:'total',recommenderRole:0,offset:20,type:0,isUserEditor:0,};拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3a70-ua98).
重新安装浏览器,或使用别的浏览器君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
AIX+下的+core+dump+分析
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口1、运行地址&---&链接地址:他们两个是等价的,只是两种不同的说法。
2、加载地址&---&存储地址:他们两个是等价的,也是两种不同的说法。
运行地址:程序在SRAM、SDRAM中执行时的地址。就是执行这条指令时,PC应该等于这个地址,换句话说,PC等于这个地址时,这条指令应该保存在这个地址内。
加载地址:程序保存在Nand flash中的地址。
位置无关码:B、BL、MOV都是位置位置无关码。
位置有关码:LDR PC,=LABEL等类&#20284;的代码都是位置有关码。
下面我们来看看一个Makefile文件
sdram.bin : head.S& leds.c
&&& arm-linux-gcc& -c -o head.o head.S
&&& arm-linux-gcc -c -o leds.o leds.c
&&& arm-linux-ld -Ttext 0x head.o leds.o -o sdram_elf
&&& arm-linux-objcopy -O binary -S sdram_elf sdram.bin
&&& arm-linux-objdump -D -m arm& sdram_elf & sdram.dis
&rm -f&& sdram.dis sdram.bin sdram_elf *.o
&我们可以看到sdram_elf的代码段是从0x地址开始存放,这个地址我们称之为运行地址。为什么从这个地址开始存放,因为SDRAM的起始地址是0x.
下面来看看一个启动代码
@*************************************************************************
@ File:head.S
@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行
@*************************************************************************&&&&&&
.equ&&&&&&& MEM_CTL_BASE,&&&&&& 0x
.equ&&&&&&& SDRAM_BASE,&&&&&&&& 0x
.global _start
&&&&bl& disable_watch_dog&&&&&&&&&&&&&&&@ 关闭WATCHDOG,否则CPU会不断重启
&&& bl& memsetup&&&&&&&&&&&&&&&&&&&&&&& @ 设置存储控制器
&&& bl& copy_steppingstone_to_sdram&&&& @ 复制代码到SDRAM中
&&&&ldr pc, =on_sdram&&&&&&&&&&&&&&&&&&&@ 跳到SDRAM中继续执行
&&& ldr sp, =0x&&&&&&&&&&&&&&&& @ 设置堆栈
&&& bl& main
halt_loop:
&&& b&& halt_loop
disable_watch_dog:
&&& @ 往WATCHDOG寄存器写0即可
&&& mov r1,&&&& #0x
&&& mov r2,&&&& #0x0
&&& str r2,&&&& [r1]
&&& mov pc,&&&& lr&&&&& @ 返回
copy_steppingstone_to_sdram:
&&& @ 将Steppingstone的4K数据全部复制到SDRAM中去
&&& @ Steppingstone起始地址为0x,SDRAM中起始地址为0x
&&& mov r1, #0
&&& ldr r2, =SDRAM_BASE
&&& mov r3, #4*1024
&&& ldr r4, [r1],#4&&&& @ 从Steppingstone读取4字节的数据,并让源地址加4
&&& str r4, [r2],#4&&&& @ 将此4字节的数据复制到SDRAM中,并让目地地址加4
&&& cmp r1, r3&&&&&&&&& @ 判断是否完成:源地址等于Steppingstone的未地址?
&&& bne 1b&&&&&&&&&&&&& @ 若没有复制完,继续
&&& mov pc,&&&& lr&&&&& @ 返回
&&& @ 设置存储控制器以便使用SDRAM等外设
&&& mov r1,&&&& #MEM_CTL_BASE&&&&&& @ 存储控制器的13个寄存器的开始地址
&&& adrl&&& r2, mem_cfg_val&&&&&&&& @ 这13个&#20540;的起始存储地址
&&& add r3,&&&& r1, #52&&&&&&&&&&&& @ 13*4 = 54
&&& ldr r4,&&&& [r2], #4&&&&&&&&&&& @ 读取设置&#20540;,并让r2加4
&&& str r4,&&&& [r1], #4&&&&&&&&&&& @ 将此&#20540;写入寄存器,并让r1加4
&&& cmp r1,&&&& r3&&&&&&&&&&&&&&&&& @ 判断是否设置完所有13个寄存器
&&& bne 1b&&&&&&&&&&&&&&&&&&&&&&&&& @ 若没有写成,继续
&&& mov pc,&&&& lr&&&&&&&&&&&&&&&&& @ 返回
mem_cfg_val:
&&& @ 存储控制器13个寄存器的设置&#20540;
&&& .long&& 0x&&&&& @ BWSCON
&&& .long&& 0x&&&&& @ BANKCON0
&&& .long&& 0x&&&&& @ BANKCON1
&&& .long&& 0x&&&&& @ BANKCON2
&&& .long&& 0x&&&&& @ BANKCON3&&
&&& .long&& 0x&&&&& @ BANKCON4
&&& .long&& 0x&&&&& @ BANKCON5
&&& .long&& 0x&&&&& @ BANKCON6
&&& .long&& 0x&&&&& @ BANKCON7
&&& .long&& 0x008C07A3&&&&& @ REFRESH
&&& .long&& 0x&&&&& @ BANKSIZE
&&& .long&& 0x&&&&& @ MRSRB6
&&& .long&& 0x&&&&& @ MRSRB7
下面来看看反汇编代码
sdram_elf:&&&& file format elf32-littlearm
Disassembly of section .text:
:&& &eb000005 && &bl&& &3000001c &disable_watch_dog&
:&& &eb000010 && &bl&& &3000004c &memsetup&
:&& &eb000007 && &bl&& &3000002c &copy_steppingstone_to_sdram&
3000000c:&& &e59ff090 && &ldr&& &pc, [pc, #144]&& &;
&mem_cfg_val&#43;0x34&
&on_sdram&:
:&& &e3a0d30d && &mov&& &sp, #&& &; 0x
:&& &eb000033 && &bl&& & &main&
&halt_loop&:
:&& &eafffffe && &b&& & &halt_loop&
3000001c &disable_watch_dog&:
3000001c:&& &e3a01453 && &mov&& &r1, #&& &; 0x
:&& &e3a02000 && &mov&& &r2, #0
:&& &e5812000 && &str&& &r2, [r1]
:&& &e1a0f00e && &mov&& &pc, lr
3000002c &copy_steppingstone_to_sdram&:
3000002c:&& &e3a01000 && &mov&& &r1, #0
:&& &e3a02203 && &mov&& &r2, #&& &; 0x
:&& &e3a03a01 && &mov&& &r3, #4096&& &; 0x1000
:&& &e4914004 && &ldr&& &r4, [r1], #4
3000003c:&& &e4824004 && &str&& &r4, [r2], #4
:&& &e1510003 && &cmp&& &r1, r3
:&& &1afffffb && &bne&& & &copy_steppingstone_to_sdram&#43;0xc&
:&& &e1a0f00e && &mov&& &pc, lr
3000004c &memsetup&:
3000004c:&& &e3a01312 && &mov&& &r1, #&& &; 0x
:&& &e28f2018 && &add&& &r2, pc, #24
:&& &e1a00000 && &nop&& &&& &&& &; (mov r0, r0)
:&& &e2813034 && &add&& &r3, r1, #52&& &; 0x34
3000005c:&& &e4924004 && &ldr&& &r4, [r2], #4
:&& &e4814004 && &str&& &r4, [r1], #4
:&& &e1510003 && &cmp&& &r1, r3
:&& &1afffffb && &bne&& &3000005c &memsetup&#43;0x10&
3000006c:&& &e1a0f00e && &mov&& &pc, lr
&mem_cfg_val&:
:&& & && &andcs&& &r1, r1, #4
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
3000007c:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
3000008c:&& & && &andeq&& &r8, r1, r5
:&& & && &andeq&& &r8, r1, r5
:&& &008c07a3 && &addeq&& &r0, ip, r3, lsr #15
:&& & && &strheq&& &r0, [r0], -r1
3000009c:&& & && &andeq&& &r0, r0, r0, lsr r0
:&& & && &andeq&& &r0, r0, r0, lsr r0
:&& &&&& &andcc&& &r0, r0, r0, lsl r0
:&& &e1a00000 && &nop&& &&& &&& &; (mov r0, r0)
300000ac:&& &e1a00000 && &nop&& &&& &&& &; (mov r0, r0)
:&& &e52db004 && &push&& &{fp}&& &&& &; (str fp, [sp, #-4]!)
:&& &e28db000 && &add&& &fp, sp, #0
:&& &e24dd00c && &sub&& &sp, sp, #12
300000bc:&& &e50b0008 && &str&& &r0, [fp, #-8]
:&& &ea000002 && &b&& & &wait&#43;0x20&
:&& &e51b3008 && &ldr&& &r3, [fp, #-8]
:&& &e2433001 && &sub&& &r3, r3, #1
300000cc:&& &e50b3008 && &str&& &r3, [fp, #-8]
:&& &e51b3008 && &ldr&& &r3, [fp, #-8]
:&& &e3530000 && &cmp&& &r3, #0
:&& &1afffff9 && &bne&& & &wait&#43;0x14&
300000dc:&& &e28bd000 && &add&& &sp, fp, #0
:&& &e8bd0800 && &pop&& &{fp}
:&& &e12fff1e && &bx&& &lr
:&& &e92d4800 && &push&& &{fp, lr}
300000ec:&& &e28db004 && &add&& &fp, sp, #4
:&& &e24dd008 && &sub&& &sp, sp, #8
:&& &e3a03000 && &mov&& &r3, #0
:&& &e50b3008 && &str&& &r3, [fp, #-8]
300000fc:&& &e59f3030 && &ldr&& &r3, [pc, #48]&& &;
&main&#43;0x4c&
:&& &e3a02b55 && &mov&& &r2, #87040&& &; 0x15400
:&& &e5832000 && &str&& &r2, [r3]
:&& &e59f0028 && &ldr&& &r0, [pc, #40]&& &;
&main&#43;0x50&
3000010c:&& &ebffffe7 && &bl&& & &wait&
:&& &e59f3024 && &ldr&& &r3, [pc, #36]&& &; 3000013c &main&#43;0x54&
:&& &e3a02000 && &mov&& &r2, #0
:&& &e5832000 && &str&& &r2, [r3]
3000011c:&& &e59f0014 && &ldr&& &r0, [pc, #20]&& &;
&main&#43;0x50&
:&& &ebffffe2 && &bl&& & &wait&
:&& &e59f3010 && &ldr&& &r3, [pc, #16]&& &; 3000013c &main&#43;0x54&
:&& &e3a02e1e && &mov&& &r2, #480&& &; 0x1e0
3000012c:&& &e5832000 && &str&& &r2, [r3]
:&& &eafffff4 && &b&& & &main&#43;0x20&
:&& & && &undefined instruction 0x
:&& & && &andeq&& &r7, r0, r0, lsr r5
3000013c:&& & && &undefined instruction 0x
Disassembly of section .ARM.attributes:
&.ARM.attributes&:
&& 0:&& & && &andeq&& &r2, r0, r1, asr #10
&& 4:&& & && &cmnvs&& &r5, r0, lsl #2
&& 8:&& & && &tsteq&& &r0, r2, ror #18
&& c:&& &0000001b && &andeq&& &r0, r0, fp, lsl r0
& 10:&& & && &subseq&& &r3, r4, r5, lsl #8
& 14:&& & && &tsteq&& &r8, r6, lsl #4
& 18:&& & && &ldreq&& &r0, [r2], #-265&& &; 0x109
& 1c:&& & && &tsteq&& &r5, r4, lsl r1
& 20:&& & && &tsteq&& &r8, r7, lsl r3
& 24:&& &Address 0x is out of bounds.
Disassembly of section .comment:
&.comment&:
&& 0:&& &3a434347 && &bcc&& &10d0d24 &SDRAM_BASE-0x2ef2f2dc&
&& 4:&& & && &strbtvc&& &r2, [r3], #-2080&& &; 0x820
&& 8:&& &312d676e && &teqcc&& &sp, lr, ror #14
&& c:&& &312e362e && &teqcc&& &lr, lr, lsr #12
& 10:&& &2e342029 && &cdpcs&& &0, 3, cr2, cr4, cr9, {1}
& 14:&& &00332e34 && &eorseq&& &r2, r3, r4, lsr lr
当我们从Nand flash启动时,硬件会自动将Nand flash前4kB代码拷贝到片内SRAM中,然后CPU从SRAM的0x地址处开始执行程序。在这里我想纠正一个错误的观点,网上很多人都说是CPU自动把Nand flash前4kB代码拷贝到片内SRAM中,其实不然,是Nand flash控制器完成的,这个过程中CPU根本就没有参与 。
通过上面的Makefile文件,我们可以知道 bl& disable_watch_dog&&&这条指令的运行地址是0x,但是它现在保存在SRAM的0x的地址处,那么这条指令能够正确执行吗?of course,why?
因为这条指令&bl& disable_watch_dog&&&是位置无关码,虽然它的运行地址是在SDRAM中的0x,但是它可以在Steppingstone中执行。这条指令的功能是跳转到标号disable_watch_dog&&处执行,它是一个相对跳转,PC=当前PC的&#20540;&#43;偏移量OFFSET。其中当前PC的&#20540;等于下两条指令的地址,通过反汇编可以看到下两条指令的地址为0x0000
0008,而不是0x.因为现在指令是保存在SRAM中。
这条指令的机器码为eb00 0005,将机器码低24位按符号位扩展成32位得到0x.然后将0x左移2位得到0x。这个&#20540;就是偏移量OFFSET=0X。所以PC=0X&#43;0XXc.那么CPU就会到SRAM中的0xc地址处执行程序。
可以发现bl指令依赖当前PC的&#20540;,这个特性使得bl指令不依赖指令的运行地址。所以接下来的bl mensetup ,bl cope_steppingstone_to_sdram都能够执行。
接下来的ldr pc,=on_sdram是一条位置有关码,经过反汇编可以看到,它是当前pc的&#20540;&#43;偏移量,得到一个地址Addr,然后从内存中的这个地址去取数据Data赋给pc。现在我们计算一下Addr这个地址。
Addr=当前PC的&#20540;&#43;144。当前PC的&#20540;等于下两条指令的地址0x,而不是0x,因为现在程序是保存在SRAM中。所以Addr=0x&#43;144=0x&#43;0xx.那么这个地址0x中保存了什么数据。通过反汇编可以看到SRAM中的0x这个地址保存的机器码为,所以cpu会跳转到0x这个地址处执行程序。这个地址0x
是在SDRAM中,这样程序就跳到SDRAM中去了。因为我们前面的指令 bl cope_stepping_to_sdram 已经把SRAM中4kB的程序拷贝到了SDRAM中,所以现在SDRAM中有程序了。
但是如果在程序的开头放置一条这样的指令:ldr pc,=disable_watch_dog ,那么整个程序就不能够正确执行了。why?
我们先来看看启动代码
@*************************************************************************
@ File:head.S
@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行
@*************************************************************************&&&&& &
.equ&&&&&&& MEM_CTL_BASE,&&&&&& 0x
.equ&&&&&&& SDRAM_BASE,&&&&&&&& 0x
.global _start
&& &@bl& disable_watch_dog&&&&&&&&&&&&&& @ 关闭WATCHDOG,否则CPU会不断重启
&&&&ldr pc, =disable_watch_dog&&&&&&&&& &
&&& bl& memsetup&&&&&&&&&&&&&&&&&&&&&&& @ 设置存储控制器
&&& bl& copy_steppingstone_to_sdram&&&& @ 复制代码到SDRAM中
&&& ldr pc, =on_sdram&&&&&&&&&&&&&&&&&& @ 跳到SDRAM中继续执行
&&& ldr sp, =0x&&&&&&&&&&&&&&&& @ 设置堆栈
&&& bl& main
halt_loop:
&&& b&& halt_loop
disable_watch_dog:
&&& @ 往WATCHDOG寄存器写0即可
&&& mov r1,&&&& #0x
&&& mov r2,&&&& #0x0
&&& str r2,&&&& [r1]
&&& mov pc,&&&& lr&&&&& @ 返回
copy_steppingstone_to_sdram:
&&& @ 将Steppingstone的4K数据全部复制到SDRAM中去
&&& @ Steppingstone起始地址为0x,SDRAM中起始地址为0x
&&& mov r1, #0
&&& ldr r2, =SDRAM_BASE
&&& mov r3, #4*1024
&&& ldr r4, [r1],#4&&&& @ 从Steppingstone读取4字节的数据,并让源地址加4
&&& str r4, [r2],#4&&&& @ 将此4字节的数据复制到SDRAM中,并让目地地址加4
&&& cmp r1, r3&&&&&&&&& @ 判断是否完成:源地址等于Steppingstone的未地址?
&&& bne 1b&&&&&&&&&&&&& @ 若没有复制完,继续
&&& mov pc,&&&& lr&&&&& @ 返回
&&& @ 设置存储控制器以便使用SDRAM等外设
&&& mov r1,&&&& #MEM_CTL_BASE&&&&&& @ 存储控制器的13个寄存器的开始地址
&&& adrl&&& r2, mem_cfg_val&&&&&&&& @ 这13个&#20540;的起始存储地址
&&& add r3,&&&& r1, #52&&&&&&&&&&&& @ 13*4 = 54
&&& ldr r4,&&&& [r2], #4&&&&&&&&&&& @ 读取设置&#20540;,并让r2加4
&&& str r4,&&&& [r1], #4&&&&&&&&&&& @ 将此&#20540;写入寄存器,并让r1加4
&&& cmp r1,&&&& r3&&&&&&&&&&&&&&&&& @ 判断是否设置完所有13个寄存器
&&& bne 1b&&&&&&&&&&&&&&&&&&&&&&&&& @ 若没有写成,继续
&&& mov pc,&&&& lr&&&&&&&&&&&&&&&&& @ 返回
mem_cfg_val:
&&& @ 存储控制器13个寄存器的设置&#20540;
&&& .long&& 0x&&&&& @ BWSCON
&&& .long&& 0x&&&&& @ BANKCON0
&&& .long&& 0x&&&&& @ BANKCON1
&&& .long&& 0x&&&&& @ BANKCON2
&&& .long&& 0x&&&&& @ BANKCON3 &
&&& .long&& 0x&&&&& @ BANKCON4
&&& .long&& 0x&&&&& @ BANKCON5
&&& .long&& 0x&&&&& @ BANKCON6
&&& .long&& 0x&&&&& @ BANKCON7
&&& .long&& 0x008C07A3&&&&& @ REFRESH
&&& .long&& 0x&&&&& @ BANKSIZE
&&& .long&& 0x&&&&& @ MRSRB6
&&& .long&& 0x&&&&& @ MRSRB7
对应的反汇编代码
sdram_elf:&&&& file format elf32-littlearm
Disassembly of section .text:
:&& &e59ff09c && &ldr&& &pc, [pc, #156]&& &;
&mem_cfg_val&#43;0x34&
:&& &eb000010 && &bl&& &3000004c &memsetup&
:&& &eb000007 && &bl&& &3000002c &copy_steppingstone_to_sdram&
3000000c:&& &e59ff094 && &ldr&& &pc, [pc, #148]&& &;
&mem_cfg_val&#43;0x38&
&on_sdram&:
:&& &e3a0d30d && &mov&& &sp, #&& &; 0x
:&& &eb000033 && &bl&& & &main&
&halt_loop&:
:&& &eafffffe && &b&& & &halt_loop&
3000001c &disable_watch_dog&:
3000001c:&& &e3a01453 && &mov&& &r1, #&& &; 0x
:&& &e3a02000 && &mov&& &r2, #0
:&& &e5812000 && &str&& &r2, [r1]
:&& &e1a0f00e && &mov&& &pc, lr
3000002c &copy_steppingstone_to_sdram&:
3000002c:&& &e3a01000 && &mov&& &r1, #0
:&& &e3a02203 && &mov&& &r2, #&& &; 0x
:&& &e3a03a01 && &mov&& &r3, #4096&& &; 0x1000
:&& &e4914004 && &ldr&& &r4, [r1], #4
3000003c:&& &e4824004 && &str&& &r4, [r2], #4
:&& &e1510003 && &cmp&& &r1, r3
:&& &1afffffb && &bne&& & &copy_steppingstone_to_sdram&#43;0xc&
:&& &e1a0f00e && &mov&& &pc, lr
3000004c &memsetup&:
3000004c:&& &e3a01312 && &mov&& &r1, #&& &; 0x
:&& &e28f2018 && &add&& &r2, pc, #24
:&& &e1a00000 && &nop&& &&& &&& &; (mov r0, r0)
:&& &e2813034 && &add&& &r3, r1, #52&& &; 0x34
3000005c:&& &e4924004 && &ldr&& &r4, [r2], #4
:&& &e4814004 && &str&& &r4, [r1], #4
:&& &e1510003 && &cmp&& &r1, r3
:&& &1afffffb && &bne&& &3000005c &memsetup&#43;0x10&
3000006c:&& &e1a0f00e && &mov&& &pc, lr
&mem_cfg_val&:
:&& & && &andcs&& &r1, r1, #4
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
3000007c:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
:&& & && &andeq&& &r0, r0, r0, lsl #14
3000008c:&& & && &andeq&& &r8, r1, r5
:&& & && &andeq&& &r8, r1, r5
:&& &008c07a3 && &addeq&& &r0, ip, r3, lsr #15
:&& & && &strheq&& &r0, [r0], -r1
3000009c:&& & && &andeq&& &r0, r0, r0, lsr r0
:&& & && &andeq&& &r0, r0, r0, lsr r0
:&& &3000001c && &andcc&& &r0, r0, ip, lsl r0
:&& & && &andcc&& &r0, r0, r0, lsl r0
300000ac:&& &e1a00000 && &nop&& &&& &&& &; (mov r0, r0)
:&& &e52db004 && &push&& &{fp}&& &&& &; (str fp, [sp, #-4]!)
:&& &e28db000 && &add&& &fp, sp, #0
:&& &e24dd00c && &sub&& &sp, sp, #12
300000bc:&& &e50b0008 && &str&& &r0, [fp, #-8]
:&& &ea000002 && &b&& & &wait&#43;0x20&
:&& &e51b3008 && &ldr&& &r3, [fp, #-8]
:&& &e2433001 && &sub&& &r3, r3, #1
300000cc:&& &e50b3008 && &str&& &r3, [fp, #-8]
:&& &e51b3008 && &ldr&& &r3, [fp, #-8]
:&& &e3530000 && &cmp&& &r3, #0
:&& &1afffff9 && &bne&& & &wait&#43;0x14&
300000dc:&& &e28bd000 && &add&& &sp, fp, #0
:&& &e8bd0800 && &pop&& &{fp}
:&& &e12fff1e && &bx&& &lr
:&& &e92d4800 && &push&& &{fp, lr}
300000ec:&& &e28db004 && &add&& &fp, sp, #4
:&& &e24dd008 && &sub&& &sp, sp, #8
:&& &e3a03000 && &mov&& &r3, #0
:&& &e50b3008 && &str&& &r3, [fp, #-8]
300000fc:&& &e59f3030 && &ldr&& &r3, [pc, #48]&& &;
&main&#43;0x4c&
:&& &e3a02b55 && &mov&& &r2, #87040&& &; 0x15400
:&& &e5832000 && &str&& &r2, [r3]
:&& &e59f0028 && &ldr&& &r0, [pc, #40]&& &;
&main&#43;0x50&
3000010c:&& &ebffffe7 && &bl&& & &wait&
:&& &e59f3024 && &ldr&& &r3, [pc, #36]&& &; 3000013c &main&#43;0x54&
:&& &e3a02000 && &mov&& &r2, #0
:&& &e5832000 && &str&& &r2, [r3]
3000011c:&& &e59f0014 && &ldr&& &r0, [pc, #20]&& &;
&main&#43;0x50&
:&& &ebffffe2 && &bl&& & &wait&
:&& &e59f3010 && &ldr&& &r3, [pc, #16]&& &; 3000013c &main&#43;0x54&
:&& &e3a02e1e && &mov&& &r2, #480&& &; 0x1e0
3000012c:&& &e5832000 && &str&& &r2, [r3]
:&& &eafffff4 && &b&& & &main&#43;0x20&
:&& & && &undefined instruction 0x
:&& & && &andeq&& &r7, r0, r0, lsr r5
3000013c:&& & && &undefined instruction 0x
Disassembly of section .ARM.attributes:
&.ARM.attributes&:
&& 0:&& & && &andeq&& &r2, r0, r1, asr #10
&& 4:&& & && &cmnvs&& &r5, r0, lsl #2
&& 8:&& & && &tsteq&& &r0, r2, ror #18
&& c:&& &0000001b && &andeq&& &r0, r0, fp, lsl r0
& 10:&& & && &subseq&& &r3, r4, r5, lsl #8
& 14:&& & && &tsteq&& &r8, r6, lsl #4
& 18:&& & && &ldreq&& &r0, [r2], #-265&& &; 0x109
& 1c:&& & && &tsteq&& &r5, r4, lsl r1
& 20:&& & && &tsteq&& &r8, r7, lsl r3
& 24:&& &Address 0x is out of bounds.
Disassembly of section .comment:
&.comment&:
&& 0:&& &3a434347 && &bcc&& &10d0d24 &SDRAM_BASE-0x2ef2f2dc&
&& 4:&& & && &strbtvc&& &r2, [r3], #-2080&& &; 0x820
&& 8:&& &312d676e && &teqcc&& &sp, lr, ror #14
&& c:&& &312e362e && &teqcc&& &lr, lr, lsr #12
& 10:&& &2e342029 && &cdpcs&& &0, 3, cr2, cr4, cr9, {1}
& 14:&& &00332e34 && &eorseq&& &r2, r3, r4, lsr lr
通过反汇编代码我们可以看到:第一条指令
ldr pc,=disable_watch_dog 对应的反汇编代码为:&& &e59ff09c && &ldr&& &pc, [pc, #156]&& &;
&mem_cfg_val&#43;0x34&
其中pc=下两条指令的地址=0x,立即数156对应的16进制为为0xc,0x&#43;0xx.而SRAM中的0x这个地址中保存的机器码为3000001c,所以执行完这条指令后pc=0xc,0xc这个地址是SDRAM中的,而现在SDRAM中什么都没有,所以程序不能正确执行。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16979次
排名:千里之外
原创:11篇
(1)(3)(1)(1)(6)(1)(2)(2)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 linux coredump 路径 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信