Isr_Init();
[0xebfff672] bl Led_Test
i = search_params(); //hzh, don't use 100M!
[0xebffffd7] bl Isr_Init
......
[0xe51f98d8] ldr r9,0x30102220 ; = #0x301a12b8
这个是我用Multi Ice调试2440时候的出错现场,明眼人一看就知道是C代码和汇编没有对上,为什么呢???? 为什么到这里就会对不上呢??? 请哪位前辈指点下
无效函数调用(就是结果在后面未被引用),被编译器优化,不产生对应的汇编代码。
嗯,这个是猜的,因为没有看到源代码。
有些概念性的东西还没有搞清楚
我用AXD调试,我load image,现在ram中运行的程序是什么呢? 是我load进RAM的程序,还是从nand拷贝到ram的程序呢(我用nand启动)???
我重新下载了个程序到nand 然后再调试就好了。
是不是我用load memory from file而不是load image才是将我现在程序放到ram中进行调试呢?
为什么我load memory from file会显示:
the code in the cache_clean_code_address region has been overwitten Please change the address of this area now
我该怎么改这个地址呢?
你真的有很多基本概念没搞清楚,有时候不要哪么着急调试程序,先多看些书,把基础概念搞清楚在试程序比较好!
你要先搞清楚什么是运行时的数据和程序地址空间,怎么设置?另外不知你的程序中有无重映射,有的话也把重映射理清楚!
提供你个思路,具体的东西自己看书吧,现在arm的资料这么好找
看来是load时出的问题。不过load时是直接从你的PC上打开相应的bin文件的,怎么回事。这个bin download到flash无法运行吧?
程序运行可以在FALSH或者SRAM。不过flash必须是线性可寻址空间。而NAND是无法直接线性寻址的,所以必须拷贝到RAM中,然后在RAM中运行。
运行地址什么的,一般在一个CPU平台上是固定的,不是说不可以改,而是整个系统移植时,移植的人就定好了,很多有关系,牵涉到的都与之对应的定好了。你想改当然可以,不过那工作量不亚于再次移植一次。