Chinaunix
标题:
LiARM电路板问题: 不能检测到NAND FLASH与vivi不能正常启动
[打印本页]
作者:
niuniu711
时间:
2007-10-17 23:11
标题:
LiARM电路板问题: 不能检测到NAND FLASH与vivi不能正常启动
问题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
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2