一、概述
本文主要介绍如何通过相关配置,使 Semidrive E3 芯片中的 SF 和 SP0 core 分别运行一套 FreeRTOS 操作系统。
以 multicore-xip 示例作为基础,参考 FreeRTOS-xip 示例的配置,将 FreeRTOS 移植至 SF 和 SP0 core 工程上,使 SF 和 SP0 core 分别运行一套 FreeRTOS 系统,更多 core 运行 FreeRTOS 也可参考相同方法实现。
硬件设备:E3640 GATEWAY 开发板
软件包:SSDK PTG3.0
调试器:J-Link
图 1.1 E3640 Gateway 开发板
二、SDK 下载
使用 SemiDrive support 系统上的 SSDK Builder,选择型号 E3640 和示例 app_demo/multicore-xip 及 FreeRTOS-xip 生成参考代码。
FreeRTOS-xip 示例主要介绍以 xip 方式运行 FreeRTOS,但只有 SF 核单独运行。
multicore-xip 示例主要介绍所有的 core 程序都以 xip 方式运行在 flash 上,由 bootloader boot 其余核的示例。
三、具体配置内容
1. sf 工程
1.1 在 sf 工程中的 main.c 内添加相关头文件。
图 3.1 sf 工程添加头文件
1.2 在 main() 函数中添加中断初始化,创建 task 并启动任务调度,屏蔽不相关代码。
图 3.2 sf 工程 main() 函数修改内容
1.3 添加 TaskA_Entry() 函数。
图 3.3 sf 工程添加 TaskA_Entry() 函数
1.4 修改 config.h 文件,添加 OS 相关宏定义。