飞凌OKMX6ULL-C开发板试用

开箱体验

主要配件包括:USB Type-C调试线、电源线、主板。

飞凌OKMX6ULL-C开发板试用_第1张图片飞凌OKMX6ULL-C开发板试用_第2张图片

 飞凌OKMX6ULL-C开发板试用_第3张图片

资源下载

开发环境 

飞凌提供了制作好的ubuntu18.04的镜像,直接到网盘下载解压即可,VMWare的安装可以参考网上教程,这里不赘述。安装好VMWare后直接打开解压出来的ubuntu18.04镜像,登录账户forlinx,密码forlinx

飞凌OKMX6ULL-C开发板试用_第4张图片

 硬件资料

硬件资料包括用户手册、数据手册、PDF版的原理图以及更新记录

飞凌OKMX6ULL-C开发板试用_第5张图片

软件资料

软件方面提供了linux4.1.15+QT5.6的镜像、原厂资料包、丰富的应用笔记、数据手册、烧录工具以及Linux源码

飞凌OKMX6ULL-C开发板试用_第6张图片

 系统介绍

OKMX6ULL-C开发板使用的是NXP的imx6-ul处理器,主要特性如下

CPU

  • Cortex-A7内核,运行频率900 MHz,128 KB L2缓存

显示

  • 并行LCD显示,分辨率高达WXGA (1366x768)
  • 8/10/16/24位并行摄像头传感器接口
  • 电泳显示屏控制器支持直接驱动E-Ink EPD面板,分辨率高达2048x1536,工作频率106 Hz

存储

  • 16位LP-DDR2, DDR3/DDR3L
  • 8/16位并行NOR FLASH / PSRAM
  • 双通道Quad-SPI NOR FLASH
  • 8位原始NAND FLASH与40位ECC

连接

  • 2个MMC 4.5/SD 3.0/SDIO端口
  • 2个USB 2.0 OTG,HS/FS,器件或主机,带PHY接口
  • 音频接口包括3个I2S/SAI, S/PDIF Tx/Rx
  • 2个10/100以太网,支持IEEE 1588协议
  • 2个12位ADC,高达10个输入通道,以及电阻式触摸控制器(4线/5线)

安全性

  • 安全模块:TRNG,加密引擎(带DPA的AES,TDES/SHA/RSA),安全引导

飞凌OKMX6ULL-C开发板试用_第7张图片

系统测试

 查看 CPU 信息命令

取系统中的 CPU 的提供商和参数信息,则可以通过/proc/cpuinfo 文件得到。

  • processor:系统中逻辑处理核的编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
  • BogoMIPS :在系统内核启动时粗略测算的 CPU 每秒运行百万条指令数(MillionInstructions Per Second)
root@fl-imx6ull:~# cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 3.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : Freescale i.MX6 Ultralite (Device Tree)
Revision        : 0000
Serial          : 471669d75d5b2ac2

CPU使用情况

Top命令查看CPU使用情况

