差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digi:arm-embedded:linux:dey:dey_app_development [2024/01/09 23:26] – robin | digi:arm-embedded:linux:dey:dey_app_development [2024/11/26 15:14] (当前版本) – robin | ||
---|---|---|---|
行 1: | 行 1: | ||
=====DEY应用程序开发===== | =====DEY应用程序开发===== | ||
- | 您可以使用Makefile或是Digi IDE(基于Eclipse定制的IDE)或是QT Creator来进行应用程序开发。Digi提供SDK来安装开发应用程序所需的交叉编译工具链,您需要根据您的ConnectCore硬件平台下载相应的SDK安装。 | + | DEY应用程序是指可以运行在Digi ConnectCore目标板上的嵌入式Linux应用程序。您可以使用Makefile或是任一种IDE,包括Digi IDE(基于Eclipse定制的IDE)或是QT Creator,VSCode等来进行应用程序开发。Digi提供SDK来安装开发应用程序所需的交叉编译工具链,您需要根据您的ConnectCore硬件平台下载相应的SDK安装。 |
Digi官方提供完备的应用程序英文文档,本中文文档为精简版,当您碰到问题,请访问[[https:// | Digi官方提供完备的应用程序英文文档,本中文文档为精简版,当您碰到问题,请访问[[https:// | ||
+ | |||
+ | ====Linux开发主机的准备工作==== | ||
+ | 您需要在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和浏览器edge | ||
+ | VScode支持各种开发语言和调试工具,要使用vscode可参考如下,如果您使用其它IDE,可略过此步。 | ||
+ | < | ||
+ | sudo apt update | ||
+ | sudo apt upgrade | ||
+ | sudo reboot | ||
+ | sudo apt install software-properties-common apt-transport-https wget | ||
+ | wget -q https:// | ||
+ | sudo add-apt-repository "deb [arch=amd64] https:// | ||
+ | sudo apt update | ||
+ | sudo apt install code | ||
+ | sudo add-apt-repository "deb [arch=amd64] https:// | ||
+ | sudo apt install microsoft-edge-stable | ||
+ | </ | ||
+ | |||
+ | * 安装QT Creator | ||
+ | |||
+ | 要使用QT Creator作为IDE,可以参考如下: | ||
+ | < | ||
+ | 注意:安装QT时,不同的发行版本可能需要一些依赖包,有QT Creator无法安装时,可运行下面一些依赖包安装: | ||
+ | 普通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 | ||
+ | wget https:// | ||
+ | sudo chmod +x ./ | ||
+ | qt-creator-opensource-linux-x86_64-9.0.2.run | ||
+ | </ | ||
+ | 安装过程需要注册QT,安装完最后一步请去掉那个启动QT Creator的勾选框,先别启动,我们需要安装Digi SDK后才启动。一般要关闭安装时所用的Shell,建议重新启动一下操作系统,以便系统重新加载各种服务,以完成对桌面环境和IDE的支持。 | ||
+ | |||
+ | * 使用基于Eclipse的Digi ADE | ||
+ | 您也可以使用Digi提供的IDE来为您的ConnectCore硬件平台开创建和编译应用程序。Digi Application Development Environment简称DADE,是一个集成式开发环境,用户只需安装一次,就可以在IDE中自动配置好相关插件,并且IDE中集成有例程和开发文档供用户参考。您可以直接下载Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的各种插件。如果您之前已经在用Eclipse开发软件,也可以只安装Digi相关的插件,更多详情请参考Digi官方文档。 | ||
+ | |||
+ | 下面我们以ConnectCore 93的程序开发为例来演示完整安装ADE的过程: | ||
+ | < | ||
+ | 1.下载Digi ADE安装包:https:// | ||
+ | 2. 安装过程中,您需要有足够权限,因此先运行: | ||
+ | $ sudo install -o $USER -g $USER -d / | ||
+ | 上面的$USER也可以用您登陆的用户名替代。 | ||
+ | 3.下载完成后,需要先更改属性赋予该*.run文件可执行权限,然后在桌面上双击*.run运行安装程序,按提示一步步完成安装。您也可以在命令行下执行 | ||
+ | $ sudo chmod +x 40003033_H.run | ||
+ | $ ./ | ||
+ | </ | ||
+ | 安装完成后,请关闭这个Shell,以便后面的其它IDE安装或运行不受本次配置的环境变量的影响。 | ||
====下载和安装Digi ConnectCore相关平台的SDK==== | ====下载和安装Digi ConnectCore相关平台的SDK==== | ||
行 11: | 行 72: | ||
除了下载预编译好的SDK安装外,您也可以在编译系统固件镜像时,使用-c populate_sdk来编译生成SDK安装包。\\ | 除了下载预编译好的SDK安装外,您也可以在编译系统固件镜像时,使用-c populate_sdk来编译生成SDK安装包。\\ | ||
下面以ConectCore 93核心模块的的SDK为例来说明SDK安装过程和在程序开发及IDE配置中如何使用相关的交叉编译工具链:\\ | 下面以ConectCore 93核心模块的的SDK为例来说明SDK安装过程和在程序开发及IDE配置中如何使用相关的交叉编译工具链:\\ | ||
- | 1. 下载[[https:// | + | 1. 下载[[https:// |
- | 如果您使用其它平台,请相应选择下载: | + | 如果您使用其它常用平台,请相应选择下载:\\ |
- | [[https:// | + | [[https:// |
- | [[https:// | + | [[https:// |
- | [[https:// | + | [[https:// |
- | [[https:// | + | [[https:// |
2. 安装 | 2. 安装 | ||
不同SOM平台请使用您下载的SDK文件名来替换 | 不同SOM平台请使用您下载的SDK文件名来替换 | ||
< | < | ||
- | chmod +x ./ | + | chmod +x ./ |
- | ./ | + | ./ |
</ | </ | ||
根据提示,一般只需一直回车,即可安装好SDK\\ | 根据提示,一般只需一直回车,即可安装好SDK\\ | ||
- | 3.根据项目大小和使用习惯开发应用程序 \\ | ||
- | 您可以使用IDE,也可以直接使用终端和Makefile来编译程序,请从右侧菜单选择您所需的开发方式。 | ||
- | ====使用基于Eclipse的Digi官方IDE应用开发环境Digi ADE=== | + | 安装好后,SDK您可以根据您所用的IDE来开发和编译DEY应用程序。 |
- | 您可以使用Digi提供的IDE来为您的ConnectCore硬件平台开创建和编译应用程序。Digi Application Development Environment简称DADE,是一个集成式开发环境,用户只需安装一次,就可以在IDE中自动配置好相关插件,并且IDE中集成有例程和开发文档供用户参考。使用该开发环境,您可以: | + | |
- | * 下载和安装不同Digi硬件平台所需的DEY工具链 | + | |
- | * 创建新的C/ | + | |
- | * 拷贝现有的DEY例程 | + | |
- | * 使用DEY工具链交叉编译C/ | + | |
- | * 在您的开发板远程启动和调试应用程序 | + | |
- | 注意,为了保障开发顺利进行,您用于开发的主机应安装有64位的Linux桌面操作系统(Ubuntu 20.04及其以上), | + | |
- | ===下载并安装IDE软件=== | + | |
- | 您可以用下面任一种方法安装Digi ADE应用程序开发环境: | + | |
- | * Digi应用程序开发环境安装包,它包括Eclipse和所有需要用到的各种插件 | + | |
- | * 如果您之前已经在用Eclipse开发软件,那么只需安装Digi插件即可,详情请参考官方文档。 | + | |
- | 下面我们以ConnectCore 93的程序开发为例: | + | |
- | + | ||
- | 1、下载Digi ADE安装包:https:// | + | |
- | + | ||
- | 2、安装过程中,您需要有足够权限,因此先运行: | + | |
- | < | + | |
- | $ sudo install -o $USER -g $USER -d / | + | |
- | 上面的$USER也可以用您登陆的用户名替代。 | + | |
- | </ | + | |
- | 3、下载完成后,需要先更改属性赋予该*.run文件可执行权限,然后在桌面上双击*.run运行安装程序,按提示一步步完成安装。您也可以在命令行下执行 | + | |
- | < | + | |
- | $ sudo chmod +x 40003033_H.run | + | |
- | $ ./ | + | |
- | </ | + | |
- | ===安装配置平台的交叉编译工具链=== | + | ====使用Digi ADE开发应用程序==== |
我们在第一步已经安装好对应平台的SDK,首次运行Digi ADE,我们需要配置好它。如果向导没有引导您配置项目的工具链,你也可以从菜单中找到工具链的安装配置页面: | 我们在第一步已经安装好对应平台的SDK,首次运行Digi ADE,我们需要配置好它。如果向导没有引导您配置项目的工具链,你也可以从菜单中找到工具链的安装配置页面: | ||
行 60: | 行 95: | ||
===连接到核心板=== | ===连接到核心板=== | ||
- | Eclipse带有一个connection连接插件,让您可以从内置终端连接到远程设备上以方便调试。Connections的配置按钮在主界面上如下所示,按下按钮来新建一个连接,然后选中Generic Connection来根据向导一步一步添加设备的连接: | + | Digi ADE带有一个connection连接插件,让您可以从内置终端连接到远程设备上以方便调试。Connections的配置按钮在主界面上如下所示,按下按钮来新建一个连接,然后选中Generic Connection来根据向导一步一步添加设备的连接: |
{{: | {{: | ||
行 98: | 行 133: | ||
====使用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安装包来安装。当前的最新版本是3.0-r4,手工下载安装,请到{{ftp:// | + | 一般建议先安装SDK再到IDE中配置,我们之前已经演示过SDK的安装,如果您是先安装QT Creator,则启动之前,需要先安装SDK,在安装完SDK之后,请关闭该Shell, |
- | \\ | + | 进入sdk安装目录,运行环境配置 |
- | < | + | |
- | * [[# | + | |
- | * [[# | + | |
- | * [[# | + | |
- | <pane id=" | + | |
< | < | ||
- | ~> wget https://ftp1.digi.com/support/ | + | cd /opt/dey/4.0-r7/ccimx93-dvk |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-x11-cortexa7t2hf-neon-ccimx6ulsbc-toolchain-3.0-r4.sh | + | . environment-setup-cortexa55-dey-linux |
- | ~> ./dey-glibc-x86_64-dey-image-qt-x11-cortexa7t2hf-neon-ccimx6ulsbc-toolchain-3.0-r4.sh | + | 然后进入/home/robin/qt-crator/bin目录,运行Qt-creator |
- | </code> | + | cd ~/qtcreator-9.0.2/bin/ |
- | \\ | + | ./qtcreator.sh & |
- | </pane> | + | </ |
- | <pane id=" | + | ===创建一个新设备配置=== |
- | < | + | 请在开发板console中配置好网络,并用ip addr查好IP地址,确保开发板和电脑可相互ping通。\\ |
- | ~> wget https:// | + | 然后从菜单中选择edit>preferences> |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-xwayland-aarch64-ccimx8x-sbc-pro-toolchain-3.2-r1.sh | + | |
- | ~> ./dey-glibc-x86_64-dey-image-qt-xwayland-aarch64-ccimx8x-sbc-pro-toolchain-3.2-r1.sh | + | |
- | </ | + | |
- | \\ | + | |
- | </ | + | |
- | <pane id=" | + | |
- | < | + | |
- | ~> wget https:// | + | |
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-xwayland-aarch64-ccimx8mn-dvk-toolchain-3.2-r1.sh | + | |
- | ~> ./dey-glibc-x86_64-dey-image-qt-xwayland-aarch64-ccimx8mn-dvk-toolchain-3.2-r1.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应用程序,并在您的板子上运行。 |
- | 当前的最新版本是3.0-r4,请安装您核心模块和之上运行的DEY版本对应的SDK,以CC6ul为例 | + | |
- | < | + | |
- | ~> wget ftp:// | + | |
- | 或用浏览器下载上面地址链接,或是用国内镜像http:// | + | |
- | + | ||
- | ~> chmod +x dey-glibc-x86_64-dey-image-qt-x11-cortexa7t2hf-neon-toolchain-3.0-r4.sh | + | |
- | ~> ./ | + | |
- | </ | + | |
===创建并编译Hello world应用程序=== | ===创建并编译Hello world应用程序=== | ||
行 270: | 行 231: | ||
编译之前,请先配置好该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: | ||
行 283: | 行 244: | ||
~> scp hello-world root@192.168.42.30:/ | ~> scp hello-world root@192.168.42.30:/ | ||
</ | </ | ||
- | |||
- | 更多信息,请参考官方文档中的[[http:// | ||