太厉害了,相关开发资料在哪儿找呀,我看最新的产品资料发布记录上还没有提供相关资料
zxfeng 发布的帖子
-
飞凌OK-T527开发板试用3-modbus使用
源码下载
文档:https://libmodbus.org/getting_started/
源码:https://github.com/stephane/libmodbus/releases
目前最新的为3.1.10交叉编译
进入到源码目录,执行
./configure ac_cv_func_malloc_0_nonnull=yes --host=aarch64-none-linux-gnu --enable-static --prefix=/home/feng/文档/development/Linux/application/OK527N/libmodbus-3.1.10/install/
其中--host为交叉编译器的前缀;--prefix为编译结果的目录,需要为绝对路径。之后执行
make make install
编译成功后,就会在install目录下生成三个目录:include、lib、share。我们需要将lib目录移动到开发版的lib目录下
scp -r ./install/lib/ root@192.168.33.4:/
移植测试程序
我们这里以random-test-server和random-test-client为例进行测试,其中开发板为server,电脑为client。
开发板
首先进入tests目录下,将random-test-server.c测试程序里面的ctx=modbus_new_tcp("127.0.0.1", 1502);
改为 ctx = modbus_new_tcp(NULL, 1502);,即 server 监控所有的 ip 地址,端口是 1502。之后重新执行交叉编译aarch64-none-linux-gnu-gcc -o random-test-server random-test-server.c -L/home/feng/文档/development/Linux/application/OK527N/libmodbus-3.1.10/install/lib -lmodbus -I/home/feng/文档/development/Linux/application/OK527N/libmodbus-3.1.10/install/include/modbus
将得到的random-test-server文件复制到开发板上
scp -r ./tests/random-test-server root@192.168.33.4:/home
在开发板上执行程序
chmod 777 random-test-server ./random-test-server
电脑端
编译
./configure make sudo make install
修改测试文件
首先进入tests目录下,将random-test-client.c测试程序里面的ctx = modbus_new_tcp("127.0.0.1", 1502); 改为 ctx = modbus_new_tcp("192.168.33.4", 1502);,即将服务端的ip地址改为开发板的ip地址,端口是 1502。重新执行make编译
测试
首先在开发板上执行./random-test-server启动服务端程序,之后在电脑客户端执行./random-test-client,运行结果如下:
-
飞凌OK-T527开发板试用2-简单的性能测试
本文主要使用CoreMark、Dhrystone和Stream对芯片性能进行初步检测,并与ELFBorad进行了简单的单核性能比较。
OK527N-C
CoreMark
获取CoreMark源码
首先,从EEMBC官网下载CoreMark的源代码压缩包,或者使用Git克隆仓库:
git clone https://github.com/eembc/coremark.git cd coremark
修改Makefile
首先复制文件夹
cp -rf posix ok527
之后修改ok527文件夹下的core_portme.mak文件,将CC修改如下
CC = aarch64-none-linux-gnu-gcc
交叉编译
make PORT_DIR=ok527
编译结束后会报错,但是已经生成了交叉编译的coremark.exe可执行程序。这是由于架构不同,该交叉编译的程序并不能在电脑上直接运行。
将文件夹下的coremark.exe复制到板卡上,执行chmod 777 coremark.exe ./coremark.exe
多核
make PORT_DIR=ok527 XCFLAGS="-DMULTITHREAD=4 -DUSE_FORK -pthread"
Dhrystone(单核性能测试工具)
首先下载源码(http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz)并解压
tar -vxf classic_benchmarks.tar.gz
之后新建一个编译文件夹,复制相关源码到此,并新建Makefile文件
cd classic_benchmarks mkdir ./build cd ./build cp -rf ../source_code/common_64bit/cpuidc64.c ./ cp -rf ../source_code/common_64bit/cpuidh.h ./ cp -rf ../source_code/dhrystone2/dhry.h ./ cp -rf ../source_code/dhrystone2/dhry_1.c ./ cp -rf ../source_code/dhrystone2/dhry_2.c ./ touch Makefile
将如下内容复制到Makefile文件中并保存
CC=aarch64-none-linux-gnu-gcc main:*.o ${CC} -o dhry2_64 *.o ${CC} -O2 -o dhry22_64 *.o ${CC} -O3 -o dhry23_64 *.o *.o:*.c ${CC} -g -c *.c clean: rm -f *.o dhry2_64 dhry22_64 dhry23_64
此外由于source_code/common_64bit/cpuida64.asm代码并不适配aarch64-none-linux-gnu-as汇编器,所以我们在复制的时候没有复制此文件,并且需要注释掉 cpuidc64.c中的_cpuida() 、_calculateMHz() 两个汇编函数。
最后执行编译make clean make
生成的三个可执行文件分别为dhry2_64(无优化等级)、dhry22_64(优化等级2)、dhry23_64(优化等级3)。这里我们将dhry2_64复制到板卡中并运行,得到的结果如下
Stream
STREAM是一种内存带宽测试工具,主要用于评估计算机系统的内存子系统性能,特别是其读写速度和带宽。它通过一系列简单但计算密集型的操作来模拟对连续内存区域的访问,以此来测量系统的实际内存带宽性能。
STREAM测试主要提供以下四种指标:- Copy (复制):测量一个数组中的数据复制到另一个数组的速度。这项测试代表了简单的数据移动操作,如内存拷贝。
- Scale (尺度变换):测量将数组中的每个元素乘以一个常数的速度。这代表了需要读取、修改并重新写回内存的数据操作。
- Add (矢量求和):测量将两个数组的相应元素相加,并将结果存储到第三个数组中的速度。这代表了常见的向量加法操作。
- Triad (复合矢量求和):测量将一个数组的元素与另一个数组的元素相加,然后将结果乘以一个常数,并存储到第三个数组中的速度。这是最复杂的一项测试,因为它涉及读取、计算和写回三个数组的操作。
首先下载C源码(https://www.cs.virginia.edu/stream/FTP/Code/stream.c),并在同一目录下新建makefile,并将以下内容复制进去
CC=aarch64-none-linux-gnu-gcc main: ${CC} stream.c -o stream clean: rm -f *.o stream
编译执行后得到可执行文件stream,将其复制到板卡上并执行
此外,在编译程序时还可以启用-fopenmp选项,它会告诉编译器生成能利用多线程的代码,从而可以并行地执行内存读取和写入操作,从而更好地模拟真实应用的负载情况,因为现代应用程序往往利用了多核架构的并行处理能力。因此,启用-fopenmp可以得到更接近实际工作负载下的内存带宽测量值。启用-fopenmp选项后的测试结果如下:
可以看到板卡的内存性能也很不错。
之后我们修改Makefile来查看不同编译优化等级的影响,CC=aarch64-none-linux-gnu-gcc main: ${CC} stream.c -fopenmp -o stream ${CC} stream.c -fopenmp -O1 -o stream1 ${CC} stream.c -fopenmp -O2 -o stream2 ${CC} stream.c -fopenmp -O3 -o stream3 clean: rm -f *.o stream
交叉编译后分别得到无优化、优化等级1、优化等级2、优化等级3的程序,将其下载到板卡中进行测试。
- 无优化
- 优化等级1
- 优化等级2
- 优化等级3
可以看到当为优化等级1时效果最好,O2和O3都会导致部分指标有一定的衰减。
ELFBoard
下面以搭载i.MX6ULL芯片的ELFBoard为例进行单核性能比对测试。
coremark
Dhrystone
可以看到在单核性能上T527N就比i.MX6ULL大约高了三倍。 -
飞凌OK-T527开发板试用1-开箱+交叉编译
开箱
昨天收到了飞凌嵌入式寄到的OK-T527板卡测试,开箱图片如下:
串口驱动安装
在”04-工具“文件夹中包含有”CH343SER.ZIP“驱动压缩包,解压后执行Driver中的SETUP.EXE即可安装驱动程序。
- 如果出现:未知USB设备(设备描述符请求失败),说明你的usb口供电不足,换个供电能力好的(如主机箱后侧)的USB口就好啦。
串口连接
找到“USB-Enhanced-SERIAL-A CH342”对应的com号,波特率选择115200进行连接。
SSH连接
网口连接
使用ifconfig命令来查看和设置网络。首先将板卡与电脑连接至同一网段,之后使用ifconfig设置板卡ip地址。ifconfig eth0 10.7.61.241 netmask 255.255.192.0
设置完ip后如下
然后进行电脑和板卡之间互ping,发现可以ping通就说明两者网络已经互通。
wifi连接
执行如下命令,-s后为wifi名称,-p后为密码。
fltest_wifi.sh -i wlan0 -s Redmi2024 -p ******
ssh登录
设置好板卡的ip地址后就能通过ssh连接了。
其中用户名和密码都为root。交叉编译器安装
在完成源码拷贝和释放后,在其out/toolchain目录下,存放的是交叉编译工具。
因此我们在~/.profile文件夹中添加如下代码export PATH=$PATH:/home/forlinx/work/OKT527-linux-sdk/out/toolchain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin
之后注销账号然后再重新登录。
之后执行如下命令测试交叉编译工具是否安装成功
aarch64-none-linux-gnu-gcc -v
交叉编译测试-HelloWorld
新建一个helloworld.c文件并将如下内容填入文件中。
#include<stdio.h> int main() { printf("hello world!\n"); }
执行交叉编译
aarch64-none-linux-gnu-gcc helloworld.c -o helloworld
将编译后的程序移动到板卡的root文件夹下,执行
chmod 777 helloworld ./helloworld
可以看到我们的程序已经正常执行了。