3832|2

227

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

如何在ARMv8-M架构处理器上集成FreeRTOS? [复制链接]

 

基于ARMv8-M架构的Cortex-M系列(Cortex-M33和Cortex-M23)微控制器中引入了TrustZone技术。通过TrustZone可在单个处理器中启用两个安全(security)域,将执行空间划分为安全和非安全分区。在安全端执行的可信软件和非安全端执行的不可信软件之间实现完全隔离来增强安全性。

安全端提供的函数如果允许非安全端软件调用,需将这些函数必须放在标记为非安全可调用 (NSC) 的内存区域中。

使用 TrustZone后,应用程序由两个独立的项目组成:

1、在安全端运行的安全应用程序

2、在非安全端运行的应用程序

ARMv8-M 内核启动后默认为安全端,由安全软件负责对安全属性单元 (SAU) 和实现定义属性单元 (IDAU) 进行编程,将内存空间划分为安全和非安全区域。安全端的软件可以访问安全和非安全内存,而非安全端的软件只能访问非安全内存。

如何在支持TrustZone的ARMv8-M架构处理器上使用FreeRTOS?

 

1、FreeRTOS for ARMv8-M移植

FreeRTOS内核提供了ARMv8-M(ARM Cortex-M33 和 ARM Cortex-M23)移植代码:

 

可以在安全或非安全端运行。允许非安全任务(或线程)调用安全端函数。

当 FreeRTOS 内核在非安全端运行时,TrustZone支持可选。仅允许FreeRTOS内核代码的权限提升。

应用中,FreeRTOS通常运行在非安全端,用户任务可以调用安全端软件导出的函数。

2、FreeRTOS示例工程

最简单的入门方法是使用FreeRTOS/Demo中的示例项目:

🔸基于Keil uVision IDE的Keil simulator

🔸基于MCUXpresso IDE的NXP LPCXpresso55S69开发板示例

🔸基于Keil uVision和IAR IDE的Nuvoton NuMaker-PFM-M2351开发板示例

这些项目可以直接使用,也可以用作源文件、配置选项和编译器设置的示例参考。

3、FreeRTOS集成

FreeRTOSConfig.h配置

当FreeRTOS在非安全端运行时,使FreeRTOS任务能够调用NSC安全函数,需在FreeRTOSConfig.h中,使能TrustZone支持:

#define configENABLE_TRUSTZONE   1

构建工程

除FreeRTOS内核源代码外,还需要在安全项目和非安全项目中添加移植文件:

安全项目中编译的源文件:FreeRTOS\Source\portable\[compiler]\[architecture]\secure

非安全项目中编译的源文件:FreeRTOS\Source\portable\[compiler]\[architecture] \non_secure

其中[architecture]为ARM_CM23或ARM_CM33,取决于目标硬件。

定义安全函数为NSC

使用宏secureportNON_SECURE_CALLABLE声明安全函数可从非安全端调用。

SecureportNON_SECURE_CALLABLE void NSCFunction(void);

安全项目的链接描述文件中需将NSC函数放置在NSC内存区域中。GCC放置示例如下:

为非安全任务分配安全上下文

需要调用NSC函数的FreeRTOS任务必须调用portALLOCATE_SECURE_CONTEXT宏来分配安全上下文:

通过上述操作,即可轻松地将FreeRTOS集成到TrustZone架构处理器中。FreeRTOS 现已通过物联网平台安全评估标准 (SESIP™) 的2级和平台安全架构规范(PSA)的1级认证,更好的满足基于TrustZone硬件的信息安全(Security)应用需求。

最新回复

tee,这东西挺麻烦,但是涉及到安全又不得不这么麻烦。   详情 回复 发表于 2021-8-4 16:41
点赞 关注
个人签名

欢迎关注“麦克泰技术”

 

回复
举报

7671

帖子

18

TA的资源

五彩晶圆(高级)

沙发
 

tee,这东西挺麻烦,但是涉及到安全又不得不这么麻烦。

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

227

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
freebsder 发表于 2021-8-4 16:41 tee,这东西挺麻烦,但是涉及到安全又不得不这么麻烦。

是滴~~

 
个人签名

欢迎关注“麦克泰技术”

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表