| | |

应用开发笔记|myd-凯发app

文章来源:米尔科技 发布日期:2021.1.7 浏览次数:61 次

本例程主要讲解 canfd 总线异构通讯简单实例。把 canfd 分配给 m4 核,然后另外一 块开发板发送,m4 接收 canfd 数据并通过异构通讯方式发送给 a7 在终端回显。

2.硬件资源

  • usb-ttl debug 线两根

  • 两块开发板 

  • 开发板配件

3.软件资源 

  • linux 5.4.31 

  • stm32cubeide 1.3.0

  • stm32cubemx5.6.0

4.环境准备 

预先安装好 cubeide,cubemx 等开发软件。

5.操作步骤

5.1.a7 核操作 

由于 can 可以被 a7 和 m4 同时使用,现在是要分配给 m4,所以在 a7 端通过设备树 把 can 分配给 m4。操作步骤如下:

1) 配置设备树 

进入内核源码目录 stm32mp15xc-kernel5.4/arch/arm/boot/dts,vim 打开 stm32mp15xx-ya157c.dtsi 设备树文件,把 can1 分配给 m4,并屏蔽掉 a7 端的 can1。



接着配置资源管理器,分配异构通讯的 sram。


2) 编译并更新设备树 

配置完成之后编译并拷贝对应设备树到 bootfs 分区。


另官方已经默认配置了 rpmsg_tty 驱动。


5.2.m4 核操作

创建一个 stm32 工程,在 stm32cubemx 里,依次配置 canfd 用于发送报文、以 及配置 ipcc 和 openamp 用于通信。


图 5-1.配置 ipcc


图 5-2.配置 openamp


图 5-3.canfd 配置

注意配置 ipcc 时,需要在 nvic settings 选项卡里,将 ipcc rx1 occupied interrupt 和 ipcc tx1 free interrupt 的使能勾选上,不然后面的 openamp 的 activated 始终为灰色,无法激活。这里计划创建两个 rpmsg tty 通道,一个用来传输 canfd 报文,一个用来统计 canfd 报文的数量。


  • 初始化两个 rpmsg tty 虚拟串口 。


  • 注册回调函数以按通道接收消息 。


  • 设置 canfd 接收滤波器和发送数据 buf,并注册回调函数和 canfd 接收中 断。





主函数轮询 rpmsg 消息 openamp_check_for_message() 查询 mailbox 状态 ,主 函数并根据运行时间向外发送报文同时不停的查询接收报文。




当 m4 核接收到 canfd 报文的时候,存入 buf,主函数检测到有 buf 数据, 就会调用虚拟串口发送给 a7 端。



5.3.测试步骤 

j12 的 canh、canl 引脚和同类型的板子 canh、canl 相连,把编译 生成的 m4 固件拷贝到 a7,并启动固件.....

完整myd-ya157-v2开发板can bus 总线通信实例应用开发笔记下载,请点击:


本文来自凯发app-凯发k8官网科技,原文地址: http://www.myir-tech.com/resource/552.asp,转载请注明出处。

比较和选型

手册教程

应用笔记

好书推荐

凯发k8官网的技术支持服务指南

常见问题解答

网站地图