南京晰视电子

keil怎么跳到函数(keil中如何跳转到函数定义处)

本篇目录:

在keil中,某个程序调用了一个外部函数,我怎么能知道这个外部函数在哪里...

1、在你需要查找的函数名上点击右键,点Go To Definition of xxxx,xxxx就是那个函数名,就会直接跳到函数体了。不过这个方法只在这个项目编译通过以后才能用。

2、应该是这个函数uart0_init有函数原型,也就是说能被其他文件中的函数调用,但却不存在实际的函数体,所以链接时链接器找不到这个函数对应的代码段,就报警告了,而你试图右键看这个函数的定义时,就会跳出这个框。

keil怎么跳到函数(keil中如何跳转到函数定义处)-图1

3、函数先要把它的局部变量保存在栈中,这很简单。

4、其实有一个简便的方法,确实就是用include把其它的子函数都加进来就行了,在主程序的前面用多条include把其它的子函数都加进来,而在工程中只加载主程序main()。在主程序中调用子函数时就可以了。

我用keil进行调试时,程序总是自汇编的一段程序里反复执行,无法跳到main...

应该是程序停在了启动代码处,而启动代码是用汇编语言编写的。打开工程属性页,在Debug标签页,选择“go until main”选项即可,则调试时,程序将会停止在c语言的main函数入口处。

keil怎么跳到函数(keil中如何跳转到函数定义处)-图2

这基本上肯定要死在循环中的,R0既然作为了Ri,就不能再作为Rn来使用了。

在循环处设断点,程序执行到后修改一下外部数据,使其满足跳出循环的条件,然后再执行,这样就可以继续调试下去。如果这种情况很多,可以通过在程序中增加条件编译语句方便调试。

那你选stc的51单片机,其内部都带eeprom,不需要扩展外部flash,至少也有1k两个扇区的空间供你使用,可保你数据部丢失。

keil怎么跳到函数(keil中如何跳转到函数定义处)-图3

则这段代码会将指定的xdata段清零。如果你调试只关心自己的用户代码,可以在工程选项的 Debug 选项卡中勾选 Run to main(),这样启动调试后将会自动执行到 main() 入口并停下。

急急急!keil中如何每次在中断后跳到主函数的某一特定位置

嵌入C代码或汇编代码,手动修改栈中的PC内容,之后结束中断函数运行。这样中断函数退出时从栈中取的就是修改后的PC,自然就能跳转到你指定的位置。前提是你需清楚该中断入栈了哪些寄存器。

简单: 就是在中断服务程序中调用你所谓的另外一段程序。就是子函数调用,但是最后还是要回到主函数的。或者 在程序中使用标号,使用 goto语句转到所需要的标号地方。

当然C语言里面有一条语句,GOTO,它可以跳到你和程序的任何地方,但建议一般不这样用,会打破你的模块化设计结构。如果你非要用,建议只用在子程序里面,而且跳转地址也只在该子程序里。不要在主程序中用此语句。

我没在MDK上用过,但在KEIL C51上是这么用的,希望能帮到你:打开.uv2文件,找到这么一行LX51UCS LX51UCS (?PR?FFFFFF?CCCCCC(C:0x1000)),括号中就是函数定位的格式。

这是在调试状态下,才有快捷键的,使用单步执行键,F10,F11。

求问keil4中有没有进入一个函数后再返回原来位置的快捷键

既然是主函数,还返回什么函数。keil中的主函数必须用while(1)无限循环结构,不允许用return。如果需要返回参数,就必须写成子函数,在子函数中可以用return语句,然后在主函数中调用。

Edit-Configuration 按这个设置再试试。

你定义的函数返回类型是unsigned char类型,你返回的是return Sfig,具体类型我不知道,不过问题应该在这里。

用keil不易控制从中断返回到主函数的特定位置。可以在中断函数中设置一个变量,在主函数中查看这个变量,当变量为一特定值时就转到主函数的指定位置,这样,编译时就会自动完成现场的保护和恢复问题。

你愿意跳到哪里都行。直接在后面某行点击鼠标右键,选择“运行到此处”即可。如果想无条件跳转,选择“将PC指向此处”即可。

用C51在keil上面开发单片机程序时发现1.程序执行完main函数后会自动跳...

1、那你选stc的51单片机,其内部都带eeprom,不需要扩展外部flash,至少也有1k两个扇区的空间供你使用,可保你数据部丢失。

2、单片机程序在执行完main程序后会跳回到住main程序入口再重新执行的。

3、不加while(1)的危害,在执行完第二个delay()函数后,pc指针(程序运行指针)即跳出了main函数,此刻程序指针就进入了一个未知的非法地址,也就是通常所说的程序跑飞了。

4、虽然你的主函数结束了,但是你的计时器仍然在工作,单步下去,总会进入中断函数。但是在protues下你的定时器初值要设置合理,也就是在主函数结束前溢出,中断就能发生。

5、你的程序在return 0;以后就已经结束了,这时,单片机执行的是main函数之后的地方。

6、如何能让单片机运行完程序之后停止呢?--- 在你认为应该停止的地方,加入一行“死循环”的指令,如:C语言:while(1);汇编语言:SJMP 即可。

到此,以上就是小编对于keil中如何跳转到函数定义处的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