PSoC 4和PSoC 6 MCU软件体系结构之间的差异 – KBA220606 (ZH)
Author: LinglingG_46
Version: **
问题: PSoC® 4和PSoC 6 MCU的软件体系结构之间的主要区别是什么?我可以把PSoC 4固件直接移植到PSoC 6 MCU吗?
答案:为其它PSoC架构创建的固件与PSoC 6不兼容。主要的不同是PSoC 6是双核架构,且同时具有Arm® Cortex®-M0+和Cortex-M4核。创建PSoC 6工程时必须为每个核提供代码(例如main.c文件)。
此外,PSoC 4和PSoC 6 MCU器件都使用基于组件的API。但是,对于PSoC 6 MCU,API建立在外围设备驱动程序库(PDL)v3.0.x。每个组件都经过了重新设计,以透明地支持双核体系结构。从固件的角度来看,这意味着为PSoC 4生成的代码和API与PSoC 6和PDL不兼容。
例如,对于SCB UART组件。你可以使用基于组件的函数来启用外设。
UART_Start();
其中UART是SCB UART组件实例的名称。该调用背后的实际生成代码对于PSoC 4和PSoC 6 MCU完全不同。其它UART API调用也不同,具有不同的参数。对于PSoC 6 MCU, 基于API的组件是PDL函数的封装。函数UART_Start()调用PDL函数Cy_SCB_UART_Init()。
对于PSoC 6 MCU, 您可以直接调用PDL函数,而无需使用PSoC Creator组件API。在这种情况下,您将编写:
Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context);
其中UART_HW, UART_config和UART_context是指向硬件基址的指针,指向实例具体的配置结构的指针和指向上下文结构的指针。PDL使开发人员如果选择这样做,则无需使用PSoC CreatorTM的PSoC 6 MCU架构。
但是,当您在TopDesign上放置组件的实例时,PSoC Creator会生成包含所有您的设置的结构。固件可以在PDL函数调用中使用这些生成的结构,从而简化固件的开发。
同样,BLE API已重新设计为支持双核体系结构。具有BLE的PSoC 6 MCU的BLE源代码连接作为PDL的中间件工。PSoC 6 MCU中用于BLE的API与PSoC 4 BLE/PRoCTM BLE不同,因此使用一个固件的固件不能直接移植到另外一个固件。
此外,PSoC4和PSoC6中的bootloader架构的设计过程有所不同。PSoC 6使用赛普拉斯Bootloader SDK。作为赛普拉斯外围驱动器库(PDL)3.0.x的一部分提供。它是由一组可调用函数和其它函数组成的API支持快速引导加载程序开发的元素。有关更多详细信息,请参见AN213924-PSoC6 MCU Bootloader 软件开发套件(SDK)指南。
有关PDL的更多详细信息,请参阅PDL用户指南,可以在目录<PDL Installation directory>\doc中找到。此外,有关开发的更多详细信息可以参考下面文档: