dglwx 发表于 2013-3-12 09:10:33

jlink 烧录ok6410 u-boot


1. 硬件说明说明   CPU             s3c6410   RAM            K4X51163PG(32M x16 *2 = 128M,起始地址0x50000000)   Nandflash:      K9F2G08   (256MB)   网卡:         DM9000      (连接XM0CSN1,地址0x18000000)

2. U-boot烧录   由于手头有J-link V8,所以关于OK6410开发板u-boot的烧录,我将不按照手册上提供的SD卡方式烧录,而是参考FL2440开发板的烧录方法使用J-link来烧录。该方法的基本思路是:   S3C6410 CPU内部与S3C2440类似也有一个8KB的SRAM(Stepping Stone),系统在上电时,如果配置从Nandflash启动的话,CPU会将Nandflash的前8K代码拷贝到SRAM中运行。在U-boot中,这前面的代码主要是用来初始化CPU和时钟,初始化Nandflash控制器和SDRAM控制器,然后将u-boot从Nandflash中搬到SDRAM中并初始化堆栈等C语言环境,然后在SDRAM中执行剩下的U-boot C代码。   而我们使用J-link可以直接操作CPU内部的8KB SRAM和开发板扩展的128MB DDR内存中,但由于SDRAM需要初始化SDRAM控制器后才能使用,所以我们不能将u-boot直接加载到SDRAM中运行。另外,u-boot的大小有100多KB,这样虽说SRAM不需要初始化就可以直接使用,但由于大小限制,我们也不能把u-boot下到SRAM中运行。所以我们只能找一个折中的办法:1) 首先我用汇编写了一个小于8KB的程序,该程序主要用来初始化CPU时钟和外部的DDR SDRAM,我把这个程序叫做bootstrap-s3c6410.bin;2) 使用J-link将bootstap-s3c6410.bin下载到CPU内部的SRAM(0x0C00 0000)中运行,一旦这个程序运行后,外部的SDRAM将被初始化就可以用了;3) 使用J-link将u-boot-s3c6410.bin下载到外部的SDRAM(0x57E0 0000)中去运行,然后使用u-boot提供的tftp和nand命令就可以下载烧录U-boot到Nandflash上去了;
下面是具体的烧录过程:Ø 首先把开发板的拨码开关设置成Nandflash启动,具体设置如下:S3C6410处理器支持NAND FLASH、NOR FLASH和 SD卡等多种启动方式,通过系统上电时配置引脚的不同状态确定启动和启动方式。OK6410开发板通过配置拨码开关SW2选择启动方式:
SW2引脚号Pin1Pin2Pin3Pin4Pin5Pin6Pin7Pin8
引脚定义GPN13GPN14GPN15OM1OM2OM3OM4SELNAND
Nandflash启动XXX11001
Norflash启动XXX1010X
SD卡启动0001111X
   注:   OM0信号为S3C6410芯片时钟源选择信号,当OM0信号为“0”时选择XTlpll:当OM0信号为“1”时选择EXTCLK,OK6410开发板使用XTlpll所以OM0直接下拉接地。   SELNAND信号为选择系统FLASH存储器类型,当选择NAND FLASH时必须为高电平,选择ONENAND存储器时为低电平,OK6410开发板使用NAND存储器,直接上接为高。   EINT13-EINT15为IROM启动方式设备选择引脚,当使用IROM启动方式时,S3C6410处理器首先运行片内ROM固化程序,读取EINT15、EINT14、EINT13三个端口引脚状态,再根本配置的不同状态,从而选择不同的设备启动。OM1-OM4信号为S3C6410处理器启动方式配置引脚。
