ModusToolbox软件是英飞凌官方提供的物联网应用开发平台

https://www.infineon.com/design-resources/development-tools/sdk/modustoolbox-software
ModusToolbox软件提供软件安装管理、BSP配置、MCU外设配置、工程创建、软件组件管理等功能,完成从底层MCU硬件配置、组件管理、应用程序开发和调试的全流程管理。

ModusToolbox软件由于ModusToolbox Setup管理和安装。

使用到的软件包含基础的开发环境、工具链、软件包等,用于实现MCU工程的创建、编译等功能。ModusToolbox软件生态中还包含用于AI模型训练和部署的DEEPCRAFT工具集、烧录使用的ModusToolbox Programming tools以及MCU安全管理套件等功能软件包。
通过ModusToolbox Setup能方便地安装和管理需要的开发软件。
1、ModusToolbox创建开发板示例工程和烧录PSOC Edge E84 AI Kit属于官方的开发板,ModusToolbox Project Creator支持创建基于该开发板的示例程序,ModusToolbox Dashboard中选择创建工程的平台类型为Eclipse for ModusToolbox。

IDE中选择创建新的应用

选择开发板对应的BSPKIT_PSE84_AI,设置ModusToolbox Settings->Manifest DB的位置设置为Default China Manifest DB,提高资源的获取速度

选择开发板支持的示例工程,

由于PSOC Edge E84是多核芯片,而且CortexM33内核分为安全程序和非安全程序,生成的示例工程的组成结构如下,在应用中包含cm33_ns、cm33_s以及cm55三个子工程。

示例应用的启动按照cm33_s->cm33_ns->cm55的顺序启动。

cm33_s工程的main.c中的代码设置cm33_ns程序镜像的首地址到No-Secure的MSP(Main Stack Pointer),以及设置NonSecure_ResetHandler函数的地址,调用NoSecure的复位中断从而启动cm33_ns程序。
EEPW_Taks1\bsps\TARGET_APP_KIT_PSE84_AI\system_edge.h
#if (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) /** \brief CMSE void function pointer */ typedef void (*cy_cmse_funcptr) (void) __attribute__((cmse_nonsecure_call)); #endif // (CY_SYSTEM_CPU_M33) && defined(COMPONENT_SECURE_DEVICE) && defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
EEPW_Taks1\proj_cm33_s\main.c
uint32_t ns_stack; cy_cmse_funcptr NonSecure_ResetHandler; ns_stack = (uint32_t)(*((uint32_t*)CM33_NS_APP_BOOT_ADDR)); __TZ_set_MSP_NS(ns_stack); NonSecure_ResetHandler = (cy_cmse_funcptr)(*((uint32_t*)(CM33_NS_APP_BOOT_ADDR + 4))); /* Start non-secure application */ NonSecure_ResetHandler();
cm33_ns启动,指定CM55的固件首地址,调用Cy_SysEnableCM55启动CM55程序。
EEPW_Taks1\proj_cm33_ns\main.c
/* App boot address for CM55 project */
#define CM55_APP_BOOT_ADDR (CYMEM_CM33_0_m55_nvm_START + \
CYBSP_MCUBOOT_HEADER_SIZE)
int main(void)
{
.......
/* Enable CM55. */
/* CM55_APP_BOOT_ADDR must be updated if CM55 memory layout is changed.*/
Cy_SysEnableCM55(MXCM55, CM55_APP_BOOT_ADDR, CM55_BOOT_WAIT_TIME_USEC);
......
}编译工程和下载固件到开发板

串口输出的信息如下

我要赚赏金
