查看: 8357|回复: 4

【PSoC4 试用报告】试用Bootloader和Bootloadable引导加载程序

[复制链接]
发表于 2013-11-18 19:08:31 | 显示全部楼层 |阅读模式
关键词: PSoC , Bootloader , Bootloadable , 引导加载 , 程序
        一、概述
        Bootloader  系统使用新应用代码和/或数据管理组件闪存的更新流程。为了使流程生效,我们使用以下组件:
        Bootloader 工程 - 包含 Bootloader 和通信组件的工程
        Bootloadable 工程- 包含用于创建代码的 Bootloadable 组件的工程

       1Bootloader  组件
       Bootloader 组件允许用户对组件闪存进行代码更新。Bootloader  接受并执行命令,然后将这些命令的响应传回通信组件。Bootloader 收集并整理接收到的数据,并通过一个简单的命令/状态寄存接口管理对闪存的写入操作。
        工程应用类型需与原理图上放置的组件匹配。例如,对于 Bootloader 工程,将应用类型设置为 Bootloader 并将 Bootloader 组件放置在原理图上。

       2、通信组件
       通信组件管理通信协议从外部系统接收命令,然后将这些命令传递到 Bootloader 。它还将 Bootloader 的命令响应传递回片外系统。

       3Bootloadable 组件
       使用 Bootloadable 组件时,可以为 Bootloadable 项目指定附加参数。

       二、应用程序编程 (API )接口

       应用程序编程接口 (API) 库例程允许您使用软件配置组件。下表列出了每个函数的接口并进行了说明。以下各节将更详细地介绍每个函数。
       默认情况下,PSoC Creator 将实例名称“Bootloade _1”分配给指定设计中的 Bootloader 组件的第一个实例,将“Bootloadable_1”分配给 Bootloadable 组件的第一个实例。您可以将该实例重命名为符合标识符语法规则的任意唯一值。实例名称会成为每个全局函数名称、变量和常量符号的前缀。出于可读性考虑,下表中使用的实例名称为“Bootloader” 和  “Bootloadable”。
       Bootloader 和  Bootloadable 的函数

                   2.jpg

        三、功能描述

       1Bootloader Bootloadable 的函数
Bootloader 工程通过 Bootloader工程的通信组件可将 Bootloadable 工程(或新代码)整体烧写到闪存中。传输后,会始终对处理器进行复位。Bootloader 工程还负责在复位时测试特定条件,并有可能在 Bootloadable 工程不存在或损坏的情况下自动启动传输操作。
       启动时,Bootloader  代码加载其自己配置的配置字节。此外还必须初始化堆栈和其他资源以及外设以便进行传输。传输完成后,控件通过软件复位传递到 Bootloadable 中。
        然后, Bootloadable 加载其自己配置的配置字节,并对堆栈及其函数的其他资源和外设重新进行初始化。 Bootloadable 可调用其中的 Bootloadable_Load() 函数,以切换为引导加载应用程序(这会再次造成软件复位)。
下图显示了 Bootloader 的工作原理。

                         3.jpg
        2Bootloader 应用程序
        通常,您可以通过将 Bootloader 组件和通信组件拖到原理图上、将 I/O 路由至引脚、设置时钟等操作来完成 Bootloader 设计工程。包含 Bootloader 组件和通信组件的工程实现基本引导加载应用程序函数的新代码接收并将其写入闪存。您可以通过将其他组件拖到原理图上或添加源代码来向基本的 Bootloader 工程添加自定义函数。

       3Bootloadable 应用
       Bootloadable 应用实际上就是代码。它与常规应用类型非常相似。主要区别是,Bootloadable 应用始终与引导加载应用相关联,而常规工程从不会与引导加载应用关联。

        四、应用例子
        以上经典描述,显得生涩难懂,不知所云,难以理解。下面几个例子就是BootloaderBootloadable工程程序,在The PSoS 4 kit CY8CKIT-042开发板上的试用,目的是了解引导加载应用程序的实现、特点(与常规工程应用相比)和过程。

       一)、UART Bootloader工程

       UART Bootloader工程有三个项目:UART_Bootloader、Bootloadabie1Bootloadabie2。建造完毕(过程略)、硬件连接(UART和PSoC 5LP 之间P0.0-P12.7P0.1-P12.6的连接)后,经BuildProgramCY8CKIT-042USB接口与PC相连)成功后,可以进行工作。

                     4.jpg
                                          5.jpg
        1UART_Bootloader项目

                     6.jpg

        这时可以看到CY8CKIT-042板上RGB LED红灯闪亮,原理图如下:
                                             7.jpg
         说明Bootloader处于等待引导加载命令状态,UART是通信组件,配置给Bootloader组件,PWM已处于工作状态,脉冲输出分配给P1.6管脚,红灯点亮。
         组件和组件配置见附件UART_Bootloader_Project图片.
        软件及其它见附件:UART_Bootloader_Project.

        2Bootloadabie1项目
        Bootloadabie1配置有UART_Bootloader.hex代码,点压CY8CKIT-042板上的“SW2”按钮,系统处于Bootloader处于等待引导加载命令状态,CY8CKIT-042板上RGB LED红灯闪亮;打开Bootloader  Host  Application (UARTBootloaderHost.exe,在附件文件夹:UART_Bootloader_Project), 选择通信端口COM(PC设备管理器查找),点击Connect按钮进行连接;连接成功后,选择引导加载文件(从文件夹里查找,路径...\Bootloadable1.cydsn\CortexM0\ARM_GCC_441\Debug\Bootloadable1.cyacd),点击“Bootload” 按钮引导加载文件, 引导加载成功后,点亮CY8CKIT-042板上RGB LED绿灯。

                                  8.jpg
                        9.jpg

        实现原理图如下:
                                     10.jpg
        组件和组件配置见附件UART_Bootloader_Project图片.
        软件及其它见附件:UART_Bootloader_Project.

       3Bootloadabie2项目
       过程与“2Bootloadabie1项目”完全相同,只不过加载的是“Bootloadable1.cyacd”代码文件,点亮的是CY8CKIT-042板上RGB LED蓝灯。同样,点压CY8CKIT-042板上的“SW2”按钮,系统处于Bootloader处于等待引导加载命令状态,CY8CKIT-042板上RGB LED红灯闪亮,RGB LED其它灯灭,可以引导加载“Bootloadable1.cyacd”代码文件等循环过程。

                   11.jpg
                   12.jpg

       实现原理图如下:
                                  13.jpg
        组件和组件配置见附件UART_Bootloader_Project图片.
        软件及其它见附件:UART_Bootloader_Project.

        4、视频:
                 

        5.附件:
          UART_Bootloader_Project.zip (5.95 MB)
          UART_Bootloader_Project图片.zip (750.59 KB)

二)、I2C Bootloader工程

(河南 薛)
发表于 2013-11-20 21:56:41 | 显示全部楼层
发表于 2013-11-22 22:33:29 | 显示全部楼层
发表于 2015-2-22 14:37:48 | 显示全部楼层
支持一下
发表于 2017-5-2 10:25:27 | 显示全部楼层
非常感谢,资源正是需要的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表