Ø 将开发板上电,然后运行J-link Command,开始下载并运行bootstrap-s3c6410.binSEGGER J-Link Commander V4.10i ('?' for help)Compiled Jan 25 2010 14:44:16DLL version V4.10i, compiled Jan 25 2010 14:43:57Firmware: J-Link ARM V8 compiled Sep6 2011 16:33:14Hardware: V8.00S/N : 20100214Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFullVTarget = 3.261VInfo: TotalIRLen = 9, IRPrint = 0x0011Found 2 JTAG devices, Total IRLen = 5:#0 Id: 0x2B900F0F, IRLen: 04, IRPrint: 0x0, ARM ETB#1 Id: 0x07B76F0F, IRLen: 05, IRPrint: 0x1, ARM1176 CoreARM11 identified.RTCK reaction time is approx. 126nsUsing adaptive clocking instead of fixed JTAG speed.J-Link>hJ-Link: ARM11 CP15 Settings changed: 0x00451078 from 0x00001002, MMU Off, ICache On, DCache OffInfo: CP15.0.0: 0x410FB766: ARM, Architecture Unknown architectureInfo: CP15.0.1: 0x1D152152: ICache: 16kB (4*128*32), DCache: 16kB (4*128*32)DIDR: 6 Breakpoints available and 2 Watchpoints available.J-Link>setpc 0J-Link>loadbin C:\Users\USER\Downloads\bootstrap-s3c6410.bin 0x0C000000Loading binary file... Writing bin data into target memory @ 0x0C000000.J-Link>setpc 0x0C000000J-Link>gJ-Link>
Ø 使用J-link下载u-boot到SDRAM中并运行J-Link>hJ-Link: ARM11 CP15 Settings changed: 0x00451078 from 0x00450078, MMU Off, ICache On, DCache OffInfo: CP15.0.0: 0x410FB766: ARM, Architecture Unknown architectureInfo: CP15.0.1: 0x1D152152: ICache: 16kB (4*128*32), DCache: 16kB (4*128*32)DIDR: 6 Breakpoints available and 2 Watchpoints available.J-Link>loadbin C:\Users\USER\Downloads\u-boot-s3c6410.bin 0x57e00000Loading binary file... Writing bin data into target memory @ 0x57E00000.J-Link>setpc 0x57e00000J-Link>g
Ø 串口上可以看到u-boot开始运行,我们使用tftp和nand命令烧录:U-Boot 2010.09 (Mar 11 2013 - 23:24:01) by guowenxue<QQ:281143292>

CPU:   S3C6410@533MHz         Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)Board:   OK6410DRAM:128 MiBNAND:256 MiB*** Warning - bad CRC, using default environment
In:    serialOut:   serialErr:   serialNet:   dm9000Hit any key to stop autoboot:0[ s3c6410@guowenxue ]# tftp 50000000 u-boot-s3c6410.bindm9000 i/o: 0x18000300, id: 0x90000a46DM9000: running in 16 bit modeMAC: 08:00:60:26:0a:6boperating at 100M full duplex modeUsing dm9000 deviceTFTP from server 192.168.1.2; our IP address is 192.168.1.246Filename 'u-boot-s3c6410.bin'.Load address: 0x50000000Loading: ###########doneBytes transferred = 149940 (249b4 hex)[ s3c6410@guowenxue ]# nand write 50000000 0 40000
NAND write: device 0 offset 0x0, size 0x40000262144 bytes written: OK[ s3c6410@guowenxue ]# resetresetting ...

U-Boot 2010.09 (Mar 11 2013 - 23:24:01) by guowenxue<QQ:281143292>

CPU:   S3C6410@533MHz         Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)Board:   OK6410DRAM:128 MiBNAND:256 MiB*** Warning - bad CRC, using default environment
In:    serialOut:   serialErr:   serialNet:   dm9000Hit any key to stop autoboot:0[ s3c6410@guowenxue ]#





飞凌-peacelove 发表于 2013-3-12 16:34:08

使用体验怎么样?

dglwx 发表于 2013-3-13 11:49:44

飞凌-peacelove 发表于 2013-3-12 16:34 static/image/common/back.gif
使用体验怎么样?

没用你们的源码,自己移植,教学用的!

天使的呼噜 发表于 2013-4-19 23:18:03

飞凌-路飞 发表于 2013-5-21 08:47:03

楼主,您的开发板确定没问题吗?您可以试试看看你的开发板能不能正常启动,我感觉应该是您的jlink挂了!!
页: [1]
查看完整版本: jlink 烧录ok6410 u-boot