- 论坛徽章:
- 0
|
兄弟先搞懂2440的地址划分:30000000-40000000 是bank6 和bank7的地址空间;这两个bank是可以接sdram的而其他的是不行的;
arm-linux-ld -Ttext 0x30000000 指明了程序的运行地址是sdram的起始地址,因此此地址正确;
用dnw下载一般板子上跑的是bootloader不管是vivi还是uboot还是ads编译的;
bootloader 一般运行在地址sdram 的高地址空间如果是256m的sdram默认是0x3ff80000-40000这个地址空间,我的是64MB的sdram修改为textbase =0x33f80000,也就是uboot运行在0x33f80000-0x340000000,你要想保证你的裸板程序能正常运行,则不能覆盖bootloader的空间,否则导致;
当你些裸板程序是arm-linux-ld -Ttext 0x30000000 中-Ttext段制定的地址就是程序的运行地址,用dnw下载是直接下载到SDRAM中的,因此应把dnw地址设定为0x30000000 ;
有些程序需要下载到flash中,如bootloader ,kernel ,fs等。
这时下载是可用hflasher或uboot 或其他的bootloader;
对了 启动开发板的时候 选nor flash 还是 nand flash?
你吧bootloader 下载到哪里你就选哪个。开发板启动是先运行bootloader里的程序,然后bootloader或接受你通过dnw传递过去的命令并执行,或默认启动wince或linux或android。如果你
传递个下载命令,bootloader 就把你通过dnw传过去的文件下载到你dnw里指定的地址去,然后你再通过相应命令执行之,bootloader相当于一个桥梁;在你还没有通过相应命令把文件写入到
flash里之前,你所传递的文件是存到sdram里的,容易丢失。
本想自己调试的 可惜还是搞不懂gdbserver 。。
你要知道,gdbserver 是gnu的编译工具组建,其运行平台是类linux,因此你想使用它,必须在开发版上运行gdbserver,然后在pc上运行arm-linux-gdb ,两者通过网口交互。而在板子运行类linux时
下载文件就不能用dnw了,此时可用uart或tftp或nfs,此时的程序也不是裸机程序了,是运行在linux下需要glibc或uclibc支持的。。。
|
|