关于韦东山书上的裸机程序在mini2440上的运行

      近来又开始学习韦东山书上的裸机驱动,在运行SDRAM中的代码的时候发现不能正确运行,当初下载的方法是通过mini2440自带的supervivi的d命令烧写程序。现在想想真是犯了很多错误。在韦东山的书上不止一次强调这些裸机程序要下载到nandflash上运行,但我都是通过supervivi的d命令来下载到SDRAM中运行,呵呵,能正常运行才怪。现在稍微总结下:

       1.这些裸机程序是需要下载到nandflash中运行的。当从nandflash启动CPU时,CPU会通过内部的硬件将nandflash开始的4KB的数据复制到称为"Steppingston"的4KB的内部RAM中(起始地址为0),然后跳到RAM的地址0开始执行。

       2.通过supervivi的d命令是把程序下载到SDRAM就是内存的起始地址0x3000000中的。这时候其实是从nor flash启动的。本例中如果先从nor flash启动,把程序直接下载到SDRAM中运行,就开始运行SDRAM中的代码,把steppingston中4KB的代码复制SDRAM中,这个时候由于steepingston中的东西是未知的,所以会把SDRAM中的代码覆盖掉,导致程序错乱。

       3.正确的操作方法是先从nor flash启动,然后用v命令(把程序下载到nandflash的vivi分区,而vivi分区的地址是0x0-0x50000)下载程序到nandflash , 其实v命令的过程是通过DNW先把程序下载到SDRAM中,然后执行了nand写操作,把0x30000000开始的那段代码复制到了nandflash的0地址处(这段是听网上一个朋友说的)。这样就把代码下载到了nandflash中。然后再从nandflash重新启动,这样stepingston中就是nandflash中的代码了,本试验就能正常运行了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值