【PSoC4 试用报告】试用Bootloader和Bootloadable引导加载程序
2013年11月18日 19:08 发布者:1770309616
一、概述 Bootloader 系统使用新应用代码和/或数据管理组件闪存的更新流程。为了使流程生效,我们使用以下组件: Bootloader 工程 - 包含 Bootloader 和通信组件的工程 Bootloadable 工程- 包含用于创建代码的 Bootloadable 组件的工程 1、Bootloader 组件 Bootloader 组件允许用户对组件闪存进行代码更新。Bootloader 接受并执行命令,然后将这些命令的响应传回通信组件。Bootloader 收集并整理接收到的数据,并通过一个简单的命令/状态寄存接口管理对闪存的写入操作。 工程应用类型需与原理图上放置的组件匹配。例如,对于 Bootloader 工程,将应用类型设置为 Bootloader 并将 Bootloader 组件放置在原理图上。
2、通信组件 通信组件管理通信协议从外部系统接收命令,然后将这些命令传递到 Bootloader 。它还将 Bootloader 的命令响应传递回片外系统。
3、Bootloadable 组件 使用 Bootloadable 组件时,可以为 Bootloadable 项目指定附加参数。
二、应用程序编程 (API )接口
应用程序编程接口 (API) 库例程允许您使用软件配置组件。下表列出了每个函数的接口并进行了说明。以下各节将更详细地介绍每个函数。 默认情况下,PSoC Creator 将实例名称“Bootloade _1”分配给指定设计中的 Bootloader 组件的第一个实例,将“Bootloadable_1”分配给 Bootloadable 组件的第一个实例。您可以将该实例重命名为符合标识符语法规则的任意唯一值。实例名称会成为每个全局函数名称、变量和常量符号的前缀。出于可读性考虑,下表中使用的实例名称为“Bootloader” 和 “Bootloadable”。 Bootloader 和 Bootloadable 的函数

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

3、Bootloadable 应用 Bootloadable 应用实际上就是代码。它与常规应用类型非常相似。主要区别是,Bootloadable 应用始终与引导加载应用相关联,而常规工程从不会与引导加载应用关联。
四、应用例子 以上经典描述,显得生涩难懂,不知所云,难以理解。下面几个例子就是Bootloader、Bootloadable工程程序,在The PSoS 4 kit CY8CKIT-042开发板上的试用,目的是了解引导加载应用程序的实现、特点(与常规工程应用相比)和过程。
一)、UART Bootloader工程
UART Bootloader工程有三个项目:UART_Bootloader、Bootloadabie1和Bootloadabie2。建造完毕(过程略)、硬件连接(UART和PSoC 5LP 之间P0.0-P12.7、P0.1-P12.6的连接)后,经Build和Program(CY8CKIT-042经USB接口与PC相连)成功后,可以进行工作。



这时可以看到CY8CKIT-042板上RGB LED红灯闪亮,原理图如下:

2、Bootloadabie1项目 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绿灯。


实现原理图如下:

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


实现原理图如下:

4、视频:
http://player.youku.com/player.php/sid/XNjM1OTU0MjA0/v.swf
5.附件: 127976 127977
二)、I2C Bootloader工程
(河南 薛)
网友评论
chenyuanzhi1989 2013年11月22日
:victory:
:victory:
pcbkey 2015年02月22日
支持一下
支持一下
vikings335 2017年05月02日
非常感谢,资源正是需要的
非常感谢,资源正是需要的
好