DEY应用程序是指可以运行在Digi ConnectCore目标板上的嵌入式Linux应用程序。您可以使用Makefile或是任一种IDE,包括Digi IDE(基于Eclipse定制的IDE)或是QT Creator,VSCode等来进行应用程序开发。Digi提供SDK来安装开发应用程序所需的交叉编译工具链,您需要根据您的ConnectCore硬件平台下载相应的SDK安装。
Digi官方提供完备的应用程序英文文档,本中文文档为精简版,当您碰到问题,请访问官方的文档入口,选择对应的ConnectCore硬件平台后,进入Digi Embedded Yocto文档,在左侧菜单中选择Application Development章节,查看相关的内容。
您需要在Linux主机上安装相应的SDK和IDE,以进行应用程序开发。下面以全新安装的Ubuntu 22.04为例,进行开发前的准备工作,包括各种依赖包和语言环境的安装。 您可以直接安装Ubuntu 22.04的Desktop版本,您也可以用Server版,通过安装简单的桌面环境,来进行更轻量化的安装,要在Ubuntu Server环境下进行开发主机的准备工作,参考下面的安装过程:
1、安装桌面环境,中文语言支持和必要的依赖包
sudo apt update sudo apt install --no-install-recommends ubuntu-desktop sudo apt install language-pack-zh-hans sudo apt install language-pack-gnome-zh-hans fonts-arphic-ukai fonts-noto-cjk ibus-libpinyin fonts-noto-cjk-extra fonts-arphic-uming sudo apt install ibus ibus-pinyin file build-essential gdb gdb-multiarch
2、安装IDE
您可以使用任一种IDE进行相关的应用程序开发,安装完IDE后,请不要直接运行它,而是关闭安装程序并退出shell,等安装完SDK后,从运行SDK的环境脚本的shell中启动IDE,以便自动配置好IDE的开发环境。
VScode支持各种开发语言和调试工具,要使用vscode可参考如下,如果您使用其它IDE,可略过此步。
sudo apt update sudo apt upgrade sudo reboot sudo apt install software-properties-common apt-transport-https wget wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" sudo apt update sudo apt install code sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" sudo apt install microsoft-edge-stable
要使用QT Creator作为IDE,可以参考如下:
注意:安装QT时,不同的发行版本可能需要一些依赖包,有QT Creator无法安装时,可运行下面一些依赖包安装: 普通ubuntu桌面版本,可能只需要libxcb-xinerama0,xubuntu则需要libxcb-icccm4 sudo apt install libxcb-xinerama0 libxcb-icccm4 如果仍有问题,可运行下面更多的依赖包安装 sudo apt install libxcb-xinerama0 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0 libxcb-icccm4 wget https://mirrors.aliyun.com/qt/archive/qtcreator/9.0/9.0.2/qt-creator-opensource-linux-x86_64-9.0.2.run sudo chmod +x ./qt-creator-opensource-linux-x86_64-9.0.2.run qt-creator-opensource-linux-x86_64-9.0.2.run
安装过程需要注册QT,安装完最后一步请去掉那个启动QT Creator的勾选框,先别启动,我们需要安装Digi SDK后才启动。一般要关闭安装时所用的Shell,建议重新启动一下操作系统,以便系统重新加载各种服务,以完成对桌面环境和IDE的支持。
您也可以使用Digi提供的IDE来为您的ConnectCore硬件平台开创建和编译应用程序。Digi Application Development Environment简称DADE,是一个集成式开发环境,用户只需安装一次,就可以在IDE中自动配置好相关插件,并且IDE中集成有例程和开发文档供用户参考。您可以直接下载Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的各种插件。如果您之前已经在用Eclipse开发软件,也可以只安装Digi相关的插件,更多详情请参考Digi官方文档。
下面我们以ConnectCore 93的程序开发为例来演示完整安装ADE的过程:
1.下载Digi ADE安装包:https://ftp1.digi.com/support/digiembeddedyocto/eclipse,会自动跳转下载最新的安装包,一般是一个40003033_版本号.run文件,以40003033_H.run为例。 2. 安装过程中,您需要有足够权限,因此先运行: $ sudo install -o $USER -g $USER -d /opt/eclipse 上面的$USER也可以用您登陆的用户名替代。 3.下载完成后,需要先更改属性赋予该*.run文件可执行权限,然后在桌面上双击*.run运行安装程序,按提示一步步完成安装。您也可以在命令行下执行 $ sudo chmod +x 40003033_H.run $ ./40003033_H.run
安装完成后,请关闭这个Shell,以便后面的其它IDE安装或运行不受本次配置的环境变量的影响。
SDK提供了应用程序开发所需的交叉编译工具链,安装好SDK后,您可以使用终端的方式,或是IDE的方式来开发应用程序。下面示例中用到Digi的交叉编译工具,如果您用的DEY版本和示例命令不一致,请到Digi官方FTP中选择对应版本的SDK进行替换。我们建议您使用最新的DEY版本和它对应的安装包。
除了下载预编译好的SDK安装外,您也可以在编译系统固件镜像时,使用-c populate_sdk来编译生成SDK安装包。
下面以ConectCore 93核心模块的的SDK为例来说明SDK安装过程和在程序开发及IDE配置中如何使用相关的交叉编译工具链:
1. 下载Connectcore 93的DEY-4.0-r7 SDK
如果您使用其它常用平台,请相应选择下载:
ConnectCore MP133 DEY-4.0-r7 SDK
ConnectCore MP157 DEY-4.0-r7 SDK
ConnectCore 8m nano DEY-4.0-r7 SDK
ConnectCore 8x DEY-4.0-r7 SDK
2. 安装
不同SOM平台请使用您下载的SDK文件名来替换
chmod +x ./dey-glibc-x86_64-dey-image-qt-xwayland-cortexa55-ccimx93-dvk-toolchain-4.0-r7.sh ./dey-glibc-x86_64-dey-image-qt-xwayland-cortexa55-ccimx93-dvk-toolchain-4.0-r7.sh
根据提示,一般只需一直回车,即可安装好SDK
安装好后,SDK您可以根据您所用的IDE来开发和编译DEY应用程序。
我们在第一步已经安装好对应平台的SDK,首次运行Digi ADE,我们需要配置好它。如果向导没有引导您配置项目的工具链,你也可以从菜单中找到工具链的安装配置页面:Window>Preferences中的DEY Toolchains。如果您的硬件平台的SDK没在安装好,或是你需要增加一种平台的SDK,可以点击“Download new toolchains…”按钮会自动搜索以下载对应平台的交叉工具链。但Eclipse并不是一种高效的下载工具,通常建议您独立下载SDK并安装后供IDE配置和使用。Digi ADE支持安装多个不同SOM的SDK,您只需选中一个当前所需的SDK作为默认的工具链,并应用它。
Digi ADE带有一个connection连接插件,让您可以从内置终端连接到远程设备上以方便调试。Connections的配置按钮在主界面上如下所示,按下按钮来新建一个连接,然后选中Generic Connection来根据向导一步一步添加设备的连接:
点击Browse按钮查看网络内的设备,如果没在列表中,可以用ADD按钮通过开发板的IP地址添加,
最终添加好一个ConnectCore 93的开发板的连接配置如下:
点击Finish完成添加。
上面已经配置好了工具链,并连接好目标板,接下来就可以创建项目并编译了。您可以创建一个全新的空白项目,也可以创建一个DEY例程项目。DEY的例程项目一般是用来简单测试一下各种接口的功能。
创建好项目后,会默认使用之前配置好的交叉编译工具链。我们可以创建一个Hello World的项目。用工具链编译,然后就可以在板子上运行了。
项目的右键菜单中,选中Properties,工具链的选择在DEY Toolchains配置项中。
项目的右键菜单中,选中Properties,在C/C++ Build>Settings配置项中,可以配置各种常用的编译选项,比如添加头文件路径,添加库,添加宏定义,设置优化级别和编译级别等。
同样地,在项目的右键菜单中,选中Properties,在Autotools>Configure Settings可进行各项配置。
默认地,一个项目有多种编译配置,比如debug或是release等,您可以通过项目的右键菜单中,选 Build Configurations > Set Active中进行选择或管理。
从项目的右键菜单中选中Build project来进行编译。编译过程中,输出信息会显示在Console窗口中。
编译成功后,您可以远程运行或是调试它。在工具栏按钮中,有个当前目标板连接的下拉菜单,如果之前连接到开发板的步骤已经建立好连接,就可以直接使用。
连接好后,可以通过项目的右键菜单Run As > DEY C/C++ Remote Application或是Debug As > DEY C/C++ Remote Application来运行或是调试程序。
本章节将介绍如何在Linux环境下使用QT Creator来进行DEY应用程序开发。注意,您的电脑至少需要有4G RAM和100G以上的硬盘空间才能正常使用QT Creator进行开发。QT开发在应用程序开发的官方文档中有专门的章节。
注意:安装QT时,不同的发行版本可能需要一些依赖包,有QT无法安装时,可运行下面一些依赖包安装:
普通ubuntu桌面版本,可能只需要libxcb-xinerama0,xubuntu则需要libxcb-icccm4
sudo apt install libxcb-xinerama0 libxcb-icccm4
如果仍有问题,可运行下面更多的依赖包安装
sudo apt install libxcb-xinerama0 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0 libxcb-icccm4
下载安装QT creator 9.0.2版本
请在桌面环境中的终端安装,不要远程ssh登陆安装,因为需要桌面交互才能完成安装。
wget https://download.qt.io/official_releases/qtcreator/9.0/9.0.2/qt-creator-opensource-linux-x86_64-9.0.2.run
或用国内镜像:
wget http://dey-mirror.eccee.com:1080/digiembeddedyocto/soft/qt-creator-opensource-linux-x86_64-9.0.2.run
chmod +x qt-creator-opensource-linux-x86_64-X.Y.Z.run
./qt-creator-opensource-linux-x86_64-X.Y.Z.run
安装过程需要注册QT,安装完最后一步请去掉那个启动QT Creator的勾选框,先别启动,我们需要安装Digi SDK后才启动。
一般建议先安装SDK再到IDE中配置,我们之前已经演示过SDK的安装,如果您是先安装QT Creator,则启动之前,需要先安装SDK,在安装完SDK之后,请关闭该Shell, 然后重新打开一人新的shell终端来运行环境配置和启动IDE。
进入sdk安装目录,运行环境配置
cd /opt/dey/4.0-r7/ccimx93-dvk . environment-setup-cortexa55-dey-linux 然后进入/home/robin/qt-crator/bin目录,运行Qt-creator cd ~/qtcreator-9.0.2/bin/ ./qtcreator.sh &
请在开发板console中配置好网络,并用ip addr查好IP地址,确保开发板和电脑可相互ping通。
然后从菜单中选择edit>preferences>devices>add一个remote linux device,
建议还是生成密钥对,然后部署到板子上,按提示操作即可,点Test,测试通过即可。如果不用密钥登陆,请在添加好后,把Authentication Type改为default即密码登陆,也可以一样验证通过。
由于运行了环境配置,所以会自动检测生成的部分配置选项,也可以按官方文档手动一步步再设置一遍。
菜单edit>preferences>kits>QT versions选中dey那个qmake,并应用。
同样地,在compliers,debuggers选项卡,都按文档一样设置,在左侧菜单中选中CMake,按文档的方法配置CMake。
给新的kit配置取个名,如cc93kit,选remote linux device,注意sysroot和Qt mkspec由于是手动输入路径,容易输错,此时kit就变得不可用了,所以一定要小心,不要输错,特别是别少了根路径。 文档总是对的,如果有错,一定是自己不小心!配置好如下所示:
配置完成后,就可以照文档来编译一个Hello World,效果如下:
安装好SDK后,您也可以使用命令行的方式来编译Hello world应用程序,并在您的板子上运行。
~> mkdir hello_world ~> cd hello_world ~> touch hello-world.c 在hello-world.c中输入正面代码: #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]){ int i; for (i = 1; i <= 10; i++) { printf("%d - Hello world!\n", i); sleep(1); } return 0; }
用命令行的方式需手工创建Makefile:
~> touch Makefile 输入以下内容: BINARY := hello-world CFLAGS += -Wall -O0 .PHONY: all all: $(BINARY) $(BINARY): hello-world.o .PHONY: clean clean: rm -f *.o $(BINARY)
编译之前,请先配置好该session的环境变量,Source一下工具链中的环境设置脚本
~>source /opt/dey/4.0-r4/ccimx93-dvk/environment-setup-cortexa55-dey-linux
然后可以直接make了,如果您编译的是Qt应用程序,则应该使用qmake:
make
这样就编译出hello_world的应用程序了。
您可以用scp协议将应用程序传到目标板,然后在终端窗口里远程运行它。 SCP命令行传送文件示例:
~> scp hello-world root@192.168.42.30:/home/root/