zoukankan      html  css  js  c++  java
  • U-boot中实现Yaffs2+HwEcc

                 经过老手的指点,要实现Yaffs2+HwEcc,重点在于chip->ops.mode由MTD_OOB_RAW到MTD_OOB_AUTO。经过几天的筹备,今天要对其下手了。为了真实展现分析移植过程,就来一个直播吧。这样也会破釜沉舟一定要把其实现。转入正题,chip->ops.mode的赋值是在nand_write这个函数中进行的,直接将其替换为MTD_OOB_AUTO看会出现什么情况。

                替换后,代码编译和运行并没有出现什么异样。烧写后的oob区内容有了变化。对比如下:



            可以看到oob内容布局发生的变化,这是因为MTD_OOB_AUTO会用到nand_ecclayout。而RAW的根本没有用到。下一步要看nand_ecclayout,先把布局搞对了。

            一个插曲:

            BL1/printf.c:29: undefined reference to `__aeabi_idivmod'

            BL1/printf.c:30: undefined reference to `__aeabi_idiv'

            这个错误我ARM9的时候遇到过,当时在是4.4.3不支持浮点数,会出现的错误。如今是4.5.1已经支持浮点数,并且下午还好好的,晚上直接出这个错误。真是不可思议。 

             先不解决上边的插曲了,跳过去继续进行计划。现在确认chip->ecc.mode是否正确:


            我以为烧写Yaffs2就不牵扯到s5pc1xx_nand.c,其实关于基本的NandFlash的初始化,还是在s5pc1xx_nand.c的board_nand_init函数中的。

              nand_base.c水似乎有点深,一时半会儿不能深入理解。要么动用JLink要么就一行一行地看。

  • 相关阅读:
    Django 之DRF删改查的API接口
    Django 之DRF原理操作
    通过密码、username、时间戳进行md5加密简单脚本
    Java 之GC常用命令
    ORM 之常用查询、字段类型、约束
    ORM 之单表查询案例
    Django session使用
    K8S 之yaml文件参数介绍1
    K8S 之使用Capabilities与限制网络带宽
    K8S 之容器生命周期钩子
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3331191.html
Copyright © 2011-2022 走看看