JZ2440:下载程序到板子上

一、内存地址结构

1. JZ2440有两种不同的启动方式:
  • 从 nandflash 启动:
        nandflash 的前4k的内容复制到 2440 内部的 4k ram中,这4k 的内容负责将 nandflash 中的bootloader 复制到 sdram 中去,并执行 sdram 中的 uboot。nandflash 不被统一编址,norflash被统一编址从0x08000000 开始。
  • 从 norflash 启动:
        norflash 被编址冲 0 开始,上电后,将 norflash 中的程序复制到 SDRAM 中去,SDRAM 中的叫做链接地址,内部的 4k ram 的起始地址变成 0x4000 0000。

具体可以看数据手册的 195页:
         JZ2440:下载程序到板子上_第1张图片
另外的一张图,是更详细的分布图:
如果你想更详细的了解内存的分布情况:
         s3c2440的内存管理机制

二、下载方法

1. 如果是 xp系统,以 nandflash 或 norflash 方式启动,启动后选择 d 选项([d] Download to SDRAM & Run),以 winxp 下的 dnw 工具下载程序,即能下载到 0 地址并且运行。这里需要注意的是如果是自己写的uboot,用这种方式,可能涉及到重复初始化 sdram ,导致重新启动的问题。
2. 以 norflash 方式启动,启动后 n 选项([n] Download u-boot to Nand Flash),用 winxp 下的 dnw 工具下载程序。然后选择从 nandflash 启动,重新上电。
3.  退出 uboot 的选项菜单,进入 uboot 的命令行, printenv 查看 tftp 服务器和本开发板的 ip 地址,要在同一网段,用网线,将板子连到网络上,用 tftp 命令将要下载的程序下载到 sdram 中的某个空闲位置,比如说 0x32000000,然后用 nand device 0,选中 nand ,nand erase 擦除 nand, nand write 写到 nand 的 0 位置,重新启动,以 nandflash 方式启动。
4. 前边的步骤同3,将程序下载到 sdram 之后,如果不是uboot,可以直接用go 命令去执行,只是,要考虑到 uboot 设置了时钟,在程序中运行的时候需要考虑这一点。
5. 下载运用 linux 下的 dnw 配合 minicom ,完全放弃win下的工具,用 2 的方式,下载程序。
minicom 的一些使用方法:

1.1 想要更改设置好的 minicom
        -s 选项

    1.2 使用中进入设置选项
        命令帮助  --“Ctrl+A”后按“Z”
        清屏         --“Ctrl+A”后按“C”
        设置         --“Ctrl+A”后按“O”
        发送文件  --“Ctrl+A”后按“S”
        退出         --“Ctrl+A”后按“Q”
linux 下好用的 dnw 工具。使用方法有介绍。
说明:
也许你是用的是USB Hub ,因为可能你的笔记本的usb 口有点少,没问题,但是,需要注意的是,linux下的 dnw 有个问题是,在jz2440开发板的用usb下载的usb口不能用Hub扩展,只能直接连接到笔记本上,要不然会一直下载失败,但其实你安装和设置都正确了。


另外说明一点:
如果用 tftp 下载 u-boot 到内存中,不能用 go 命令运行,可能的原因是,原来的 u-boot 设置了开发板上的硬件,而你的 u-boot 对硬件的初始化与原来的有冲突。

三、在看内存分布的时候,用到的转换:

    1M     :0x 0010 0000    
    16M   :0x 0100 0000    
    256M :0x 1000 0000    

你可能感兴趣的:(下载,程序,jz2440)