单片机裸机程序——调试手法


什么是裸机程序

代码量比较少,不带操作系统的单片机程序就是所说的裸机程序。

裸机程序里可以看到直接对处理器(所说的MCU)的寄存器、内存、I/O端口等进行读写操作。


一、硬件调试

假如你是在Keil或IAR等开发软件上开发程序,大部分处理器支持使用专用下载器进行Debug,比如J-Link,ST-Link等仿真器/下载器。

调试过程中通常采用设置断点、单步执行、查看寄存器、变量内存值等方法,可以直观看到运行过程中的实时数据,快速排查问题,提高开发效率。

二、串口调试

如果条件有限,比如手上没有仿真器或处理器不支持硬件调试,那么可以采用串口打印自定义信息进行调试,看看程序运行情况,卡在哪里,实际数据等。

串口打印可以使用标准库函数 printf,查看变量的值,但是它比较占用内存空间。

printf("temp:%d\r\n",i_temp); //标准库打印函数,占用内存较大

串口打印还可以使用自定义串口函数,比如uart0_send_bytes(…),打印字符串或ASCII值,占用内存小。

void uart0_send_bytes(uint8_t *buff, uint32_t length); //占用内存小

两种串口打印方式各有所用。

三、指示灯调试

硬件上预留有指示灯,代码运行过程中,在要观察的代码行之间加入控制指示灯亮或灭的代码,指示程序的不同阶段或状态。

四、仪器调试

在出现数据错误、不稳定或死机等奇怪问题时,需要查看原始信号是否正常,可以使用示波器、逻辑分析仪、万用表等设备,观擦硬件中的电信号,如时钟信号、脉冲信号等是否存在失真,电压异常等问题,排除根本原因。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值