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


什么是裸机程序

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

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

程序开发过程中,必须做的一件事是排查Bug和修复Bug,那Bug这个定义是怎么来的?

20世纪40年代,当Grace Hopper中尉第一次在 “事件记事本” 中把引起 “MARK II” 计算机死机的飞蛾注明为 “第一个发现虫子的实例” 后,人们便将计算机和软件的错误戏称为虫子(Bug)。

一、硬件调试

假如你是在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, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值