keil如何调试?

keil如何调试?,第1张

首先打开Keil软件,打开一个工程,点击keil的编译图标,编译软件。

2.确保已经连接了仿真器,而且已经给MCU上电,然后下载程序,等待下载完成。

3.软件程序下载完成,现在就完成了程序下载,可以开始仿真了。

4.单击软件的调试图标,进入软件调试模式。

5.现在就已经打开运行模式。

6.单击全速运行,运行软件仿真。

7.程序正在全速运行。

8.仿真完成以后单击调试图标,就可以退出野带调试模式。

keil

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等 *** 作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编颂卖芦语言编程,其方便易用的集成环配灶境、强大的软件仿真调试工具也会令你事半功倍。

如薯兆禅下面图(我使用的是keil MDK,但道理都是一样的),在debug界面中,如果你将Run to main()复选框前的对号去掉,每次进入debug都会从Startup.a51,因为这个文件存在一些启动代码数尘,复位后要先进入这个文件的,你虽然是用C写的代码,但是实际下载到单片机的还有编译器为你自动加入的Startup.a51文件中的代码,这个主要将RAM区数据清零,然后跳转到你写的C语言main函数.由于你进入debug后再复位,实际上是从程序的最开始执行,至于为什么进入调试模式是执行的猜轮你写的C代码,就是因为你选择了下图中的Run to main()---编译器按照你选定的设置进执行了一些步骤而已

答案是:不能运行下去。

原因说明:

1、如果你在KEIL里面打开HELP,然后再搜索里漏饥面输入scanf,KEIL对该函数的解释中,第一句便这么说:

The scanf function reads data from the input stream using the getchar routine.

意思是函数scanf将以调用函数getchar的方式来从输入流中读取数据。

继续搜索getchar,同样KEIL会解释说:

The getchar function reads a single character from the input stream using the _getkey function.

意思是getchar调用_getkey来实现,幸运的是_getkey这个函数,KEIL给出了源代码:

就在 C:\Keil\C51\LIB 的getkey.c中:如下

char _getkey () {

char c

while (!RI)

c = SBUF

RI = 0

return (c)

}

看到了吧,呵呵,里面有个循环查询 while (!RI),你觉得程序还会继续运行吗。。。

也就是说,如果返闷返你想继续运行程序,你就得修改函数_getkey,将他写成中断的形式,

KEIL之所以给出罩者代码,估计他们自己也觉得采用查询的方式不靠谱。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8229457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存