TL62x-EVM的开发初尝试

创龙科技TL62x-EVM是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 + 单核ARM Cortex-M4F多核处理器设计的高性能低功耗工业评估板,由核心板和评估底板组成。

下面将介绍如何在TL62x-EVM上配置开发环境,安装OpenPLC runtime。 

1. 产品测试

遵照官方资料“1-开箱必读”中的《开箱必读》进行产品测试。如下图所示,将电源接口,拨码开关,电源拨动开关移动到相应位置后,核心板的LED辉有规律的闪烁,说明评估板已正常启动,基本功能正常。

 2. 安装有关软件

2.1 USB 转串口驱动安装

参照官方文档“3-用户手册”文件夹的《1-1-调试工具安装》进行USB转串口驱动的安装,结果如下所示。

2.2 系统调试工具SecureCRT安装

SecureCRT 是一款支持 SSH 协议的终端仿真软件,可通过串口或网口对评估板系统信息进行查看、对评估板系统进行调试等。

参照官方文档“3-用户手册”文件夹的《1-1-调试工具安装》进行SecureCRT的安装(注意,需要自己购买License 序列号)。如下进行串口连接设置。

结果如下所示:

如果此时开启嵌入式开发板,该窗口有如下显示:

说明使用 Linux 系统启动卡启动评估板成功。

2.3 Linux开发环境搭建

 对于普通的嵌入式开发板,可以利用keil进行编程、编译、下载;对于TL62x,需要借助有关的交叉编译工具链才可以编译 U-Boot、内核和应用程序。而Linux Processor SDK 开发包已自带交叉编译工具链,需进行配置方可使用。

为了使用Linux Processor SDK,我们首先需要借助VMware安装Ubuntu虚拟机,然后再在虚拟机上安装Linux Processor SDK。

1. 安装VMware虚拟机

之前已经安装过,在此忽略。

2. 基于虚拟机安装 Ubuntu18.04.4 操作系统

参照官方文档“3-用户手册”文件夹的《1-2-Linux开发环境搭建》进行Ubuntu18.04.4的安装。

3. 安装虚拟机工具

如未安装虚拟机工具,进入系统后,屏幕将无法全屏显示,且不能通过共享目录以 及拖曳方式在 Windows 和虚拟机 Ubuntu 系统之间传输文件。

4. 设置虚拟机共享目录

这样可以直接利用共享目录在主机和虚拟机之间传输文件,而不需要借助xftp了。

但是按照“3-用户手册”文件夹的《1-2-Linux开发环境搭建》进行共享目录的设置时,发现/mnt目录下并没有hgfs目录,于是参照博客:https://blog.csdn.net/challenglistic/article/details/129026025 解决问题。

解决完成后,在主机的共享文件夹中新建文件,可以发现在虚拟机上的相关文件夹也出现了文件,如下。

 注意:由于我没有实现虚拟机开机自动挂载目录,在需要利用共享目录在主机和虚拟机传输文件时需要借助如下指令:

sudo vmhgfs-fuse .host:/ /mnt/hgfs

 5. Linux Processor SDK安装

参照“3-用户手册”文件夹的《1-2-Linux开发环境搭建》进行SDK的安装即可。结果如下:

6. 交叉编译工具链配置

参照“3-用户手册”文件夹的《1-2-Linux开发环境搭建》进行交叉编译工具链的配置即可。结果如下,其中 arm-none-linux-gnueabihf-gcc-9.2.1 为 Cortex-R5F 核心对应的交叉编译工具链,aarch64-none-linux-gnu-gcc-9.2.1 为 Cortex-A53 核心对应的交 叉编译工具链:

2.4 简单测试

按照“3-用户手册”文件夹的《2-1-评估板测试手册》进行按键测试。

1. 利用SecureCRT登录评估版的文件系统

2. 进行按键测试

执行如下命令,分别按下 USER1、USER2 用户输入按键进行按键测试,串口终端将会 打印如下类似信息。按"Ctrl + C"可终止测试命令。

od -x /dev/input/event1

3. 安装OpenPLC runtime

 3.1 评估版连接WiFi

评估板板载 WIFI 模块,型号为:必联 BL-R8188EU2,支持 STA 模式和 AP 模式。

