硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1239|回复: 3
收起左侧

[ST] 记录STM32MP15X,首次学习异核通信的点滴

[复制链接]

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2022-9-14 11:11:36 | 显示全部楼层 |阅读模式
本帖最后由 廷润 于 2022-9-15 09:23 编辑

零:
题外话:早在多年以前,我们的PC电脑,现在的智能手机,主芯片都是多核,相比之下性能杠杠的,多核早已不是什么新鲜事。
多核处理器都是怎么工作的呢?下面记录一一点首次学习异核通信的一些点滴。

一:
首先是资源获取:
       如何快速的把视角和维度站搞一点? 基础和概念确实卑微,推荐还是买开发板,相对有一套完整的知识作为支撑。相比单片(MCU)MP1是处理器(MPU),需要学习,看的文档真多。
       如果自身基础到位,推荐还是多到官网找资料,例程多玩,多移植。技术更新迭代太快了,既然学会了“Hello word",非常有必要跟word 的精英多交流。其他:略。

二:
其次是环境搭建:
    (一)IDE
      ST近些年生态越来月完善,有自己的IDE,还有自动生成配置代码的软件,4年前听硬汉的视频讲解就激励推荐学习自动生成大规模的代码。所以STM32CubeIDE 这类型的工具装一个多玩。
      曾经做一个STM32F105的USB自动升级软件,那时候很快就找到了一个官网的例程(2009),移植完成后感觉没啥就出货了。最后被国外很多市场骂,这都2018年了,你让我去哪找小于2GB的U盘???最后来回找历程,摸不着边,有些经验认识回复了也没理解--惭愧。其实说白了,最新的USB库,ST已经通过自己的生态软件可以自动生成了,所以官网也没发布独立的例程。大概理解了这么一回事,我就从安富莱F4的例程里面去搬移USB相关库文件突破了USB-IAP升级限制使用2GB以内的瓶颈。
      回归主题,STM32MP15x,在某些方面还是可以使用MDK编译,推荐上了年纪的工程师,还是很有必要学习一下ST相关的生态软件,缩短自己大规模软件快速交付的时间。曾经踩过的一个坑,例程使用STM32CubeIDE1.7版本自动生成的模板代码,复制过来后,使用STM32CubeIDE1.4 去打开,编译,调适会出现种种的差异化,出现奇怪现象。还是那句话,与时俱进,同步升级IDE就解决了。
   (二)RUN
     安装虚拟机,安装Linux(例如Ubuntu18.04)
     现在高版本的虚拟机,例如VM15以上,有些自带的工具强大了不少。公司有加密系统,主机的网卡设备,相关文档加密,该死的情况网口信息都不可见,不正常,如何做共享??? 正常升级VM-TOOL,设计好共享文件夹就解决这一问题了。,更多细节见开发板也会配网络环境相关的手册。
    关于Ubuntu18,我曾经接触的版本相对低。现在捡起来接触(按照开发板的文档安装环境)经常出现各种版本冲突,依赖冲突。一不小心在root权限更新图形相关的以来库,图形界面的Ubuntu图形消息了,甚至开不了机。好事多磨多玩吧,暂时用不到QT相关的开发,还是可以继续躺平。更多信息看开发板虚拟机环境手册
    其他配套相关的软件,举例子MobaXterm,协议服务对了可以直接拖拉文件到开发板里面。见附件图片。
三:
     (一)异核通信的架构,协议介绍
       ST的生态软件,就可以自动生成 OPENAMP,RemoteProc相关的组件,mbox_ipcc.c相关的应用自能自己恶补知识了。
     (二)一头雾水,肯定是先跑例程。
             刚开始,看开发板第二版本的异核通信文档,觉得内容太多了,难消化,或许是消化不良吧。后来翻看第一版本的文档,内容比较粗略篇幅少,很快就把第一个例程跑起来了,接着配合新里程,跑完几个例程瞬间提升了理解能力。对于文绉绉的异核通信架构,协议介绍都理解了不少。
    (三)已经工作多年,上班还是要干活的。任务是异核通信,做大数据搬移。
         1、背景简要说明:STM32MP15x,A7核作为主要的通信交互,M4核是辅助核。功能安排,M4核快速制造一些规律的数据传送给A7核做应用。
         2、具体的例程参考,官方有例程,也有此应用说明的文章。logicanalyser-master.zip,meta-st-stm32mpu-app-logicanalyser-dunfell.zip
         3、点点滴滴的笔记见附件的 消化.xlsx

四:小结
      1、我玩的ST官方异核通信例程,A7核正常基于Linux 系统,跑应用。
               backend.c 因为自己的板子差异,可以把界面操作蔽掉,5MHz采样是分水岭,小于配置值(数据少)就运行tty传共享的数据,大于配置值(数据多)就使用sdb 搬运数据
      2、其实作为辅助核的M4,在某种角度也可以理解为一个应用。被A7调用运行,最后自己运行采集数据,并结合A7邮箱传过来的配置信息,做一一对应的响应。
      3、没玩过,不熟悉一时半会比较难理解A7核的应用,以及M4核的代码。建议把例程跑起来,看打印信息就方便串起来理解了其中一个模式了。附件有三个打印的log。


五:其他
     互相交流吧





01

01

消化.xlsx

396.75 KB, 下载次数: 2

02

backend前期搭配151M4核启动.txt

3.69 KB, 下载次数: 0

10

backend中期搭配151M4核启动log.txt

5.42 KB, 下载次数: 1

11

启动backend样例打印.txt

7.54 KB, 下载次数: 0

12

Releasing your creativity
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2022-9-14 11:14:38 | 显示全部楼层
以前接触产品开发,电脑的文件传到板子上,要经过开nfs,通过mnt挂载,然后拷贝到指定目录。或者电脑开tftp服务,工具选择文件所在的路径,在板子上敲tftp命令传文件。玩开发板的时候发现了这个工具字节拖拽文件就完事了,分享一下!D
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2022-9-14 11:18:13 | 显示全部楼层
另外,在玩南网伏羲芯片平台的时候,系统文件在SDK2.4版本(含),可以使用Xshell-7.0.0109p.exe,串口连接开发板,文件也可以直接拖拽进去即可完成传输。
Releasing your creativity
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2022-9-14 11:37:58 | 显示全部楼层
帮楼主补充下,自学的话,看ST的这个wiki就行,非常非常详细,弄个ST的DISCO板子就行,上手足够。

文档:https://wiki.st.com/stm32mpu
视频教程:https://www.st.com/content/st_co ... nline-training.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 12:55 , Processed in 0.298596 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表