tag 标签: 多核异构

相关博文
  • 2024-12-10 10:47
    0 个评论
    新唐NuMicro® MA35D1系列微处理器以其高性能多核异构的设计、可靠的安全机制、丰富的通讯接口、出色的人机接口应用以及广泛的生态系统支持,成为了工程师在高端工业控制、边缘物联网网关以及HMI应用领域中的信赖之选。 现在, 飞凌嵌入式与新唐携手合作,基于MA35D1系列处理器推出FET-MA35-S2核心板 ,旨在为工程师用户们提供更高效、更便捷的开发体验! 话不多说,先看价格——飞凌嵌入式FET-MA35-S2核心板提供2个配置选择,512MB+8GB版含税仅需¥248,1GB+8GB版含税仅需¥328,价格具有很高的性价比。 产品详情
  • 2024-12-10 10:45
    0 个评论
    为了切实满足更多客户的基础应用及项目降本需求,飞凌嵌入式现推出FETMX8MPL-C核心板。相较于先前已成功推向市场的FETMX8MP-C核心板,FETMX8MPL-C核心板在硬件配置上进行了巧妙的精简。 众所周知,并非所有应用场景都需要用到高性能的硬件配置,如音视频处理单元(VPU)、神经网络处理单元(NPU)、图像信号处理单元(ISP)以及高性能数字信号处理器(HiFi-4 DSP)等。因此,为了切实满足更多客户的基础应用及项目降本需求,FETMX8MPL-C在保留核心处理能力以及主流功能接口的基础上,精简了这些芯片单元,从而实现了成本的有效控制。 同时,FETMX8MPL-C核心板与已经上市的FETMX8MP-C核心板软硬件兼容,不仅确保了FETMX8MPL-C核心板能够轻松融入客户的现有系统中,还大大提升了产品在使用过程中的稳定性和可靠性。不过需要注意的是,FETMX8MPL-C核心板目前仅支持Linux5.4.70系统。 飞凌嵌入式FETMX8MPL-C核心板2GB+16GB配置将于12月13日现货发售,1GB+8GB配置将于2025年1月15日发售,敬请期待。
  • 2024-11-22 16:50
    148 次阅读|
    0 个评论
    随着市场对嵌入式设备的功能需求越来越高,集成了嵌入式处理器和实时处理器的主控方案日益增多,以便更好地平衡性能与效率——实时核负责高实时性任务,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核部分外设的使用方法,是不是感觉和单片机的开发一样简单方便呢?
  • 热度 8
    2023-4-7 10:16
    725 次阅读|
    0 个评论
    SPI(串行外围设备接口)是一种低成本、易使用的接口协议,具备全双工、高速、通讯简单的特点,被广泛应用于微控制器和外围设备芯片之间的通讯。当SPI接口作为主模式时可以连接Flash存储器、AD采样芯片、实时时钟RTC、LCD显示屏、音频芯片以及各种传感器。 随着产品功能的愈加丰富,多处理器使用SPI接口进行通讯的场景开始出现,而多个SPI设备之间通信必须由 主设备(Master) 来控制 从设备(Slave) 。 小编手上的OKMX8MP-C开发板基于NXP i.MX8M Plus多核异构处理器设计,它的M核有1路SPI,因而为实现SPI的相互通讯,我们就需要两块OKMX8MP-C开发板的SPI互作主从设备进行通信。本文小编就将从应用角度为大家讲解M核SPI间通讯的实现方式。 一、SPI主模式 1. SPI初始化 SPI初始化主要包括总线时钟、管脚和相应寄存器的初始化。具体如下: (1)SPI总线时钟:现将SPI总线倍频到800MHz,再10分频到80MHz。 CLOCK_SetRootMux (kCLOCK_RootEcspi2, kCLOCK_EcspiRootmuxSysPll1); //SPI2总线时钟使用PLL1-800MHz CLOCK_SetRootDivider (kCLOCK_RootEcspi2, 2 U, 5 U); //分频因子为2*5=10,设置SPI2总线时钟为80MHz (2)管脚配置:选择SPI2的四个管脚。 IOMUXC_SetPinMux (IOMUXC_ECSPI2_MISO_ECSPI2_MISO, 0 U); // SPI2-MISO IOMUXC_SetPinMux (IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI, 0 U); // SPI2-MOSI IOMUXC_SetPinMux (IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK, 0 U); // SPI2-SCLK IOMUXC_SetPinMux (IOMUXC_ECSPI2_SS0_ECSPI2_SS0, 0 U); // SPI2-SSO (3)SPI速率:设置速率为500K。 # define TRANSFER_BAUDRATE 500000U // 速率 500K (4)数据长度选择:8bit。 burstLength = 8 ; // 数据长度 8bit (5)四种模式选择:CPOL和CPHA的四种组合即为SPI的四种模式。 clockInactiveState = kECSPI_ClockInactiveStateLow; // 时钟SCL: 活动时低电平,空闲时高电平 dataLineInactiveState = kECSPI_DataLineInactiveStateLow; // 数据MOSI&MISO: 活动时低电平,空闲时高电平 chipSlectActiveState = kECSPI_ChipSelectActiveStateLow; // 片选SS: 低电平选中,高电平无效 polarity = kECSPI_PolarityActiveHigh; // 时钟信号极性,即CPOL为0的话 SCLK高电平有效(空闲的时候为低电平),为1的话SCLK低电平有效(空闲的时候为高电平)。 phase = kECSPI_ClockPhaseFirstEdge; // 时钟相位,即CPHA为0的话串行时钟的第一个跳变沿(上升沿或下降沿)采集数据,为1的话串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。 (6)主模式选择:设置SPI为主模式。 channelConfig.channelMode = kECSPI_Master; // 主模式 (7)通道选择:一个 SPI 有四个硬件片选信号,每个片选信号是一个硬件通道,本程序选择通道0。 channel = kECSPI_Channel0; // 通道0 (8)关闭自回环:如果开启了自回环,那么SPI数据会在芯片内回环,不会到外部管脚,在程序调试时可以排除外部端子的干扰,但真实应用时,需要关闭自回环,从外部管脚收发数据。 enableLoopBack = false ; // 不回环,使用外部管脚 2. SPI收发流程 我们分别将两块OKMX8MP-C开发板命名为开发板1和开发板2,并且将开发板1的SPI接口采用主模式,使能收发中断;将开发板2的SPI接口采用从模式,使能收发中断。 SPI主发送64字节数据,SPI从接收后,将数据回传。SPI主接收回传信息后,比对接收和发送的数据是否一致,输出比对结果。如一致,本次传输结束,等待输入任何按键启动下一次传输。 (1)SPI发送数据:EXAMPLE_ECSPI_MASTER_BASEADDR 表示为SPI2,g_m_handle为SPI实例,包含了发送接收中断及其回调函数,masterXfer为要发送的64字节数据。 ECSPI_MasterTransferNonBlocking (EXAMPLE_ECSPI_MASTER_BASEADDR, &g_m_handle, &masterXfer); //主模式中断方式发送数据 (2)SPI接收数据:SPI总线的发送和接收都是主模式控制的,因此接收函数的过程和发送是一致的。 (3)接收和发送数据对比: for (i= 0 U;i
  • 热度 4
    2023-3-31 10:47
    818 次阅读|
    0 个评论
    今天小编将通过飞凌嵌入式FET6254-C核心板来 详细介绍AM6254处理器M核程序的启动配置、程序编写和实时仿真等使用方法 。 M核程序启动 (1)AM6254的A核和M核从设计上是相互独立的,理论上A核的运行状态对M核的运行没有任何影响,其稳定性大大提高。但目前官方放出的资料中大部分还必须由A核加载M核程序,后续此部分官方还会不断升级。 (2)A核有两种方式启动M核程序。一是当A核内核启动过程中,加载/lib/firmware/am62-mcu-m4f0_0-fw;二是当A核文件系统运行后,用户可根据remoteproc框架命令执行/lib/firmware/m4fss_firmware/*.out文件。 (3)am62-mcu-m4f0_0-fw和*.out文件均为CCS编译M核程序生成的可执行文件,am62-mcu-m4f0_0-fw为二进制执行文件,内容较小,*.out文件包含地址信息,内容略大。 (4)A核可根据cat state命令检测到M核程序是否在running状态,从而控制M核程序的启停。推荐使用am62-mcu-m4f0_0-fw方式,程序自动加载,配置简单。 搭建开发环境和程序编译 CCS(Code Composer Studio)是TI专为微控制器和处理器开发的集成开发环境(IDE),它包含一整套用于开发和调试嵌入式应用的工具。如C/C++编译器、源代码编辑器、项目构建环境、调试器、性能分析器以及很多其他功能。类似于Keil或IAR,用户使用CCS可对程序进行编译和仿真。 SysConfig是一个统一的软件配置工具,该工具采用图形化配置界面,可用于配置时钟、外设、管脚和其他组件。简化了外设配置流程,并能发现复杂产品的外设资源冲突,降低了开发难度,提高了软件开发速度。功能与ST公司的STM32CubeMX类似。 AM6254的M核开发主要采用CCS+SysConfig完成程序的配置、编译和仿真等功能,SysConfig一般嵌入CCS软件中。 01CCS (1)将M核SDK包tools文件下CCS和SysConfig拷贝至其他路径,路径不包含中文字符,否则安装报错。双击CCS安装程序进行安装。 ​ 编辑 添加图片注释,不超过 140 字(可选) (2)选择安装目录,推荐选择各盘根目录,如C:\ti\ccs1210。 ​ 编辑 添加图片注释,不超过 140 字(可选) (3)点击next,出现以下警告时,点击确定。 ​ 编辑 添加图片注释,不超过 140 字(可选) (4)安装类型推荐选择“Custom Installation”。 ​ 编辑 添加图片注释,不超过 140 字(可选) (5)处理器型号选择"Sitara AM3x, AM4x, AM5x and AM6x MPUs"选项。 ​ 编辑 添加图片注释,不超过 140 字(可选) (6)仿真器如下选择SEGGER J-Link。 ​ 编辑 添加图片注释,不超过 140 字(可选) (7)一路点击next,完成安装。 (8)在桌面点击CCS图标,选择工作区目录,后续从SDK加载的工程将保存在此工作区。如果有360杀毒软件,请选择允许软件所有操作或退出360杀毒。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) 02SysConfig (1)在上一步目录下双击SysConfig setup.exe安装程序进行安装。 (2)一路点击next,完成安装。 03开发环境确认 Preferences"。 ​ 编辑 添加图片注释,不超过 140 字(可选) Products",检查SysConfig 1.13.0是否正确安装。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) Compilers",检查TI CLANG 2.1.2.LTS是否安装。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) 04仿真配置 Target Configuration"。 ​ 编辑 添加图片注释,不超过 140 字(可选) (2)在User Defined文件夹右击,选择“New Target Configuration”,新建AM6254处理器的仿真配置。 ​ 编辑 添加图片注释,不超过 140 字(可选) (3)在新窗口输入仿真名称,如AM6254_XDS110.ccxml。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (4)Connetction仿真器选择XDS110 USB Debug Probe。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (5)Board or Device栏输入AM6254,选择"AM6254_SK_EVM"。点击"Save"保存配置。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) 05加载、编译程序 Import CCS Projects"。 ​ 编辑 添加图片注释,不超过 140 字(可选) ​ 编辑 添加图片注释,不超过 140 字(可选) (2)在弹出的窗口中,选择CCS Project。点击"Browse"按钮,从飞凌M核SDK包中选择相应的CCS工程,如从\examples\drivers\gpio\gpio_led_blink目录下加载m4fss0-0_freertos例程。点击“Finish”按钮。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (3)在左侧工程文件夹双击选择 "example.syscfg",即可看到内核和外设的相应图形化配置了,CCS会根据SysConfig配置生成初始化代码,放入Generated Sourece文件夹内。SysConfig的功能很强大,用户可以自行体会。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (4)在左侧工程文件夹右击选择 "Build Project",即可看到程序编译过程,最后显示“Build Finished ”表明编译完成。 ​ 编辑 添加图片注释,不超过 140 字(可选) ​ 编辑 添加图片注释,不超过 140 字(可选) 下载程序 01目标文件 System Explorer",可在Debug目录下看到编译生成的am62-mcu-m4f0_0-fw和*.out文件。 ​ 编辑 添加图片注释,不超过 140 字(可选) 02下载文件 使用串口Xmodem,网络FTP,SCP,U盘,TF卡等多种方式,将am62-mcu-m4f0_0-fw放至/lib/firmware目录下,还可将*.out放至/lib/firmware/m4fss_firmware目录下。A核启动过程中加载am62-mcu-m4f0_0-fw运行。如果没有am62-mcu-m4f0_0-fw文件,也可在A核启动完成后,使用remoteproc框架手动加载*.out文件启动M核程序。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) 03am62-mcu-m4f0_0-fw 以gpio_led_blink为例,将am62-mcu-m4f0_0-fw放至开发板,重启开发板,上电自动运行M核程序,四个绿色流水灯轮流亮灭。 04remoteproc框架 以gpio_led_blink为例,将am62-mcu-m4f0_0-fw从开发板删除,重启开发板,M核程序不会执行,依次输入以下命令,可加载M核程序,四个绿色流水灯轮流亮灭。 cd /sys/class/remoteproc/remoteproc0 //1 切换到M核控制目录 firmware//2选择程序 state //3 选择执行 cat state //4 查看M核程序运行状态 state //5 停止M核程序 04M核程序仿真 飞凌嵌入式FET6254-C核心板支持JTAG对M核的硬件仿真功能,用户可在CCS中通过JTAG设置断点,实时查看和修改各变量,全速运行或单步运行程序等功能,提高程序排查错误时的效率,另外AM6254还支持串口输出调试。 01JTAG仿真 (1)购买TI XDS-110仿真器,要求固件能支持AM6254系列。 端口下可以看到两个XDS-110串口。 ​ 编辑 添加图片注释,不超过 140 字(可选) (3)用户可通过XDS-110和20pin转接板将电脑和开发板连接,注意XDS-110 1脚要和开发板的Jtag 1脚对应。 ​ 编辑 添加图片注释,不超过 140 字(可选) 02串口输出 (1)通过USB转TTL,可将电脑和开发板M核端子连接(绿色P36),用户可在串口上看到M核程序的输出信息。注意电脑TXD与开发板RXD相连,电脑RXD与开发板TXD相连。在设备管理器可以看到串口号。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) Terminal"。 ​ 编辑 添加图片注释,不超过 140 字(可选) (3)在新窗口点击蓝色电脑图标,新建一个串口终端。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (4)在串口配置界面,选择串口号,波特率为115200,数据位8位,无流控,停止位1位。这样在CCS界面就可以看到串口输出信息了。用户也可在其他串口调试软件如上设置,效果一样。 ​ 编辑 添加图片注释,不超过 140 字(可选) 03硬件仿真 (1)在Target Configuration栏AM6254_XDS110.ccxml处右击选择”Create Target Configuration”,CCS通过JTAG连接AM6254。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (2)如果Jtag连接正常,可以在Debug栏看到AM6254的所有核的信息,在M4F_1核右击选择”Connect Target”。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (3)菜单栏下拉选项中选择”CPU Reset”。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) Load Program”。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (5)点击”Browse project”按钮选择要仿真的*.out文件。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) ​ 编辑 添加图片注释,不超过 140 字(可选) (6)在Debug栏,可以看到M4F_1核已经跳转到main函数入口。 ​ 编辑 切换为居中 添加图片注释,不超过 140 字(可选) (7)用户可以在代码双击鼠标左键可以设置和取消断点,按F5或F6单步执行,按F8全速执行。更多功能和快捷键可以菜单栏Run下查看。 ​ 编辑 添加图片注释,不超过 140 字(可选) (8)在CCS串口栏或其他串口调试工具上可以看到M核的输出信息。 ​ 编辑 添加图片注释,不超过 140 字(可选) 程序实测 我们以gpio_led_blink为例,来演示硬件仿真功能。 (1)将am62-mcu-m4f0_0-fw放至开发板,这一步必须有,否则无法仿真。 (2)重新启动开发板,按照步骤3 硬件仿真环节操作,进入main函数。 (3)通过按键F6单步执行程序,可以看到四个绿色流水灯的亮灭,还可以从M核串口看到程序输出信息。 以上就是小编为大家带来的飞凌嵌入式FET6254-C核心板M核程序的使用方法了,是不是感觉和单片机的开发一样简单方便呢?
相关资源