Skip to content

Commit

Permalink
doc: Fix advanceeusage.rst name and update npk import and profiling s…
Browse files Browse the repository at this point in the history
…ection
  • Loading branch information
zhangzegang committed Nov 1, 2024
1 parent 5ed50a3 commit ac313fb
Show file tree
Hide file tree
Showing 13 changed files with 91 additions and 9 deletions.
Binary file added source/asserts/nucleistudio/npk/image20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image23.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image25.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image26.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image28.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/asserts/nucleistudio/npk/image29.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 11 additions & 2 deletions source/ide/advanceeusage.rst → source/ide/advanceusage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,10 @@ Tools <https://github.com/eclipse-linuxtools/org.eclipse.linuxtools/blob/master/

Nuclei Studio中的Code Coverage功能是借助于gcc编译器提供gcov工具来查看指定源码文件的代码覆盖率,可以帮助开发人员确定他们的测试用例是否足够充分,是否覆盖了被测代码的所有分支和路径。

在Nuclei Studio中,通过带特定 ``--coverage`` 编译选项编译指定源码文件,在实际开发板上运行,并配合semihost功能则可以收集需要的coverage文件(gcda/gcno文件),则可以在gcov工具的配合下,以图形化的方式展示。
在Nuclei Studio中,通过给工程中的文件或者文件夹添加 ``--coverage`` 编译选项编译,在实际开发板上运行时,可以配合semihost功能实现文件读写到主机电脑上,就可以收集到需要的coverage文件(gcda/gcno文件),或者通过Nuclei SDK提供的profiling库来实现将coverage数据打印到串口上,然后通过IDE来解析并保存到主机上。

.. note::
注意:此处只需要将编译选项 ``--coverage`` 加到特定的应用目录或者源码文件上,而不能加到整个工程,否则在程序运行时将会消耗大量内存,导致运行失败。

- ``.gcno`` 文件是在使用 GCC 编译器的 ``-ftest-coverage`` 选项编译源代码时生成的。它包含了重构基本块图和为块分配源代码行号的信息。

Expand Down Expand Up @@ -175,7 +178,10 @@ Nuclei Studio中的Code Coverage功能是借助于gcc编译器提供gcov工具

Nuclei Studio中的Profiling功能是借助于gcc编译器和binutils中的gprof工具,来查看指定文件中函数的运行时间和调用次数,以及调用关系。gprof可以用来确定程序的瓶颈,以便进行性能优化。gprof通过在程序运行时收集数据来工作,然后生成一个报告,该报告显示每个函数在程序中占用CPU时间的百分比以及函数之间的调用关系。

在Nuclei Studio中,通过带特定的编译选项--pg编译指定源码文件,在实际开发板上运行,并配合semihost功能则可以收集需要的 ``gmon.out`` 文件,在IDE上以图形化的方式展示。
在Nuclei Studio中,通过带特定的编译选项 ``-pg`` 编译指定源码文件,在实际开发板上运行时,可以配合semihost功能实现文件读写到主机电脑上,就可以收集到需要的coverage文件(gcda/gcno文件),或者通过Nuclei SDK提供的profiling库来实现将coverage数据打印到串口上,然后通过IDE来解析并保存到主机上。

.. note::
注意:此处只需要将编译选项 ``-pg`` 加到特定的应用目录或者源码文件上,而不能加到整个工程,否则在程序运行时将会消耗大量内存,导致运行失败。

产生这个 ``gmon.out`` 文件需要配合编译器并且实际上板运行,并且运行环境支持文件的读写,才可以进行有效的Profiling功能。

Expand Down Expand Up @@ -238,6 +244,9 @@ nuclei_sdk 0.6.0及以上版本的nulclei_sdk中,包含一个 ``Profiling demo

工程创建后,需要对想要进行代码分析的文件或文件夹设置一个 ``-pg`` ``--coverage`` 的编译选项,然后编译工程。

.. note::
注意:此处只需要将编译选项 ``-pg`` ``--coverage`` 加到特定的应用目录或者源码文件上,而不能加到整个工程,否则在程序运行时将会消耗大量内存,导致运行失败。

|profiling_options_in_ide|

在编译通过的工程的Debug目录中,可以看到,已经生成了几个 ``.gcno`` 的文件。
Expand Down
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
85 changes: 79 additions & 6 deletions source/ide/npk.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,62 @@ Nuclei Studio 中内建了对Nuclei Package(NPK)功能的完整支持,方

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

通过NPK创建工程
---------------
NPK软件包管理
-------------

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

.. _ide_npk_package_management:
**导入zip软件包**

NPK软件包管理
~~~~~~~~~~~~~
当用户拿到一个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** 并点击,系统会开始处理并导入这个软件包。

|image26|

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

|image27|

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

|image28|



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

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

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

|image7|

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

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

.. _ide_npk_package_management:

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

Expand Down Expand Up @@ -101,6 +155,7 @@ Tools将直接打开这个Nuclei Settings界面。

|image15|


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

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

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

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

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

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

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

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

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

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

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

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

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

0 comments on commit ac313fb

Please sign in to comment.