对于用ads1.2的早期版本sdt2.5 中的adw 调试bootrom_uncmp 的方法大家一般都比较熟悉,这里不多做说明。下面给出用ads1.2 中的axd 调试bootrom 的方法. 步骤如下: 1 打开自己所用的调试代理, 如MultiICE , ARMJtagDebugFinal 中的arm7.exe,arm9.exe 等 2. 打开axd 在Options→Config Target 选择自己所需的调试代理。如图1 所示: 3. 在Options→Config Processor 中点击Clear All,去掉Semihosting 前面的勾。点OK 退出。如图2 所示: 4. 在Command Line Interface 中输入配置文件的路径或者命令:如obey d:/2410.txt,obey d:/44B0.txt 等。 下面是一个对S3C2410 在axd 下的配置文件2410.txt spp vector_catch,0x00 spp semihosting_enabled,0x00 sreg psr,0x60000013 smem 0x53000000,0,32 smem 0x4C000004,((0x47<<12)+(0x1<<4)+0x2),32 smem 0x56000070,0x280000,32 smem 0x56000078,0x0,32 smem 0x48000000,((2<<28)+(2<<24)+(1<<20)+(9<<16)+(1<<12)+(1<<8)+(1<<4)+0),32 smem 0x48000004,((3<<13)+(3<<11)+(7<<8)+(3<<6)+(3<<4)+(3<<2)+3),32 smem 0x4800001c,((3<<15)+(1<<2)+1),32 smem 0x48000020,((3<<15)+(1<<2)+1),32 smem 0x48000024,((1<<23)+(0<<22)+(0<<20)+(3<<18)+(2<<16)+1113),32 smem 0x48000028,0x32,32 smem 0x4800002c,0x30,32 smem 0x48000030,0x30,32 5. 点击File→Load Image 加载Tornado 编译生成的bootrom_uncmp(为elf 格式)。 注意:在这里调试时只能加载bootrom_uncmp,你可以在调试通过后再编译生成其它格式如*.bin,*.hex 的烧写文件。 6.这是最关键的一步,在加载boottom_uncmp 的Disassembly 窗口中点击鼠标右键,选中Set PC 在PC 值中输入你在config.h 中定义的RAM_HIGH_ADRS 的值。具体如图3 所示: 如:在Config.h 有如下定义: #define RAM_HIGH_ADRS 0x0C500000 /* RAM address for ROM boot */ OK 结束配置即可进入bootrom 的入口点。如图4 所示: 7. 经过以上几步的配置,一切准备工作已经完成,接下来你可以运用单步调试,或者全速执行来调试bootrom,当然你也可以设置断点,在调试过程一定会遇到很多的问题,这需要耐心与细心。
|