Tasks:  92 total,   1 running,  88 sleeping,   3 stopped,   0 zombie
%Cpu(s):  1.5 us,  2.0 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   489380 total,   373512 free,    35020 used,    80848 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   371988 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                 
  883 root      20   0    3236   1920   1612 R  3.2  0.4   0:03.34 top                                                     
  624 avahi     20   0    3692   2120   1948 S  0.6  0.4   0:00.50 avahi-daemon                                            
    1 root      20   0    1708   1096   1028 S  0.0  0.2   0:02.09 init                                                    
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                                                
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.15 ksoftirqd/0                                             
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                            
    7 root      20   0       0      0      0 S  0.0  0.0   0:00.34 rcu_preempt                                             
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_sched                                               
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                  
   10 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                             
   11 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper                                                 
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kdevtmpfs                                               
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 perf                                                    
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                               
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                  
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                  
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                 
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff                                                 
   20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 cfg80211                                                
   21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 rpciod                                                  
   22 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kswapd0                                                 
   23 root      20   0       0      0      0 S  0.0  0.0   0:00.00 fsnotify_mark                                           
   24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 nfsiod                                                  
   61 root      20   0       0      0      0 S  0.0  0.0   0:00.00 spi0                                                    
   62 root      20   0       0      0      0 S  0.0  0.0   0:00.00 spi1                                                    
   63 root      20   0       0      0      0 S  0.0  0.0   0:00.14 kworker/u2:1                                            
   68 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ci_otg                                                  
   69 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 goodix_wq                                               
   70 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 gtp_esd_check   
  • %us:表示用户空间程序的 cpu 使用率(没有通过 nice 调度)
  • %sy:表示系统空间的 cpu 使用率,主要是内核程序
  • %ni:表示用户空间且通过 nice 调度过的程序的 cpu 使用率
  • %id:空闲 cpu
  • %wa: 等待输入输出的 CPU 时间百分比
  • %hi:cpu 处理硬中断的数量
  • %si:cpu 处理软中断的数量

CPU支持的频率

查看当前CPU支持的频率档位

root@fl-imx6ull:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 
198000 396000 528000 792000 

root@fl-imx6ull:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
198000

获取 CPU 温度信息

root@fl-imx6ull:~# cat /sys/class/thermal/thermal_zone0/temp 
55025

上面显示的数字为千分之一度,处以1000就是当前温度

CPU压力测试

通过 bc 命令来计算圆周率方法来测试 CPU 在运算过程中的稳定性。基本上保持在98.5%左右

飞凌OKMX6ULL-C开发板试用_第8张图片

 过一会儿计算出了圆周率

飞凌OKMX6ULL-C开发板试用_第9张图片

 查看内存信息

可以通过/proc/meminfo 文件读取系统中的内存的参数信息

root@fl-imx6ull:~# cat /proc/meminfo 
MemTotal:         489380 kB
MemFree:          399972 kB
MemAvailable:     387244 kB
Buffers:            6788 kB
Cached:            40912 kB
SwapCached:            0 kB
Active:            40896 kB
Inactive:          28524 kB
Active(anon):      21932 kB
Inactive(anon):      860 kB
Active(file):      18964 kB
Inactive(file):    27664 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         489380 kB
LowFree:          399972 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:         21720 kB
Mapped:            22508 kB
Shmem:              1072 kB
Slab:              10640 kB
SReclaimable:       3420 kB
SUnreclaim:         7220 kB
KernelStack:         728 kB
PageTables:          972 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      244688 kB
Committed_AS:      75644 kB
VmallocTotal:    1548288 kB
VmallocUsed:       37188 kB
VmallocChunk:    1329932 kB
CmaTotal:         327680 kB
CmaFree:          326632 kB
root@fl-imx6ull:~# 

获取内存使用率

使用 free 命令来读取内存的使用情况,-m 参数代表单位为 MByte。

root@fl-imx6ull:~# free -m
              total        used        free      shared  buff/cache   available
Mem:            477          30         392           1          55         378
Swap:             0           0           0
  • total :内存总量 (我拿到的是512M的内存版本)
  • used :被使用的内存量
root@fl-imx6ull:~# memsize
384MB OK
384

内存压力测试

通过给定测试内存的大小和次数, 可以对系统现有的内存进行压力上的测试。可使用系统工具 memtester 进行测试,如指定内存大小 50MB,测试次数为 5,测试命令为“memtester 50M 5"。

root@fl-imx6ull:~# memtester 50M 5                                                                                                               
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 50MB (52428800 bytes)
got  50MB (52428800 bytes), trying mlock ...locked.
Loop 1/5:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         

Loop 2/5:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         

Loop 3/5:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         

Loop 4/5:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         

Loop 5/5:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : ok         
  Walking Ones        : ok         
  Walking Zeroes      : ok         

Done.

查看分区信息

