Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: add ide doc about npk import and optimize profiling section #10

Merged
merged 4 commits into from
Nov 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added source/asserts/nucleistudio/npk/image20.png
Binary file added source/asserts/nucleistudio/npk/image21.png
Binary file added source/asserts/nucleistudio/npk/image22.png
Binary file added source/asserts/nucleistudio/npk/image23.png
Binary file added source/asserts/nucleistudio/npk/image24.png
Binary file added source/asserts/nucleistudio/npk/image25.png
Binary file added source/asserts/nucleistudio/npk/image26.png
Binary file added source/asserts/nucleistudio/npk/image27.png
Binary file added source/asserts/nucleistudio/npk/image28.png
Binary file added source/asserts/nucleistudio/npk/image29.png
205 changes: 107 additions & 98 deletions source/ide/advanceeusage.rst → source/ide/advanceusage.rst

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion source/ide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ Nuclei Studio IDE
projectnew.rst
projectbuild.rst
projectrun.rst
advanceeusage.rst
advanceusage.rst
update.rst
faq.rst
22 changes: 11 additions & 11 deletions source/ide/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -138,27 +138,27 @@ Terapines ZCC是兆松科技研发的高性能RISC-V编译器。Nuclei Studio 2
新增LST View工具
~~~~~~~~~~~~~~~~~

LST View 是一个lst文件查看器,可以方便用户查看lst格式的文件,并实现\*.lst文件与源代码的联动,具体请参见 :ref:`LST View <ide_advanceeusage_13>` 。
LST View 是一个lst文件查看器,可以方便用户查看lst格式的文件,并实现\*.lst文件与源代码的联动,具体请参见 :ref:`LST View <ide_advanceusage_13>` 。

优化和完善Gprof功能
~~~~~~~~~~~~~~~~~~~

Gprof是一个强大的性能分析工具,可以帮助开发者理解C/C++程序的运行情况,通过Gprof可以获取到程序中各个函数的调用信息、调用次数、执行时间等,对优化程序、提升程序运行效率具有重要的意义。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceeusage_17>` 。
Gprof是一个强大的性能分析工具,可以帮助开发者理解C/C++程序的运行情况,通过Gprof可以获取到程序中各个函数的调用信息、调用次数、执行时间等,对优化程序、提升程序运行效率具有重要的意义。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceusage_17>` 。

优化和完善Gcov功能
~~~~~~~~~~~~~~~~~~

Gcov是一个测试C/C++代码覆盖率的工具,伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖、功能函数覆盖和分支覆盖测试。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceeusage_17>` 。
Gcov是一个测试C/C++代码覆盖率的工具,伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖、功能函数覆盖和分支覆盖测试。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceusage_17>` 。

新增Call Graph功能
~~~~~~~~~~~~~~~~~~

