单片机程序怎么在电脑上调试?用什么软件好?

单片机程序怎么在电脑上调试?用什么软件好?,第1张

单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以Keil和IAR为例介绍一下单片机的在线调试。

1keil
的在线调试功能
以STM32单片机为例,所需要的软件为Keil MDK,仿真工具为J-link,当程序编写完成后,编译通过,通过J-link仿真工具连接电脑和单片机板子,一定要安装好J-link的驱动,在Debug界面选择J-Link,并正确设置Setting界面的下的器件型号,如下图所示。
设置好后,点击工具栏的Debug按钮,就进入在线调试模式了,这时候会出现调试工具栏,如下图所示。
在怀疑有问题的地方设置断点后,运行单步调试,单片机就可以一步步的执行了,在watch窗口可以选择查看单片机的GPIO等寄存器,实时了解各端口和变量的变化情况。

2IAR
的在线调试功能
以STM8单片机为例,以IAR for STM8为例,工具为ST-Link,正确安装好ST-Link的驱动,程序编译通过后,执行Debug and download按钮可以开启在线仿真模式,如下图所示。
在有问题的地方设置断点,执行全速运行后,会在断点处停下,可以执行单步调试功能进入函数,再一步步执行。
这样也可以很容易的找到程序bug。
3使用串口打印进行调试
如果单片机不支持在线仿真功能,可以通过串口打印的形式输出调试信息。首先要把串口打印程序调试通,在有问题的地方通过给变量设置不同的值然后打印,这样也可以很直观的判断程序的运行情况。所需要的工具为USB/TTL。

由于篇幅有限,无法详细描述,大家可以根据以上信息搜具体的教程。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

以下是单片机实践团为您解答:
1)单片机多任务并行运算任务吞吐量分析,这个话题有点大,我只能简单的说几点,到时候你自由发挥吧。
2)多任务作业系统,对于微控制器而言,其实不能达到所谓的并行运行,只是感觉上像是并行处理一样,也就是所谓的时间片轮询调度,如果任务优先级一样则每个任务分得的时间片一样。对于抢占式的RTOS而言会优先处理级别比较高的任务。
3)说道任务的吞吐量的话,一般OS都会带这样的一个接口供用户调用,我所知道的FreeRTOS的话,有个tasklist的接口,可以打印任务的列表还有个润time相关的API是vTaskGetRunTimeStats这个函数就能打印系统的任务吞吐量,很形象,就是每个任务占的百分比一般基本上是空闲任务占用了90%以上,我一般设计到99%这样。
4)当然了,这些OS还会提供图形化的分析工具,我所了解的FreeRTOS支持trace接口工具能够直观的通过图形图表看出每个任务的吞吐量,一般用于前期设计分析。
5)恩,如果OS不提供这种接口的话,可以动手写相关的接口,便于设计时分析用
6)说到多任务并行运算适用哪些应用的话,这个需要你对系统比较了解的情况才能懂一些,我也简单说明,传统的前后台任务作业系统在任务处理的时候是顺序执行的,或者后台事件触发执行,相比之下多任务并行执行(不是真的并行,真正并行的只有FPGA或者多核才能做的)的作业系统优势明显,因为我们的系统run起来很快的,但是我们的外设一般都比较慢,所以需要花很多时间去等待完成或者其他的阻塞执行,这样无形中浪费了系统的资源,常常会使得有些任务得不到及时的执行,在多任务并行执行的系统就避免了这种情况。
7)举例说明,一个系统有串口发送任务,还有个采集任务,一般串口速率都不是很高,发送的任务明显会比较慢,需要等待发送空,这样的话发送若干数据的时间其实相对系统执行的速率而言是很长的,如果是非并行执行的作业系统的话,需要等待发送完成才能执行采集任务,这样明显使得采集任务不够实时,所以在并行执行的作业系统中,两者都能很好的被执行,干一会这个任务,干一会那个任务,多和谐。
8)说白了,这些都是实时 *** 作系统RTOS的基础知识,看看相关的文献,有利于你明天发挥,祝好运,欢迎追问。


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

原文地址: http://outofmemory.cn/yw/13356286.html

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

发表评论

登录后才能评论

评论列表(0条)

保存