|
请教ADS调试ARM的问题,不知道如何入门。。
[复制链接]
如题。
正在学习ARM的开发,采用的是ARM920T的内核。为了进一步熟悉其架构,现想先进行一些简单的开发,比如用汇编调试一下MOV等指令,看看内部寄存器的变化情况,选用JTAG仿真器和AXD进行调试。这个应该算是最简单的入门吧?
现在的问题是,我用汇编写了一个程序,(其实也基本就是参考ADS安装目录下的Examples),弄到ADS中Compile和make,然后就用AXD对其axf文件进行调试,程序源代码也出现在AXD中了,可是单步运行的时候怎么寄存器的状态都不变的啊,r0,r1等,只有那个指示当前位置的pc寄存器中的值会变化,怎么回事啊?
我查看其反汇编程序,居然是如下:
start [0xffffffff] dci 0xffffffff ; ? undefined
00008004 [0xffffffff] dci 0xffffffff ; ? undefined
00008008 [0xffffffff] dci 0xffffffff ; ? undefined
0000800c [0xffffffff] dci 0xffffffff ; ? undefined
blockcopy [0xffffffff] dci 0xffffffff ; ? undefined
00008014 [0xffffffff] dci 0xffffffff ; ? undefined
...
似乎是程序没有编译好?请教一下……
因为实验室老师和师兄都没有开发过ARM,一个人摸索起来真的很费劲,还请版上各位多多指教,先谢过了。。
另外,我对于ARM的开发流程还是不太了解,我看一些书上说是先给ARM移植好U-Boot,然后剪裁和移植Linux,编写驱动程序,然后再编写应用程序就OK了,我现在也是准备这样子做的。有些书又介绍说用ADS开发,是不是说用ADS的话就是开发一些没有操作系统的啊?如果我想开发ARM+Linux的话,还有必要学习ADS的开发么?开发ADS的话需要先弄好U-Boot吗?
因为初学问题比较多,还请大家多多指教。
|
|