论文部分内容阅读
在嵌入式开发中,基于PIC微控制器设计的某些功能模块会经常重复使用,比如说通信模块、显示模块等等。嵌入式设备硬件设计好后需要软件调试,如果是已调试过的模块可以将之前的源码移植到新的硬件上,然后将与硬件相关的代码重新修改后使用。但是当模块功能较复杂并且代码量较大时,需要从源码找到和硬件资源对应的部分,如果模块较复杂并且有大量的源码显得过程比较繁琐,也比较容易出错,会给调试带来一定的难度。本文针对PIC微控制器集成开发环境MPLAB IDE使用的C30和C18编译器,设计了对一些功能模块和算法类源码可在后续开发中简单使用的柔性硬件平台。根据目前PIC微控制器使用Bootloader对嵌入式设备进行软件升级时,会对嵌入式设备的程序存储区的用户应用程序完全擦除再写入新的HEX文件的方式提出了改进。首先,根据项目需求设计了基于PIC微控制器的硬件电路,在此基础上调试了电路上的以太网通信、实时时钟、外部存储、液晶显示和RS-485功能模块,使用基于PIC微控制器的嵌入式实时操作系统进行了软件设计。其次,对PIC所使用的编译器做了较为深入的研究,使用已开发项目的功能模块源码作为基础,运用编译器内部的一些可执行文件把源文件封装成库文件。这些库文件在使用PIC微控制器进行软件开发时可以直接应用,该方式使代码量大大减小,开发能够大大简化;这样不仅做到了通用,由于多个文件整合为一个文件使得链接更加容易,将相关的模块组合在一起,也有利于代码的维护;由于提供的功能库函数已经事先处理为可重定位的二进制文件,所以在软件编译整个工程时效率会大大提高。再次,使用传统的Bootloader对PIC嵌入式设备进行软件升级时,发现升级时嵌入式设备程序存储区的用户应用程序要完全擦除后再写入整个新HEX文件,效率是较低下的。为此使用了一种新方法改进了Bootloader,既保证了可靠性又简化了设备的升级过程。最后,在一个新项目中使用了基于PIC微控制器的柔性硬件平台和改进的Bootloader对设备进行软件升级。在初期一些功能模块的调试中比较简洁,花费时间较之以前大大减少;软件升级时效率具有较大的提高,升级后系统运行稳定。证明使用柔性硬件平台在新开发中可以不影响系统稳定性的情况下缩短开发周期,改进的Bootloader是可行、高效、可靠的。