(1)STA 模式:在 STA 工作模式下,WIFI 模块可接收来自无线路由器发出的信号,实现通过路由器连接互联网。

(2) AP 模式:在 AP 工作模式下,WIFI 模块会创建一个无线局域网热点,手机、电脑 等设备可通过此热点组建局域网。

1. 将 2.4G 天线连接至评估板 CON15 接口

 2. 文件传输

(1)将SD卡插入主机,将“4-软件资料\Demo\module-demos\usb_wifi_test\”目录的bin目录所有文件和driven目录的所有文件都复制到BOOT分区中。

 

 

(2)将系统启动卡插至评估板 Micro SD 卡槽,评估板上电启动系统,进入文件系统执行 如下命令查看分区信息。注意,系统启动卡的 BOOT 分区挂载在评估板文件系统"/run/media/m mcblk1p1/"目录下。

 可以看到,有关的文件传输过来了。

3. 加载WIFI驱动

进入评估板文件系统,在 WIFI 驱动 8188eu.ko 文件所在路径下执行如下命令加载 WI FI 驱动。执行如下命令。

执行如下命令关闭其他网络,仅保留 WIFI 网络。

 在 wifi_setup.sh 文件所在路径下执行如下命令,将评估板通过 WIFI 模块连接至路由器。"-i"指定 WIFI 名称,"-p"指定 WIFI 密码,请根据实际情况修改。

4. 网络连通测试

在虚拟机上执行如下命令:

在串口终端执行如下命令:

 发现已经ping通(按Ctrl+C可停止ping),说明连接成功。

3.2 安装OpenPLC runtime

在串口终端输入如下命令:

git clone https://github.com/thiagoralves/OpenPLC_v3.git

结果如下:

 接着执行有关的安装脚本:

发现存在问题:Unsupported linux distro. 即不受支持的linux版本。

回到OpenPLC的源码,发现有关的错误提示信息在以下代码中:

#set -x
# arg1: sudo or blank
function linux_install_deps {
    if [ -x /bin/yum ]; then
        yum clean expire-cache
        yum check-update
        $1 yum -q -y install curl make automake gcc gcc-c++ kernel-devel pkg-config bison flex autoconf libtool openssl-devel cmake python3
    #Installing dependencies for Ubuntu/Mint/Debian
    elif [ -x /usr/bin/apt-get ]; then
        $1 apt-get update
        $1 apt-get install -y build-essential pkg-config bison flex autoconf \
                              automake libtool make git \
                              sqlite3 cmake curl python3 python3-venv
    #Installing dependencies for opensuse tumbleweed
    elif [ -x /usr/bin/zypper ]; then
        $1 zypper ref
        $1 zypper in -y curl make automake gcc gcc-c++ kernel-devel pkg-config bison flex autoconf libtool openssl-devel cmake libmodbus-devel
        $1 zypper in -y python python-xml python3 python3-pip
    else
        fail "Unsupported linux distro."
    fi
}

这段代码是一个shell脚本中的条件判断部分,用于根据不同的Linux发行版来安装依赖项

如果系统中存在yum命令,则表示是基于Red Hat系列的发行版,会执行yum命令来安装一系列依赖包。

如果系统中存在apt-get命令,则表示是基于Debian系列的发行版,会执行apt-get命令来安装一系列依赖包。

如果系统中存在zypper命令,则表示是基于openSUSE的发行版,会执行zypper命令来安装一系列依赖包。

如果系统不是这三种发行版之一,则会输出"Unsupported linux distro."的错误信息。

后发现,创龙官方提供的linux是基于 Ubuntu 官方移植的,支持 Qt 开发,但不支持桌面功能。即这种Ubuntu文件系统不属于传统的Linux发行版,如Red Hat、Debian和openSUSE。它是基于Ubuntu官方移植而来的,专门为支持Qt应用程序的开发和运行而设计。虽然它仍然是基于Linux内核的操作系统,但在功能和用途上与传统的Linux发行版有所不同。

查看linux版本可知为arango:

Arago是一个基于 Linux 的嵌入式操作系统,通常用于嵌入式系统和物联网设备。它是由 Texas Instruments开发,专为其 ARM 架构处理器设计。

于是准备转换移植其他的linux操作系统。

