二、从0开始卷出一个新项目之瑞萨RZT2M双核架构通信和工程构建

一、概述

  • RZT2M双核架构是同构多核,但双核针对不同应用

  • 扩展多核架构和通信知识可参见嵌入式科普(30)一文看懂嵌入式MCU/MPU多核架构与通信

二、参考资料

  • 用户手册:RZ/T2M Group User's Manual: Hardware

  • R52内核手册:arm_cortex_r52_processor_trm

三、RZT2M双核架构和通信

3.1 R52内核GIC-SCI

图片

3.2 RZT2M信号量

图片

3.3 架构通信示意图

图片

fsp_err_t R_SHARED_MEMORY_Read (shared_memory_ctrl_t * const p_ctrl,uint8_t * const              p_dest,uint32_t const               offset,uint32_t const               bytes)
{shared_memory_instance_ctrl_t * p_instance_ctrl = (shared_memory_instance_ctrl_t *) p_ctrl;volatile uint32_t               resource_status = 0;#if SHARED_MEMORY_CFG_PARAM_CHECKING_ENABLEFSP_ASSERT(p_instance_ctrl != NULL);FSP_ASSERT(p_dest != NULL);/* Return an error if this module have already been opened */FSP_ERROR_RETURN(SHARED_MEMORY_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN);
#endifif ((p_instance_ctrl->p_cfg->memory_size < (offset + bytes)) || (p_instance_ctrl->p_cfg->memory_size < offset) ||(p_instance_ctrl->p_cfg->memory_size < bytes)){return FSP_ERR_INVALID_ARGUMENT;}resource_status = r_shared_memory_read_resource_status(p_instance_ctrl->p_cfg->semaphore_reg);if (0x00000000 == resource_status) // wait Shared memory available{return FSP_ERR_IN_USE;}memcpy(p_dest, &p_instance_ctrl->p_cfg->p_memory[offset], bytes);r_shared_memory_release_resource(p_instance_ctrl->p_cfg->semaphore_reg); // Shared memory becomes availableif (SHARED_MEMORY_STATE_READY_TO_READ_WRITE == p_instance_ctrl->state){p_instance_ctrl->state = SHARED_MEMORY_STATE_READY_TO_WRITE;}return FSP_SUCCESS;
}/******************************************************************************************************************//*** Performs a write to the shared memory. Implements @ref shared_memory_api_t::write().** @retval  FSP_SUCCESS        Function executed without issue.* @retval  FSP_ERR_ASSERTION  p_ctrl or p_src is NULL.* @retval  FSP_ERR_INVALID_ARGUMENT    Invalid input parameter.* @retval  FSP_ERR_IN_USE     Another transfer was in progress.* @retval  FSP_ERR_NOT_OPEN   Module is not open.*********************************************************************************************************************/
fsp_err_t R_SHARED_MEMORY_Write (shared_memory_ctrl_t * const p_ctrl,uint8_t * const              p_src,uint32_t const               offset,uint32_t const               bytes)
{shared_memory_instance_ctrl_t * p_instance_ctrl = (shared_memory_instance_ctrl_t *) p_ctrl;volatile uint32_t               resource_status = 0;#if SHARED_MEMORY_CFG_PARAM_CHECKING_ENABLEFSP_ASSERT(p_instance_ctrl != NULL);FSP_ASSERT(p_src != NULL);/* Return an error if this module have already been opened */FSP_ERROR_RETURN(SHARED_MEMORY_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN);
#endificu_inter_cpu_irq_instance_t * p_software_int_tx =(icu_inter_cpu_irq_instance_t *) ((shared_memory_extended_cfg_t *) p_instance_ctrl->p_cfg->p_extend)->p_software_int_tx;if ((p_instance_ctrl->p_cfg->memory_size < (offset + bytes)) || (p_instance_ctrl->p_cfg->memory_size < offset) ||(p_instance_ctrl->p_cfg->memory_size < bytes)){return FSP_ERR_INVALID_ARGUMENT;}resource_status = r_shared_memory_read_resource_status(p_instance_ctrl->p_cfg->semaphore_reg);if (0x00000000 == resource_status) // wait Shared memory available{return FSP_ERR_IN_USE;}memcpy(&p_instance_ctrl->p_cfg->p_memory[offset], p_src, bytes);__asm("dmb sy");                                                         /*Ensuring data-changing */r_shared_memory_release_resource(p_instance_ctrl->p_cfg->semaphore_reg); // Shared memory becomes availablep_software_int_tx->p_api->generate(p_software_int_tx->p_ctrl);return FSP_SUCCESS;
}

