fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
阅读:1359回复:6

请教:nboot中C代码的执行问题

楼主#
更多 发布于:2008-03-01 23:01
      不知道什么原因,nboot的用C语言写的代码一直不能运行完整。汇编全部执行完毕了,但是一跳到C函数main,问题就来了,不能运行函数,根据我点的灯的情况来看,似乎是卡在函数里面了,就是说跳到函数里面就出不来了,如果将那些初始化代码全部拷贝出来执行(不进行函数调用),那么nboot就可以正常跑完。
    后来我又自己加了一个函数,里面又嵌套了其他的函数(只做些i++之类的运算),nboot照样可以跑完,这就让我很不能理解了,到底我前面nboot不能正常跑完的原因是什么呢?   ps:我有初始化了各个模式下的堆栈

有知道的兄弟指点下,多谢了
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-03-02 19:32
自己顶一个
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-03-08 14:27
 up
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-08 20:39
你的意思没有完全明白,不知道我的猜测对不对:
你的现象是:进main函数有问题,不能执行到main函数中的内容? 而从汇编直接跳到其它函数时是正常的?

如果是这样,大致的原因是:sp与RAM分配的有问题,可能有重合现象,或者你用了SDRAM,但SDRAM没有初始化正确.
学海无涯
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-03-10 15:49
多谢版主的解答。我再描述一下现象吧,前面讲的不是很清楚。 nboot的statrup.s可以执行完毕,也可以正常跳到main.c ,但是在main.c中,不能进行函数调用(宏可以),只要一调用,就会卡住。比如
main()
{
fun1();
fun2();
}

在调用fun1()之后,程序讲卡在fun1()的最后,不能返回到main函数继续调用fun2()。

奇怪的是:相同的nboot,eboot,在远峰的开发板上会出现上述现象,但是在我们自己做的开发板上却可以正常跑。
ps:我们的开发板用的是2442,远峰用的是2440,2442与2440的区别在于2442集成了64M的sdram和128的nandflash,而远峰开发板上的则不是集成的,其他都一样。
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-03-10 20:56
应该是SDRAM(如果堆栈是放在SDRAM中)没有正确初始化所致.或者是sp指向的SDRAM根本就不存在.

因为SDRAM没有正常工作,堆栈中不能保存住函数调用时所需要的地址,隔不久可以检查一下sp指向的SDRAM的内容,看是不是能正确保存数据.
在func1,func2不再调用别的函数应该还是可以回来的,即返回时
学海无涯
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-03-11 10:36
多谢版主,我去研究研究。
游客

返回顶部