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

        刚开始想通过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


2012年10月15日星期一亲测可以下载 公开视频光盘目录结构 国嵌视频1.iso -学习方法与课程体系介绍(学前必看) -学习方法介绍.avi -国嵌嵌入式课程体系.pdf -嵌入式Linux学习方法.pdf -国嵌课程1-嵌入式入门体验班(上) -第1天(嵌入式系统概述) -国嵌体验入门班-1-1(嵌入式系统概述).avi -国嵌体验入门班-1-2(ARM概述).avi -国嵌体验入门班-1-3(嵌入式Linux概述).avi -国嵌体验入门班-1-4(2440开发板介绍).avi -国嵌体验入门班-1-5(软硬件环境搭建).avi -第2天(开发板快乐体验) -国嵌体验入门班-2-1(开发板系统安装).avi -国嵌体验入门班-2-1(开发板系统安装-Jlink方式).avi -国嵌体验入门班-2-1(开发板系统安装-并口方式).avi -国嵌体验入门班-2-2(裸机程序体验).avi -国嵌体验入门班-2-3(QT系统体验).avi -国嵌体验入门班-2-4(Android系统体验).avi 国嵌视频2.iso -国嵌课程1-嵌入式入门体验班(下) -第3天(Linux系统体验) -国嵌体验入门班-3-1(Linux定制安装).avi -国嵌体验入门班-3-2(Linux命令).avi -国嵌体验入门班-3-3(VI使用).avi -国嵌体验入门班-3-4(Linux系统管理).avi -国嵌体验入门班-3-5(Shell编程).avi -国嵌体验入门班-3-6(Qcd功能演示).avi -国嵌体验入门班-3-7(必修实验).avi -国嵌课程2-嵌入式Linux应用开发班 -第1天(编程基础) -国嵌应用班-1-1(GCC程序编译).avi -国嵌应用班-1-2(GDB程序调试).avi -国嵌应用班-1-3(makefile工程管理).avi -国嵌应用班-1-4(必修实验).avi -第2天(文件时间编程) -国嵌应用班-2-1(系统调用方式访问文件).avi -国嵌应用班-2-2(库函数访问文件).avi -国嵌应用班-2-3(时间编程).avi -国嵌应用班-2-4(必修实验).avi -第3天(多进程程序设计) -国嵌应用班-3-1(进程控制原理).avi -国嵌应用班-3-2(进程控制程序设计).avi -国嵌应用班-3-3(必修实验).avi -第4天(进程间通讯) -国嵌应用班-4-1(进程间通讯概述).avi -国嵌应用班-4-2(管道通讯).avi -国嵌应用班-4-3(信号通讯).avi -国嵌应用班-4-4(共享内存通讯).avi -国嵌应用班-4-5(必修实验).avi -第5天(进程间通讯) -国嵌应用班-5-1(消息队列).avi -国嵌应用班-5-2(信号量).avi -国嵌应用班-5-3(必修实验).avi -第6天(进程间通讯) -国嵌应用班-6-1(线程基础).avi -国嵌应用班-6-2(多线程程序设计).avi -国嵌应用班-6-3(必修实验).avi -第7天(网络编程) -国嵌应用班-7-1(Linux网络概述).avi -国嵌应用班-7-2(Linux网络编程基础).avi -国嵌应用班-7-3(TCP程序设计).avi -国嵌应用班-7-4(UDP网络程序设计).avi -国嵌应用班-7-5(并发服务器).avi -国嵌应用班-7-6(必修实验).avi 国嵌视频3.iso -国嵌课程3-ARM系统进阶班 -第1天(ARM系统开发基础) -ARM系统精讲班-1-1(ADS集成开发环境).avi -ARM系统精讲班-1-2(ARM工作模式).avi -ARM系统精讲班-1-3(ARM寄存器).avi -ARM系统精讲班-1-4(ARM寻址方式).avi -ARM系统精讲班-1-5(ARM汇编指令详解).avi -第2天(ARM系统开发基础) -ARM系统精讲班-2-1(ARM汇编指令详解).avi -ARM系统精讲班-2-2(ARM伪指令).avi -ARM系统精讲班-2-3((混合编程).avi -ARM系统精讲班-1-8(必修实验).avi -第3天(LED驱动程序设计) -ARM系统精讲班-2-1(GPIO).avi -ARM系统精讲班-2-2(LED控制程序设计).avi -ARM系统精讲班-2-3((LED闪烁).avi -第4天(LED与按键驱动程序设计) -ARM系统精讲班-4-1(ARM中断控制系统).avi -ARM系统精讲班-4-2(按键控制程序设计).avi -ARM系统精讲班-2-6(必修实验).avi -第5天(定时器与时钟驱动程序设计) -ARM系统精讲班-5-1(ARM时钟体系).avi -ARM系统精讲班-5-2(定时器驱动程序设计).avi -国嵌课程4(嵌入式LINUX内核驱动进阶班-上) -第1天(内核开发基础) -国嵌内核驱动进阶班-1-1(Linux内核简介).avi -国嵌内核驱动进阶班-1-2(Linux内核源代码).avi -国嵌内核驱动进阶班-1-3(Linux内核配置与编译).avi -国嵌内核驱动进阶班-1-4(Linux内核模块开发).avi -国嵌内核驱动进阶班-1-5(必修实验).avi -第2天(U-Boot移植) -国嵌内核驱动进阶班-2-1(嵌入式linux系统架构).avi -国嵌内核驱动进阶班-2-2(交叉工具链).avi -国嵌内核驱动进阶班-2-3(Bootloader介绍).avi -国嵌内核驱动进阶班-2-4(U-Boot介绍).avi -国嵌内核驱动进阶班-2-5(U-Boot命令).avi -国嵌内核驱动进阶班-2-6(U-Boot启动流程).avi -国嵌内核驱动进阶班-2-7(Uboot移植).avi -国嵌内核驱动进阶班-2-8(必修实验).avi 国嵌视频4.iso -国嵌课程4(嵌入式LINUX内核驱动进阶班-下) -第3天(内核开发基础) -国嵌内核驱动进阶班-3-1(嵌入式linux内核制作).avi -国嵌内核驱动进阶班-3-2(根文件系统制作).avi -国嵌内核驱动进阶班-3-3(内核启动流程).avi -国嵌内核驱动进阶班-3-4(嵌入式文件系统).avi -国嵌内核驱动进阶班-3-5(必修实验).avi -第4天(内存管理子系统) -国嵌内核驱动进阶班-4-1(Linux内存管理).avi -国嵌内核驱动进阶班-4-2(进程地址空间).avi -国嵌内核驱动进阶班-4-3(内核地址空间).avi -国嵌内核驱动进阶班-4-4(Linux内核链表).avi -国嵌内核驱动进阶班-4-5(Linux内核定时器).avi -国嵌内核驱动进阶班-2-7(Uboot移植).avi -国嵌内核驱动进阶班-2-8(必修实验).avi -第5天(进程管理子系统) -国嵌内核驱动进阶班-5-1(LINUX进程控制).avi -国嵌内核驱动进阶班-5-2(LINUX进程调度).avi -国嵌内核驱动进阶班-5-3(Linux系统调用).avi -国嵌内核驱动进阶班-5-4(Proc文件系统).avi -国嵌内核驱动进阶班-5-5(内核异常分析).avi -国嵌内核驱动进阶班-5-6(必修实验).avi -第6天(简单字符设备驱动程序设计) -国嵌内核驱动进阶班-6-1(LINUX驱动程序介绍).avi -国嵌内核驱动进阶班-6-2(字符设备驱动程序设计).avi -国嵌内核驱动进阶班-6-3(字符设备驱动程序实例分析).avi -国嵌内核驱动进阶班-6-4(竞争与互斥).avi -国嵌内核驱动进阶班-6-5(必修实验).avi -第7天(高级字符设备驱动程序设计) -国嵌内核驱动进阶班-7-1(Ioctl设备控制).avi -国嵌内核驱动进阶班-7-2(内核等待队列).avi -国嵌内核驱动进阶班-7-3(阻塞型字符设备驱动).avi -国嵌内核驱动进阶班-7-4(Poll设备方法).avi -国嵌内核驱动进阶班-7-5(自动创建设备文件).avi -国嵌内核驱动进阶班-7-6(必修实验).avi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值