3.2.1 移植Ubuntu

 1. 制作Ubuntu系统启动卡

(1)将产品资料“4-软件资料 \Linux\Makesdboot\”目录下的 mksdboot_10_12_12.tar.gz 制卡工具包通过共享目录从主机拷贝到虚拟机上

 

 (2)厘清两个概念:从eMMC启动评估版VS从SD卡启动评估版

  • 启动速度:eMMC存储器的读写速度通常比SD卡更快,因此从eMMC启动评估版通常会比从SD卡启动评估版更快。

  • 可靠性:eMMC存储器通常比SD卡更稳定和可靠,因为它们使用了更先进的闪存技术和更可靠的控制器。这意味着从eMMC启动评估版相对于从SD卡启动评估版更不容易出现故障或数据损坏。

  • 存储容量:eMMC存储器的容量通常比SD卡大,这意味着从eMMC启动评估版可以存储更多的数据和应用程序。

  • 兼容性:从SD卡启动评估版通常更具有通用性,因为大多数设备都支持SD卡插槽,而eMMC存储器则可能因为特定设备的设计限制而无法使用。

(3)将有关文件替换ubuntu系统的文件

创建AM62x文件夹,将制卡工具包mksdboot_10_12_12.tar.gz复制到AM62x文件下

将制卡工具包解压到当前目录

然后查看解压后的制卡工具包的具体内容:

然后将制卡工具包"filesystem/rootfs/rootfs-yocto-dunfell-3.1-v1.2-gf5cf17b.tar.gz"文件删 除,同时将位于产品资料“4-软件资料\Linux\Filesystem\Ubuntu\”目录下的 rootfs-ubuntu[1]base-20.04.2-g010ff4e-v1.0.tar.gz 文件拷贝至制作工具包"filesystem/rootfs/"目录下,完成 Ubuntu 根文件系统替换。

利用sudo vmhgfs-fuse .host:/ /mnt/hgfs 挂载目录时,共享目录总是要过一会儿才能正常使用,也不知道为什么

 (4)Micro SD 卡挂载和设备节点名确认

将 Micro SD 卡通过读卡器连接至 PC 机,Ubuntu 系统识别后,一般会自动挂载 Micr o SD 卡分区,如下图所示。

执行如下命令,确认 Micro SD 卡在 Ubuntu 系统的设备节点名。

 结果如下:

可看到 Micro SD 卡设备节点是"/dev/sdb",并且有三个分区,分别为 sdb1、sdb2 和 sdb3 分区。

(5)PV 工具安装

PV(Pipe Viewer)是一种基于终端的工具,用于通过管道监测数据的进度。 为了更直观地显示系统启动卡的制作进度,Linux 系统启动卡制作过程中会使用到 PV 工具。

执行如下命令可以通过网络安装 PV 工具,如未安装 PV 工具将会导致系统启动卡制作失败。

 (6)Ubuntu系统启动卡制作

按照如下命令制作Ubuntu系统启动卡。注意:命令中"/dev/sdb"为 Micro SD 卡设备节点,请确 认命令中设备节点无误后,再执行命令。若错误输入其他存储介质设备节点,将会造成存储介质数据损坏。

 根据提示按回车键,进行 Ubuntu 系统启动卡制作。

 执行如下命令,查看Ubuntu系统启动卡的分区:

 只有Ubuntu 18.04.4

(7)断开 Micro SD 卡与 Ubuntu 之间的连接,完成 Linux 系统启动卡制作

2. 从Ubuntu系统启动评估版

评估板断电,将 Linux 系统启动卡插至评估板 Micro SD 卡槽,根据评估底板丝印将启动方式选择拨码开关拨为 001X1(1~5),此档位为 SD 启动模式。

使用 Type-C 线连接评估板的 USB TO UART0 调试串口至 PC 机,然后利用SecureCRT连接评估版。

串口打印信息:

 查看此时的操作系统版本:

 发现是Ubuntu,可知操作系统移植成功!

3.2.2 评估版连接网络

1. 尝试按照前面的方法将评估版连接到Wifi

本来想按照3.1节将评估版连接wifi,但此时缺少wifi的驱动,所以打算直接将有关的源码通过SD卡移动,如下。

