如何刻录uboot以登录NAND闪存

时间:2014-02-21 11:40:06

标签: embedded-linux u-boot

我对Uboot有疑问。我期待着建立一个基于ARM的主板。 现在我想将Uboot刻录到连接到我的控制器的NAND闪存。我该如何执行此操作?

http://www.stlinux.com/u-boot/target-install 我从这个链接得到的是 - STx7111 Mboard - 有一些能够与GDB通信的串口。 从GDB我们用来刻录以下文件u-boot。此文件是由gdb在RAM或NAND闪存中刻录的吗?

然后执行移动到这个u-boot程序“u-boot”。现在这个程序“u-boot”会将实际的u-boot.bin刻录到NAND闪存上。

每个控制器都有一些能够与GDB通信的串口吗? 每个控制器都遵循这种方法将uboot bootloader刻录到其NAND闪存中吗?

请建议。

2 个答案:

答案 0 :(得分:4)

  

我从这个链接获得的是 - STx7111 Mboard - 有一些能够与GDB通信的串口。从GDB我们用来刻录以下文件u-boot。此文件是由gdb在RAM或NAND闪存中刻录的吗?

不,你没有准确地阅读那篇文章 GDB仅用作JTAG的接口 第一步是将可执行文件(U-Boot的副本)加载到RAM中。

  

每个控制器都有一些能够与GDB通信的串口吗?   每个控制器都遵循这种方法将uboot bootloader刻录到其NAND闪存中吗?

你应该避免制作(或试图制作)全面的概括(在此和你的其他帖子中) 微控制器,微处理器和SoC(“控制器”是其他东西)的特性和功能非常广泛,可以进行很少的概括。很少有“一种方法”来执行这些程序。

为了将U-Boot(或任何文件图像)的副本写入NAND闪存,有两个步骤:

  • 将图像文件从主机PC(或某些存储设备)传输到本地存储器;

  • 擦除NAND闪存块,然后根据需要将图像文件写入带有ECC的NAND闪存并识别坏块。

这些不是简单的步骤,因此需要一个有用的实用程序。至少有三种方法:

  • 可以在上电时将微控制器(通过输入引脚)配置为“接收和写入图像文件”模式。 ROM中的硬编码程序将加载图像并将其写入集成闪存。

  • SoC ROM具有一个引导加载程序,它具有通过RS232或USB与主机PC通信的功能,并且可以作为专有实用程序的客户端执行。在主机PC上,您将运行此实用程序的服务器端。该方案允许传输文件和阅读&写下目标的记忆。 Atmel的SAM-BA实用程序属于这一类。

  • 使用可配置和可扩展的开源实用程序(如U-Boot)来支持外部NAND闪存和主板上的任何其他内存类型,并具有文件传输功能。 U-Boot控制台通常是UART / USART串口,但可以配置为使用USB转RS232适配器。

如果使用像U-Boot这样的程序在NAND中安装程序,会出现鸡与蛋的情况:如何首先加载这个程序?两种常见的方法是:

一个。使用任何所需的引导加载程序在SD卡上安装实用程序(即U-Boot),然后从SD卡引导SoC。这假设SoC具有此启动功能,但此方案需要最少的操作员技能。

湾使用JTAG加载实用程序(即U-Boot),例如Segger J-Link,它允许您将映像文件传输到RAM(假设RAM已在必要时正确初始化),然后开始执行。 J-Link可以使用自己的JLINK程序或GDB进行连接。

一旦U-Boot驻留并执行,您就可以使用其所有功能。 U-Boot无法将自身写入NAND闪存,因此您必须加载另一个U-Boot副本才能将其写入NAND(或任何其他类型的)闪存。

答案 1 :(得分:0)

如果使用GDB加载某些内容,则必须将其加载到RAM中。 使用gdb你将运行该二进制文件(u-boot),二进制文件将为你提供u-boot提示符,你用它来刻录另一个图像(它可以是u-boot.img(配置为从FLASH运行),linux内核映像或任何其他映像)进入闪存(它可以是NOR或NAND)..