【嵌入式】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、在这两种启动模式下,各片选的存储空间分配是不同的,这两种启动模式的存储分配图如下
3、由于三星公司提供工具软件的缺陷,导致NorFlash烧写成功率很低,所以尽量避免烧写NorFlash,而应当去烧写NandFlash,因为如果把NandFlash烧写坏了,从NorFlash中启动BIOS,还可以马上恢复NandFlash内容,但一旦NorFlash烧写坏了,就不能从NandFlash启动来恢复NorFlash中内容了。这个时候只能用SJF来烧写,而三星提供的SJF不是很完善,不容易烧写成功!
过程
虽然是第一次设置这个东西,但是好奇的心理还是让我忍不住想自己动手把整个过程走一遍,于是我进入NorFlash把NandFlash里面的所有东西全部擦除了,然后全部重新烧写。
1.拨掉跳线帽,进入NOR,如下所示
- Power on reset
- Env.Os_Lcd_Flag=
- Env.Os_Auto_Flag=
- <*******************************************>
- <* *>
- <* S3C2410 Board BIOS V2006 *>
- <* *>
- <* Http://www.ucdragon.com *>
- <* *>
- <* 深圳市优龙科技有限公司 *>
- <* *>
- <* 版 权 所 有 *>
- <* *>
- <*******************************************>
- NOR Flash Boot, Read ID is : 0x234b00bf
- SST39VF1601 found
- Please select function :
- : USB download file
- : Uart download file
- : Write Nand flash with download file
- : Load Pragram from Nand flash and run
- : Erase Nand flash regions
- : Write NOR flash with download file
- : Set boot params
- : Set AutoBoot parameter,:linux :wince
- : Set Lcd Display,:DH3.' 2:DH4.3' :QC7.' 4:QC8.0'
这里选择4,然后再选择擦除0,1,2,3便可以将NAND里面的所有东西全部擦除掉了
2.选择0,用USB下载准备的S3C2410_BIOS.bin,再这之前需要安装usb手动驱动,出现
- USB download file, press Esc key to exit
- Now USB is connected.
则说明可以用usb下载文件了,文件下载完成后会提示是否运行
- Do you want to run? [y/n] : n
这里选择否,原因是usb下载文件只是存在内存中,还没有烧写到FLASH里面,现在需要把bios信息写到NAND FLASH里面去,才能直到引导系统的作用。
3.现在选择2,准备把刚下载的文件烧写到NAND FLASH里面去
- : Write Nand flash with download file
选择2后会出现几个选项
- Please select which region to write : Esc to abort
- : offset 0x0 , size 0x40000 [bootloader]
- : offset 0x40000 , size 0x1c0000 [zImage]
- : offset 0x200000 , size 0x1e00000 [cramfs]
- : offset 0x2000000 , size 0x2000000 [WinCE]
对应的分别是烧写bootloader、linux系统、文件系统和WinCE系统,这里我们先烧写bootloader,所以选择0
- Now write nand flash page 0x200 from ram address 0x30200000, filesize =
- Are you sure? [y/n]
- ..............................................................................
- Program nand flash partition success
烧写完成后出现类似这样的信息,现在我们就可以进入NAND的bios了
4.插上跳线帽,重启电源,进入NAND的bios,如下所示
- Power on reset
- Env.Os_Lcd_Flag=
- Env.Os_Auto_Flag=
- <*******************************************>
- <* *>
- <* S3C2410 Board BIOS V2006 *>
- <* *>
- <* Http://www.ucdragon.com *>
- <* *>
- <* 深圳市优龙科技有限公司 *>
- <* *>
- <* 版 权 所 有 *>
- <* *>
- <*******************************************>
- NAND Flash Boot
- Please select function :
- : USB download file
- : Uart download file
- : Write Nand flash with download file
- : Load Pragram from Nand flash and run
- : Erase Nand flash regions
- : Write NOR flash with download file
- : Set boot params
- : Set AutoBoot parameter,:linux :wince
- : Set Lcd Display,:DH3.' 2:DH4.3' :QC7.' 4:QC8.0' :VGA
- d3
可以看到上面的NAND Flash Boot字样,现在boot成功了,接下来就是烧写linux系统了
5.像刚才一样用usb选择下载linux系统(zImage)和filesystem(yl2410_demo.cramfs),在烧写时选择1和2就行了
- Please select which region to write : Esc to abort
- : offset 0x0 , size 0x40000 [bootloader]
- : offset 0x40000 , size 0x1c0000 [zImage]
- : offset 0x200000 , size 0x1e00000 [cramfs]
- : offset 0x2000000 , size 0x2000000 [WinCE]
- Now write nand flash page 0x1000 from ram address 0x30200000, filesize =
- Are you sure? [y/n]
- ..........................................................................................
- ..........................................................................................
- ..........................................................................................
- ..........................................................................................
- ..........................................................................................
- ..........................................................................................
- ...............Program nand flash partition success
可以看到烧写文件系统的时候需要多一点的时间,不过看到success时还是会激动一下子的
6.好了,现在东西都准备好了,可以开机啦,选择3吧
- : Load Pragram from Nand flash and run
7.进入系统了有木有啊
- Set boot params = root=1f02 init=/linuxrc console=ttyS0, devfs=mountdisplay=dh240
- Linux version 2.6.8.1-ptx1 (root@localhost.localdomain) (gcc version 3.3.)
- # Mon Oct :: HKT
- CPU: ARM920Tid(wb) [] revision (ARMv4T)
- CPU: D VIVT write-back cache
- CPU: I cache: bytes, associativity , byte lines, sets
- CPU: D cache: bytes, associativity , byte lines, sets
- Machine: SMDK2410
- ATAG_INITRD is deprecated; please update your bootloader.
- Memory policy: ECC disabled, Data cache writeback
- S3C2410: core 200.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
- Built zonelists
- Kernel command line: root=1f02init=/linuxrc console=ttyS0, devfs=mount
- display=dh240
- irq: clearing pending ext status
- irq: clearing pending status
- irq: clearing subpending status
- irq: clearing subpending status
- irq: clearing subpending status
- irq: clearing subpending status
- Trying to install chained handler for IRQ47
- PID hash table entries: (order : bytes)
- setup_timer tcon=00090d09, tcnt c350, tcfg 0000040f,
- Console: colour dummy device 80x30
- ……………
呵呵,下面还有很多,就省略了哈
总结:
回过头来看,过程也很简单啊,不过“会者不难,难者不会”,我也是第一天接触arm开发板,留下笔记,也许将来和我一样的人看见了,能帮助到他们。在这里谢谢f--ing(465692031)和优龙(1758893489)的帮助!
【嵌入式】bootloader,linux,filesystem的烧写的更多相关文章
- Linux下USB烧写uImage kernel
Linux下USB烧写uImage kernel 1.启动开发板,进入u-boot:(如果开发板中没有系统,可以通过用SD卡方式启动开发板进入) U-Boot 2011.06 (Mar 19 ...
- 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...
- tiny4412学习(一)之从零搭建linux系统(烧写uboot、内核进emmc+uboot启动内核)【转】
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74080109 版权声明:本文为博主原创文章,转载请注明http://blog.c ...
- 【图像处理】【SEED-VPM】5.uImage的烧写 & NFS烧写文件系统
基于 TFTP 烧写 uImage 当用户对 SEED-VPM6467 下的内核驱动源码进行调整或者添加新的设备驱动后,需要对内核进行重新编译配置,编译生成内核镜像后,可以通过 tftp 下载到 SE ...
- nand烧写分析/内核在启动过程中式如何将这个文件映射成/目录及各子目录的?
我用的是ramdisk.image.gz,烧写在flash的0x10140000处 我不太明白内核在启动过程中式如何将这个文件映射成/目录及各子目录的? 如果ramdisk.image.gz在flas ...
- BIN文件合并烧写
可以实现将Bootloader和Application合并烧写 使用UBIN.exe工具或者J-Flash工具 UBIN工具 选择Bootloader源文件 添加Bootloader源文件 选择App ...
- 【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
作者 : 万境绝尘 转载请著名出处 终于拿到板子了, 嵌入式开发正式开启. 板子型号 : 三星 S3C6410 基于ARM11, 指令集基于arm6指令集; 为毛不是 Cortext A9的板子; 烧 ...
- 嵌入式系统烧写uboot/bootloader/kernel的一般方法
嵌入式系统烧写uboot/bootloader/kernel的一般方法 本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误, ...
- 2017-9-13-Linux移植:bootloader烧写
首先看一下Linux启动过程: Linux启动过程 刚开始最重要的是Bootloader的启动,Bootloader因你改改存放到哪?怎么执行?作用是啥? bootloader的烧写: 所谓烧写也就是 ...
随机推荐
- ACM经验分享[转]
明确规则 规则:以最少的时间过题 (这意味着0ms与1000ms是一样的) 了解规则,善用规则 虽然这个题我不会但是AC是没有问题的 --ACRush 大力出奇迹 学会对拍数据,准备好对拍脚本:测试很 ...
- 树莓派进阶之路 (034) - 基于linux的ftp脚本
基于linux的ftp脚本: #!/bin/sh cd echo "彻底卸载原有的ftp" sudo apt-get remove --purge vsftpd #(--purge ...
- Redis学习之路(001)- Redis介绍以及安装(Linux)
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...
- Windbg使用方法
hgy413的专栏 http://blog.csdn.net/hgy413/article/category/1143065
- Android上实现MVP模式的途径
今天我想分享我在Android上实现MVP(Model-View-Presenter)模式的方法.如果你对MVP模式还不熟悉,或者不了解为什么要在Android应用中使用MVP模式,推荐你先阅读这篇维 ...
- 【Oracle】Oracle索引
在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索引是一个必选项,但对于现 ...
- 【Linux】统计命令wc
如果我想要知道 /etc/man.config 这个文件里面有多少字?多少行?多少字符的话, 可以怎么做呢?其实可以利用 wc 这个命令来达成喔!他可以帮我们计算输出的信息的整体数据! [root@w ...
- Config程序配置文件操作实践进阶之ConfigurationSectionGroup
今天又进一步对System.Configuration下的ConfigurationSectionGroup类及相关的类与方法进行了研究.发现要构建多层次嵌套的XML标签 则必须用到Configura ...
- JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动
JavaScript日历控件开发 概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...
- mvc 缓存页面 减轻服务器压力
方法: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...