飞凌嵌入式 OKMX6ULL-S+开发板试用体验

原创 2020-09-30 10:22:00 i.MX6ULL;imx6ull测评

作者:embedwang

1.iMX6ULL开发板硬件资源介绍

本次测评开发板使用MCIMX6Y2为主CPU,256MB DDR3L内存,256MB NANDFLASH存储空间。MCIMX6Y2是IMX6ULL系列中的一款工业级版本,工作温度在-40℃~85℃。该CPU基于Arm Cortex-A7内核,最高工作频率可以到900MHZ。CPU接口丰富,支持8路串口、2路网口、2路can口、2 路I2C口、2路USB、3路音频口。可见其非常适合做工业控制领域应用开发。

2.开发环境搭建

本次测评开发环境基于《OKMX6ULL-S_Qt5.6+Linux4.1.15软件手册_V1.1_2020.07.06.pdf》搭建,包括:交叉编译工具安装、Linux4.1.15交叉编译、zImage及.dtb烧录三部分。


2.1.交叉编译工具安装
1)拷贝
fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh
到服务器中。
文件路径为:

OKMX6ULL-S(eMMC&NAND 版)-Qt5.6+Linux4.1.15用户资料-2020.06.08\工具\


2)执行该文件完成安装

sudo sh fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh


3)初始化使用编译器的环境变量

source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi


4)交叉编译命令如下:
a.CC: 交叉编译工具gcc
b.CXX:交叉编译工具g++
c.CFLAGS:交叉编译工具gcc编译标识
d.CXXFLAGS:交叉编译工具g++编译标识

e.LDFLAGS:交叉编译工链接标识


2.2.Linux4.1.15交叉编译及烧录
1)按手册完成zImage及dtb的交叉编译
2)使用zImage单步更新进行zImage更新
在板子Linux起来之后依次操作:
flash_erase /dev/mtd4 0 0
nandwrite -p /dev/mtd4 /run/media/sda1/target/zImage
sync
3)单步更新dtb
a.首先板子进入uboot,使用printenv命令,查看板子当前使用的dtb文件名称

b.打开烧录工具ucl2.xml文件,路径为mfgtools\Profiles\Linux\OS Firmware
搜索该dtb烧录命令

c.在板子linux起来以后,依次运行:
flash_erase /dev/mtd3 0 0
nandwrite -s 0x80000 -p /dev/mtd3 /mnt/imx6ull-S-gpmi-1024x600c7.dtb
sync
4)如果单步更新后,出现板子系统无法启动的情况,可以使用mfgtools进行系统恢复


3.各功能测试

3.1.网口测试
板子起来后,网口1默认Ip:192.168.0.232,网口2默认Ip:192.168.1.188。交叉编译ipref工具,并使用其来测试板子网口带宽。
1)pc端设置ip:192.168.0.118、192.168.1.118,运行jpref server端
2)板子运行iperf client端命令
#设置板子性能优先
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
./iperf -c 192.168.0.118 -p 5001 -f k -t 1000
./iperf -c 192.168.1.118 -p 5001 -f k -t 1000
3)网卡带宽,及cpu使用率如下图所示:


3.2.USB口测试
1)将U盘格式化为FAT32格式
2)插入U盘,板子系统会将其默认挂在:/run/media/sda4
3)拷贝二进制test.bin文件到/run/media/sda4,文件约740MB
4)dd if=/run/media/sda4/test.bin of=/run/media/sda4/test.bin.cp bs=4k进行读写双向测试
5)命令实际花费时间约97s,USB 双向读写速率约:7.6MB/s


3.3.高CPU占用时音频播放测试
1)开发板使用WM8960使用了I2C1和SAI2,使用aplay 播放 WAV文件可以直接测试两路接口
2)在启动iperf和dd测试后,cpu占用高于90%,使用aplay播放WAV文件
3)WAV文件正常播放,声音没有卡顿


