uboot移植更换norflash需要修改哪些程序

uboot移植更换norflash需要修改哪些程序,第1张

1、nor flash工作原理:其核心就是读、写、擦除 *** 作,以及对应的命令 *** 作时序,见数据手册。(但是EN29LV160AB没有块 *** 作时序歼局型和命令,也没有提到有多少块)

2、SST39VF1601移植参考文件是SST39VF160,在uboot/board/dave/common/flash.c 文件,但是EN29LV160AB移植参考文件也是可以用这个文件吗??

3、国嵌中SST39VF1601,移植修改如下

(1)先读取nor flash ID,即要吻合software ID Entry命令 *** 作序列。(在函数flash_init中,先修改函数flash_get_size())

(2)函数中不识别device ID为234BH的SST39VF1601的片子,所以在flash.c中添加相应的宏定义

(3)在函数flash_get_size()的device ID匹配中添加代码,使初始化时能够识别芯片

(4)建立flash的block分区的地址表,驱动按照每块64kb来建立分区的

(5)修改flash的擦除函数flash_erase(),实验时可以选择按块方式擦除

(6)修改法拉盛写函数write_word函数

(7)修改函数write_buff

(8)修改函数flash_print_info

(9)此时去编译uboot的时候会报一些错误,因为没有CFG_FLASH_ADDR0没有定义,参考include/configs/B2.h,腊搏在board/mini2440/flash.c添加宏定义的代码

(10)屏蔽原来flash有关氏猜的宏定义

(11)添加有关新的flash宏定义(CONFIG_ENV_ADDR定义了环境变量的起始地址为0x30000,环境变量的大小为64k)

1.重新下载;轮腔2.判断在下载电脑上是否可以正常安装;3.将文件通过U盘拷贝腊颂衫到另一台电脑;4.如果不能安装,说明出现坏块,需要修复。

问题补充:1.重新下载;2.判断在下载电脑上是否可以正常安装;3.将文件通过U盘拷贝到另一台电脑;4.如果不能安装,说明U盘出现坏块,樱桐需要修复

Redboot被设计用于嵌入式调试和启动环境,它是一个基于eCos的应用程序,使用eCos的硬件抽象层(HAL)作为它的基础。它一个基本的功能是作为bootloader,但可用于任何嵌入式系统或任何嵌入式实时 *** 作系统中。也可用于产品开发周期中的调试支持或在发布的产品中提供flash或网络启动。特性有:

启动脚本支持;

管理和控制的命令行支持;

通过串口或以太网口的访问;

GDB支持;

flash映像系统支持;

X/Y调制解调器的支持;

支持使用BOOTP或静态IP地址配置的网络启动;

移植redboot到stm32开发板

1.,搭建好ecos开发环境

2,打开ecos图形配置工具configtool,如下图所示

下图中,左边窗口为ecos的配置项窗口,右边窗口从上到下分别为:冲突提示窗口、配置项属性窗口、配置项说明窗口。

3,设定ecos代码仓库(Repository)位置

获取ecos最新代码,

在ecos图形配置工具configtool界面中,点击Build->Repository,如下图所示。

配置好ecos代码仓库位置后,configtool会重新载入内容。

4,选择模板(Template)和目标(Target)及软件包(Package)

在ecos图形配置工具configtool界面中,点击Build->Templates,在Templates界面中,先选择目标板,即在Hardware中选择“ST STM3210E EVAL board”,然后选择模板即在Package中选择“redboot”,最后点击OK。如下左图尺毁所示。

点击OK后,可d出一个冲突提示按钮,如下右图所示。不过不要紧,点击Continue按钮即可,configtool会帮我们自动解决这些冲突的。

5. 导入redboot-ROM的最小配置

在ecos图形配置工具configtool界面中,点击File->Impor,如下左图所示,然后会出现如下右图所示的界面。

在上面右图界面中,去设定的ecos软件仓库的如下路径找到redboot-ROM的最小配置文件:

你的ecos软件仓库路径/ecos/packages/hal/cortexm/stm32/stm3210e_eval/current/misc

在该路径下有一个名为:redboot_ROM.ecm的文件,这个就是redboot-ROM的最小配置文件。ecos是一个可配置系统,配置后会产生一个后缀为.ecc的文件。而.ecm文件则是ecos的最小配置文件,与.ecc文件比较起来,.ecm文件去掉了.ecc文件中的注释,所以文件大小非常小。

导入后,会提示有冲突,如上述方法一样,点击continue让ecos的配置工具自动解决冲突。然后点击OK按钮,完成redboot_ROM最小配置文件的导入。

6.,设置串口波特率并保存配置

经上述步骤后,接下来我们确定下redboot的启动方式并设置debug串口的波特率。

在念唯ecos图形配置工具configtool界面的配置项窗口(左边的主窗口)中,依仔困培次找到:

eCos HAL—>Cortex-M Architecture—>Cortex-M3/-M4 STM32 Variant—>ST STM3210E EVAL Development Board配置项,如下图所示。

首先确定redboot的启动类型(上右图中的Startup type配置项),根据我们导入的最小配置文件,默认情况下是ROM,所以不需要修改,这里我们需要修改下串口波特率(上右图中的Console serial port baud rate配置项),修改为115200。

至此,我们完成了redboot的配置。配置完成后,在ecos图形配置工具configtool菜单栏中点击保存按钮,选择好路径,并拟定好配置文件的名称,我取名为redboot.ecc。

保存后,会在保存路径下产生两个文件夹,其中,xxx_build用于存放编译的目标文件;xxx_install存放最终产生的目标文件和库文件等(xxx表示你保存时取得配置文件名称),

7,编译

首先,确定你的编译器的位置。在ecos图形配置工具configtool界面中

设定编译器,在ecos图形配置工具configtool界面中,点击Build->Library或者直接按F7,开始编译。在configtool的底部窗口,可以看到编译进展,最后看到finish提示时,表示编译完成,如下图所示。

这时会在redboot_install文件夹下的bin目录下有目标文件

8.,烧写redboot.bin到stm32 CPU内部flash

接好J-Link,然后给板子上电,打开J-Link的J-flash ARM软件。

然后点击File->Open data file…,选择产生的redboot.bin文件,会提示你输入开始烧写地址。默认起始地址是0,由于STM32 CPU内部flash起始地址是0x08000000,因此,这里我们输入这个地址,设定后,点击OK按钮。如下图所示。

点击Target->Connect,连接J-Link,然后点击Target->Auto或者直接按F7开始烧写redboot.bin。

9. 启动redboot

烧写好redboot.bin后,就可以启动redboot了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12514160.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存