diff --git a/ChangeLog.md b/ChangeLog.md index 807ad70cd4bc4caef7ba2968ac7fe23e640570af..809e19c8e02d255f3ec316d4eff0e59e56ce87fe 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,11 @@ +# PhyStudio v0.1.5 ChangeLog + +## ide + +- 支持makefile多核工程创建 + +- 支持多核调试 + # PhyStudio v0.1.4 ChangeLog ## ide diff --git a/README.md b/README.md index 6e28c4aab7a10cd86d401dbb4a8ee00e79f73162..7a331e54d9ad64591ce66a6323a44302e485bba2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PhyStudio -- 当前版本: [v0.1.4](./ChangeLog.md) +- 当前版本: [v0.1.5](./ChangeLog.md) - 本项目是 PhyStudio 工具发布仓库,PhyStudio 是面向 Phytium 系列 CPU 的嵌入式软件开发工具包,整体分为两个部分: - 1. 命令行开发环境,提供交叉编译链和使用 [Phytium Standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk.git), [Phytium FreeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk.git) 的最小环境 @@ -13,12 +13,12 @@ - Windows 平台的集成开发环境基于 Eclipse CDT C/C++ 开发,提供了完整的 SDK 工程管理、代码编辑、编译构建功能,能够通过 J-Link/CMSIS DAP 等工具在开发板上完成镜像下载和调试,集成 TFTP 服务支持通过网络快速下载镜像到开发板 - 具体内容可以[参考](./ide/ide.md) -- 下载路径 [PhyStudio_Setup_V0.1.4.exe](https://pan.baidu.com/s/1c-k3-E3MNxioTDvwSqJrgw) -> 提取码: phyt +- 下载路径 [PhyStudio_Setup_V0.1.5.exe](https://pan.baidu.com/s/15IhHQz7maf9KpUB9-y8tfQ) +> 提取码: ufia - 支持的平台包括 - 硬件架构: AARCH64 - - 硬件平台: E2000D/Q Demo 板,飞腾派 + - 硬件平台: E2000D/Q Demo 板,飞腾派,D3000 Demo板,D3000M Test板 - SDK类型: Phytium Standalone SDK - 调试适配器: J-Link, CMSIS-DAP, DAP-Link @@ -52,7 +52,7 @@ - 支持的平台包括 - 硬件架构: AARCH64,AARCH32 - - 硬件平台: E2000D/Q Demo 板,飞腾派,D2000 Demo 板 + - 硬件平台: E2000D/Q Demo 板,飞腾派,D2000 Demo 板,D3000 Demo板,D3000M Test板 - SDK类型: Phytium Standalone SDK,Phytium FreeRTOS SDK - 调试适配器: J-Link, CMSIS-DAP, DAP-Link diff --git a/ide/figs/add_multicore_debugconfig.png b/ide/figs/add_multicore_debugconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..c23d8e283c9a1c8cecb75b3fa7d77e628a4b5deb Binary files /dev/null and b/ide/figs/add_multicore_debugconfig.png differ diff --git a/ide/figs/debug_as.png b/ide/figs/debug_as.png index f9df327ae282dd19d2452c0648ca6f68f2f8e235..c1dbfa3e80cb92cd097f693f5273b97b4e5a8f4a 100644 Binary files a/ide/figs/debug_as.png and b/ide/figs/debug_as.png differ diff --git a/ide/figs/import_makefile_project.png b/ide/figs/import_makefile_project.png index 3b625d3b8b6257a7d7add11100efc09e12d726b1..e4951ef76309afaf1f047fe33a182653c617f5b4 100644 Binary files a/ide/figs/import_makefile_project.png and b/ide/figs/import_makefile_project.png differ diff --git a/ide/figs/import_project.png b/ide/figs/import_project.png index 7ae70aeaa8ee9a33a037d1676c38a78e5bbe8991..ca67924af3c23567c7000e581ac3c3f32dad376b 100644 Binary files a/ide/figs/import_project.png and b/ide/figs/import_project.png differ diff --git a/ide/figs/makefile_project_wizard.png b/ide/figs/makefile_project_wizard.png index 1d92e9004a4283cba1d9bfacbcd8c953266f6014..6b24531d100a936dcc4e039bbbf49c9b3d69fca1 100644 Binary files a/ide/figs/makefile_project_wizard.png and b/ide/figs/makefile_project_wizard.png differ diff --git a/ide/figs/multi_project.png b/ide/figs/multi_project.png new file mode 100644 index 0000000000000000000000000000000000000000..08f92f29cd9c59af9d06a4f768f0c4c77dc21941 Binary files /dev/null and b/ide/figs/multi_project.png differ diff --git a/ide/figs/multicore_debug.png b/ide/figs/multicore_debug.png new file mode 100644 index 0000000000000000000000000000000000000000..f6eed4446aad1d4e7b6724ced5643f8237c05e66 Binary files /dev/null and b/ide/figs/multicore_debug.png differ diff --git a/ide/figs/multicore_debugconfig.png b/ide/figs/multicore_debugconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..5b335fa23e2c61ff2576477836d2315ac4ad1abd Binary files /dev/null and b/ide/figs/multicore_debugconfig.png differ diff --git a/ide/figs/project_wizard.png b/ide/figs/project_wizard.png index cf18bedb17b7efb0b0bc9309e4eaffb2e970bb25..35446e29d14da74645236b8bfb3f431e55955d61 100644 Binary files a/ide/figs/project_wizard.png and b/ide/figs/project_wizard.png differ diff --git a/ide/figs/use_dap_or_jlink.png b/ide/figs/use_dap_or_jlink.png index 8f152cf3e11c35df2a24d6e9ddf086a9ff10efd0..dc8a8aba5e911583daf3739d4574b03a30ef88be 100644 Binary files a/ide/figs/use_dap_or_jlink.png and b/ide/figs/use_dap_or_jlink.png differ diff --git a/ide/ide.md b/ide/ide.md index d90f076003f1f3d342911b919c03990154f5bcfa..dcab5159fa3bcb5c8851284d8d73c5fd8ff8662b 100644 --- a/ide/ide.md +++ b/ide/ide.md @@ -3,9 +3,9 @@ - PhyStudio 基于 Eclipse CDT C/C++ 开发,可以便利开发人员在集成开发环境中开发面向 Phytium 系列 CPU 平台的 Standalone 应用程序。本开发环境集成了编辑、编译、网络下载和调试等基础功能,还有管理工程硬件平台、配置 SDK 和 TFTP 服务器等附加功能,可以简化开发工具的安装流程、提升开发调试体验、增加 Standalone 应用程序的开发体验 - PhyStudio 目前支持 Windows x64 操作系统 -- PhyStudio 目前支持 E2000 D/Q Demo 板(开发下载和调试)和飞腾派(开发和下载) +- PhyStudio 目前支持 E2000 D/Q Demo 板,飞腾派,D3000 Demo板,D3000M Test板的开发和调试 -- PhyStudio 集成了如下运行环境 +- PhyStudio 集成了如下运行环境: - `OpenJDK17`,开源的 JAVA SE 平台实现 - `Python 3.8`,Python 平台支持 - `Eclipse Embedded CDT 2023-03`,基于开源 Eclipse 环境进行了修改 @@ -21,8 +21,8 @@ - 从下面的链接中下载开发环境安装包 -- [PhyStudio_Setup_V0.1.4.exe](https://pan.baidu.com/s/1c-k3-E3MNxioTDvwSqJrgw) -> 提取码: phyt +- [PhyStudio_Setup_V0.1.5.exe](https://pan.baidu.com/s/15IhHQz7maf9KpUB9-y8tfQ) +> 提取码: ufia ### 1.2 安装/卸载 PhyStudio @@ -109,18 +109,18 @@ git pull ![](./figs/sdk_open_location.png) -### 1.5 导入或新建项目 +### 1.5 导入工程 PhyStudio支持`Managed工程`和`makefile工程`两种类型,用户需要根据自己的使用场景和使用习惯进行选择,两者的区别如下: - `Managed工程`通过界面配置,编译时会自动生成makefile文件,工程的用户文件保存在Workspace下面,通过文件链接的方式引用SDK - `makefile工程`配置编译选项需要修改makefile文件,工程保存在SDK的example目录下面,使用灵活度较高 #### 1.5.1 Managed工程 -在PhyStudio中可以创建一个空的工程或者基于SDK的example导入工程此类工程,推荐通过导入的方式创建,以导入example工程为例: + - 点击 File > New > Import Phytium Project,可以导入现有的 Phytium Standalone SDK 工程 ![](./figs/import_project.png) -- 进入项目导入界面后,选择一个导入例程,选择运行平台,如 e2000d 和运行模式,如 aarch64,最后点击 Finish 开始导入 +- 进入项目导入界面后,选择一个导入例程,选择开发板和架构,如pe2202 Demo板,aarch64,最后点击 Finish 开始导入 ![](./figs/project_wizard.png) @@ -140,12 +140,6 @@ PhyStudio支持`Managed工程`和`makefile工程`两种类型,用户需要根 ![](./figs/managedproj_config.png) -- 此外,可以通过 File > New > Phytium Project,进入工程创建向导,创建一个新的项目 - -![](./figs/new_proj.png) - -- 创建完成后的工程与导入的工程类似 - #### 1.5.2 Makefile工程 此工程类型需要用户自己管理makefile源文件以及头文件的编译,开发方式与命令行方式一样,适用于比较熟悉makefile的用户,目前支持通过SDK的示例工程导入,需要注意的是此类工程是完全链接SDK下的示例工程 @@ -154,7 +148,7 @@ PhyStudio支持`Managed工程`和`makefile工程`两种类型,用户需要根 ![](./figs/import_makefile_project.png) -- 进入项目导入界面后,选择一个导入例程,选择运行平台,如 e2000d 和运行模式,如 aarch64,最后点击 Finish 开始导入 +- 进入项目导入界面后,选择一个导入例程,选择开发板和架构,如pe2202 Demo板,aarch64,最后点击 Finish 开始导入 ![](./figs/makefile_project_wizard.png) @@ -176,6 +170,12 @@ PhyStudio支持`Managed工程`和`makefile工程`两种类型,用户需要根 ![](./figs/add_include.png) +#### 1.5.3 Makefile 多核工程 +- 多核工程的创建跟 [1.5.2](#### 1.5.2 Makefile工程) 中的方法一样,目前AMP例程支持多核,以amp_tools_example为例,选择pe2202 Demo板创进行创建,创建完成后如下图所示,其中amp_tools_example为多核父工程,因为pe2202 Demo开发板只支持2个核,所以有amp和amp1两个核工程 +- 参考[1.6.1](#### 1.6.1 配置sdkconfig) 分别对这两个核工程进行代码开发和配置,开发完成后只需要选中多核父工程进行编译就完成了多核的编译和镜像打包,Clean也只需要对父工程进行Clean就可以了 + +![](./figs/multi_project.png) + ### 1.6 配置和构建项目 #### 1.6.1 配置sdkconfig @@ -190,7 +190,7 @@ PhyStudio支持通过sdkconfig配置工程,`Makefile工程`类型支持绝大 #### 1.6.2 构建项目 -- 完成配置后选中编译的工程,点击工具栏的`Build`图标开始编译 +- 完成配置后鼠标选中需要编译的工程,点击工具栏的`Build`图标开始编译 ![](./figs/toggle_build.png) @@ -265,9 +265,11 @@ bootelf -p 0xa0100000 ### 1.9 启动程序调试运行 -- 对于有 FJTAG 接口的开发板,可以使用调试运行功能,首先参考[jtag_debugging.md](../jtag_debugging/jtag_debugging.md)进行硬件连接 +- 对于有 FJTAG 接口的开发板,可以使用调试运行功能,首先参考[jtag_debugging.md](../terminal/jtag_debugging/jtag_debugging.md)进行硬件连接 -> 目前支持 FJTAG 调试的开发板包括 E2000 D/Q Demo 板 +> 目前支持 FJTAG 调试的开发板包括 E2000 D/Q Demo 板,D3000 Ddemo板,D3000M Test板 + +- 启动调试后PhyStudio会自动烧录镜像到开发板中,不需要再单独烧录镜像 - 如果使用 CMSIS DAP/DAPLink 作为 JTAG 适配器,连接成功后,设备管理器上应该会看到枚举出的 HID 设备 @@ -279,17 +281,17 @@ bootelf -p 0xa0100000 > 注意 PhyStudio 使用 OpenOCD 作为调试代理,用 Jlink 作为适配器时不能使用 Jlink 的官方驱动,必须用 libusb 将 Jlink 设备识别为 USB Bulk 设备,相关内容可以参考 [Using J-Link with OpenOCD](https://wiki.segger.com/OpenOCD),[解决 OpenOCD 不能识别 J-Link的方法](https://blog.csdn.net/weixin_45467056/article/details/119886361) -- 用适配器连接 PhyStudio 主机和开发板后,在 PhyStudio 的工程中创建调试配置,通过 Debug Configurations 进入调试配置界面,双击 Phytium GDB OpenOCD Debug 创建一个调试配置 +- 用适配器连接 PhyStudio 主机和开发板后,在 PhyStudio 的工程中创建调试配置,通过 Debug Configurations 进入调试配置界面,双击 [Phytium GDB OpenOCD Debug]() 创建一个调试配置 ![](./figs/add_debug_config.png) -![](./figs/debug_config_menu.png) - - 进入调试配置界面,一般只需要选择适配器(Probe)是 Jlink 还是 DAP,其他配置可以参考 Eclipse OpenOCD 的[配置说明](https://eclipse-embed-cdt.github.io/debug/openocd/)修改,修改完成后点击`Apply`保存配置 ![](./figs/use_dap_or_jlink.png) -- 然后复位开发板,保证开发板停留在 U-Boot 界面,然后选中待调试的工程,点击 `Debug As` 启动调试 +- 然后复位开发板,保证开发板停留在 U-Boot 界面,选中刚刚创建好的调试配置进行点击Debug进行调试,如上图所示 + +> 如果调试启动过一次,调试配置会在`Debug As`下拉菜单中显示,下次调试时直接点击就可以进行调试了 ![](./figs/debug_as.png) @@ -320,25 +322,41 @@ bootelf -p 0xa0100000 - 通过 Windows > Show View > Memory 查看运行实时内存 ![](./figs/memory.png) -### 1.10 无工程调试 + +### 1.10 多核调试 +多核调试基于多核工程,首先创建多核工程,并完成配置和编译 + +- 选中多核父工程,点击菜单栏的Debug下拉按钮->选择Debug Configurations..菜单,然后双击 [Phytium GDB OpenOCD Multicore Debugging]() 创建调多核调试配置 + +![](./figs/add_multicore_debugconfig.png) + +- 创建好的调试配置如下如图所示,会默认填充每个核对应的调试端口以及镜像文件,可以根据要求双击选择核工程下的elf文件 +- 在Debugger页签下需要选择调试接口JLink或者DAP + +![](./figs/multicore_debugconfig.png) +- 配置完成后点击`Debug`按钮进行调试,启动调试后如下图所示,会按照顺序启动主核和从核的调试会话,可分别对每个核进行调试 + +![](./figs/multicore_debug.png) + +### 1.11 无工程调试 PhyStudio支持无工程调试,顾名思义也就是在没有创建工程的情况下进行调试,这主要是针对只想使用PhyStudio调试功能的用户,用户选择一个外部的elf文件,然后导入PhyStudio进行调试 -#### 1.10.1 创建调试配置 +#### 1.11.1 创建调试配置 - 点击工具栏的调试菜单下拉箭头->Debug Configurations.. ![](./figs/add_noproj_debugconfig.png) -- 在弹出的对话框中双击Phytium GDB OpenOCD No-Proj Debugging选项创建一个新的调试配置,输入名字,选择Aarch类型,然后选择需要调试的elf文件,在Debugger页签选择好调试接口类型后点击Debug按钮进行调试 +- 在弹出的对话框中双击[Phytium GDB OpenOCD No-Proj Debugging]() 选项创建一个新的调试配置,输入名字,选择Aarch类型,然后选择需要调试的elf文件,在Debugger页签选择好调试接口类型后点击Debug按钮进行调试 ![](./figs/edit_noproj_debugconfig.png) -#### 1.10.2 配置源码 +#### 1.11.2 配置源码 - 无工程调试启动后默认是没有关联源码的,需要手动添加,先从①处复制elf文件编译路径->点击Edit Source Lookup Path,按照下图所示步骤添加源码路径映射,把编译所在的源码路径和本机所在的源码路径关联起来,完成后就可以查看源码了,调试方式跟有工程调试一样 ![](./figs/noproj_debug_source.png) ![](./figs/noproj_debug.png) -### 1.11 Git版本控制 +### 1.12 Git版本控制 - PhyStudio加入了EGit插件,支持git版本控制,具体使用方法参照官方文档[EGit用户指导](https://wiki.eclipse.org/EGit/User_Guide "EGit用户指导"),这里介绍一些基本的用法 -#### 1.11.1 从远程仓库克隆 +#### 1.12.1 从远程仓库克隆 - 点击右上角的按钮,切换到Git透视图,如下图所示,或者点击菜单栏的Window->Show View->Other..->Git->Git Repositories ![](./figs/git_perspective.png) @@ -356,7 +374,7 @@ PhyStudio支持无工程调试,顾名思义也就是在没有创建工程的 ![](./figs/gitclone_finish.png) ![](./figs/gitview.png) -#### 1.11.2 创建一个新的Git仓库 +#### 1.12.2 创建一个新的Git仓库 - 在Git视图中点击创建Git新仓库按钮,选择仓库目录,点击`Create`按钮 ![](./figs/gitrepos_create.png) @@ -373,7 +391,7 @@ PhyStudio支持无工程调试,顾名思义也就是在没有创建工程的 ![](./figs/git_remotes.png) -#### 1.11.3 把代码推送到远程仓库 +#### 1.12.3 把代码推送到远程仓库 - 如果代码还没有加入到git仓库里面,需要右键点击工程->Team->Share Project.. @@ -394,8 +412,8 @@ PhyStudio支持无工程调试,顾名思义也就是在没有创建工程的 ![](./figs/git_pushresult.png) -### 1.12 开发技巧 -#### 1.12.1 常用快捷键 +### 1.13 开发技巧 +#### 1.13.1 常用快捷键 Alt+/ 代码提示 F3或者Ctrl+鼠标左键 查看定义或声明 F4 查看继承关系