您可以使用Makefile或是Digi IDE(基于Eclipse定制的IDE)或是QT Creator来进行应用程序开发。Digi提供SDK来安装开发应用程序所需的交叉编译工具链,您需要根据您的ConnectCore硬件平台下载相应的SDK安装。

Digi官方提供完备的应用程序英文文档,本中文文档为精简版,当您碰到问题,请访问官方的文档入口,选择对应的ConnectCore硬件平台后,进入Digi Embedded Yocto文档,在左侧菜单中选择Application Development章节,查看相关的内容。

SDK提供了应用程序开发所需的交叉编译工具链,安装好SDK后,您可以使用终端的方式,或是IDE的方式来开发应用程序。下面示例中用到Digi的交叉编译工具,如果您用的DEY版本和示例命令不一致,请到Digi官方FTP中选择对应版本的SDK进行替换。我们建议您使用最新的DEY版本和它对应的安装包。

备用下载地址

备用下载地址

如果碰到网络问题,从官网下载很慢,可以尝试备用的下载地址:http://dey-mirror.eccee.com:1080/digiembeddedyocto/soft/,请根据你的平台选择正确的sdk。

除了下载预编译好的SDK安装外,您也可以在编译系统固件镜像时,使用-c populate_sdk来编译生成SDK安装包。
下面以ConectCore 93核心模块的的SDK为例来说明SDK安装过程和在程序开发及IDE配置中如何使用相关的交叉编译工具链:
1. 下载Connectcore 93的DEY-4.0-r4 SDK
如果您使用其它常用平台,请相应选择下载:
ConnectCore MP133 DEY-4.0-r4 SDK
ConnectCore MP157 DEY-4.0-r4 SDK
ConnectCore 8m nano DEY-4.0-r4 SDK
ConnectCore 8x DEY-4.0-r4 SDK 2. 安装
不同SOM平台请使用您下载的SDK文件名来替换

chmod +x ./dey-glibc-x86_64-dey-image-qt-xwayland-cortexa55-ccimx93-dvk-toolchain-4.0-r4.sh
./dey-glibc-x86_64-dey-image-qt-xwayland-cortexa55-ccimx93-dvk-toolchain-4.0-r4.sh

根据提示,一般只需一直回车,即可安装好SDK
3.根据项目大小和使用习惯开发应用程序
您可以使用IDE,也可以直接使用终端和Makefile来编译程序,请从右侧菜单选择您所需的开发方式。

您可以使用Digi提供的IDE来为您的ConnectCore硬件平台开创建和编译应用程序。Digi Application Development Environment简称DADE,是一个集成式开发环境,用户只需安装一次,就可以在IDE中自动配置好相关插件,并且IDE中集成有例程和开发文档供用户参考。使用该开发环境,您可以:

  • 下载和安装不同Digi硬件平台所需的DEY工具链
  • 创建新的C/C++项目
  • 拷贝现有的DEY例程
  • 使用DEY工具链交叉编译C/C++项目和例程
  • 在您的开发板远程启动和调试应用程序

注意,为了保障开发顺利进行,您用于开发的主机应安装有64位的Linux桌面操作系统(Ubuntu 20.04及其以上),多核和8G以上的RAM,并且可用磁盘空间至少大于100G。

下载并安装IDE软件

您可以用下面任一种方法安装Digi ADE应用程序开发环境:

  • Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的各种插件
  • 如果您之前已经在用Eclipse开发软件,那么只需安装Digi插件即可,详情请参考官方文档。

下面我们以ConnectCore 93的程序开发为例:

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,首次运行Digi ADE,我们需要配置好它。如果向导没有引导您配置项目的工具链,你也可以从菜单中找到工具链的安装配置页面:Window>Preferences中的DEY Toolchains。如果您的硬件平台的SDK没在安装好,或是你需要增加一种平台的SDK,可以点击“Download new toolchains…”按钮会自动搜索以下载对应平台的交叉工具链。但Eclipse并不是一种高效的下载工具,通常建议您独立下载SDK并安装后供IDE配置和使用。Digi ADE支持安装多个不同SOM的SDK,您只需选中一个当前所需的SDK作为默认的工具链,并应用它。

连接到核心板

Eclipse带有一个connection连接插件,让您可以从内置终端连接到远程设备上以方便调试。Connections的配置按钮在主界面上如下所示,按下按钮来新建一个连接,然后选中Generic Connection来根据向导一步一步添加设备的连接:

点击Browse按钮查看网络内的设备,如果没在列表中,可以用ADD按钮通过开发板的IP地址添加,

最终添加好一个ConnectCore 93的开发板的连接配置如下:

点击Finish完成添加。

创建C/C++项目

上面已经配置好了工具链,并连接好目标板,接下来就可以创建项目并编译了。您可以创建一个全新的空白项目,也可以创建一个DEY例程项目。DEY的例程项目一般是用来简单测试一下各种接口的功能。

创建好项目后,会默认使用之前配置好的交叉编译工具链。我们可以创建一个Hello World的项目。用工具链编译,然后就可以在板子上运行了。

定制编译选项

  • 更改项目编译所用的工具链

项目的右键菜单中,选中Properties,工具链的选择在DEY Toolchains配置项中。

  • 更改C/C++的编译选项

项目的右键菜单中,选中Properties,在C/C++ Build>Settings配置项中,可以配置各种常用的编译选项,比如添加头文件路径,添加库,添加宏定义,设置优化级别和编译级别等。

  • 更改Autotools项目设置

同样地,在项目的右键菜单中,选中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软件

下载安装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

一般建议先安装SDK再到IDE中配置,我们之前已经演示过SDK的安装,如果您是先安装QT Creator,则启动之前,需要先安装SDK,在安装完SDK之后,请关闭该Shell, 然后重新打开一人新的shell终端来运行环境配置和启动IDE。
进入sdk安装目录,运行环境配置

cd /opt/dey/4.0-r4/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即密码登陆,也可以一样验证通过。

设置DEY编译器

由于运行了环境配置,所以会自动检测生成的部分配置选项,也可以按官方文档手动一步步再设置一遍。
菜单edit>preferences>kits>QT versions选中dey那个qmake,并应用。

同样地,在compliers,debuggers选项卡,都按文档一样设置,在左侧菜单中选中CMake,按文档的方法配置CMake。

创建并配置新的kit配置

给新的kit配置取个名,如cc93kit,选remote linux device,注意sysroot和Qt mkspec由于是手动输入路径,容易输错,此时kit就变得不可用了,所以一定要小心,不要输错,特别是别少了根路径。 文档总是对的,如果有错,一定是自己不小心!配置好如下所示:

配置完成后,就可以照文档来编译一个Hello World,效果如下:

安装好SDK后,您也可以使用命令行的方式来编译Hello world应用程序,并在您的板子上运行。

创建并编译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/