嵌入式bootloader,linux,filesystem的烧写

平台:

深圳市优龙科技有限公司的FS2410(基于ARM9)

准备:

1、用串口(UART1,J8)线与PC机相连,这个是用来传输数据和显示信息的

2、连接USB数据下载线(usb device),注意需要自己装usb驱动,这个是用来下载文件的

3、设置好串口工具(超级终端或DNW工具)的参数

说明:

1、S3C2410支持两种启动模式:一种是从NAND FLASH启动;一种是从外部nGCS0片选的Nor Flash启动(jp1接上跳线帽,从NAND FLASH启动;jp1不接上跳线帽,从NOR FLASH启动)

2、在这两种启动模式下,各片选的存储空间分配是不同的,这两种启动模式的存储分配图如下




    		    嵌入式bootloader,linux,filesystem的烧写

3、由于三星公司提供工具软件的缺陷,导致NorFlash烧写成功率很低,所以尽量避免烧写NorFlash,而应当去烧写NandFlash,因为如果把NandFlash烧写坏了,从NorFlash中启动BIOS,还可以马上恢复NandFlash内容,但一旦NorFlash烧写坏了,就不能从NandFlash启动来恢复NorFlash中内容了。这个时候只能用SJF来烧写,而三星提供的SJF不是很完善,不容易烧写成功!

过程

虽然是第一次设置这个东西,但是好奇的心理还是让我忍不住想自己动手把整个过程走一遍,于是我进入NorFlash把NandFlash里面的所有东西全部擦除了,然后全部重新烧写。

1.拨掉跳线帽,进入NOR,如下所示

  1. Power on reset

  2. Env.Os_Lcd_Flag=0

  3. Env.Os_Auto_Flag=0

  4. <*******************************************>

  5. <* *>

  6. <* S3C2410 Board BIOS V2006 *>

  7. <* *>

  8. <* Http://www.ucdragon.com *>

  9. <* *>

  10. <* 深圳市优龙科技有限公司 *>

  11. <* *>

  12. <* 版 权 所 有 *>

  13. <* *>

  14. <*******************************************>

  15. NOR Flash Boot, Read ID is : 0x234b00bf

  16. SST39VF1601 found

  17. Please select function :

  18. 0 : USB download file

  19. 1 : Uart download file

  20. 2 : Write Nand flash with download file

  21. 3 : Load Pragram from Nand flash and run

  22. 4 : Erase Nand flash regions

  23. 5 : Write NOR flash with download file

  24. 6 : Set boot params

  25. 7 : Set AutoBoot parameter,1:linux 2:wince

  26. 8 : Set Lcd Display,1:DH3.5' 2:DH4.3' 3:QC7.0' 4:QC8.0'

这里选择4,然后再选择擦除0,1,2,3便可以将NAND里面的所有东西全部擦除掉了

2.选择0,用USB下载准备的S3C2410_BIOS.bin,再这之前需要安装usb手动驱动,出现

  1. USB download file, press Esc key to exit

  2. Now USB is connected.

则说明可以用usb下载文件了,文件下载完成后会提示是否运行

  1. Do you want to run? [y/n] : n

这里选择否,原因是usb下载文件只是存在内存中,还没有烧写到FLASH里面,现在需要把bios信息写到NAND FLASH里面去,才能直到引导系统的作用。

3.现在选择2,准备把刚下载的文件烧写到NAND FLASH里面去

  1. 2 : Write Nand flash with download file

选择2后会出现几个选项

  1. Please select which region to write : Esc to abort

  2. 0 : offset 0x0 , size 0x40000 [bootloader]

  3. 1 : offset 0x40000 , size 0x1c0000 [zImage]

  4. 2 : offset 0x200000 , size 0x1e00000 [cramfs]

  5. 3 : offset 0x2000000 , size 0x2000000 [WinCE]

对应的分别是烧写bootloader、linux系统、文件系统和WinCE系统,这里我们先烧写bootloader,所以选择0

  1. Now write nand flash page 0x200 from ram address 0x30200000, filesize = 1273724

  2. Are you sure? [y/n]

  3. ..............................................................................

  4. Program nand flash partition success

烧写完成后出现类似这样的信息,现在我们就可以进入NAND的bios了

