完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的设置基本上和那个教学pdf文档是一样的
command如下 target remote localhost:3333 monitor halt monitor ARM920t cp15 2 0 monitor step monitor poll monitor arm7_9 sw_bkpts enable load break _hdr_entry monitor halt 正常情况下,也就是可以load源代码的情况下是这样提示的: break _hdr_entry Breakpoint 1 at 0x4: file ../../src/sysdepend/app_***c2410/monitor.S, line 43. monitor halt 这样的话,就可以在源代码上一步一步的运行。 而,我用另外一个镜像的时候,却没办法load,这样提示的: break _hdr_entry Breakpoint 1 at 0x0 monitor halt 虽然没有提示找不到_hdr_entry,但是也没有找到源代码文件。 这样的话,我就无法源代码调试了。 请问thisway.diy大侠,有没有什么方法解决? 以上2种情况,都是相同步骤,相同编译器下编译的。 |
|
相关推荐
7个回答
|
|
你在调什么?什么映象?
|
|
|
|
我在调试日本的一个OS,t-kernel
有2个镜像,一个是T-Monitor,一个是T-Kernel T-Monitor类似bootloader,地址是0x0开始的 T-Kernel就是kernel程序,地址是0x20000开始的 编译器用的是Sourcery G++ Lite for ARM EABI 装载T-Monitor的镜像,是可以load源码的 装载T-Kernel的镜像,就不可以 然后我尝试,kernel和monitor一同编译 但是这个镜像也是不能被load的 求教 |
|
|
|
你看看它们的编译地址是什么,如果有编译脚本,就贴出来
|
|
|
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH(arm) ENTRY(__text_start) SECTIONS { .text 0x00000000 : { __text_start = .; KEEP (*(.init)) *(.text) *(.text.*) *(.stub) KEEP (*(.fini)) PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); *(.rodata) *(.rodata.*) *(.rodata1) . = ALIGN(10); } =0 ___data_org = .; .dest 0x30004440 : AT (___data_org) { ___data_start = . ; *(.data) *(.data.*) SORT(CONSTRUCTORS) *(.data1) KEEP (*(.eh_frame)) *(.gcc_except_table) KEEP (*crtbegin.o(.ctors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) KEEP (*crtbegin.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) *(.sdata) *(.sdata.*) . = ALIGN(4); __edata = .; PROVIDE (edata = .); } .bss ALIGN(4) : { ___bss_start = .; PROVIDE (__***ss_start = .); PROVIDE (___***ss_start = .); *(.***ss) *(.***ss.*) *(.scommon) PROVIDE (__***ss_end = .); PROVIDE (___***ss_end = .); *(.bss) *(.bss.*) *(COMMON) . = ALIGN(4); _end = .; PROVIDE (end = .); } } |
|
|
|
|
|
|
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS { .text 0x00020000 : { KEEP (*(.init)) *(.text) *(.text.*) *(.stub) KEEP (*(.fini)) PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); *(.rodata) *(.rodata.*) *(.rodata1) . = ALIGN(0x10); } =0 .ARM.extab :{*(.ARM.extab*) *(.gnu.linkonce.armextab.*)} __exidx_start = .; .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } __exidx_end = .; __data_org = . ; .data 0x30006000 : AT(__data_org) { __data_start = . ; *(.data) *(.data.*) SORT(CONSTRUCTORS) *(.data1) KEEP (*(.eh_frame)) *(.gcc_except_table) KEEP (*crtbegin.o(.ctors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) KEEP (*crtbegin.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) *(.sdata) *(.sdata.*) . = ALIGN(4); _edata = .; PROVIDE (edata = .); } .bss ALIGN(4) : { __bss_start = .; PROVIDE (__***ss_start = .); PROVIDE (___***ss_start = .); *(.***ss) *(.***ss.*) *(.scommon) PROVIDE (__***ss_end = .); PROVIDE (___***ss_end = .); *(.bss) *(.bss.*) *(COMMON) . = ALIGN(0x4); _end = .; PROVIDE (end = .); } } |
|
|
|
是S3C2410或S33C2440吗?
对于下面的程序,加载地址是0x00020000 ;但是S3C2410、S3C2440在0地址只有4K的内存,即0地址开始的地址是0~0x1000 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2187 浏览 6 评论
1987 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4545 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 09:28 , Processed in 0.768408 second(s), Total 59, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号