root@fl-imx6ull:~# cat /proc/partitions 
major minor  #blocks  name

   1        0      65536 ram0
   1        1      65536 ram1
   1        2      65536 ram2
   1        3      65536 ram3
   1        4      65536 ram4
   1        5      65536 ram5
   1        6      65536 ram6
   1        7      65536 ram7
   1        8      65536 ram8
   1        9      65536 ram9
   1       10      65536 ram10
   1       11      65536 ram11
   1       12      65536 ram12
   1       13      65536 ram13
   1       14      65536 ram14
   1       15      65536 ram15
 179        0    7634944 mmcblk1
 179        1     512000 mmcblk1p1
 179        2    7020544 mmcblk1p2
 179       24       4096 mmcblk1rpmb
 179       16       4096 mmcblk1boot1
 179        8       4096 mmcblk1boot0
root@fl-imx6ull:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.5G  750M  5.4G  12% /
devtmpfs         79M  4.0K   79M   1% /dev
tmpfs            40K     0   40K   0% /mnt/.psplash
tmpfs           239M  172K  239M   1% /run
tmpfs           239M  172K  239M   1% /var/volatile
/dev/mmcblk1p1  500M   15M  486M   3% /run/media/mmcblk1p1

网络

设置网卡0的IP地址,ifconfig命令可以查看当前系统的网卡

root@fl-imx6ull:~# ifconfig eth0 192.168.1.1
root@fl-imx6ull:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 3a:63:34:0f:71:84  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr 62:38:63:34:0f:71  
          UP BROADCAST MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

uname查看内核版本

root@fl-imx6ull:~# uname -a
Linux fl-imx6ull 4.1.15-00050-ge85def2 #1 SMP PREEMPT Mon Apr 18 17:42:50 CST 2022 armv7l armv7l armv7l GNU/Linux

mplayer播放MP4

root@fl-imx6ull:~# mplayer -vo fbdev test.mp4 
Creating config file: /home/root/.mplayer/config
MPlayer 1.3.0-5.3.0 (C) 2000-2016 MPlayer Team

Playing test.mp4.
libavformat version 57.25.100 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x887550]Protocol name not provided, cannot determine if input is local or a network protocol, l
[lavf] stream 0: video (mpeg4), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [MP4V]  480x272  24bpp  23.976 fps  1077.9 kbps (131.6 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.24.102 (internal)
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Clip info:
 major_brand: isom
 minor_version: 512
 compatible_brands: isomiso2mp41
 encoder: Lavf55.19.104
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
top - 04:06:00 up 21 min,  2 users,  load average: 0.08, 0.05, 0.05
Tasks:  92 total,   1 running,  89 sleeping,   2 stopped,   0 zombie
%Cpu(s):  0.3 us,  2.3 sy,  0.0 ni, 97.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   489380 total,   370476 free,    34204 used,    84700 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   370888 avail Mem 
root@fl-imx6ull:~# mplayer -vo fbdev test.mp4      
MPlayer 1.3.0-5.3.0 (C) 2000-2016 MPlayer Team

Playing test.mp4.
libavformat version 57.25.100 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x887550]Protocol name not provided, cannot determine if input is local or a network protocol, l
[lavf] stream 0: video (mpeg4), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [MP4V]  480x272  24bpp  23.976 fps  1077.9 kbps (131.6 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.24.102 (internal)
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Clip info:
 major_brand: isom
 minor_version: 512
 compatible_brands: isomiso2mp41
 encoder: Lavf55.19.104
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, floatle, 126.2 kbit/4.47% (ratio: 15775->352800)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: [alsa] 44100Hz 2ch floatle (4 bytes per sample)
Starting playback...
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xab8380]bicubic scaler, from yuv420p to bgra using C
[swscaler @ 0xab8380]No accelerated colorspace conversion found from yuv420p to bgra.
[swscaler @ 0xab8380]using unscaled yuv420p -> bgra special converter
VO: [fbdev] 480x272 => 484x272 BGRA 
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xab8380]No accelerated colorspace conversion found from yuv420p to bgra.
VO: [fbdev] 480x272 => 484x272 BGRA 
A:   0.1 V:   0.0 A-V:  0.102 ct:  0.004   0/  0 ??% ??% ??,?% 0 0 
[VD_FFMPEG] DRI failure.
A:  20.0 V:  20.0 A-V:  0.005 ct:  0.065   0/  0 24%  3%  3.8% 0 0 