四、双核工程

使用e2studio 2024-10 RZN-fsp2.2.0,可以直接新建向导RZT2M双核工程。小于等于2.0版本不可。

4.1 CPU1工程设置

图片

arm-none-eabi-objcopy -I elf32-littlearm -O binary ${ProjName}.elf secondary.bin && arm-none-eabi-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.secondary,alloc,data,readonly,load,contents secondary.bin secondary.o

4.2 CPU0工程设置

图片

"${workspace_loc:/rzt2m_coremark_fsp220_cpu1/Debug/secondary.o}"

4.3 工程编译

图片

4.4 双核启动

图片

五、总结

  • RZT2M同构双核,分主副core

  • 两个工程关联在一起(fsp2.2.0)

  • 先启动cpu0,后启动cpu1(fsp2.2.0)

    图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HF设计模式】07-适配器模式 外观模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第7章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍适配器模式和外观模式&#xff0c;包括遇到的问题、采用的解决方案、遵循…

RDMA 高性能通信技术原理

目录 文章目录 目录DMA 与 RDMARDMA 特性和优势大带宽低延时 RDMA 协议栈标准RDMA 运行原理通信通路通信模型通信方式内存注册QP 建链常规流程双向控制 Send-Receive API 流程单向数据 Write API 流程单向数据 Read API 流程 RDMA Verbs API 编程基础网络连通性RDMA C/S 程序 D…

HCIA项目实践(网络)---NAT地址转化技术

十三 NAT网络地址转换技术 13.1 什么是NAT NAT&#xff08;Network Address Translation&#xff09;地址转换技术&#xff0c;是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…

【JAVA工程师从0开始学AI】,第四步:闭包与高阶函数——用Python的“魔法函数“重构Java思维

副标题&#xff1a;当严谨的Java遇上"七十二变"的Python函数式编程 历经变量战争、语法迷雾、函数对决&#xff0c;此刻我们将踏入Python最迷人的领域——函数式编程。当Java工程师还在用接口和匿名类实现回调时&#xff0c;Python的闭包已化身"智能机器人"…

el-tree选中数据重组成树

vueelement-ui 实现el-tree选择重新生成一个已选中的值组成新的数据树&#xff0c;效果如下 <template><div class"flex"><el-tree class"tree-row" :data"list" ref"tree" :props"{children: children, label: …

测试常见问题汇总-检查表(持续完善)

WEB页面常见的问题 按钮功能的实现&#xff1a;返回按钮是否可以正常返回 信息保存提交后&#xff0c;系统是否给出“成功”的提示信息&#xff0c;列表数据是否自动刷新 没有勾选任何记录直接点【删除】&#xff0c;是否给出“请先选择记录”的提示 删除是否有删除确认框 …

java后端开发day16--字符串(二)

&#xff08;以下内容全部来自上述课程&#xff09; 1.StringBuilder 因为StringBuilder是Java已经写好的类。 java在底层对他进行了一些特殊处理。 打印对象不是地址值而是属性值。 1.概述 StringBuilder可以看成是一个容器&#xff0c;创建之后里面的内容是可变的。 作用…

C++效率掌握之STL库:vector函数全解

