在pic18单片机中使用bootloader(doc)-经营管理(编辑修改稿)内容摘要:
个 PIC 单片机的芯片,都需要设置正确的程序配置字后才能正常运行。 虽然在 BootLoader 中是可以修改配置字的,但是这样并不安全,也不方便。 一般情况下,程序配置字设定后是不需要修改的,所以配置字在烧写 BootLoader 程序时就一起写入单片机芯片,以后就只使用 BootLoader 来升级 (烧写 )程序,这样不会破坏芯片的配置字。 ( 7) 调试用户程序 平时,在编写和调试用户程序时,还是和正常方式一样,单片机中不包含BootLoader 程序,也不设置偏移量(或者设置为 0),以方便使用 ICD2 等仿真器进行程序仿真。 等程序调试好后,再修改程序的偏移量为 200H,并重新编译程序,产生最终的用户 HEX 代码。 这样编译好的程序才可以使用 BootLoader 进行下载。 第 4 页 共 7 页 此资料来自 ( 8) 下载用户程序 使用 HITECH 的 BootLoader 程序,在下载用户程序到单片机中时,可以不需要特殊的下载程序,只需要使用 Windows 自带的超级终 端程序就可以了。 超级终端的通信参数需要设置成和 BootLoader 程序的一样,包括波特率、校验、数据位、停止位等。 首先连接好串口线,再启动超级终端程序,然后复位单片机(单片机中应当已经写入了 BootLoader 程序)。 这时,在超级终端的窗口中会显示出一个倒计时的计数器,计数器的初始值就是上面的 BOOT_TIMEOUT 参数。 计数器每秒钟刷新一次。 当计数器为 0 时,就会运行以前的程序。 如果这期间从超级终端输入任意数据(就是随便按一个键,或者说单片机从串口上接收任意数据),计数器就会停止计数,进入升级状态。 这 时 BootLoader 程序会首先擦除旧的程序空间,然后屏幕上会显示出一个冒号 “: ”,提示等待下载用户程序。 这时就可以从超级终端的菜单中选取传送 → 发送文本文件,选择编译好的 HEX 文件即可。 如果下载成功,超级终端的窗口中会显示出一个小括号 “)”,提示下载已经完成,同时用户程序会自动开始运行。 使用BootLoader 下载时,因为串口的速度相对比较慢(与编程器相比),所以需要等待一会儿。 具体时间与用户程序的大小有关。 如果下载中出现错误,单片机会自动复位,进入倒计数状态,重复上面的过程。 使用超级终端比较简单,不需要特 殊的下载软件;但是缺乏交互性,没有进程指示,如果下载过程中出现错误也不能停止下来。 3 BootLoader 程序的改进 ( 1) HITECH 的 BootLoader 程序中存在的缺陷 虽然 HITECH 版本的 BootLoader 程序已经很方便了,具备了所有必需的基本要素;但是程序中存在着一些缺陷,甚至是很重大的隐患,不太适合于直接使用在实际工程中。 下面是主要存在的几个问题 ① BootLoader 是以从串口上接收任何数据为 标志进入 BootLoader 状态的。 进入BootLoader 状态后, BootLoader 程序做的第一件事情就是擦除以前程序的空间。 如果在实际使用中,单片机因为某种意外原因被复位,而且复位后运行 BootLoader 时在串口上有任何数据(如干扰信号或者系统正处于串口通信状态),就会造成用户程序的丢失。 ② BootLoader 程序中没有使用看门狗。 如果升级失败或者升级过程中程序死机,将不能恢复到初始的升级状态。 这对于直接串口连接的方式问题不大,但是需要使用远程升级时是一个致命的问题。 ③ 在写入用户程 序过程中如果出现数据错误,就会复位,而这时用户程序已经被部分写入了。 如果复位后运行 BootLoader 程序没有收到信号时,会启动用户程序。 这样残缺的用户程序就可能会造成运行故障和不可预料的结果。 如果看门狗是在用户程序中打开的,这时就有可能出现看门狗没有被启。在pic18单片机中使用bootloader(doc)-经营管理(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。