liyang121316 发表于 2015-1-27 09:48:32

请教关于KEIL MDK 如何跳转到指定地址处的代码的问题?

      现在在跟一个NMI fault ,已经定位了它出错附近的代码地址为 0x200027F1 ,以前用IAR的时候,在汇编窗口有个输入窗口,只要把这个地址输入的那个窗口然后回车就会跳转到对应的的汇编代码处,
然后根据汇编代码对应的C代码来查找出错的原因。现在用keil MDK 了它的汇编窗口好像没有那个能输入地址的窗口。请问大家是如何定位的?怎样找到地址0x200027F1对应的汇编代码。

liyang121316 发表于 2015-1-27 09:54:07

自己顶一下,莫非需要玩儿命的滚轮?!

k_er_tlwei 发表于 2015-1-27 11:03:06

改PC指针寄存器的值?不知道行不行。

aozima 发表于 2015-1-27 11:16:41

本帖最后由 aozima 于 2015-1-27 11:18 编辑

command那里输入pc = XXX

不过 NMI fault 的原因是确定的吧,用不到跳到对应位置去跟综
只有hardfault时一般才回溯指令。

雨雪随行 发表于 2015-1-27 12:07:34

我们可以利用keil软件的绝对地址跳转,((void(code *)(void))0x00)(); keil软件编译时会转换成jmp 0x00,就跳到指定的绝对地址了;

雨雪随行 发表于 2015-1-27 12:07:56

亲测有效

liyang121316 发表于 2015-1-27 12:39:58

雨雪随行 发表于 2015-1-27 12:07
亲测有效

我想跳转到0x200027F1 是不是就用((void(code *)(void))0x200027F1)();

w282529350 发表于 2015-1-27 15:56:51

汇编窗口右击

liyang121316 发表于 2015-1-27 17:00:00

w282529350 发表于 2015-1-27 15:56
汇编窗口右击

此楼正解!!!我已经试过了,OK!
页: [1]
查看完整版本: 请教关于KEIL MDK 如何跳转到指定地址处的代码的问题?