WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(3)-基于Nor Flash的Eboot

之前的两篇文章介绍了基于Nand Flash的Eboot,通过使用Nboot来引导Eboot的方式。其实GEC2410开发板配有1片2M Bytes的Nor Flash(SST39VF1601),程序可以直接运行在Nor Flash上,就不需要Nboot来引导了。当然最终Eboot还是运行在RAM中,Eboot会自我复制到RAM中运行。

原来使用自带的sjf410烧写非常慢,后来找到了H-JTAG和对应2410的烧写配置,然后烧写就非常方便了。因此以后Eboot就放到Nor Flash,OS Image放到Nand Flash中。
SMDK2410 BSP用的Nor Flash是AMD的am29lv800,与GEC2410不同,因此需要增加Nor Flash的驱动。

 

一、开发环境
编译器: Platform Builder 5.0
目标板: GEC2410 S3C2410A,NAND Flash:64M K9F1208,NOR Flash:2M SST39VF1601 SDRAM 64M,CS8900

二、开始移植
(1)去除不相关代码
注释掉AM29LV800_Init((UINT32)AMD_FLASH_START)
注释掉原来通过Nand Flash读写Eboot配置的函数

去除AM29LV800.c

(2)增加SST39VF1601驱动
之前使用板子自带的ADS下SST39VF1601的驱动,但是始终无法正常读写。后来使用SMARTARM2200带的SST39VF1601驱动进行修改,最终获得成功
其实主要几个函数如下,具体可参考之后我发的整个BSP的源代码
[1]几个宏的定义

[2]SST39VF1601_CheckID

[3]SST39VF1601_SectorErase

[4]SST39VF1601_WriteWord

以下3个函数是供Read(Write)BootConfig来调用的,与原来的结构一致
[5]SST39VF1601_ReadFlash

[6]SST39VF1601_EraseFlash

[7]SST39VF1601_WriteFlash

[8]只需用以上3个函数代替原来main.c中WriteBootConfig和ReadBootConfig中对应的Flash函数即可   
SST39VF1601_ReadFlash(EBOOT_CONFIG_OFFSET, (PBYTE)pBootCfg, sizeof(BOOT_CFG))和
[9]还有两个用到的函数GetSectorNumberGetSectorAddress也是为了兼容原来的结构实现的,针对Sector进行了计算

三、烧写完成运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值