您的位置:首页 > 其它

mini2440 uboot-2011.12 学习笔记 之01 采用JLink+ADS1.2调试uboot的方法

2012-04-04 22:32 489 查看
        刚开始想通过Nor Flash中的supervivi+DNW的“Download & Run 功能”将uboot.bin下到SDRAM进行调试,但是由于笔记本已经被装成ubuntu + Virtualbox(Windows XP),将supervivi阶段的USB下载设备分配进Virtualbox(Windows XP)后提示“不能分配 USB设备 System
MCU SEC S3C2410X Test B/D [0100]
 到虚拟电脑 Windows XP Workstation.Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR).”,而U盘等其他USB设备可以正常分配进虚拟机。由于能力有限google半天也没有解决,据网上牛人说法是由于Virtualbox对USB设备支持不是很好,分配网银U盾之类的USB设备也存在该问题,不懂VMware有没该问题。因此只能另某其他调试方法,当初买开发板时也顺带买了一根山寨版的OpenJTAG,利用之。移植uboot过程中,在串口初始化完成并能正常打印log前可以利用JLink配合“代码点灯法”进行调试,也可以利用uboot写NAND
FLASH的功能将调好的固件写入NAND FLASH。

1.使用JLink+mini2440调试uboot

    1.1.安装JLink驱动,我装的是JLinkARM_V402

    1.2.连接硬件

    1.3.运行 开始->所有程序->SEGGER->J-Link Commander

           


    1.4.设置TCK为12kHz,以提高下载速度

        J-Link>speed 12000

    1.5.下载并运行用来初始化mini2440SDRAM的init.bin(这是买OpenJTAG时光盘附带的用来初始化S3C2410、S3C2440的SDRAM的,没有这个init.bin的话可以用下面的JLink+AXD的方法进行调试uboot),这里将init.bin放于C盘,并采用NAND FLASH启动,若是采用NOR FLASH启动,则下载到0x40000000运行

        J-Link>loadbin C:\init.bin 0

        J-Link>setpc 0

        J-Link>g

    1.6.这时停止init.bin运行后,就可以将uboot.bin下载到SDRAM运行调试了(注:直接运行于SDRAM进行调试的uboot需要在相应的板级配置文件中定义CONFIG_SKIP_LOWLEVEL_INIT,以跳过底层的一些初始化代码。这里我将uboot的加载运行地址设置为0x30000000)

        J-Link>h

        J-Link>loadbin F:\uboot\uboot-git-denx\u-boot.bin 0x30000000

        J-Link>setpc 0x30000000

        J-Link>g

2.使用JLink+ADS1.2+mini2440调试uboot

    2.1.安装ADS1.2和JLink驱动驱动

    2.3.打开ADS1.2,添加Jlink。

        选择Options->Configure Target

        

ei

        点击“Add”

        


        选择JLINK安装目录,选中JLinkRDI.dll

        


    2.4.配置Jlink

        选中上一步添加的JLinkRDI.dll,选择右边的Configure,对JLink进行配置

        


        跳转到JTAG选项,设置频率为12000kHz

        


        跳转到Flash选项,如下图取消勾选。

        


        跳转Breakpoints,如下图配置

        


        跳转到CPU选项,如下图设置

        


        至此配置完成,选择“确定”,跳回AXD界面,此时如果已经通过JTAG将PC与目标板进行连接,显示如下连接信息。

        


    2.5.设置MINI2440 SDRAM存储器寄存器。

        选择MINI2440,nand启动方式,使用需要先对SDRAM控制器进行设置,在AXD下设置方法是,选择systems views->command lines interface,输入如下命令对寄存器进行设置

            setmem  0x53000000 0x00000000  32 

            setmem  0x4A000008 0xFFFFFFFF  32 

            setmem  0x4A00001C 0x000007FF  32 

            setmem  0x53000000 0x00000000  32

            setmem  0x56000050 0x000055AA  32 

            setmem  0x4C000014 0x00000007  32 

            setmem  0x4C000000 0x00FFFFFF  32 

            setmem  0x4C000004 0x00061012  32 

            setmem  0x4C000008 0x00040042  32 

            setmem  0x48000000 0x22111120  32 

            setmem  0x48000004 0x00002F50  32 

            setmem  0x48000008 0x00000700  32 

            setmem  0x4800000C 0x00000700  32 

            setmem  0x48000010 0x00000700  32 

            setmem  0x48000014 0x00000700  32 

            setmem  0x48000018 0x0007FFFC  32 

            setmem  0x4800001C 0x00018005  32 

            setmem  0x48000020 0x00018005  32 

            setmem  0x48000024 0x008E0459  32 

            setmem  0x48000028 0x00000032  32 

            setmem  0x4800002C 0x00000030  32 

            setmem  0x48000030 0x00000030  32

    为避免每次都输入上面一大串命令,可以将要上面的设置的寄存器命令写入一个文件(config_mini2440.txt),在命令行用ob config_mini2440.txt即可批量执行设置,或者在AXD的options‐>Configure Interface中做如下设置,这样启动AXD的时候就可以自动运行上面的脚本完成寄存器初始化了。

        


    2.6.加载uboot.bin,并运行

        ConfigureInterface中输入

       
Debug>loadbinary F:\uboot\uboot-git-denx\u-boot.bin 0x30000000

        Debug>setpc 0x30000000

        Debug>run
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