差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digi:arm-embedded:linux:dey:dey_app_development [2020/12/22 15:10] – robin | digi:arm-embedded:linux:dey:dey_app_development [2024/01/09 23:52] (当前版本) – robin | ||
---|---|---|---|
行 1: | 行 1: | ||
=====DEY应用程序开发===== | =====DEY应用程序开发===== | ||
- | 您可以使用Digi IDE(基于Eclipse定制的IDE)或是QT Creator来进行应用程序开发。下面示例中用到Digi的交叉编译工具,如果您用的DEY版本和示例命令不一致,请按[[ftp:// | + | 您可以使用Makefile或是Digi IDE(基于Eclipse定制的IDE)或是QT Creator来进行应用程序开发。Digi提供SDK来安装开发应用程序所需的交叉编译工具链,您需要根据您的ConnectCore硬件平台下载相应的SDK安装。 |
+ | |||
+ | Digi官方提供完备的应用程序英文文档,本中文文档为精简版,当您碰到问题,请访问[[https:// | ||
+ | |||
+ | ====下载和安装Digi ConnectCore相关平台的SDK==== | ||
+ | SDK提供了应用程序开发所需的交叉编译工具链,安装好SDK后,您可以使用终端的方式,或是IDE的方式来开发应用程序。下面示例中用到Digi的交叉编译工具,如果您用的DEY版本和示例命令不一致,请到[[https:// | ||
<hidden 备用下载地址> | <hidden 备用下载地址> | ||
- | 如果碰到网络问题,从官网下载很慢,可以尝试备用的下载地址:http:// | + | 如果碰到网络问题,从官网下载很慢,可以尝试备用的下载地址:http:// |
</ | </ | ||
- | ====使用Eclipse Digi应用开发环境==== | + | 除了下载预编译好的SDK安装外,您也可以在编译系统固件镜像时,使用-c populate_sdk来编译生成SDK安装包。\\ |
- | 您可以使用基于Eclipse的Digi IDE和相关插件来为您的硬件平台开创建和编译应用程序。 | + | 下面以ConectCore 93核心模块的的SDK为例来说明SDK安装过程和在程序开发及IDE配置中如何使用相关的交叉编译工具链:\\ |
- | ===下载并安装IDE软件=== | + | 1. 下载[[https:// |
- | 您可以用下面任一种方法安装Digi应用程序开发环境: | + | 如果您使用其它常用平台,请相应选择下载:\\ |
- | * Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的插件,包括Digi插件以及JRE 8。 | + | [[https:// |
- | * 如果您之前已经在用Eclipse开发软件,那么只需安装Digi插件即可。 | + | [[https:// |
- | Digi应用程序开发环境提供了一个预配置好的Eclipse开发环境,使用该开发环境,您可以: | + | [[https:// |
+ | [[https:// | ||
+ | 2. 安装 | ||
+ | 不同SOM平台请使用您下载的SDK文件名来替换 | ||
+ | < | ||
+ | chmod +x ./ | ||
+ | ./ | ||
+ | </ | ||
+ | 根据提示,一般只需一直回车,即可安装好SDK\\ | ||
+ | 3.根据项目大小和使用习惯开发应用程序 \\ | ||
+ | 您可以使用IDE,也可以直接使用终端和Makefile来编译程序,请从右侧菜单选择您所需的开发方式。 | ||
+ | |||
+ | ====使用基于Eclipse的Digi官方IDE应用开发环境Digi ADE=== | ||
+ | 您可以使用Digi提供的IDE来为您的ConnectCore硬件平台开创建和编译应用程序。Digi Application Development Environment简称DADE,是一个集成式开发环境,用户只需安装一次,就可以在IDE中自动配置好相关插件,并且IDE中集成有例程和开发文档供用户参考。使用该开发环境,您可以: | ||
* 下载和安装不同Digi硬件平台所需的DEY工具链 | * 下载和安装不同Digi硬件平台所需的DEY工具链 | ||
* 创建新的C/ | * 创建新的C/ | ||
行 16: | 行 34: | ||
* 使用DEY工具链交叉编译C/ | * 使用DEY工具链交叉编译C/ | ||
* 在您的开发板远程启动和调试应用程序 | * 在您的开发板远程启动和调试应用程序 | ||
- | 注意,为了保障开发顺利进行,您用于开发的主机应安装有64位的Linux操作系统(Ubuntu | + | 注意,为了保障开发顺利进行,您用于开发的主机应安装有64位的Linux桌面操作系统(Ubuntu |
+ | ===下载并安装IDE软件=== | ||
+ | 您可以用下面任一种方法安装Digi ADE应用程序开发环境: | ||
+ | * Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的各种插件 | ||
+ | * 如果您之前已经在用Eclipse开发软件,那么只需安装Digi插件即可,详情请参考官方文档。 | ||
+ | 下面我们以ConnectCore 93的程序开发为例: | ||
+ | |||
+ | 1、下载Digi ADE安装包:https:// | ||
- | 1、下载安装包:https:// | ||
- | (如官网FTP有更新版本,请尽量使用最新版本的IDE) | ||
2、安装过程中,您需要有足够权限,因此先运行: | 2、安装过程中,您需要有足够权限,因此先运行: | ||
< | < | ||
- | $ sudo install -o < | + | $ sudo install -o $USER -g $USER -d / |
- | 上面的用户名或用户组一般为您登录的用户名 | + | 上面的$USER也可以用您登陆的用户名替代。 |
</ | </ | ||
- | 3、下载完成后,需要先更改属性赋予该*.run文件可执行权限,然后双击*.run运行安装程序,按提示一步步完成安装。您也可以在命令行下执行 | + | 3、下载完成后,需要先更改属性赋予该*.run文件可执行权限,然后在桌面上双击*.run运行安装程序,按提示一步步完成安装。您也可以在命令行下执行 |
< | < | ||
- | $ chmod +x eclipse-dey-3.0-r2.run | + | $ sudo chmod +x 40003033_H.run |
- | $ ./eclipse-dey-3.0-r2.run | + | $ ./40003033_H.run |
</ | </ | ||
+ | 安装完成后,请关闭这个Shell,以便后面的其它IDE安装或运行不受本次配置的环境变量的影响。 | ||
- | ===安装新的交叉编译工具链=== | + | ===安装配置平台的交叉编译工具链=== |
- | Digi提供了一个预编译的SDK,它带有了匹配预编译镜像所需的交叉编译工具链和库文件等。安装好的工具链包括一些文件和目录:环境设置脚本,配置文件,主机和目标板rootfs等。 | + | 我们在第一步已经安装好对应平台的SDK,首次运行Digi ADE,我们需要配置好它。如果向导没有引导您配置项目的工具链,你也可以从菜单中找到工具链的安装配置页面: |
- | * 安装Digi工具链 | + | |
- | 默认地,首次启动开发环境,会提示您需要配置工具链,默认目录在/ | + | |
- | 如果您从未下载安装过Digi平台的SDK,会提示目录不存在,请参考下面手工方式安装工具链,首先用install命令新建个有读写权限的目录。 | + | |
- | < | + | |
- | $ sudo install -o < | + | |
- | $ sudo chmod +x ./ | + | |
- | $ ./ | + | |
- | </ | + | |
- | + | ||
- | 你也可以从菜单中找到工具链的安装配置页面: | + | |
- | 点击“Download new toolchains...”按钮会自动搜索以下载对应平台的交叉工具链。 | + | |
- | 每个平台都有fb和视窗(x11或xwayland)两种工具链,分别对应 Framebuffer和视窗的两种显示方式。图形窗口管理器是在Framebuffer之上的视窗架构,Framebuffer更简单,更省内存,而视窗显示服务器架构可利用的开源桌面软件资源较丰富,但编译出来的程序也更大,并且基于视窗sdk的程序只能在带有桌面显示支持的镜像上运行。如果你的设备不带显示屏,下载个fb版本的工具链就够了。\\ | + | |
- | 下载安装好工具链后,选中一个作为默认的工具链,并应用它。 | + | |
{{digi: | {{digi: | ||
===连接到核心板=== | ===连接到核心板=== | ||
- | Eclipse带有一个终端插件,让您可以从内置终端连接到远程设备上以方便调试。如果没找到终端窗口,可以从菜单上找到Window> | + | Eclipse带有一个connection连接插件,让您可以从内置终端连接到远程设备上以方便调试。Connections的配置按钮在主界面上如下所示,按下按钮来新建一个连接,然后选中Generic Connection来根据向导一步一步添加设备的连接: |
+ | |||
+ | {{: | ||
+ | |||
+ | 点击Browse按钮查看网络内的设备,如果没在列表中,可以用ADD按钮通过开发板的IP地址添加, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 最终添加好一个ConnectCore 93的开发板的连接配置如下: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 点击Finish完成添加。 | ||
===创建C/ | ===创建C/ | ||
行 71: | 行 94: | ||
===运行或调试项目=== | ===运行或调试项目=== | ||
- | 编译成功后,您可以远程运行或是调试它。在工具栏按钮中,有个当前目标板连接的下拉菜单,如果你还没有连接到任何目标板,请点击“New Connection" | + | 编译成功后,您可以远程运行或是调试它。在工具栏按钮中,有个当前目标板连接的下拉菜单,如果之前连接到开发板的步骤已经建立好连接,就可以直接使用。 |
连接好后,可以通过项目的右键菜单Run As > DEY C/C++ Remote Application或是Debug As > DEY C/C++ Remote Application来运行或是调试程序。 | 连接好后,可以通过项目的右键菜单Run As > DEY C/C++ Remote Application或是Debug As > DEY C/C++ Remote Application来运行或是调试程序。 | ||
====使用QT Creator开发应用程序==== | ====使用QT Creator开发应用程序==== | ||
- | 本章节将介绍如何在Linux环境下使用QT Creator来进行DEY应用程序开发。注意,您的电脑至少需要有4G RAM和10G以上的硬盘空间才能正常使用QT Creator进行开发。 | + | 本章节将介绍如何在Linux环境下使用QT Creator来进行DEY应用程序开发。注意,您的电脑至少需要有4G RAM和100G以上的硬盘空间才能正常使用QT Creator进行开发。QT开发在应用程序开发的官方文档中有专门的章节。\\ |
+ | |||
+ | 注意:安装QT时,不同的发行版本可能需要一些依赖包,有QT无法安装时,可运行下面一些依赖包安装:\\ | ||
+ | 普通ubuntu桌面版本,可能只需要libxcb-xinerama0,xubuntu则需要libxcb-icccm4 \\ | ||
+ | sudo apt install libxcb-xinerama0 | ||
+ | 如果仍有问题,可运行下面更多的依赖包安装 \\ | ||
+ | sudo apt install libxcb-xinerama0 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0 libxcb-icccm4 | ||
===下载并安装QT Creator软件=== | ===下载并安装QT Creator软件=== | ||
- | 1.**安装QT | + | 下载安装QT |
- | 请从QT的官网https:// | + | 请在桌面环境中的终端安装,不要远程ssh登陆安装,因为需要桌面交互才能完成安装。\\ |
- | 下载完成后,赋予可执行权限并运行安装程序。\\ | + | wget https:// |
- | ~> chmod +x qt-creator-opensource-linux-x86_64-X.Y.Z.run \\ | + | 或用国内镜像:\\ |
- | ~> ./ | + | wget http:// |
+ | chmod +x qt-creator-opensource-linux-x86_64-X.Y.Z.run \\ | ||
+ | ./ | ||
+ | 安装过程需要注册QT,安装完最后一步请去掉那个启动QT Creator的勾选框,先别启动,我们需要安装Digi SDK后才启动。 | ||
- | 2.**安装DEY交叉编译工具链** | + | ===安装SDK=== |
- | 安装完成后,请先不要运行。我们还需要下载并安装支持QT的DEY工具链,您也可以使用自行编译的工具链。请从Digi的官方FTP中下载对应版本的SDK安装包来安装。当前的最新版本是2.4-r2,手工下载安装,请到{{ftp:// | + | 一般建议先安装SDK再到IDE中配置,我们之前已经演示过SDK的安装,如果您是先安装QT Creator,则启动之前,需要先安装SDK,在安装完SDK之后,请关闭该Shell, |
- | \\ | + | 进入sdk安装目录,运行环境配置 |
- | < | + | |
- | * [[# | + | |
- | * [[# | + | |
- | * [[# | + | |
- | <pane id=" | + | |
< | < | ||
- | ~> wget ftp://ftp1.digi.com/support/ | + | cd /opt/dey/4.0-r4/ccimx93-dvk |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-x11-cortexa7hf-neon-toolchain-2.4-r2.sh | + | . environment-setup-cortexa55-dey-linux |
- | ~> ./dey-glibc-x86_64-dey-image-qt-x11-cortexa7hf-neon-toolchain-2.4-r2.sh | + | 然后进入/home/robin/qt-crator/ |
- | </code> | + | cd ~/qtcreator-9.0.2/bin/ |
- | \\ | + | ./qtcreator.sh & |
- | </pane> | + | </ |
- | <pane id=" | + | ===创建一个新设备配置=== |
- | < | + | 请在开发板console中配置好网络,并用ip addr查好IP地址,确保开发板和电脑可相互ping通。\\ |
- | ~> wget ftp:// | + | 然后从菜单中选择edit>preferences> |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-x11-cortexa9hf-neon-toolchain-2.4-r2.sh | + | |
- | ~> ./dey-glibc-x86_64-dey-image-qt-x11-cortexa9hf-neon-toolchain-2.4-r2.sh | + | |
- | </ | + | |
- | \\ | + | |
- | </ | + | |
- | <pane id=" | + | |
- | ftp:// | + | |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-fb-aarch64-toolchain-2.4-r2.sh | + | |
- | ~> ./dey-glibc-x86_64-dey-image-qt-fb-aarch64-toolchain-2.4-r2.sh | + | |
- | </ | + | |
- | \\ | + | |
- | </pane> | + | |
- | </tabs> | + | |
+ | {{: | ||
+ | |||
+ | 建议还是生成密钥对,然后部署到板子上,按提示操作即可,点Test,测试通过即可。如果不用密钥登陆,请在添加好后,把Authentication Type改为default即密码登陆,也可以一样验证通过。 | ||
+ | ===设置DEY编译器=== | ||
+ | 由于运行了环境配置,所以会自动检测生成的部分配置选项,也可以按官方文档手动一步步再设置一遍。\\ | ||
+ | 菜单edit> | ||
- | 3.**从配置好工具链的Shell中启动QT Creator** | + | {{:digi:arm-embedded: |
- | 打开一个新的Shell窗口,进入到工具链的安装目录,然后运行工具链的环境变量设置脚本: | + | |
- | < | + | |
- | ~> . environment-setup-< | + | |
- | </ | + | |
- | 到QT Creator的安装路径中的bin目录下,执行QT Creator的启动脚本来启动QT Creator: | + | |
- | < | + | |
- | ~> ./qtcreator.sh & | + | |
- | </ | + | |
- | ===配置QT Creator=== | + | 同样地,在compliers,debuggers选项卡,都按文档一样设置,在左侧菜单中选中CMake,按文档的方法配置CMake。\\ |
- | 在用QT Creator创建第一个应用程序前,您需要配置好对Digi平台的DEY工具链的支持。 | + | |
- | 1.**创建一个新的设备配置** | + | |
- | 点击Tools> | + | |
- | 2.**配置DEY编译器** | + | |
- | 点击Tools> | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | 点击Apply保存。 | + | ===创建并配置新的kit配置=== |
+ | 给新的kit配置取个名,如cc93kit,选remote linux device,注意sysroot和Qt mkspec由于是手动输入路径,容易输错,此时kit就变得不可用了,所以一定要小心,不要输错,特别是别少了根路径。 | ||
+ | 文档总是对的,如果有错,一定是自己不小心!配置好如下所示: | ||
- | 3.**配置DEY的C/ | + | {{:digi:arm-embedded:linux:dey: |
- | 点击Tools> | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | 点击Apply保存配置。 | + | |
- | 用上面同样的方法添加< | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | ===设置DEY调试器=== | + | 配置完成后,就可以照文档来编译一个Hello World,效果如下: |
- | 点击Tools> | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | 保存并应用。 | + | |
- | ===创建开发套件配置=== | ||
- | 点击Tools> | ||
- | < | ||
- | < | ||
- | </ | ||
- | 在C Complier和C++ Complier和Debugger中,分别选中之前配置好的C和C++ DEY编译器和调试器。\\ | ||
- | 在Qt Version中,选择之前配置好的QT DEY Complier。\\ | ||
- | 在Qt mkspec中填入工具链中的 Qt mkspec路径,一般它位于: | ||
- | < | ||
- | < | ||
- | </ | ||
- | 点击Make Default来使它成为默认配置,然后点击OK保存并关闭配置对话框。 | ||
- | ===创建一个Hello World的Qt快速程序=== | + | {{:digi:arm-embedded: |
- | 1.**创建应用程序** | + | |
- | 菜单File > New File or Project,从左侧的Projects下选择Application,选中Qt Quick Application - Empty. 点击Choose来开启项目创建向导。\\ | + | |
- | 在配置向导中,选中之前创建的DEY编译器和套件,完成向导。\\ | + | |
- | 我们将向项目main.qml添加如下的简单代码,然后保存 | + | |
- | < | + | |
- | Text { | + | |
- | anchors.centerIn: parent | + | |
- | text: " | + | |
- | } | + | |
- | </ | + | |
- | 2.**编译运行应用程序** | ||
- | 编译过程中的信息会显示在Compile Output终端窗口中。编译完成后,需配置一下应用程序的运行环境。 | ||
- | 点击Projects图标,在左侧Build & Run下选择Run,右边面板就会显示当前的运行配置。我们需要配置Run Environment,点击它的Details,在Base environment for this run configuration中选择Clean Environment,以确保程序运行时使用干净的环境配置。\\ | ||
- | 接下来需要添加一个新的环境变量让应用程序启动时选择正确的显示器。点击环境变量列表右边的Add,名称设置为DISPLAY,值设置为: | ||
- | 点击左侧工具栏的Run图标,程序会自动传到目标板并运行,显示一个有Hello World字样的窗口。 | ||
- | 3.**调试运用程序** | ||
- | 从Tools > Options菜单项中选择Debugger,在右侧面板中选择GDB,在Additional Startup Commands框中填入:< | ||
- | 双击main.cpp,打开后右击下面这一行: | ||
- | < | ||
- | return app.exec(); | ||
- | </ | ||
- | 选择Set Breakpoint at Line 17以便在显示Hello world之前设置一个断点。在左侧工具条中,点击Start Debugger按钮来开始调试。程序会停在断点处。 | ||
====用终端命令行开发应用程序==== | ====用终端命令行开发应用程序==== | ||
- | 您也可以使用命令行的方式来编译Hello world应用程序,并在您的板子上运行。之前的IDE章节已经安装好了DEY的工具链,如果你没有安装,可以从[[ftp:// | + | 安装好SDK后,您也可以使用命令行的方式来编译Hello world应用程序,并在您的板子上运行。 |
- | 当前的最新版本是2.6-r3,请安装您核心模块和之上运行的DEY版本对应的SDK,以CC6ul为例 | + | |
- | < | + | |
- | ~> wget ftp:// | + | |
- | 或用浏览器下载上面地址链接,或是用国内镜像http:// | + | |
- | + | ||
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-x11-cortexa7t2hf-neon-toolchain-2.6-r3.sh | + | |
- | ~> ./ | + | |
- | </ | + | |
===创建并编译Hello world应用程序=== | ===创建并编译Hello world应用程序=== | ||
行 247: | 行 197: | ||
编译之前,请先配置好该session的环境变量,Source一下工具链中的环境设置脚本 | 编译之前,请先配置好该session的环境变量,Source一下工具链中的环境设置脚本 | ||
< | < | ||
- | ~>source /opt/dey/2.6-r3/ccimx6ulsbc/ | + | ~>source /opt/dey/4.0-r4/ccimx93-dvk/ |
</ | </ | ||
然后可以直接make了,如果您编译的是Qt应用程序,则应该使用qmake: | 然后可以直接make了,如果您编译的是Qt应用程序,则应该使用qmake: | ||
行 260: | 行 210: | ||
~> scp hello-world root@192.168.42.30:/ | ~> scp hello-world root@192.168.42.30:/ | ||
</ | </ | ||
- | |||
- | 更多信息,请参考官方文档中的[[http:// | ||