Exiting... (End of file)

应用开发(VNC显示QT界面)

本次飞凌嵌入式提供的OKMX6ULL-C开发板,么有配LCD屏幕,想看一下系统的QT显示,只能尝试搞一下VNC,通过远程桌面来看QT的HMI界面。

OKMX6ULL-C(VNC Server)<-----------网线----------->PC (VNC Client)

下载x11vnc

下载链接:https://x11vnc.sourceforge.net/dev/x11vnc-0.9.14-dev.tar.gz

 解压x11vnc

切换到x11vnc解压出来的目录

cd /home/forlinx/work/x11vnc-0.9.14-dev/x11vnc-0.9.14

 配置交叉编译环境

设置交叉编译环境
source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
确认一下交叉编译命令CC是否Okay
$ echo $CC
arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi

 配置x11vnc

查看configure文件中的编译变量指定:

这里直接使用的是$CC,所以上一步要source一下ToolChian,

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

 

--host参数指定交叉编译

--prefix指定最终的安装目录

./configure --host=arm-poky-linux --prefix=/home/forlinx/opt/vnc

 编译及安装

make &&make install

最终编译出来的x11vnc如下:

$ tree 
.
└── vnc
    ├── bin
    │   └── x11vnc
    ├── include
    │   └── rfb
    │       ├── keysym.h
    │       ├── rfbclient.h
    │       ├── rfbconfig.h
    │       ├── rfb.h
    │       ├── rfbint.h
    │       ├── rfbproto.h
    │       └── rfbregion.h
    ├── man
    │   └── man1
    │       └── x11vnc.1
    └── share
        ├── applications
        │   └── x11vnc.desktop
        └── x11vnc
            └── classes
                ├── index.vnc
                ├── ssl
                │   ├── index.vnc
                │   ├── proxy.vnc
                │   ├── README
                │   ├── SignedUltraViewerSSL.jar
                │   ├── SignedVncViewer.jar
                │   ├── ss_vncviewer
                │   ├── ultrasigned.vnc
                │   ├── UltraViewerSSL.jar
                │   ├── ultra.vnc
                │   └── VncViewer.jar
                └── VncViewer.jar

11 directories, 22 files

运行x11vnc

OKMX6ULL-C板端作为VNC Server,PC作为VNC Viewer

通过网线连接PC和OMX6ULL-C板

板端

  • 将上述编译出来的~/opt/vnc整个目录通过scp传输到板端
  • 配置板子的IP地址为192.168.1.1
  • 直接运行
root@fl-imx6ull:~/vnc# ls
bin      include  man      share
root@fl-imx6ull:~/vnc# ./bin/x11vnc

飞凌OKMX6ULL-C开发板试用_第10张图片

 PC端

  • PC端安装好VNC viewer工具(下载链接 Download VNC Server | VNC® Connect)
  • 配置PC的IP地址为192.168.1.2
  • 设置好需要连接的远端桌面的IP(OKMX6ULL-C板端)192.168.1.1

打开VNC Viewer设置连接:

 飞凌OKMX6ULL-C开发板试用_第11张图片

 飞凌OKMX6ULL-C开发板试用_第12张图片

 连接成功后就可以看到QT的界面了,x11vnc支持事件捕获,所以是支持鼠标操控QT界面的。飞凌OKMX6ULL-C开发板试用_第13张图片

最后上一个完整的靓图吧:)

飞凌OKMX6ULL-C开发板试用_第14张图片

你可能感兴趣的:(NXP,IMX6)