加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

u-boot2010.06的移植(4)——支持norflash

发布时间:2020-12-15 07:20:12 所属栏目:百科 来源:网络整理
导读:norflash 的支持非常简单,仅需要了解几个宏的意思即可容易的写出来,并且这几个宏旁边都有注释,在此就不介绍了。高版本的u-boot可能还需要了解一下结构体,等移植高版本的u-boot的时候再详细介绍。如果说难点的话,CONFIG_ENV_ADDR 可以讲讲,可以看到源码

norflash 的支持非常简单,仅需要了解几个宏的意思即可容易的写出来,并且这几个宏旁边都有注释,在此就不介绍了。高版本的u-boot可能还需要了解一下结构体,等移植高版本的u-boot的时候再详细介绍。如果说难点的话,CONFIG_ENV_ADDR 可以讲讲,可以看到源码?#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x0F0000) /* addr of environment */,而CONFIG_SYS_FLASH_BASE 被定义为0,上面那个宏的定义是以大小为1MB的norflash做的定义,本芯片使用的是2MB的,所以修改为#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x01F0000) /* addr of environment */,其实不该也应该可以,这么改的目的是为了把大小为0x10000(大小可以改变#define CONFIG_ENV_SIZE 0x10000 )的环境参数放在最后,应该是一个习惯的问题吧,不清楚。
????修改完后,测试是否正确:
? ? protect off all? ? /*去除写保护*/
? ? erase 80000 8ffff????/*擦除起始地址别在u-boot内就行,为了保险,可以算下u-boot的大小*/
? ? mw.w 30000000 1234? ? /*mw.w 好像是写两个字节,我开始以为写四个字节呢。*/
? ? cp.b 30000000 80000 10000? ? /*容易忽略的是拷贝之前一定要主要两个地址处的数据不能一样*/
? ? cmp.b?30000000 80000 10000


????目前的u-boot只支持loady的下载命令,可以这样自更新norflash的u-boot:
? ? loady 30000000? ? /*下载到内存即可,主要别覆盖了别的重要的代码数据就行*/
? ? 点击串口终端的发送-->ymode-->选择要发送的u-boot.bin
? ? protect off all
????erase 0 7ffff? ? /*注意大小不要比 u-boot+(bss_end - bss_start) 小*/
????
cp.b 30000000 0 80000
? ? reset

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读