免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1292 | 回复: 0
打印 上一主题 下一主题

LiARM电路板问题: 不能检测到NAND FLASH与vivi不能正常启动 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-17 23:11 |只看该作者 |倒序浏览

问题1:LiARM电路板问题: 不能检测到NAND FLASH与vivi不能正常启动
花了半个月才解决问题10月初至10月15日

1. 问题描述,从硬件与软件角度

   A) 利用烧写工具:sjf2410-s.exe,并不能检测到NAND FLASH型号
   B) 如果通过实验箱烧写好了vivi,插到自己电路板VIVI不能正常启动,
       停在:Succeed memory mapping.
   C) 偶尔的情况,可以识别NAND Flash,并且烧写vivi启动代码 ?
2. 硬件角度分析与解决方法
   JTAG接口是否正常工作
      与其他硬件设计方案比较,推断硬件设计是否有问题
      NAND FLASH不能启动,由于其相关逻辑控制信号 硬件设计的问题
      从NAND FLASH控制器PDF开始,分析控制信号、数据信号、地址信号
      从硬件角度,分析各个信号,看JTAG与ARM核心板之间出了什么问题
      首先判断JTAG口是否是好的。可以通过ADS下载程序来进行试验
   sjf2410是否正确通过JTAG读取NAND Flash型号,sjf2410是否有问题
      弄清楚JTAG调试(JTAG对外围器件的访问,尤其对NAND Flash的访问)
      sjf2410如何通过JTAG口,扫描得到NAND Flash的型号
      通过跟踪sjf2410,看那一步读写JTAG来识别NAND Flash出问题
      找不到sjf2410的VC++源码,因为需要源码,在中间加入print来看它的运行
         尝试在linux(非虚拟机下)利用sjf2410通过并口烧写vivi,跟踪sjf2410
      由于有sjf2410的Linux下的源码
      因为在虚拟机Linux下,并口总是不能正常使用
   分析其他对于核心板的输入信号。是否会影响JTAG对NAND Flash的访问
     其他信号(包括控制信号)对JTAG的影响
     用另一块电路板,只焊接电源、JTAG、核心板 用sjf2410进行烧写
3.  vivi角度分析与解决方法
    mtd_dev_init()用来扫描所使用的NAND Flash的型号,构造MTD设备
    就算JTAG烧写没有问题,那么这个地方检测NAND Flash型号也有问题。
    这个问题是否与JTAG不能检测到NAND Flash有关系
    这样调试的麻烦在于:
        虽然有了vivi源代码,但需要在JTAG口能正确烧写的情况下,
        否则得每次通过实验箱插拔,然后插到自己的板子上运行来调试
    分析方法:
        1. 了解bootloader vivi启动代码的原理
        2. 了解mtd_dev_init()的作用,仔细分析问题在于哪个地方
        3. 可以通过重新烧写vivi,利用print判断问题出在那个地方
4. 已经检查过的问题
  1. JTAG的相关信号
        ICE_nTRST    TAP复位信号(ARM芯片nTRST为输入)
        TDI   
        TMS          布线不合适,出现直角
        TCK   
        TDO   
        ICE_nSRST    从外部JTAG接口(板)引出的使系统reset的信号
  2. NAND Flash的相关信号
        FRB   
        FCLE  
        FALE  
        nFEW  
        nFRE  
        nFCE  
        nFWP  
        I/O 0-7  
        均与ARM相连,属于核心板内部。与扩展板没有关联
  3. 其他控制信号(对于核心板为输入的信号)
     NetWork :
        LnWE
        LnOE
        LnWBE1
        CAN :
        GPH0
        SPICLK0
        MOSI0
        MOSO0
5. 目前可以do的工作 just do, don’t stop
   掌握硬件原理、掌握ARM9的体系结构,外围接口,寻址等。对硬件进行调试
   利用ADS,通过JTAG对ARM9进行程序烧写调试,对寄存器、内存、flash进行操作
   分析sjf2410代码、掌握JTAG的根本原理、包括硬件与软件JTAG烧写的过程原理
   分析VIVI启动代码,掌握VIVI的原理
6. 发现的问题
   1) TMS布线不合适,出现了直角。是否有影响
7. 问题解决
   在linux下,通过Zflash的源码,通过对源码的print跟踪,
   发现程序最后在死循环里。条件涉及nWAIT与NCON信号。

   S3C2410的控制信号nWAIT信号,不用时,需要接上拉电阻
   nWAIT input信号
      等待延迟信号,用来请求延长当前总线周期。低电平时当前总线周期尚未完成。
      设计系统时不使用该信号,需接上拉电阻。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49724/showart_402732.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP