嵌入式微处理器系统的软件设计与硬件考量
1. 调试工具选择
在嵌入式系统开发中,调试是关键环节。很多小型微控制器都配备了模拟器,它是运行在 PC 上模拟微控制器的软件,让开发者能在办公桌前开发和测试代码。不过,模拟器有个严重缺陷,它无法预测真实世界的情况,只能依据用户提供的输入进行模拟。如果无法预测所有真实世界的时序,模拟器软件也做不到。但如果微控制器设计的操作是可预测且不依赖真实世界时序的,模拟器可能就是所需的唯一调试工具。
当进入有运动电机和电磁开关的真实环境时,这也是大多数嵌入式设计的最终归宿,模拟器的局限性就会显现出来。若模拟器不够用,又无法获取或使用仿真器,就需转向其他调试技术。
2. 微处理器硬件特性
2.1 栈的使用
栈几乎是所有微处理器都具备的,软件可临时存储值,直到需要时再取用。调用子程序时,处理器会将返回地址保存到栈中。栈是后进先出(LIFO)的缓冲区,就像餐厅自助餐线上的弹簧餐盘堆,最后放入栈的值会最先被取出。
多数微处理器有 PUSH 和 POP 指令(或等效指令)来向栈添加或移除值,这使程序员能在中断时保存寄存器,之后再恢复。PC 上的栈能容纳数百万字节的信息,但嵌入式设计中的栈并非如此灵活:
- 硬件限制 :一些微控制器的栈有限。如 PIC17C42 只有 16 级栈,且没有 PUSH 和 POP 指令,栈仅用于存储返回地址。有硬连线栈(在微处理器集成电路中实现为固定寄存器)的处理器,无法支持多个级别的子程序,栈会溢出,也不能在栈上传递太多参数。
- 系统 RAM 限制 :即便处理器的栈不受
超级会员免费看
订阅专栏 解锁全文
890

被折叠的 条评论
为什么被折叠?



