Chinaunix首页 | 论坛 | 博客
  • 博客访问: 225157
  • 博文数量: 30
  • 博客积分: 509
  • 博客等级: 一等列兵
  • 技术积分: 802
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-22 12:32
文章分类

全部博文(30)

文章存档

2013年(14)

2012年(16)

分类: 嵌入式

2013-01-13 22:30:56

    前面学习了NorFlash的芯片手册,了解了NorFlash的擦除与编程流程。与u-boot源代码对比,符合NorFlash的指令流程。
    擦除指令序列为:
    
    [0xAAA] = AA
    [0x554] = 55
    [0xAAA] = 80
    [0xAAA] = AA
    [0x554] = 55
    [SectorAddr] = 30

    对应在flash.c文件里的源代码为:
    
    在状态判断时,从刚擦除的扇区地址上读取数据。如果正常,则返回值的DQ7=1。如果DQ5上的值为1,则说明擦除失败。
    现在的问题是,上述的两种情况都没有出现。这是为什么呢?

    我记得前面看到,在解除扇区保护的时候,u-boot只置了对应扇区保护位的标置,并没有对芯片进行实质性的操作。详见《U-Boot调试笔记六》
    
    其中CFG_FLASH_PROTECTION并没有定义,是不是与这个有关系?
    可是,在u-boot/board/my2440/flash.c文件里没有找到 flash_real_protect() 函数。
    问题在哪里?

    我觉得,最好在网上去找找资料。这样闭门造车了不是个办法。或者看一下现成的Vivi是怎么做的。
阅读(1659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~