跳转到主要内容

Debug工具

总结硬件仿真与烧写程序结果不一样的原因

kelly /

<strong> 一、配置问题:</strong>

实际烧片时单片机的配置字与仿真的时候是不是一样?烧写时是否配置正确?

<strong> 二、资源问题:</strong>

单片机的ROM、RAM大小与仿真器的ROM、RAM大小是不一样的!

<strong> 三、驱动能力问题:</strong>

通常仿真器的驱动能力比单片机要强;可以分两步检查,一是分别用仿真器与单片机时对应IO口波形进行对比,二是当仿真器与外设连接与不连接时波形的对比;
  
要进行基本要素分析:单片机供电正常?起振没有?复位电路正常?芯片损坏?

教你如何调试新电路板?!

kelly /

对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,板上是否存在问题,例如是否有明显的裂痕,有无短路、开路等现象。如果有必要的话,可以检查一下电源跟地线之间的电阻是否足够大。

然后就是安装元件了。相互独立的模块,如果您没有把握保证它们工作正常时,最好不要全部都装上,而是一部分一部分的装上(对于比较小的电路,可以一次全部装上),这样容易确定故障范围,免得到时遇到问题时,无从下手。一般来说,可以把电源部分先装好,然后就上电检测电源输出电压是否正常。如果在上电时您没有太大的把握(即使有很大的把握,也建议您加上一个保险丝,以防万一),可考虑使用带限流功能的可调稳压电源。先预设好过流保护电流,然后将稳压电电源的电压值慢慢往上调,并监测输入电流、输入电压以及输出电压。如果往上调的过程中,没有出现过流保护等问题,且输出电压也达到了正常,则说明电源部分OK。反之,则要断开电源,寻找故障点,并重复上述步骤,直到电源正常为止。

接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下,上电时也是按照上面的步骤,以避免因为设计错误或/和安装错误而导致过流而烧坏元件。

寻找故障的办法一般有下面几种:

通过点亮LED的方法调试嵌入式代码

kelly /

<strong>1、前言</strong>

在软件开发的过程中,debug(调试)是一个很重要的事情,因为没有百分之百正确的代码,一旦结果不符合预期,我们需要知道问题出在哪里了。

在PC环境下开发应用程序,我们不需要太操心,因为有各式各样的模拟器、调试器可供使用,我们可以追踪到每一行代码的执行过程和执行结果,找出问题只是时间问题而已。但在嵌入式环境下,就有些麻烦了,能用的手段,无外乎两种:

1)使用硬件仿真器定位问题。

2)使用日志输出定位问题。

对嵌入式工程师(特别是linux工程师)而言,鉴于使用硬件仿真器的诸多不便(成本高,无法保证人手一个;硬件连接复杂,需要预留特定接口;使用不方便;等等),日志输出几乎成为必备且唯一的debug手段。但是,总会有例外:

系统刚刚启动,在日志输出的通道(通常是UART接口)ready之前,怎么debug?

在不得不使用仿真器之前,我们还有一个简单的方法,就是点LED灯,本文将结合“X Project”“【任务2】启动到u-boot command line”实现的过程,对这个方法进行简单的介绍和总结。

<strong>2、 思路</strong>

如何使用Keil MDK与h-jtag进行联调

kelly /

keil MDK也是可以借助h-jtag进行单步调试,写出来与大家一起分享一下:

keil MDK编译器使用V4.01版本,下载地址:

http://www.embedinfo.com/down-list.asp?id=714 (需要注册一下)

h-jtag使用V1.0版本(请注意,一定要用V1.0或者以上版本才可以与mdk兼容),下载地址

http://www.hjtag.com/download/H-JTAG%20V1.0%20Preview.zip

分别安装MDK与h-jtag

两个软件都安装完成后,首先,需要运行H-JTAG 安装目录下的TOOLCONF.EXE 程序,对KEIL 安装目录下的TOOLS.INI 配置文件进行更新。如下图所示。点击Config 按钮,对TOOLS.INI 进行配置,然后退出。注意在点击Config之前,要退出keil编译器。

Proteus仿真软件在单片机设计中的应用

kelly /

摘要:单片机应用技术所涉及到的实验实践环节比较多,而且硬件投入比较大。在具体的工程实践中,如果因为方案有误而进行相应的开发设计,会浪费较多的时间和经费。Proteus仿真软件很好的解决了这些问题,它可以象Protel一样画好硬件原理图与KEIL编程软件结合进行编程仿真调试。

<strong>1、引言 </strong>
 
单片机在很多产品中得到广泛的应用,无论是51系列、AVR、还是PIC系列,他们各有各的特点,学习者也是逐年增加,但是在学习开发过程中,我们往往在确定方案后做试验的开支比较大,尤其是对于一些学生或者初学者这就可能成为他们学习的障碍。在我们使用Proteus软件以来大大节省了时间和开发费。尤其将此软件用在单片机开发中是一个不错的选择。我们这里主要讲述的是Proteus软件与Keil软件的结合与应用。  

<strong>2、Protues软件介绍与应用  </strong>

Keil 软件仿真的串口调试技巧

kelly /

在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过 RS232/RS485 电平转换芯片与上位机连接, 以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的 连接等。RS232/RS485 串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大 的场合,串口通信仍然是很好的选择,有着广阔的使用前景。
 
在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的方法,但是也有一些缺点: 

很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。 

对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。 

有时由于设备内部结构空间的限制,仿真头不方便接入。 

有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高, 实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。 

【下载】调试工具Debug的使用指南

kelly /

DEBUG是专门为汇编语言设计的调试工具软件,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。在DEBUG下所有输入的数据都是十六进制,所以不需要后面加H。并且不区分大、小写字母。

<strong> 1.1. 实验目的 </strong>

1、 学习如何启动在Windows的命令模式下启动DEBUG;

2、 掌握DEBUG的常用基本命令; 

3、 学习如何用DEBUG进行跟踪调试。  

<strong> 1.2. 预备知识 </strong>

1、 进制转换 

需要同学们熟练掌握二进制、八进制、十进制和十六进制的互相转换算法。 

2、 寄存器 

寄存器是CPU内部的数据存储资源,是汇编程序员能直接使用的硬件资源之一。寄存器的存取速度比Cache还要快。 

在16位CPU中,总共有4个16位数据寄存器AX、BX、CX和DX,每个16位寄存器又可分为2个8位寄存器(例如AX的高八位称为AH,低八位称为AL);2个变址寄存器DI和SI;2个指针寄存器SP和BP;4个段寄存器ES、CS、SS和DS;1个标志寄存器FLAG;1个指令指针寄存器IP。 

Eclipse编程中的Debug工具的使用方法

kelly /

Eclipse编程中的Debug工具(即自动找错工具)的使用方法:

首先在Eclipse中编写一段代码以下边代码为例,看到代码左边的蓝条

<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002327-7324-1.png&q…; alt="" width="600"></center>

找到int n=10,X=5,y=2;这行点击鼠标右键,