本来打算直接按按照OpenPLC的runtime,后来发现安装runtime必须要连接网络,所以还是需要去连接wifi。

首先找到了有关无线网络驱动的详解:

https://www.python100.com/html/109996.html

后发现具体问题如下:

出现了错误:

modprobe: FATAL: Modeule 8188eu not found in directory /lib/modules/5.10.168-rt83-g3d1626c9284a

这个错误的含义是:

无线驱动程序未正确安装。之前AM62x官方提供的Linux应该已经安装了有关的驱动,但因为我重装了Ubuntu系统,所以需要重新安装有关驱动。(这里比较离谱的地方是:我就是为了联网才要装驱动,网上一堆方法是让我联网状态下装驱动。。。)

参照以下博客,在离线状态下安装无线网络的驱动:

https://blog.csdn.net/IMchg/article/details/106276015

官方资料中已经提供了网卡有关驱动的源文件,在”TL62x-EVM_V1.4\4-软件资料\Demo\module-demos\usb_wifi_test\src\rtl8188eus”文件夹中,如下:

下载DKMS,在如下网址:

https://launchpad.net/ubuntu/yakkety/amd64/dkms/2.2.0.3-2ubuntu11

于是通过SD卡,将有关的文件传输到评估版上。

本想直接安装dkms,但是发现存在以下问题:

gcc和patch没有安装,但离线安装gcc和patch太麻烦了,于是准备用另一种方法联网。

2. 利用网线将评估版连接到互联网

参考官方资料“TL62x-EVM_V1.4\3-用户手册”文件夹的《2-1-评估板测试手册.pdf》的1.14节 网络接口测试,直接利用网线进行联网。(但这种方法不适合长期使用,回校后没有路由器了,还是需要成功连接到wlan)

 (1)准备工作:

①官方资料“TL62x-EVM_V1.4\5-硬件资料”中的《TL62x-EVM工业评估板硬件说明书.pdf》中,15.1节介绍了评估版上的RGMII 千兆网口,如下图:

其中下层为 ETH0 RGMII 千兆网口,上层为 ETH1 RGMII 千兆网口。

②找到一个其上有千兆网口的路由器:

③硬件中提供了网线,如下所示:

④ 利用网线连接路由器和评估版

(2)网络连通测试

按理说,利用网线连接评估版和路由器后,评估版就连通网络了。接下来利用SecureCRT使PC和评估版串口相连接,进入评估版文件系统,执行如下命令:

由于我连接的是eth1,所以关闭eth0和eth2。

接下来,测试网口连接外网是否正常。以访问 www.baidu.com 为例,执行如下命令,"-I"代表指定网口,不加"-I"则使用默认网卡。可按"Ctrl + C"终止 ping 命令。

 ping通了,说明连接成功。

3. 安装wifi的驱动

 这里又找到了一个安装驱动的博客:https://www.zhihu.com/question/481716897/answer/3306655737

进行如下操作:

发现有些依赖包没有安装,于是安装:

安装完依赖后,继续安装dkms

然后安装dpkg

 

然后安装驱动

 

但是出现了问题:

Error! Your kernel headers for kernel 5.10.168-rt83-g3d1626c9284a cannot be found.

Please install the linux-headers-5.10.168-rt83-g3d1626c9284a package,

or use the --kernelsourcedir option to tell DKMS where it's located

Error! Your kernel headers for kernel 5.10.168-rt83-g3d1626c9284a cannot be found.

Please install the linux-headers-5.10.168-rt83-g3d1626c9284a package,

or use the --kernelsourcedir option to tell DKMS where it's located

Finished running dkms install steps.

又卡住了...

 3.2.3 安装OpenPLC runtime

因为目前无法用wifi连接网络,于是用网线连接网络,然后直接安装OpenPLC runtime:

安装结果如下:

 安装成功!

3.2.4 OpenPLC runtime测试

查看评估版的ip:

 尝试通过ip:8080与评估版的openplc runtime的网络服务器连接,但被拒绝了:

重复启动评估版后,发现可以通过ip:8080与评估版的openplc runtime的网络服务器连接了,应该是之前没有openplc runtime服务没有启动的原因。

posted @ 2024-02-02 17:17  碳酸钾K2CO3  阅读(65)  评论(0编辑  收藏  举报