嵌入式Linux之旅——环境搭建篇之烧写整个系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux之旅——环境搭建篇之烧写整个系统相关的知识,希望对你有一定的参考价值。

  上一小结我们已经烧写完u-boot,我烧写的u-boot是板子厂家定制的,本小节将利用这个u-boot烧写整个系统。当然,在系统移植篇的时候也会涉及到如何定制一个u-boot。

  烧写整个系统我们一个叫dnw的工具,dnw是一个USB工具,通过USB发送文件给具有USB下载功能的bootloader。也就说我用的厂家定制的u-boot已经具备了USB下载功能。我需要先安装一些库:

  sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

  然后,使用提供的dnw工具,执行如下命令即可使用:

  sudo cp dnw /usr/bin/ && chmod +rx /usr/bin/dnw

  首先,在终端上输入“kermit”命令,打开板子的电源,系统进入u-boot。在倒计时结束前,按下空格键,u-boot就会进入命令模式,或者说是调试模式,这也是u-boot两大功能之一。串口已经输出了一些硬件信息和厂家定制的菜单,菜单如下所示:

[n] Download u-boot to Nand Flash
[k] Download Linux kernel uImage
[j] Download root_jffs2 image
[y] Download root_yaffs image
[d] Download to SDRAM & Run
[z] Download zImage into RAM
[g] Boot linux from RAM
[f] Format the Nand Flash
[s] Set the boot parameters
[b] Boot the system
[r] Reboot u-boot
[q] Quit from menu
Enter your selection:

  先烧写一个kernel,就在上面输入“k”,然后在你要烧写的image文件下输入:sudo dnw uImage。默认是通过USB传到内存的0x30000000地址,当然你也可以在命令后面直接加上内存的地址。等待传递完成之后,先擦除kernel分区,还需要在u-boot命令模式下把内存里的kernel写入nandflash:

  nand erase kernel

  nand write.jffs2 30000000 kernel

  就是把内存里的kernel写入nandflash的kernel分区。

  下面我们该烧写文件系统了,同样进入菜单,输入“y”,烧写雅yaffs2格式的文件系统:sudo dnw fs_qtopia.yaffs2。然后在u-boot命令模式下先擦除root分区,再把内存里的文件系统写入nandflash:

  nand erase root

  nand write.yaffs 30000000 260000 2f76b40

  也就说,把文件系统以yaffs的格式从内存0x30000000地址写入nandflash的0x260000的位置,大小是0x2f76b40。

  整个系统就烧写完成了,其实还有其他的烧写方式,如果u-boot可以支持网络下载,我们还可以使用tftp和nfs下载,有兴趣可以自己了解,后面有可能会提到。

  下一小节,将会介绍交叉编译工具。

以上是关于嵌入式Linux之旅——环境搭建篇之烧写整个系统的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式Linux之旅——环境搭建篇之搭建基本开发环境

嵌入式Linux之旅——环境搭建篇之交叉编译工具的安装

嵌入式Linux开发环境搭建

Linux——Linux驱动之设备树编译环境搭建实践总结(设备树uboot内核编译及镜像烧写)

Linux——Linux驱动之设备树编译环境搭建实践总结(设备树uboot内核编译及镜像烧写)

Jlink使用技巧之烧写SPI Flash存储芯片