garyv 发表于 2011-11-29 00:07

关于vivi里面的go命令

本帖最后由 garyv 于 2011-11-29 00:09 编辑

正在调试2440-linux平台,使用vivi。发现使用"load ram 0x30200000 0x20000 x"命令下载vivi到RAM之后,再运行"go 0x30200000"就死机了。
go命令的响应函数如下:void go(int addr)
{
    printf("addr=%08x\n", addr);

    __asm__
    (
      "mov r0, %0\t\n"
      "mov pc, r0\t\n"
      "nop\n\t"
      "nop\n\t"
      :
      : "r"(addr)
      );

    printf("go() function end!\n");

}发现第一个printf打印正常,第二个没有打印出来就死机了。将汇编中的"mov pc, r0"那一行注释掉之后运行不死机,而且2个打印都有。

不知"mov pc, r0"这种跳转方式有何问题?
页: [1]
查看完整版本: 关于vivi里面的go命令