文章目录 1.为什么要学习vector&#xff1f;什么是vector&#xff1f;2.vector类对象的常见构造3.vector类对象的容量操作4.vector类对象的迭代器5.vector类对象的元素修改6.vector类对象的元素访问7.vector迭代器失效问题希望读者们多多三连支持小编会继续更新你们的鼓励就是我…

人工智障的软件开发-容器化编码环境就绪-java-env

指令接收&#xff1a;「需要万能开发环境」 系统警报&#xff1a;检测到主人即将陷入"环境配置地狱" 启动救赎协议&#xff1a;构建量子化开发容器 终极目标&#xff1a;让"在我机器上能跑"成为历史文物 需求分析&#xff1a;碳基生物的先天缺陷 人类开发…

kkFileView二开之pdf转图片接口

kkFileView二开之Pdf转图片接口 kkFileView二开系列文章&#xff1a;1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 kkFileView二开系列文章&#x…

阅读论文笔记《Efficient Estimation of Word Representations in Vector Space》

这篇文章写于2013年&#xff0c;对理解 word2vec 的发展历程挺有帮助。 本文仅适用于 Word2Vect 的复盘 引言 这篇论文致力于探索从海量数据中学习高质量单词向量的技术。当时已发现词向量能保留语义特征&#xff0c;例如 “国王 - 男人 女人≈女王”。论文打算借助该特性&am…

SQL注入(SQL Injection)详解与实战

文章目录 一、什么是SQL注入&#xff1f;二、常见SQL注入类型三、手动注入步骤&#xff08;以CTF题目为例&#xff09;四、CTF实战技巧五、自动化工具&#xff1a;SQLMap六、防御措施七、CTF例题八、资源推荐 一、什么是SQL注入&#xff1f; SQL注入是一种通过用户输入构造恶意…

维护ceph集群

1. set: 设置标志位 # ceph osd set <flag_name> # ceph osd set noout # ceph osd set nodown # ceph osd set norecover 2. unset: 清除标志位 # ceph osd unset <flag_name> # ceph osd unset noout # ceph osd unset nodown # ceph osd unset norecover 3. 标志…

学习threejs,使用PointLight点光源

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.PointLight 二、&…

java连接redis

1.使用 1.创建java工程 2.引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.2.0</version> </dependency> 3. //1.获取jedis对象&#xff0c;把所有对redis的操作都封装到…

论文笔记(七十二)Reward Centering(一)

Reward Centering&#xff08;一&#xff09; 文章概括摘要1 奖励中心化理论 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…

强化学习笔记7——DDPG到TD3

前提&#xff1a;基于TD 的方法多少都会有高估问题&#xff0c;即Q值偏大。原因两个&#xff1a;一、TD目标是真实动作的高估。 二&#xff1a;自举法高估。 DDPG 属于AC方法&#xff1a;异策略&#xff0c;适合连续动作空间&#xff0c;因为他的策略网络直接输出的动作&#…

算法——结合实例了解Minimax算法(极小化极大算法)

计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子&#xff0c;最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏&#xff0c;程序趋向于遵循一个被称为Minimax算法&#xff0c;伴随着各种各样的子算法在一块。本篇将简要介绍 minimax 算法&#…

腿足机器人之四- 卡尔曼滤波

腿足机器人之四卡尔曼滤波 概率学基础贝叶斯准则熵 卡尔曼滤波扩展卡尔曼滤波信息滤波器 在机器人&#xff08;四足、人形&#xff09;领域&#xff0c;感知和行动的不确定性可能由多种因素引起&#xff0c;如传感器噪声、外部环境的变化、非精确控制以及实时性算力限制等。 和…

基于AWS云平台的法律AI应用系统开发方案

该方案可实现法律文档处理速度提升300%&#xff0c;关键信息提取准确率可达92%以上&#xff08;基于实际测试数据&#xff09;&#xff0c;适合构建企业级法律智能中台。建议采用分阶段实施策略&#xff0c;优先实现文档解析和智能问答模块。 一、技术栈规划 层级技术组件说明…