在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3068|回复: 3

RAM中运行程序的疑问???

[复制链接]
发表于 2009-2-6 11:53:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
将flahs中的一段的程序搬到RAM执行。此程序功能是读写flash。

问题是,当程序在RAM中运行时,一旦遇到函数调用,指针就会跑飞。
但是,直接将被调用函数的代码插入就没有问题。(即无法实现函数调用)

希望大家帮忙,很急呀。

P.S  用的是TOSHIBA 的TX19A(MIPS32)内核的片子。有熟悉的朋友多多指教啊。
发表于 2009-2-6 13:56:16 | 显示全部楼层
你是直接写的汇编代码吗?可以放上来看看,有没有可能是延迟槽的问题;
 楼主| 发表于 2009-2-8 15:29:58 | 显示全部楼层
void func_AutoPageProgram(void)
{
unsigned short addr;
unsigned short page;
unsigned int addrSrc,cc,*p,i;
func_AutoBlockErase();  //函数调用失败

addrSrc1=0xbfc40000;                           
for(page=0;page<20;page++)
{
  if(IO_FLCS==0x00000001)
  {   
   *SysAddr32(0xbfc40000, 0x5554) = 0xAA;      
   //__asm("SYNC");
   __SYNC();
   nop(); //函数调用失败
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");
//   __asm("nop");

比如,直接用十几个 __asm("nop"); 就可以,直接用NOP()函数就不行了。
头像被屏蔽
发表于 2009-2-9 15:58:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 16:36 , Processed in 0.026331 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表