3.4.串口测试
1)使用飞凌提供的tty_test.c,文件路径:
OKMX6ULL-S(eMMC&NAND 版)-Qt5.6+Linux4.1.15用户资料-2020.06.08\Linux\测试程序源码\cmd\cmd
2)用杜邦线连接 uart2 rx <-> uart 3tx 和uart2 tx <-> uart 3 rx
3)在两个窗口分别执行
./tty_test.out /dev/ttymxc1 115200
./tty_test.out /dev/ttymxc2 115200
可见正常发送和接收打印log
4)参考《OKMX6ULL-S_应用笔记_V1.0_2020.06.08.pdf》,添加uart7,uart8
5)修改imx6ull-14x14-evk.dts文件

6)修改imx6ull-S-gpmi-1024x600c7.dts

7)单步更新dtb,板子系统启动后,可以看到设备ttymxc6、ttymxc7
8)在两个窗口分别执行
./tty_test.out /dev/ttymxc6 115200
./tty_test.out /dev/ttymxc7 115200
可见正常发送和接收打印log


3.5.gdb-7.8.1移植
开发板资料中暂时没有gdb,但飞凌之前imx6q的开发板中有,使用该版本gdb进行移植。其操作步骤如下:
1)cd gdb-7.8.1
2)mkdir arm-gdb
3)./configure --host=arm-linux --target=arm-linux --prefix=/home/share/fangling/nxp/imx6ull/lib_app/baseboard_test/gdb-7.8.1/arm-gdb
4)vim ./gdb/common/gdb_assert.h +26
将 
#define gdb_static_assert(expr) \
extern int never_defined_just_used_for_checking[(expr) ? 1 : -1] 
修改为:
#define gdb_static_assert(expr) \
extern int never_defined_just_used_for_checking[(1) ? 1 : -1] 


5)make && make install


6)如果需要使用gdbserver模式,需要修改
vi ./gdb-7.8.1/gdb/remote.c +6065
if (buf_len > 2 * rsa->sizeof_g_packet) {
    rsa->sizeof_g_packet = buf_len ;
    for (i = 0; i < gdbarch_num_regs (gdbarch); i++) {
        if (rsa->regs->pnum == -1)
            continue;
        if (rsa->regs->offset >= rsa->sizeof_g_packet)
            rsa->regs->in_g_packet = 0;
        else  
            rsa->regs->in_g_packet = 1;
    }     

}


3.6.qt_test测试
开发板支持Qt库,于是对qt模块进行了简单测试。
1)编写qt_test.pro

2)编写main.cpp

3)qmake
4)make 可编译可执行文件qt_test

4.综合评价

通过上述测试发现OKMX6ULL-S开发板是一款性价比高,硬件接口完备,软件资源丰富的开发板,在工业控制、人机交互等领域有非常好的应用前景。


相关产品 >

  • OKMX6ULL-S开发板

    iMX6ULL是飞凌新近推出的一款开发板,iMX6ULL与iMX6UL开发板相比,功能无区别完全兼容,配置升级,性能高,价格低。根据介绍可看出i.MX6ULL参数丰富 ,采用NXP i.MX6ULL处理器芯片,邮票孔封装,支持Linux系统,i.MX6ULL开发板资料丰富,方便二次开发设计。

    了解详情
    OKMX6ULL-S开发板
  • FETMX6ULL-S核心板

    飞凌新出的一款采用NXP高性能、高效、低成本处理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用邮票孔连接方式,ARM Cortex-A7内核,原生两路网口,两路Can和八路串口,可以和多种设备同时通讯。i.MX6ULL核心板支持工业级和扩展商业级两种配置,并且经过了高低温测试的检验,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系统,方便开发自己的应用程序。 了解详情
    FETMX6ULL-S核心板
  • FETMX6ULL-C核心板

    FETMX6ULL-C核心板采用NXP i.MX6ULL处理器开发设计,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架构,运行速度高达800MHz。iMX6ULL核心板29*40mm  ,iMX6ULL这款处理器功能接口资源丰富,供货周期长。

    了解详情
    FETMX6ULL-C核心板
  • OKMX6ULL-C开发板

    40*29mm,双网双CAN,8路串口| i.MX6ULL开发板是基于NXP i.MX6ULL设计开发的的一款Linux开发板 ,主频800MHz,体积小,其核心板仅40*29mm,采用板对板连接器,适应场景丰富。 了解详情
    OKMX6ULL-C开发板

推荐阅读 换一批 换一批