这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » AXD AXD加载调试文件的问题!

共2条 1/1 1 跳转至

AXD AXD加载调试文件的问题!

院士
2006-09-17 18:14:16     打赏
AXD AXD加载调试文件的问题!



关键词: 加载     调试     文件     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 启动代码如下:
  IMPORT    __main
MODE_USR   EQU   0X10
I_BIT      EQU   0X80
F_BIT      EQU   0X40
USR_STACK  EQU   0X00203000
AREA init,CODE,READONLY
CODE32
ENTRY
           B  InitReset      <-----编译后在AXD中为什么不能进入到这里?
undefvec   B   undefvec            此语句处应该是0X0啊?RO_BASE=0X0
swivec     B   swivec              entry_point=0x0
pabort     B   pabort
abort      B   abort
resaved    B   resaved
irqvec     B   irqvec
fiqvec     B   fiqvec
InitReset  
   MSR  CPSR_c,#MODE_USR|I_BIT|F_BIT
   LDR  SP,=USR_STACK
   B       __main

END

C语言代码如下:
#include <stdio.h>
int main(void)
{
   printf("hello\n");

}
编译通过后,用AXD来加载.axf文件,直接进入到__main()函数处,如下所示:
__main    [0xe28f8090]   add      r8,pc,#0x90 ; #0x98
00000004    [0xe898000f]   ldmia    r8,{r0-r3}
00000008    [0xe0800008]   add      r0,r0,r8
0000000c    [0xe0811008]   add      r1,r1,r8
00000010    [0xe0822008]   add      r2,r2,r8
00000014    [0xe0833008]   add      r3,r3,r8
00000018    [0xe240b001]   sub      r11,r0,#1
而不能如周工的示例代码startup.s代码那样会出现汇编语言的窗口,进入到如下的代码行处:
81    Reset
82            LDR     PC, ResetAddr     
83            LDR     PC, UndefinedAddr
84            LDR     PC, SWI_Addr
85            LDR     PC, PrefetchAddr
86            LDR     PC, DataAbortAddr
87            DCD     0xb9205f80
88            LDR     PC, [PC, #-0xff0]
89            LDR     PC, FIQ_Addr
是不是我哪儿没有设置好啊,请周工帮忙,如何才能在AXD加载调试文件时使程序进入启动代码窗口,然后通过调用B __main再进入到__main()函数的初始化程序中,现在我是用AXD一加载调试文件就直接进入到了__main()函数的初始化程序中了,谢谢! 1: re:您使用了我们的模板吗? 2: 问题已解决!应在ARMlink中设置-first init.o(init)

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]