
如果是mainasm中有这句话$INCLUDE(RESETASM),简单的说就是在编译mainasm前,编译器先把RESETASM这个文件的所有语句放到main文件中,然后再编译main,相当于RESETASM是mainasm的一部分代码。
这样设计的话,要求工程里不能再单独编译连接RESETASM,这样会出现同名的警告。另一点,RESETASM中不能有END的结束符,否则编译器在编译到END后面的代码就不编译了,你的main函数实际就没有被编译,这可能是你烧到开发板上不行的原因。
具体没看到代码,先做如上猜想。不过如果有调试环境的话,单步debug应该能很快发现问题。
了解必要的调试技巧是有效开发的保证,keil提供的调试模式很强大,有软件仿真及硬件仿真,
进入DEBUG模式,有几个快捷键在很多IDE环境都是通用的
如F5 全速运行
F10 单步跟踪
F11 进入子函数内部 ,子函数这里应该你所说的子程序了
F9 设置断掉,即运行到此位置,例如用在进入中断服务函数及跳出延时函数是基本的方式
因为在你recieve()函数里有一个while(1)循环处理过程,其实你这程序在用KEIL编译的时候会有警告提示的,即:led1=0这句将永远不会被执行的
从事音频设备开发好多年——VX:xuquanfugui-2020
以上就是关于用Keil uVision2编写单片机程序时,如何调用已存档的子程序文件全部的内容,包括:用Keil uVision2编写单片机程序时,如何调用已存档的子程序文件、keil怎么跟踪子程序代码、51单片机间串口通讯,接收端程序调用完接收子程序,主程序不能继续运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)