飞凌嵌入式T113-i开发板RISC-V核的实时应用方案

news/2024/11/23 5:46:38/

随着市场对嵌入式设备的功能需求越来越高,集成了嵌入式处理器和实时处理器的主控方案日益增多,以便更好地平衡性能与效率——实时核负责高实时性任务,A核处理复杂任务,两核间需实时交换数据。然而在数据传输方面,传统串行接口尽管成本较低,但其传输速率相对较慢;反之,并行接口虽然传输速度快,但成本却比较高。因此,单芯片多核异构处理器就成为能够满足需求的理想选择。

RISC-V作为一种开源指令集架构,以其简洁性、一致性、可扩展性以及高编译效率,为实时性处理场景提供了强大的支持。将A核与RISC-V核结合作为单芯多核异构方案,可以有效利用RISC-V的这些优势,实现高性能与高实时性的有效结合。

本文将以OK113i-S开发板为例,为大家介绍RISC-V核的资源和应用案例。

1、OK113i-S开发板的RISC-V核

嵌入式>飞凌嵌入式OK113i-S开发板是一款基于全志T113-i工业级处理器开发的高性价比开发板,集成了双核Cortex-A7 CPU、64位玄铁C906 RISC-V和DSP,能够提供高效的计算能力和性价比。尤为值得一提的是,其内置的RISC-V核心作为一款超高能效的实时处理器,主频峰值可达1008MHz,并标准配备了内存管理单元,能够流畅运行RTOS系统或裸机程序,进一步提升了应用灵活性。

1.1 RISC-V核的特性

(1) 最高主频可达1008MHz;
(2) 32KB指令缓存;
(3) 32KB数据缓存;
(4) 可运行于超大容量的DDR
... ...

1.2 RISC-V核的接口资源

2、应用实例

2.1 SPI数据收发

本案例为SPI回环测试,即将SPI的MOSI和MISO两个引脚短接进行数据收发。

(1) 功能介绍

(2) 效果实现

SPI发送和接收的FIFO均为64个,在底层hal库程序中,当数据长度小于64字节时,采用中断方式,当FIFO大于等于64字节时,采用DMA模式。

中断方式传输效果:

DMA方式传输效果:

在DMA传输方式下,SPI速率默认为5Mbit/s,案例中平均传输速率为580.43KB/s,即4.6Mbit/s,接近理论值。

2.2 核间通信RPbuf

RPbuf是全志基于RPMsg所实现一套高带宽数据传输的框架。RPMsg是基于共享内存和Msgbox中断实现的一套核间通信机制,RPMsg除去头部的16字节数据外,单次最多可发送496字节有效数据。因此,全志基于RPMsg实现了一套大数据量传输机制RPbuf,实现原理是在DDR中放置传输的数据,通过RPMsg传输DDR的地址和大小。我们以单次32KB数据传输为例进行展示。

(1) 功能介绍

• VirtIO:一套虚拟化数据传输框架,用于管理共享内存VRING;
• VRING:由VirtIO管理的一个环形共享内存;
• Msgbox:全志提供的一套消息中断机制,已与linux内核中原生的mailbox框架适配;
• MSGBOX_IRQ:Msgbox中断;
• RPMsg:基于VirtIO管理的共享内存所实现一套少量数据传输的框架;
• RPbuf:全志基于RPMsg所实现一套大量数据传输的框架。

由上图可知(以RISC-V核向A核发送数据为例),RPbuf首先将数据放置在DDR中,再将缓冲区首地址和大小通过RPMsg发送至A核(RPMsg将缓冲区首地址和大小放入VRING,然后请求Msgbox中断,A核收到这个中断后,在回调函数中使用RPMsg接口函数来从VRING中取出cmd)。

随后A核从cmd handler中获取缓冲区内的地址和长度,最后在应用层读取数据,从而完成双核间的数据传输。

(2) 效果展示

由上图测试效果可以看到,带宽大约为27~30Mbps。

以上就是嵌入式>飞凌嵌入式OK113i-S开发板RISC-V核部分外设的使用方法,是不是感觉和单片机的开发一样简单方便呢?


http://www.ppmy.cn/news/1549222.html

相关文章

Flutter踩坑记录(三)-- 更改入口执行文件

我们在flutter 中可能不习惯默认的lib/main.dart 作为入口文件,会修改成index.dart 或者修改main.dart的位置, 用Andorid studio开发 如果我们用Andorid studio开发,默认修改一下配置地址 运行项目即可。 用VSCode开发 如果我们使用VSCode开发&…

shodan2

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

vue3 在哪些方便做了性能提升?

概要 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。vue2版本阶段已经证明了它的易用性和流行性,说明它已经足够优秀在构建前端应用领域,而vue3的推出更是将性能提升做了最大的优化,更加易用、灵活、高效&…

Notepad++--在开头快速添加行号

原文网址:Notepad--在开头快速添加行号_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Notepad怎样在开头快速添加行号。 需求 原文件 想要的效果 方法 1.添加点号 Alt鼠标左键,从首行选中首列下拉,选中需要添加序号的所有行的首列&#xff…

Matplotlib | 结合numpy中argsort函数来画出特征阶梯图

代码 #构建分类随机森林分类器 clfRandomForestClassifier(n_estimators10,random_state42,max_depth4) clf.fit(x_val, y_val) #对自变量和因变量进行拟合 for feature in zip(x_feature,clf.feature_importances_):print(feature)(V1, 0.0038989752714058486) (V2, 0.002703…

CSS3 动画:前端开发的动态美

CSS3 动画:前端开发的动态美 CSS3 动画是现代网页设计中不可或缺的一部分,它为静态的网页元素添加了动态效果,提升了用户体验。本文将深入探讨CSS3动画的基础知识、高级技巧,并展示如何在实际项目中应用这些动画。 CSS3 动画基础 CSS3动画主要通过@keyframes和动画属性(…

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(1)

摘要 近年来,中国宠物食品行业迅速增长,但面临复杂的国际形势和多变的市场环境,因此科学地分析和预测该行业的发展趋势至关重要。本研究通过构建多个机器学习与统计回归模型,量化分析中国宠物食品行业的关键驱动因素,预测未来宠物食品总产值和出口值。 在数据处理部分,…

UniApp在Vue3下使用setup语法糖创建和使用自定义组件

UniApp在Vue3下使用setup语法糖创建和使用自定义组件 在现代前端开发中&#xff0c;Vue 3 的 <script setup> 语法糖极大地简化了组件的编写和使用。本文将详细介绍如何在 UniApp 中使用 Vue 3 的 <script setup> 语法创建自定义组件&#xff0c;并在其他组件中使…