飞凌OK113i-C开发板试用初体验

描述

在收到新的开发板并准备开始我们的开发之旅之前,我们还需要进行一些必要的准备工作,这些准备工作包括开发环境搭建、内核编译、kernel配置等,以确保我们的开发板能够正常运行并为我们提供所需的功能。

开发板

接下来,我们将以飞凌OK113i-C开发板为例,详细介绍开发板试用的初体验,通过这些步骤帮助你顺利地开始你的开发板试用之旅。

环境搭建

板子做工精致很有份量,拿在手里沉甸甸的,各种接口一应俱全——USB、TF 卡座、SIM卡座、4G模块卡座、网口、RGB LCD接口、LVDS、RS485、CAN、各种音频口、TV-in/TV-Out,板上还自带一个RTL8723du wifi/蓝牙二合一模块,作为一块主打工业控制的主控板这些接口实属绰绰有余了。

开发板

飞凌开发文档中提到已经移植好了Qt5开发环境,所以这个内存跑跑Qt的UI程序是再合适不过了,可惜手里没有匹配的开箱即用的LCD显示屏不然接上直接能试试出厂自带的Qt测试程序了。

提供的开发资料中已经包含有Ubuntu 20.04 的虚拟机文件,因为是直接用的Linux版本系统,所以需要自己搭建开发环境,以下所涉内容都是在装有Ubuntu 20.04的PC上进行操作,而且,因为以前在安装过T113-S3的开发环境,所以在编译SDK过程中并没有碰到其他因缺少依赖软件报的错误。

解压SDK

 

cat OK113i-linux-sdk.tar.bz2* | tar jx -C ~/Dev/sdk/T113-i/

 

除了 gcc,ncurse,bison,autoconf,wget,patch,texinfo,zlib,dos2unix 之外需要安装如下:

 

sudo apt-get install git
sudo apt-get install gnupg
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install build-essential
sudo apt-get install zip
sudo apt-get install curl
sudo apt-get install libc6-dev
......

 

初次编译内核会遇到python 报系统库语法错误,根据经验是系统python版本问题,首先查看系统中python版本号

 

python --version
Python 3.8.10

 

不出意外的话编译系统依赖python 2.7,所以切换到python 2.7版本,具体操作如下:
首先,查看系统有几个python版本

 

update-alternatives --list python
/usr/bin/python2
/usr/bin/python3

 

然后,通过如下切换到想要的版本

 

update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
 
  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3   2         auto mode
  1            /usr/bin/python2   1         manual mode
  2            /usr/bin/python3   2         manual mode
 
Press  to keep the current choice[*], or type selection number: 1

 

切换后,再确认python版本后进行内核编译。

内核编译完后OK113i-linux-sdk/out目录需要注意,这个是所有的编译输出目录,后面buildroot编译完也是在这个目录编译输出的。此目录中如下几个目录需要特别记住:

编译内核的交叉编译工具链

 

OK113i-linux-sdk/out/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi

 

buildroot的交叉编译工具链

 

printf("hello world!");OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/中 arm-linux-gnueabi-g++

 

内核编译输出目录

 

OK113i-linux-sdk/out/kernel

 

Buildroot编译

默认全部编译运行build.sh,会有如下打印有用信息,此处记录下编译Qt测试程序时候的打印:

 

...
/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/arm-linux-gnueabi-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os --sysroot=/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot -O2 -O3 -Wall -W -D_REENTRANT -fPIC -DQT_NO_UITOOLS -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5 -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWebKitWidgets -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtPrintSupport -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWidgets -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWebKit -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtGui -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtNetwork -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtCore -I. -I. -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/mkspecs/devices/linux-buildroot-g++ -o settings.o settings.cpp


/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/qmake -o Makefile /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/platform/framework/auto/qt_demo/terminal/terminal.pro ) && make -f Makefile 


build emmc rootfs
PARTITION_FEX=/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/device/config/chips/t113_i/configs/ok113i/longan/sys_partition.fex
ROOTFS_FEX_LINE=64
ROOTFS_FEX_STR=    size         = 2097152
ROOTFS_FEX_SIZE= 2097152
EXT4_SIZE=1073741824(1073741824/1024/1024)
/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/device/config/chips/t113_i/configs/ok113i/longan/sys_partition.fex rootfs.fex size is  2097152
EXT4_SIZE= 2097152*512=1073741824
Creating filesystem with parameters:
    Size: 1073741824
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8192
    Inode size: 256
    Journal blocks: 4096
    Label: 
    Blocks: 262144
    Block groups: 8
    Reserved blocks: 0
    Reserved block group size: 63
Created filesystem with 8976/65536 inodes and 94920/262144 blocks
/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/build/bin/make_ext4fs -s -l 1073741824 /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/rootfs.ext4  /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/target

 

可以知道:

移植好的qmake所在路径: 

 

OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/qmake

 

Qt示例工程源代码目录在:

 

/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/platform/framework/auto/qt_demo

 

编译好的驱动模块都在:

 

OK113i-linux-sdk/out/t113_i/ok113i/longan/dist

 

最后总结

板子出厂的rootfs中包含的基础软件是真的很全面,基本可以做到开箱即用了,wifi驱动也已经适配了,wpa_supplicant、bluealsa、bluez、alsa、tinyalsa等工具软件也已经包含。因为目前手头没有能直接可用的显示屏,所以HMI显示和视频解码等高级功能没法体验。不过对于喜欢折腾的先适配一块触摸显示屏还是很有必要的,这样可玩性更高。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分