米尔电子
直播中

dutong0321

3年用户 589经验值
擅长:模拟技术 嵌入式技术 接口/总线/驱动 光电显示 控制/MCU RF/无线
私信 关注
[技术]

【米尔NXP i.MX 93开发板试用评测】03.在Debian系统中进行异构通信及总结

e9c8faaf254b33fb77e75d032b389120

在官方Yocto构建的Linux中,异构通信介绍的比较详细,那么在Debian下是否也是可以的呢?回答当然是肯定的,所以我希望在Debian下可以测试一下异构通信,刚好官方为我们提供了测试的程序,开发程序和官方的例程也是需要在Linux里的SDK中去寻找等。
我在之前帖子中介绍过,将官方所提供的SDK放在了/opt/aarch64下,所以我们的M33中的测试程序在/opt/aarch64/sysroots/armv8a-poky-linux/lib/firmware下,imx93-11x11-evk_m33_TCM_*的程序一共有5个,这5个就是官方提供的M33执行的程序,我们将这5个程序通过SCP传送到开发板上面,然后我们还需要把通信的驱动也发送到开发板中,通信的驱动是在/opt/aarch64/sysroots/armv8a-poky-linux/lib/modules/6.1.55+gb64675c008bb/kernel/drivers/rpmsg下,官方测试的str_echo程序,我们这次测试一下pingpong的例子程序。
首先我们需要将TTL线接入到J15接口上,波特率还是和A55内核一样。
然后在开发板中还需要执行以下的命令:

sudo -s
echo imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.elf > /sys/devices/platform/imx93-cm33/remoteproc/remoteproc0/firmware
echo start > /sys/devices/platform/imx93-cm33/remoteproc/remoteproc0/state

介绍一下里面的含义:
第一句是需要切换到root用户执行接下来的操作
第二句是烧写程序到M33内核中
第三句是将M33内核打开
此时,终端已经开始显示内容了。
1021.png

接下来,我们将A55的内核驱动进行注入。

insmod imx_rpmsg_pingpong.ko

注入后,终端开始输出大量的信息了。
1022.png

不用担心,他只会输出一定的内容后,程序就结束了。
1023.png

总结

其实,可能对于更多的开发者来讲,更多的还是回去用Yocto Linux来进行开发,但是使用Debian的好处我之前也进行过论述。另外使用Debian发行版还有一个好处,那就是我们在其他的相同架构设备的系统中安装相同版本的发行版,那么开发起来就会方便很多。
举个例子哈,目前我们的开发板是使用的arm64设备,使用的系统是Debian12,那么我们只需要找一个相同的支持Debian12的arm64设备就可以进行开发了。
首先,我们要安装Qt6的开发环境,安装的方法基本上和在PC上面安装基本相同,下载方法是:

wget https://mirrors.ustc.edu.cn/qtproject/official_releases/online_installers/qt-unified-linux-arm64-online.run

然后把需要的库安装好,就可以了。
这里需要说的一下是,目前Debian的APT安装的QT库版本是6.4.2,但是使用这种安装的环境库没有对应的版本。
所以我们只能继续进行下一步安装,我们在安装好写好代码编译好软件后,我们需要打开Qt下的安装目录的对应版本号中,然后再去lib中,把动态库复制到开发板中。
当然,我们在开发前,首先需要首先把对应的ffmpeg库安装上,在开发板上面也得安装好,不过开发板上面是不需要gcc和g++的。
在这里安装ffmpeg库就方便的很多,不需要按照我之前的两篇帖子那样,自己编译或者从GITHUB上下载别人编译好的,而是直接使用APT直接安装库里的FFMPEG库,只要我们开发板和开发的电脑使用的是相同版本的Debian,那么安装的库必然是一样的,使用起来更加方便。

sudo apt install gcc g++ ffmpeg ffmpeg-doc  libavcodec-dev  libavcodec-extra  libavdevice-dev libavfilter-dev libavfilter-extra  libavformat-dev libavformat-extra libavutil-dev libpostproc-dev libsdl-kitchensink-dev libswresample-dev libswscale-dev

通过这种方法安装好的FFMPEG库,引入QT后,在PRO中需要更改一些代码,但是基本上和以前的一样,唯一不同的是LIBS 也就是我们要包含的库文件,在这里我们可以看到包含了ffmpeg的库文件,注意这里已经把路径删掉了,这是因为我们使用apt安装的ffmpeg,所以不用写库文件的路径,直接写库就可以,而且ffmpeg的头文件也不用写。
1024.png

上次忘了上传演示视频了,这次补上,感谢发烧友william hill官网 和米尔提供给我的机会,下一步的计划主要是在异构通信上,希望可以更加完善项目!

更多回帖

发帖
×
20
完善资料,
赚取积分