打印
[活动专区]

【开源代码】-基于国民N32G45x系列MCU使用JLINK的RTTVIEWER

[复制链接]
610|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2022-9-30 11:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 51xlf 于 2022-10-10 20:21 编辑

#申请原创#  @21小跑堂 @安小芯 @21小跑堂 J-Link RTT Viewer是适用于Windows、MacOS和Linux的GUI应用程序,可以作为J-Link软件和文档包的一部分下载。它使您能够在一个应用程序中使用RTT的所有功能。它支持:
显示通道0的终端输出。
通道0上最多16个虚拟终端。
将文本输入发送到频道0。
解释彩色文本的文本控制代码并控制终端。
将终端数据记录到文件中。

在通道1上记录数据。
刚刚看到这个活动,又从箱底翻出了当年盗.版的J-LINK,不知道能不能使用了呢。赶紧插上电脑测试了一下,还可以的。

电脑能识别出来。


之前也没有用过Jlink的组件,简单研究一下看看效果怎么样。
首先去下载Jlink的组件安装包 https://www.segger.com/downloads/jlink/
硬件就是使用SW的连接方法。SWCLK和SWDIO GND三个就可以。

我下载的是最新版本的,这个不像之前的软件,检测到daoban就直接关闭keil。
下载以后直接一路点击安装就行了。
直接在[size=1em]MCU产品资料ftp://58.250.18.138 下载需要的文件包
[size=1em]我这里选择的是N32G457芯片,推荐使用FTP软件下载,直接复制太慢了。
Nationstech.N32G45x_Library.2.1.0\projects\n32g45x_EVAL\examples
使用任何一个项目做一个打印输出即可。
在安装的Jlink软件中找到 RTT 这个报错,解压后,需要config和RTT两个文件夹中文件。

直接把他们复制到工程文件中。


这里怎么添加工程文件就不再赘述了,只是简单测试而已,就没有重新建立文件夹和引用文件夹了。
打开工程文件,将SEGGER_RTT.c和SEGGER_RTT_printf.c添加到工程中。

如果使用jlink下载,还需要配置Debug项,这里要选择Jlink。

然后点击settting,因为没有N32这个芯片,会有弹窗,直接直接选择Contex-M4即可。
返回的时候就可以查看到引脚能识别到,Port选择SW接口。

打开就是提示这clone版本,不过不影响使用。


在main.c代码中添加头文件
#include "SEGGER_RTT.h"
在main函数中添加
    SEGGER_RTT_printf(0,"N32G45x RTT Viewer\r\n");
步骤为
通过从J-Link软件的安装文件夹或开始菜单中打开可执行文件(JLinkRTTViewer.exe/JLinkRTTV ViewerExe),启动J-Link RTT查看器。除非设置了命令行参数--autoconnect,否则将弹出配置对话框。
按如下所述配置连接设置,然后单击确定。
连接设置和所有应用程序内配置都将保存,以便下次启动J-Link RTT Viewer。




在程序栏中打开 J-Link RTT Viewer V7.70

软件设置如下所示。记得地址栏填写0x20000018
不是默认的0x20000000

连接成功会输出
LOG: J-Link RTT Viewer V7.70: Logging started.
LOG: Terminal 0 added.
LOG: Connecting to J-Link via USB...
LOG: Device "CORTEX-M4" selected.
LOG: Found SW-DP with ID 0x2BA01477
LOG: DPv0 detected
LOG: CoreSight SoC-400 or earlier
LOG: Scanning AP map to find all available APs
LOG: AP[1]: Stopped AP scan as end of AP map has been reached
LOG: AP[0]: AHB-AP (IDR: 0x24770011)
LOG: Iterating through AP map to find AHB-AP to use
LOG: AP[0]: Core found
LOG: AP[0]: AHB-AP ROM base: 0xE00FF000
LOG: CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
LOG: Found Cortex-M4 r0p1, Little endian.
LOG: FPUnit: 6 code (BP) slots and 2 literal slots
LOG: CoreSight components:
LOG: ROMTbl[0] [url=home.php?mod=space&uid=72445]@[/url] E00FF000
LOG: [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
LOG: [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
LOG: [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
LOG: [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
LOG: [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
LOG: [0][5]: E0041000 CID B105900D PID 000BB925 ETM
LOG: RTT Viewer connected.

然后可以在终端看到输出的字符串了。
这个分为汇总和终端0两个界面,内容是一样的。
所有终端选项卡显示RTT通道0的完整输出,并可以显示用户输入(检查输入->回波输入…->回波至“所有终端”)。\n每个输出行都以其发送到的终端为前缀。此外,终端1上的输出显示为红色,终端2-15上的输出为灰色。

每个选项卡终端0-终端15显示已发送到此终端的输出。终端选项卡解释并显示应用程序发送的文本控制代码,以显示彩色文本或擦除屏幕。
默认情况下,如果RTT应用程序未设置终端Id,则输出显示在终端0中。
终端0选项卡还可以显示用户输入。(检查输入->回波输入…->回波至“终端0”)
每个终端选项卡都可以通过菜单终端->终端…或其各自的快捷方式显示或隐藏,如下所述。


把RTT代码上传一下吧。
src.rar (23.25 KB)

J-Link RTT Viewer支持向RTT Down Channel 0发送用户输入,目标应用程序可以使用SEGGER_RTT_GetKey()和SEGGER_RTT_read()读取这些输入。
可以在终端选项卡下方的文本框中输入输入。
J-Link RTT Viewer可配置为在键入时直接发送每个字符,或在按下Enter键之前缓冲它(菜单输入->发送…)。
在独立模式下,如果目标输入缓冲区已满,J-Link RTT Viewer可以重试发送输入,直到所有数据都可以通过输入->发送…->块发送到目标




搜狗截图22年09月30日1044_11.jpg (288 KB )

搜狗截图22年09月30日1044_11.jpg

使用特权

评论回复
沙发
21小跑堂| | 2022-9-30 15:58 | 只看该作者
欢迎参加活动!但是楼主你要完善一下文字描述,这个活动要求字数达到800,补充好了再@我一次

使用特权

评论回复
板凳
sy12138| | 2022-9-30 20:35 | 只看该作者
其他JLINK开发组件等着你

使用特权

评论回复
地板
51xlf|  楼主 | 2022-10-1 10:07 | 只看该作者
sy12138 发表于 2022-9-30 20:35
其他JLINK开发组件等着你

好的                                             

使用特权

评论回复
5
51xlf|  楼主 | 2022-10-1 10:08 | 只看该作者
21小跑堂 发表于 2022-9-30 15:58
欢迎参加活动!但是楼主你要完善一下文字描述,这个活动要求字数达到800,补充好了再@我一次 ...

好的。                                          

使用特权

评论回复
6
51xlf|  楼主 | 2022-10-10 20:22 | 只看该作者
@21小跑堂 已更新最新字数。                                   

使用特权

评论回复
7
klbyf| | 2024-4-15 17:07 | 只看该作者
谢谢!!!!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

531

主题

9335

帖子

19

粉丝