4.插上跳线帽,重启电源,进入NAND的bios,如下所示

  1. Power on reset

  2. Env.Os_Lcd_Flag=0

  3. Env.Os_Auto_Flag=0

  4. <*******************************************>

  5. <* *>

  6. <* S3C2410 Board BIOS V2006 *>

  7. <* *>

  8. <* Http://www.ucdragon.com *>

  9. <* *>

  10. <* 深圳市优龙科技有限公司 *>

  11. <* *>

  12. <* 版 权 所 有 *>

  13. <* *>

  14. <*******************************************>

  15. NAND Flash Boot

  16. Please select function :

  17. 0 : USB download file

  18. 1 : Uart download file

  19. 2 : Write Nand flash with download file

  20. 3 : Load Pragram from Nand flash and run

  21. 4 : Erase Nand flash regions

  22. 5 : Write NOR flash with download file

  23. 6 : Set boot params

  24. 7 : Set AutoBoot parameter,1:linux 2:wince

  25. 8 : Set Lcd Display,1:DH3.5' 2:DH4.3' 3:QC7.0' 4:QC8.0' 5:VGA

  26. d3

可以看到上面的NAND Flash Boot字样,嘿嘿,现在boot成功了,接下来就是烧写linux系统了

5.像刚才一样用usb选择下载linux系统(zImage)和filesystem(yl2410_demo.cramfs),在烧写时选择1和2就行了

  1. Please select which region to write : Esc to abort

  2. 0 : offset 0x0 , size 0x40000 [bootloader]

  3. 1 : offset 0x40000 , size 0x1c0000 [zImage]

  4. 2 : offset 0x200000 , size 0x1e00000 [cramfs]

  5. 3 : offset 0x2000000 , size 0x2000000 [WinCE]

  6. Now write nand flash page 0x1000 from ram address 0x30200000, filesize = 28254208

  7. Are you sure? [y/n]

  8. ..........................................................................................

  9. ..........................................................................................

  10. ..........................................................................................

  11. ..........................................................................................

  12. ..........................................................................................

  13. ..........................................................................................

  14. ..........................................................................................

  15. ..........................................................................................

  16. ..........................................................................................

  17. ..........................................................................................

  18. ..........................................................................................

  19. ..........................................................................................

  20. ..........................................................................................

  21. ..........................................................................................

  22. ..........................................................................................

  23. ..........................................................................................

  24. ..........................................................................................

  25. ..........................................................................................

  26. ..........................................................................................

  27. ...............Program nand flash partition success

可以看到烧写文件系统的时候需要多一点的时间,不过看到success时还是会激动一下子的

6.好了,现在东西都准备好了,可以开机啦,嘿嘿,选择3吧

  1. 3 : Load Pragram from Nand flash and run

7.进入系统了有木有啊,呵呵

  1. Set boot params = root=1f02 init=/linuxrc console=ttyS0,115200 devfs=mountdisplay=dh240

  2. Linux version 2.6.8.1-ptx1 ([email protected]) (gcc version 3.3.2)

  3. #256 Mon Oct 29 11:46:28 HKT 2012

  4. CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)

  5. CPU: D VIVT write-back cache

  6. CPU: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

  7. CPU: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

  8. Machine: SMDK2410

  9. ATAG_INITRD is deprecated; please update your bootloader.

  10. Memory policy: ECC disabled, Data cache writeback

  11. S3C2410: core 200.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz

  12. Built 1 zonelists

  13. Kernel command line: root=1f02init=/linuxrc console=ttyS0,115200 devfs=mount

  14. display=dh240

  15. irq: clearing pending ext status 00041000

  16. irq: clearing pending status 00002000

  17. irq: clearing subpending status 00000093

  18. irq: clearing subpending status 00000092

  19. irq: clearing subpending status 00000092

  20. irq: clearing subpending status 00000092

  21. Trying to install chained handler for IRQ47

  22. PID hash table entries: 512 (order 9: 4096 bytes)

  23. setup_timer tcon=00090d09, tcnt c350, tcfg 0000040f,00001032

  24. Console: colour dummy device 80x30

  25. ………………

呵呵,下面还有很多,就省略了哈

总结:

回过头来看,过程也很简单啊,不过“会者不难,难者不会”,我也是第一天接触arm开发板,留下笔记,也许将来和我一样的人看见了,能幫助到他们。在这里谢谢f--ing(465692031)和优龙(1758893489)的幫助!

本文出自 “创十三” 博客,请务必保留此出处http://liucw.blog.51cto.com/6751239/1169521

