天嵌 ARM开发社区

 找回密码
 注册
查看: 5885|回复: 17

为什么落跑程序不能烧入nand flash?

[复制链接]
jing007520 发表于 2012-5-16 21:33:14 | 显示全部楼层 |阅读模式
本帖最后由 jing007520 于 2012-5-16 21:46 编辑

奇怪,为什么我在nor flash 下通过选项a,不能将流水灯的落跑程序烧入nand flash啊?通过J-link可以烧入nor flash运行。
并且之前是可以将六张图片的切换这个程序在nor flash 通过usb烧入nand flash中,求高手解答,小弟菜鸟级别。
不胜感激!!!!

TQ_guoxixiao 发表于 2012-5-17 09:33:32 | 显示全部楼层
格式化nand,实在不行的话,那就可能是板子坏了。
邮过来,我们检修一下。
 楼主| jing007520 发表于 2012-5-19 20:48:19 | 显示全部楼层
TQ_guoxixiao 发表于 2012-5-17 09:33
格式化nand,实在不行的话,那就可能是板子坏了。
邮过来,我们检修一下。

好的,我先格下试试。
guoke25 发表于 2012-5-19 23:30:11 | 显示全部楼层
试试看六张图片的程序是否还能烧入nandflash中运行?如果可以运行说明led的裸跑程序的启动代码位置可能没放好
guoke25 发表于 2012-5-19 23:31:45 | 显示全部楼层
说错了,应该说nandflash代码搬运程序可能没有写好或者放的位置不对
 楼主| jing007520 发表于 2012-5-20 09:40:13 | 显示全部楼层
guoke25 发表于 2012-5-19 23:31
说错了,应该说nandflash代码搬运程序可能没有写好或者放的位置不对

六张图片还能烧入,那现在该怎么办?是不是要从新烧入uboot到nand中?
guoke25 发表于 2012-5-20 10:05:38 | 显示全部楼层
本帖最后由 guoke25 于 2012-5-20 10:09 编辑
jing007520 发表于 2012-5-20 09:40
六张图片还能烧入,那现在该怎么办?是不是要从新烧入uboot到nand中?

这说明你的nandflash是可以用的。需要检查一下裸跑程序中把代码搬运到内存的部分是不是没写好,或者那段搬运代码没放对位置。
把程序放到nandflash中时是这样运行的:
首先硬件会把nandflash前4k字节拷贝到一个steppingstone。PC指针指向这个缓冲的起始位置,开发板开始运行。当你的程序大于4k的时候,超过4k的部分留在nandflash内,在steppingstone中是访问不到的。也就是说如果你的程序大于4k,那么在程序最前面的4k字节中要包含sdram初始化的代码和把程序从nandflash中拷贝到sdram的代码,同时PC跳转到sdram中运行,否则超过4k的部分将无法访问。实际上这些代码都在2440init.s和nand.c中。也就是说,你要检查一下2440init.s是不是放在整个程序的第一块,再检查包含程序拷贝的nand.c是不是在前4k字节中(你也可以把这个文件的链接顺序直接放在第二位)。
 楼主| jing007520 发表于 2012-6-2 13:07:47 | 显示全部楼层
guoke25 发表于 2012-5-20 10:05
这说明你的nandflash是可以用的。需要检查一下裸跑程序中把代码搬运到内存的部分是不是没写好,或者那段搬 ...

我按你说的照做了,而且你说的原因我也找了资料明白,知道要搬移代码。但是还是不能将程序烧入nand flash中,真不知道什么原因
raominping 发表于 2012-6-2 13:10:25 | 显示全部楼层
DNW要设置的,地址为0x30000000、
 楼主| jing007520 发表于 2012-6-2 13:54:03 | 显示全部楼层
本帖最后由 jing007520 于 2012-6-2 13:56 编辑
TQ_guoxixiao 发表于 2012-5-17 09:33
格式化nand,实在不行的话,那就可能是板子坏了。
邮过来,我们检修一下。


实在搞不定,可能真的坏了,目前只能下载天嵌自带的出厂检测程序,和六张图片程序,其他的程序不论是天嵌的程序,什么流水灯,还是我自己编写得程序一个都不能下载到nand flash中。

现在连选择7下载到sdram中都不能运行,真不知道什么原因,搞不定啊,伤不起··········崩溃的心都有了


只能用jink调试,还有可以下载到nor flash中
 楼主| jing007520 发表于 2012-6-2 13:55:07 | 显示全部楼层
jing007520 发表于 2012-6-2 13:54
实在搞不定,可能真的坏了,目前只能下载天嵌自带的出厂检测程序,和六张图片程序,其他的程序不论是天嵌 ...

现在连选择7下载到sdram中都不能运行,真不知道什么原因,搞不定啊,伤不起··········崩溃的心都有了
 楼主| jing007520 发表于 2012-6-2 14:06:28 | 显示全部楼层
本帖最后由 jing007520 于 2012-6-2 14:07 编辑
raominping 发表于 2012-6-2 13:10
DNW要设置的,地址为0x30000000、


我设置了,而且我记得刚开始的时候是可以烧录流水灯程序的镜像到nand flash中的
guoke25 发表于 2012-6-2 15:42:15 | 显示全部楼层
jing007520 发表于 2012-6-2 13:54
实在搞不定,可能真的坏了,目前只能下载天嵌自带的出厂检测程序,和六张图片程序,其他的程序不论是天 ...

既然知道自带的出厂程序和六张图片的程序能运行,你的程序不能运行,你首先要做的事情当然是要对比这些程序和你的程序的代码有什么不同,对比这些程序的工程和你的工程有什么不同,链接顺序是不是不一样,然后修改自己的代码和工程来找到真正问题所在。按照你的描述几乎不可能出现硬件故障,因为流水灯使用的资源完全在出厂程序和六张图片程序的资源之内,随便认定是硬件故障除了浪费钱和时间对你一点帮助都没有。
guoke25 发表于 2012-6-2 15:46:54 | 显示全部楼层
jing007520 发表于 2012-6-2 13:55
现在连选择7下载到sdram中都不能运行,真不知道什么原因,搞不定啊,伤不起··········崩 ...

下载到sdram不能运行很正常,因为uboot是用函数调用的方式来调用你下载到sdram的程序的。当你的程序含有启动代码的时候启动的那一段用函数调用根本不能运行。就好像你在linux下调用你裸机编译的程序不能运行一样。
guoke25 发表于 2012-6-2 15:54:51 | 显示全部楼层
jing007520 发表于 2012-6-2 13:07
我按你说的照做了,而且你说的原因我也找了资料明白,知道要搬移代码。但是还是不能将程序烧入nand flash ...

你可以先拿出厂的程序和六张图片的程序来修改,逐步的删除上面的函数来测试,最后添加自己的代码,这样你就能找到问题的原因了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-28 21:06 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表