Call Graph是分析函数调用关系图的工具,结合Gprof使用,便于开发者快速了解程序执行的过程及调用关系。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceeusage_17>` 。
Call Graph是分析函数调用关系图的工具,结合Gprof使用,便于开发者快速了解程序执行的过程及调用关系。具体请参见 :ref:`Code Coverage和Profiling功能 <ide_advanceusage_17>` 。

新增Nuclei Near Cycle Model支持
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Nuclei Near Cycle Model,它是由芯来科技自主研发的仿真测试和性能分析工具,可以帮助研发人员在项目初期进行一些必要的仿真测试和程序性能分析,具体请参见 :ref:`使用Nuclei Near Cycle Model仿真性能分析 <ide_advanceeusage_71>` 。
Nuclei Near Cycle Model,它是由芯来科技自主研发的仿真测试和性能分析工具,可以帮助研发人员在项目初期进行一些必要的仿真测试和程序性能分析,具体请参见 :ref:`使用Nuclei Near Cycle Model仿真性能分析 <ide_advanceusage_71>` 。

2024.02.dev版更新说明
---------------------
Expand All @@ -178,17 +178,17 @@ Nuclei Near Cycle Model,它是由芯来科技自主研发的仿真测试和
新增批量转换Gcc13工程工具
~~~~~~~~~~~~~~~~~~~~~~~~~

在2023.10版Nuclei Studio中,升级GCC 13后,当有大量工程需要转换时,单个转换效率低,为方便开发者,提供了一个批量转换GCC 13工具。具体内容参见 :ref:`批量将工程转换成支持gcc 13的工程 <ide_advanceeusage_4>` 。
在2023.10版Nuclei Studio中,升级GCC 13后,当有大量工程需要转换时,单个转换效率低,为方便开发者,提供了一个批量转换GCC 13工具。具体内容参见 :ref:`批量将工程转换成支持gcc 13的工程 <ide_advanceusage_4>` 。

优化和完善Trace功能
~~~~~~~~~~~~~~~~~~~

Nuclei Studio中Trace功能升级,实现了在OpenOCD模式下对单核应用、SMP多核应用、AMP多核应用的支持,具体内容参见 :ref:`Trace功能的使用 <ide_advanceeusage_43>` ;在Dlink模式下,仅对单核应用支持。Trace功能需要有对应CPU IP的支持,如需体验此功能,请与我们联系。
Nuclei Studio中Trace功能升级,实现了在OpenOCD模式下对单核应用、SMP多核应用、AMP多核应用的支持,具体内容参见 :ref:`Trace功能的使用 <ide_advanceusage_43>` ;在Dlink模式下,仅对单核应用支持。Trace功能需要有对应CPU IP的支持,如需体验此功能,请与我们联系。

优化和完善RVProf功能
~~~~~~~~~~~~~~~~~~~~

RVProf是芯来科技基于CPU cycle model开发的性能分析工具,具体内容参见第 :ref:`RVProf功能的使用 <ide_advanceeusage_61>` 。此功能需要有相应的NPK软件包支持,如需体验此功能,请与我们联系。
RVProf是芯来科技基于CPU cycle model开发的性能分析工具,具体内容参见第 :ref:`RVProf功能的使用 <ide_advanceusage_61>` 。此功能需要有相应的NPK软件包支持,如需体验此功能,请与我们联系。

新增对DLlink Debug的支持
~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -222,7 +222,7 @@ Dlink是芯来自主研发的调试解决方案,在本次版本中得到支持
支持GCC 13和Clang 17
~~~~~~~~~~~~~~~~~~~~

在Nuclei Studio 2023.10版本中实现了对GCC 13的支持,相对于之前的gcc10版本GCC 13在对RISC-V指令扩展的支持更加完备,且在我们维护的版本中,支持完整的RVV Intrinsic API v0.12版本。同时Nuclei Studio 2023.10版本中也实现了对Clang 17的支持(参考地址:\ https://releases.llvm.org/17.0.1/docs/RISCVUsage.html\ )。当然,如果有用户依然想使用GCC 10时行项目开发,我们也保留了相关的配置,但是工具链并没有集成到IDE中,用户需要自行下载并放置在gcc10目录中,参见里面的README.txt,并且我们也提供了老版本采用gcc10的Nuclei Studio创建的工程升级到gcc13工具链上,具体使用可以参考 :ref:`导入旧版本Nuclei Studio创建的工程 <ide_advanceeusage_0>` 。Nuclei RISC-V Toolchain 2023.10更详细的说明,请参阅: https://github.com/riscv-mcu/riscv-gnu-toolchain/releases/tag/nuclei-2023.10
在Nuclei Studio 2023.10版本中实现了对GCC 13的支持,相对于之前的gcc10版本GCC 13在对RISC-V指令扩展的支持更加完备,且在我们维护的版本中,支持完整的RVV Intrinsic API v0.12版本。同时Nuclei Studio 2023.10版本中也实现了对Clang 17的支持(参考地址:\ https://releases.llvm.org/17.0.1/docs/RISCVUsage.html\ )。当然,如果有用户依然想使用GCC 10时行项目开发,我们也保留了相关的配置,但是工具链并没有集成到IDE中,用户需要自行下载并放置在gcc10目录中,参见里面的README.txt,并且我们也提供了老版本采用gcc10的Nuclei Studio创建的工程升级到gcc13工具链上,具体使用可以参考 :ref:`导入旧版本Nuclei Studio创建的工程 <ide_advanceusage_0>` 。Nuclei RISC-V Toolchain 2023.10更详细的说明,请参阅: https://github.com/riscv-mcu/riscv-gnu-toolchain/releases/tag/nuclei-2023.10

|image2|

Expand Down Expand Up @@ -265,7 +265,7 @@ RISC-V指令扩展使用变更
NPK包的使用变更
~~~~~~~~~~~~~~~

为了支持GCC 13和Clang 17,Nuclei SDK包升级到了0.5.0版本,使用SDK包创建工程时,用户可以根据需要,选择创建一个GCC 13或者Clang 17的工程。因为版本变动较大,0.5.0之前的sdk可能有部分功能在Nuclei Studio 2023.10版中使用异常,所我们提供了工具帮助您快速进行工程迁移和升级, **请自行备份老版本的工程** ,具体可能参考 :ref:`导入旧版本Nuclei Studio创建的工程 <ide_advanceeusage_0>` 。
为了支持GCC 13和Clang 17,Nuclei SDK包升级到了0.5.0版本,使用SDK包创建工程时,用户可以根据需要,选择创建一个GCC 13或者Clang 17的工程。因为版本变动较大,0.5.0之前的sdk可能有部分功能在Nuclei Studio 2023.10版中使用异常,所我们提供了工具帮助您快速进行工程迁移和升级, **请自行备份老版本的工程** ,具体可能参考 :ref:`导入旧版本Nuclei Studio创建的工程 <ide_advanceusage_0>` 。

|image9|

Expand Down Expand Up @@ -299,7 +299,7 @@ OpenOCD版本升级至2023.10版,增加了一些额外的调试特性,例如
新增Code Coverage和Profiling功能
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在Nuclei Studio 2023.10新增了对Code Coverage和Profiling功能的支持,具体参考 :ref:`Code Coverage和Profiling功能 <ide_advanceeusage_17>` 。
在Nuclei Studio 2023.10新增了对Code Coverage和Profiling功能的支持,具体参考 :ref:`Code Coverage和Profiling功能 <ide_advanceusage_17>` 。

新增trace功能
~~~~~~~~~~~~~
Expand Down
105 changes: 94 additions & 11 deletions source/ide/npk.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.. _npk:
.. _npk:

Nuclei Studio NPK 应用
=======================
Expand All @@ -7,17 +7,71 @@ Nuclei Studio 中内建了对Nuclei Package(NPK)功能的完整支持,方

开发者要使用Nuclei Studio进行工程的创建,需先将对应的SDK NPK Zip包安装到IDE中,方可根据不同的开发板快速新建不同的模板工程,并根据不同的模板添加需要的SDK源码,根据选项生成不同的编译链接选项设置。

通过NPK创建工程
---------------

本章将在RVSTAR开发板上,以新建和修改GD32VF103的工程为例快速介绍Nuclei Studio功能,RVSTAR开发板开发需要使用nuclei_sdk的npk包,详细的流程请参考之后的章节。
.. _npk_package_management:

.. _ide_npk_package_management:

NPK软件包管理
~~~~~~~~~~~~~
-------------

.. _npk_import_local_package:

导入本地NPK软件包
~~~~~~~~~~~~~~~~~

**导入zip软件包**

当用户拿到一个zip格式的软件包时,可以通过Nuclei Package Management导入一个zip格式的软件包,你可以按照以下的步骤操作:

首先,点击Nuclei Studio IDE工具栏上的 **Nuclei Package Management** 按钮,这将打开npk软件包管理页面。在这个页面上,你可以管理和浏览已安装的软件包,以及导入新的软件包。在这里,我们找到并点击 **Import** 选项。这个选项用于从本地文件系统选择zip类型的软件包。

|image19|

在点击 **Import** 后,系统会提示你选择一个要导入的软件包文件。此时,你需要浏览到你的zip格式软件包所在的目录,并选中它。确保选中的是一个有效的zip包,点击 **打开** ,系统会开始处理并导入这个软件包。

|image20|

|image21|

导入完成后,你应该能够在Nuclei Studio IDE的Package Management页面中看到新导入的软件包。

|image22|

**导入未压缩的npk软件包**

当用户拿到一个未压缩的npk软件包工程时,如果想将它导入到NucleiStudio中,最简单的方式就是通过压缩软件,将其压缩成为一个.zip压缩包,然后通过上述操作导入到NucleiStudio中,如果想一边修改这个npk软件包工程,修改完后快速导入到NucleiStudio中进行测试,可以通过如下操作实现。

直接导入未压缩的软件包,先要将软件包导入到Project Exlorer视图中。点击菜单栏上的File选项,在下拉菜单中,找到并点击 **Import...** 选项。这将打开导入向导,帮助你从本地文件系统或其他来源导入新的项目或文件。

|image23|

然后选择General下的 **Projects from Folder or Archive** 选项,点击Next按钮。

|image24|

接下来,点击 **Directory...** ,这里浏览到你的软件包所在的目录,并选择要导入的文件或文件夹。确保你选择了正确的路径和文件,然后点击 **Finish** 按钮。

|image25|

此时软件包已导入到 **Project Explorer** 视图中,右键点击这个文件夹(代表你的软件包),在弹出的上下文菜单中选择 **Export to Package Management** 并点击,系统会开始处理并导入这个软件包。

在Nuclei Studio中最大的更新,就是将npk云端化,用户直接在Nuclei Studio中就可以下查看到所有的npk并自行安装,在菜单栏选择 ``RV-Tools-->Nuclei Package Management`` 在弹出的Nuclei Package Management管理页进行npk管理。
|image26|

导入过程中,会自动打开Package Management页面。

|image27|

待导入完成后,你应该能够在Nuclei Studio IDE的Package Management页面中看到新导入的软件包。

|image28|


.. _npk_download_cloud_package:

下载云端NPK软件包
~~~~~~~~~~~~~~~~~

在Nuclei Studio中最大的更新,就是将npk云端化,用户直接在Nuclei Studio中就可以下查看到所有的npk并自行安装,在菜单栏选择 ``RV-Tools-->Nuclei Package Management`` 在弹出的**Nuclei Package Management**管理页进行npk管理。

|image1|

Expand Down Expand Up @@ -45,6 +99,13 @@ NPK软件包管理

|image7|

通过NPK创建工程
---------------

本章将在RVSTAR开发板上,以新建和修改GD32VF103的工程为例快速介绍Nuclei Studio功能,RVSTAR开发板开发需要使用nuclei_sdk的npk包,详细的流程请参考之后的章节。

.. _npk_create_project:

创建NPK示例工程
~~~~~~~~~~~~~~~

Expand All @@ -71,6 +132,8 @@ Nuclei Studio可以根据不同的工程模板添加不同的SDK源码,例如F

Nuclei Studio可以根据新建工程时的选项自动设置工程的选项。这里选择使用浮点打印,所以 ``NEWLIB`` 选择 ``newlib nano with printf float`` 。之后一直选择 ``Next`` 直到 ``Finish`` 。

.. _npk_sdk_config_tool:

SDK Configuration Tools更改工程配置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -101,18 +164,20 @@ Tools将直接打开这个Nuclei Settings界面。

|image15|

.. _npk_import_tool_package:

通过NPK导入工具
---------------

NPK包除了可以导入SDK,还可以方便的导入各种工具包,来扩展Nuclei Studio的能力,2022.08版本的Nuclei Studio增加NPK Tools的支持,为增加组件包的可扩展性,以及在编译和调试上使用更便捷,增加类型为tool的npk组件包。tool组件包可包含gcc,qemu,cmlink-gdb等内容,以zip包的形式导入到IDE去使用。

以tool-cmlink包为例,一个工具包中有该工具的执行文件及npk.yml,开发者在npk.yml文件中对该工具做了一些简单的描述,如工具包的开发者、版本、支持的操作系统、可执行文件的路径等,包结构和npk.yml内容如下示例。然后将工具包压缩成一个zip文件,可以参考4.1.章的内容,将npk tools导入到ide中,或共享到\ `www.rvmcu.com <http://www.rvmcu.com>`__\ 网站上。
以tool-cmlink包为例,一个工具包中有该工具的执行文件及npk.yml,开发者在npk.yml文件中对该工具做了一些简单的描述,如工具包的开发者、版本、支持的操作系统、可执行文件的路径等,包结构和npk.yml内容如下示例。然后将工具包压缩成一个zip文件,可以参考 :ref:`npk_import_local_package` 的内容,将npk tools导入到ide中,或共享到\ `www.rvmcu.com <http://www.rvmcu.com>`__\ 网站上。

- -bin
- ``bin``

- -bin\\cmlink_gdbserver.exe
- ``bin\cmlink_gdbserver.exe``

- -npk.yml
- ``npk.yml``

|image16|

Expand Down Expand Up @@ -180,4 +245,22 @@ NPK包除了可以导入SDK,还可以方便的导入各种工具包,来扩展N

.. |image18| image:: /asserts/nucleistudio/npk/image19.png

.. |image19| image:: /asserts/nucleistudio/npk/image20.png

.. |image20| image:: /asserts/nucleistudio/npk/image21.png

.. |image21| image:: /asserts/nucleistudio/npk/image22.png

.. |image22| image:: /asserts/nucleistudio/npk/image23.png

.. |image23| image:: /asserts/nucleistudio/npk/image24.png

.. |image24| image:: /asserts/nucleistudio/npk/image25.png

.. |image25| image:: /asserts/nucleistudio/npk/image26.png

.. |image26| image:: /asserts/nucleistudio/npk/image27.png

.. |image27| image:: /asserts/nucleistudio/npk/image28.png

.. |image28| image:: /asserts/nucleistudio/npk/image29.png
Loading
Loading