更多相关文章
  • 


    		    嵌入式  友善之臂ARM2440烧写程序注释
    Linux OS 是安装在NAND flash里面的,在烧制LinuxOS时候是用nor flash启动的 从nand flash启动后,首先要有bootloader来引导系统 我们这里安装的bootloader是supervivi(并不开源),系统还可以实用vboot 第一步:下载superviv ...
  • 


    		    ubifs烧写到nand flash中的几种方法
    折腾了好几天,突然柳暗花明,继而思之,发现原来是出门就走错了路,悲剧之余,写下此笔记,以省自己,警他人. 正题,关于UBIFS的介绍在此就不多说,详见: http://www.linux-mtd.infradead.org/faq/ubifs.html http://www.linux-mtd.in ...
  • 烧写u_boot系统和linux系统
    今天下午准备烧写一下u_boot还有linux系统,因为是笔记本电脑,吐槽一下,笔记本电脑的usb转串口不是怎么稳定,dnw下对应的驱动也不怎么好用,导致在笔记本电脑上烧写系统的成功率比较低,本来三点钟烧写好了,我想在练一下手,又把烧写好的系统擦除了,结果虚拟机VMware出现了问题,导致又重新在网 ...
  • 1_jz2440在linux下烧写裸机程序
    常用的烧写方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用openJTAG烧写,接线,使用oflash烧写(oflash烧写完后,会复位开发板). 3.使用Jli ...
  • 昨天晚上弄了好几个小时,想在linux下烧写flash,通过网络搜索发现有一个叫Jflash的软件包可以实现这功能; 就是没有成功,一气之下看电影,看到4点多,然后快11点时才起来,脑子突然一想,会不会是我的虚拟机没有开启并口啊,象先前我没有开启串口导致看不到启动信息; 呵呵,马上开机,先把虚拟机打 ...
  • 在xp下有sjf2410工具来烧写uboot.bin文件,但是在编译生成uboot.bin的环境却是在linux下,未免来回切换太麻烦,发现在linux下也有一个工具sjf2410-linux它可以实现这个功能.现在地址在 [url]http://wiki.openmoko.org/wiki/Sjf ...
  • 


    		    关于UPCUP6410开发板的烧写心得
    UP-CUP6410开发板烧写心得 我一年之前跟着老师学习烧写过arm11的bootloader.内核.文件系统,那时候只知道该怎样一步步的烧写,并不知道没一步究竟为何要这么做,因为只是想烧着玩,刚好可以把实验室的那些坏的板子(同学们做实验时,不小心把bootloader破坏了,上电不能启动)拯救好 ...
  • OpenRisc32ORPSoC烧写外部spi flash
    引言 经过前面的分析和介绍,我们对ORPSoC的启动过程(http://blog.csdn.net/rill_zhen/article/details/8855743)和 ORpSoC的debug子系统(http://blog.csdn.net/rill_zhen/article/details/9 ...
一周排行
  • 完蛋!--我镇定的继续踩着刹车,但是心里明白:我要追尾了. 果然,轻微的震荡之后,从前面的银色硬顶敞篷跑里走出个小伙子,我随即也从朋友的车上下来.跑车的保险杠被我撞坏,要求报警.打了122,警察叔叔很快就来了,先简单
  • 初次接触Quartus II 13.0,遇到了很多的问题,把问题总结如下: 1.Quartus II 13.0的安装及破解 下载地址:http://t.cn/Rh2TFcz,密码是:g3gc (参考贴吧:http:/ ...
  • 昨天客户反映说在下午某时间段有几个事务失敗了,让我查下当时数据库系统的负载是否正常,看了下CPU的历史负载,很正常,于是看了下日志发现有几个timeout错误和一个ORA-02050错误. Tue Feb 15 20
  •     2D 转换(须在style里面定义):位移,缩放,旋转,斜切(扭曲)          转换关键字:transform; 属性有: 1,  位移:translate(0px,0px) 属性值:(0px,0px
  • 总时间限制: 2ms 内存限制: 65536kB描述Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided
  • priv3安全团队的一款PHPSHELL,很有个性,可以下载来看看哦! 用户:root 密码:hacked 修改: CODE: $user[] = "root"; $pass[] = md5(&q ...
  • 用户大会是一种常用的需求采集方法,可以短时间内从多人处收集大量信息,本篇回忆一下2007年夏天组织过的一次阿里软件网店版用户交流会.这种会耗费资源较多,一般机会不多,所以要充分利用.会议虽小但需要注意的东西都一样,按
  •   题目传送门 1 /* 2 题意:n个时刻点,m次时光穿梭,告诉的起点和终点,q次询问,每次询问t时刻t之前有多少时刻点是可以通过两种不同的路径到达 3 思维:对于当前p时间,从现在到未来穿越到过去的是有效的值,排
  • 


    		    BGP advertisemap 應用實例
    主要实验两条命令: 1.advertise-map non-exist- map 2.ad
  • 


    		    Intel&#174;虛擬化技術爲ERP應用提供高能耗比的部署架構
    什么是虚拟化技术 虚拟化是一种将操作系统及其应用从平台硬件资源中互相分离出来的软件解决方案 ...