From 8ff6a1e5f82c35bec30d468a8f0051786d067829 Mon Sep 17 00:00:00 2001 From: yangjie11 Date: Thu, 20 Oct 2022 16:08:25 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=B0=86li?= =?UTF-8?q?nux=E5=BA=94=E7=94=A8=E7=A7=BB=E6=A4=8D=E5=88=B0smart=E6=95=99?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rt-thread-version/rt-thread-smart/_sidebar.md | 1 + .../port-app/figures/2048.png | Bin 0 -> 5593 bytes .../port-app/figures/new-app.png | Bin 0 -> 5109 bytes .../application-note/port-app/port-app.md | 83 ++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 rt-thread-version/rt-thread-smart/application-note/port-app/figures/2048.png create mode 100644 rt-thread-version/rt-thread-smart/application-note/port-app/figures/new-app.png create mode 100644 rt-thread-version/rt-thread-smart/application-note/port-app/port-app.md diff --git a/rt-thread-version/rt-thread-smart/_sidebar.md b/rt-thread-version/rt-thread-smart/_sidebar.md index 0c4dd4b..dede229 100644 --- a/rt-thread-version/rt-thread-smart/_sidebar.md +++ b/rt-thread-version/rt-thread-smart/_sidebar.md @@ -18,6 +18,7 @@ - 应用开发 + - [移植Linux应用到smart](/rt-thread-version/rt-thread-smart/application-note/port-app/port-app.md) - [使用VSCode开发GUI应用](/rt-thread-version/rt-thread-smart/application-note/sdl2/sdl2.md) - [基于FFmpeg+SDL2实现视频播放](/rt-thread-version/rt-thread-smart/application-note/sdl2_ffmpeg/sdl2_ffmpeg.md) diff --git a/rt-thread-version/rt-thread-smart/application-note/port-app/figures/2048.png b/rt-thread-version/rt-thread-smart/application-note/port-app/figures/2048.png new file mode 100644 index 0000000000000000000000000000000000000000..66a72b2ae277d7cafcea03b071e75d8fcdd28817 GIT binary patch literal 5593 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 Bs@DJj literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-smart/application-note/port-app/figures/new-app.png b/rt-thread-version/rt-thread-smart/application-note/port-app/figures/new-app.png new file mode 100644 index 0000000000000000000000000000000000000000..6158c777ffdb1c74f783ffbeae6ada2b17b72927 GIT binary patch literal 5109 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 yN-9pBTXa literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-smart/application-note/port-app/port-app.md b/rt-thread-version/rt-thread-smart/application-note/port-app/port-app.md new file mode 100644 index 0000000..2e9aae4 --- /dev/null +++ b/rt-thread-version/rt-thread-smart/application-note/port-app/port-app.md @@ -0,0 +1,83 @@ +# 移植 Linux 应用到 RT-Smart + +RT-Smart 用户态对 POSIX 接口的支持较为完善,所以在移植应用时,可以很方便地移植使用 POSIX 接口的应用。我们在 Github 上找到一个 star 数量较多的 linux [2048 小游戏](https://github.com/mevdschee/2048.c) ,希望将它移植到 RT-Smart 上运行,本文就以移植 2048 小游戏为例,讲解如何将 linux 应用移植到 RT-Smart 上。 + + +## 应用文件夹介绍 + +新应用工程文件夹包含应用源码、构建脚本、VSCode 配置文件,如下所示: + +``` +│ main.c # 应用源码文件 +│ SConscript # 构建脚本 +│ SConstruct # 构建脚本 +│ +└─.vscode # VSCode 配置文件 + settings.json # 新应用的配置文件 + smart.json # 设置 vscode 底部状态栏功能按钮 +``` + +## 移植步骤 + +移植一个新的用户态程序步骤:创建一个新的应用工程,更新用户态程序源文件。 + +**手动移植过程**:手动移植需要新建工程文件夹,并修改配置。 + +1. 创建一个新应用工程文件夹:在 userapps/apps 目录下,复制 hello 文件夹并改名为目标 app 名; +1. 修改构建脚本; +1. 修改 VSCode 配置文件; +1. 在目标 app 文件夹中新增用户态程序 c 源文件。 + +**VSCode 移植过程【推荐】**:只需新建工程并更新源码。 + +1. 创建新的工程,参考 [RT-Thread Smart 插件:创建工程示例](../../debug/vsc-plug-in/vsc-plug-in.md)。 +2. 在新的工程文件夹中更新源文件。 + +这样一个用户态程序就移植完成了,后续可以进行编译、打包 sd.bin、用户态调试,参考 [使用 VSCode 调试用户态应用 (arm-Windows)](../../debug/qemu-arm-win/qemu-arm-win.md)。 + +## 移植示例 + +这是手动移植的示例,按照上述移植步骤,将 2048 小游戏移植到 RT-Smart 上。 + +1. 在 userapps/apps 下,复制 hello 文件夹并改名为 2048; + +2. 修改构建脚本 SConscript 和 SConstruct。 + + 修改 SConscript,修改分组名为 2048: + + ```python + ... + group = DefineGroup('2048', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES) + ... + ``` + + 修改 SConstruct,修改应用名为 2048: + + ```python + ... + BuildApplication('2048', 'SConscript', usr_root = '../../..') + ... + ``` + +3. 修改 VSCode 配置文件 `.vscode` 文件夹中的 settings.json,修改目标文件名即可; + + ```json + { + "RT-Thread Smart.Program": "2048.elf", // 修改为目标文件名 + "RT-Thread Smart.Target Path": "/root/bin/", // 目标文件存储位置 + "RT-Thread Smart.SDK ROOT": "../.." // ROOT 根目录 + } + ``` + +4. 将下载的 2048 小游戏源文件 2048.c 放入新建的 2048 文件夹中,该应用文件夹最终需要包含文件:`.vscode、源码、Sconscript、Sconstruct`。 + +![](figures/new-app.png) + +5. 在 userapps 下设置工具链、编译、打包 sd.bin,QEMU 模拟运行,最后进行用户态调试,参考 [使用 VSCode 调试用户态应用 (arm-Windows)](../../debug/qemu-arm-win/qemu-arm-win.md)。2048 移植结果演示:终端输入 `qemu.bat`,smart 运行起来之后,再输入 `mnt/bin/2048.elf` 运行 2048 应用。如下是运行结果: + +![](figures/2048.png) + +如发现问题,可以对当前应用进行调试。 + +综上,基于 VSCode 移植会更简单,推荐使用。 + -- Gitee