天嵌 ARM开发社区

 找回密码
 注册
查看: 3784|回复: 10

ARM9 2440启动问题,奇怪的现象 本质的问题 求前辈和有敬经验者解答,不胜感激!!!

[复制链接]
海陆空653 发表于 2012-4-25 00:37:30 | 显示全部楼层 |阅读模式
前段时间 在用2440裸机做摄像头图像采集并实时显示,基本上已经实现了,但是有一个奇怪问题,我的程序大于4K,第一次将程序烧入板子时运行正常,无论是复位还是断电后立刻上电都可以正常运行 问题在于,在断电一段比较长的时间(10分钟往上),在上电后程序就不能启动了,LCD显示的是白屏,怎么弄都还是没反应。
  有时候将程序烧入后又不能正常启动,但有时又是可以的,很奇怪的问题,以前没遇见过,求有经验前辈解答,不胜感激,最近这问题弄的比较纠结。
  我初步估计是大于4K时的拷贝程序问题,但没有深入研究过,还是一头雾水。。。  
   
  最经 还是老问题,这段时间有用2440产生PWM 和AD处理 都能实现,大体出现和上面同样的情况,在这我具体描述一下:编辑好的程序 我再三的检查,自我感觉没错,但烧入板子不能正常运行, 到此 我想到了用AXD进行单步调试,我将启动调试设置在nand flash 下 程序奇迹般的正常运行了,断电之后,从新按正常方式烧入程序,可以正常运行了。即使是在改过程序之后,任然可以正常运行, 就在此时,又一个问题出现得,同样刚才可以运行的程序,在断电超过一分钟或者说是10秒往上,在上电后,程序不能运行了   
  该问题困扰我很久了,希望出现过这种情况的前辈或有经验的给我点意见,在此不胜感激。
guoke25 发表于 2012-4-25 10:06:41 | 显示全部楼层
按照天嵌的说明书下载天嵌自带的测试程序有没有上面的问题?如果没有的话有可能是启动代码确实出现了问题。如果也有同样的问题的话可能就是开发板上的硬件出问题了。
 楼主| 海陆空653 发表于 2012-4-26 19:42:47 | 显示全部楼层
我也估计是启动代码问题,恶补启动代码中,能说一下启动中要注意的问题吗?
guoke25 发表于 2012-4-26 19:47:47 | 显示全部楼层
海陆空653 发表于 2012-4-26 19:42
我也估计是启动代码问题,恶补启动代码中,能说一下启动中要注意的问题吗?

使用原厂的文件烧录不存在你所描述的问题吗?
 楼主| 海陆空653 发表于 2012-4-28 19:08:19 | 显示全部楼层
我买的是友善之臂2440的板子,就是用买板子送的资料里面自带的启动文件 也会出现这样的情况,只是我把一些没有用到的文件给删除掉了主要也就是MMU这块没用  
guoke25 发表于 2012-4-28 19:59:35 | 显示全部楼层
海陆空653 发表于 2012-4-28 19:08
我买的是友善之臂2440的板子,就是用买板子送的资料里面自带的启动文件 也会出现这样的情况,只是我把一些没 ...

按照你说的情况很可能是nandflash出问题了。你把板子发回去让他们帮检查好了
guoke25 发表于 2012-4-28 20:00:13 | 显示全部楼层
海陆空653 发表于 2012-4-28 19:08
我买的是友善之臂2440的板子,就是用买板子送的资料里面自带的启动文件 也会出现这样的情况,只是我把一些没 ...

MMU这块对启动没有影响的
guoke25 发表于 2012-4-28 20:01:19 | 显示全部楼层
海陆空653 发表于 2012-4-28 19:08
我买的是友善之臂2440的板子,就是用买板子送的资料里面自带的启动文件 也会出现这样的情况,只是我把一些没 ...

你应该用他们已经编译好的大于4k的bin文件来来测试,先排除硬件上的问题
guoke25 发表于 2012-4-28 20:16:20 | 显示全部楼层
分析的思路:
1、用原厂自带的大于4k的bin文件烧入芯片,如果出现同样的问题,说明开发板有问题,发回原厂修理
2、如果没有问题,使用原厂的源代码进行编译,然后将生成的bin文件烧入芯片。编译得到的文件如果没有问题,说明源代码应该可以用。这时候再去对照原厂的源代码和你的代码之间的差别,通过细微调整来定位错误。编译得到的文件如果有问题,说明源代码有问题,向原厂要没有问题的代码,再进行下一步的调试
 楼主| 海陆空653 发表于 2012-4-30 10:12:53 | 显示全部楼层
今天我找了朋友的另一块板子来试了一下,我先后用过三块板子测试,都有一个普遍的问题,我简要在这陈述一下:
我写了一个小于4k的点灯程序烧入板子,在这有两种情况,我具体描述一下,同一个程序,在ADS编译中,当我在debugRel settings 中其他选项设置正常(跟一般的调试设置),唯一不同的是ARM Linker——Output——RO base 值为0x30000000,和ARM Linker——options-image entry point 也设置为0x30000000,按正常方式烧入板子并上电不能正常工作 ,程序不运行, 但是如果我在nor flash下烧入程序后不断电,并从nor flash 转到nand flash 在按下复位键 程序竟然奇迹般的正常运行了,在复位也能正常工作,但就是不能断电,否则在运行就不行了。我把我以前的程序测试也是这样的现象,
第二种情况 我将上面所说的两处地址都设置为0x0,正常方式烧入,断电后将nor转到nand 程序正常启动,也不会出现我标题所说的过段时间后就不能启动。。。
我还是很费解,我初步判断是程序运行域 和加载域这块的地址有问题 主要在RO base 和RW base的地址设置 但这个问题我不知道怎么解决 请求您能给我一些意见 十分感谢 我今年大三 正在在做一个小项目 最近时间快到了 各模快程序都能实现功能,但都普遍存在这个问题 十分感谢 如果方便能留下您的QQ号码?
guoke25 发表于 2012-4-30 10:52:09 | 显示全部楼层
我的qq398047759
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-30 03:34 , Processed in 1.031263 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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