在嵌入式系统开发中,安全问题日益受到重视。STM32H563ZI作为ST公司推出的一款高性能微控制器,支持TrustZone技术,允许开发者在同一个芯片上同时运行安全和非安全代码。
本文将带您了解如何在NUCLEO-H563ZI开发板上,使用SEGGER工具和embOS实时操作系统,embOS在非安全模式中运行,同时任务可以调用安全模式中的函数,实现安全与非安全环境的协同工作。

一、STM32H563ZI与embOS介绍
STM32H563ZI是一款基于ARM CortexM33内核的微控制器,具备高达480 MHz的处理速度和丰富的外设支持。
自1992年以来,embOS一直是嵌入式市场中工程师的首选实时操作系统(RTOS)。它易于使用,并保证任何嵌入式设备都能实现100%确定性实时操作。embOS高度可移植,并且在所有平台上完全源代码兼容,这使得将应用程序移植到不同的核心变得很容易。
二、开发环境配置
MCU: STM32H563ZI
开发板: NUCLEO-H563ZI
开发工具: SEGGER Embedded Studio v8.14a
调试器: SEGGER J-Link
实时操作系统: SEGGER embOS 5.18.3.0
三、安全与非安全项目的内存布局
STM32H563ZI_secure项目:
Flash: 0x0C0000000x0C0FFFFF
RAM: 0x300000000x3004EFFF
STM32H563ZI_non_secure项目:
Flash: 0x081000000x081FFFFF
RAM: 0x200500000x2009FFFF(非安全应用)
0x3004F0000x3004FFFF(安全函数)
三、硬件初始化与函数调用
STM32H563ZI_secure项目:
所有I/O默认为安全,释放GPIOB、GPIOF和GPIOG到非安全以供LED闪烁。
系统时钟源配置为HSI(64 MHz)。
内部SRAM默认为安全,配置SRAM3为非安全。
跳转到非安全模式,获取主栈的初始值和重置处理程序的地址。
安全函数可通过embOS和非安全应用程序调用。
STM32H563ZI_non_secure项目:
安全任务:增加非安全计数器,调用安全函数IncrementCounter_S()增加安全计数器,需要安全模式的上下文扩展。
高优先级任务(HPTask)和低优先级任务(LPTask):切换红色和黄色LED。
联系我们
CONTACT INFORMATION
Windway Technology Hong Kong Limited
Phone: +852 695 952 92
Email: kuang@windway.cn
Add:ROOM 06 BLK A 23/F HOVER IND BLDG ,26-38 KWAI CHEONG RD KWAI CHUNG N.T
广州市风标电子技术有限公司
咨询热线:020 - 8600 3016 | 技术支持:15817074644
销售热线:18928802261 | 19868005704
公司邮箱:sales@windway.cn公司地址:广东省广州市黄埔区科珠路203号广东软件园F座401