查看: 322|回复: 1
收起左侧

SES的快速上手

[复制链接]

  离线 

  • TA的每日心情
    慵懒
    2021-7-23 17:16
  • 签到天数: 17 天

    [LV.4]

    发表于 2021-6-3 19:21:57 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 草帽王子 于 2021-6-3 19:21 编辑

    修订历史


    版本号
    修订日期
    修订的章节
    修订的内容
    1.0.0
    2020/09/22
    N/A
    初始版本

    1. SEGGER Embedded Studio简介与安装

    SEGGER Embedded Studio(以下简称SES)是SEGGER公司推出的一款嵌入式开发的集成开发环境,具有开发与编译界面专业,调试功能强大(配备知名的J-Link仿真器),非商业使用免费,跨平台兼容和配置灵活等特点。

    有关SES的详细安装步骤,以及如何为其设置Nuclei配套的工具链,请参阅(http://www.nucleisys.com/download.php)下载《Nuclei_SES_IDE_Installation.pdf》。

    注意:软件安装路径必须为全英文路径。

    RV-STAR开发板是芯来科技使用RISC-V通用MCU芯片GD32VF103定制的嵌入式MCU学习开发板。有关RV-STAR开发板的更多信息,请参阅网站http://www.riscv-mcu.com/quickstart.html

    本文将使用SES为IDE,介绍在RV-STAR开发板上进行嵌入式软件的开发。


    2. 创建项目

    2.1. 概述

    在SES中新建项目有两种方式:

    从已有项目直接导入创建新项目:
    • 这是最常见的方式,譬如,用户A可以将已有项目的文件夹直接进行打包保存,然后进行分享传播,用户B可以在另外的电脑上直接导入该项目,从而以此为基础创建新的项目,在此基础上直接使用或者开发修改。

    无模板手动创建项目:
    • 这是最繁琐的方式,该方法除了创建项目之外,还需要手动设置各种选项和路径。由于该方式比较繁琐,所以在实际工作中较少使用,但是通过该方式的详细讲解,用户可以详细了解如何配置各中选项和路径。

    下文将详细介绍如何从已有项目直接导入创建新项目,有关无模板方式请参考进阶部分第1章。

    2.2. 从已有项目直接导入创建新项目

    本节将介绍如何使用SES从已有项目直接导入创建新项目,本文以hello_world为例,项目包存放在Github(https://github.com/riscv-mcu/ses_nuclei_sdk_projects)以及码云(https://gitee.com/riscv-mcu/ses_nuclei_sdk_projects),下载工程压缩包如图 2‑1和图 2‑2。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(1)
    图 2‑1位于Github上面的项目包

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(2)
    图 2‑2位于码云上面的项目包

    将下载好的压缩包解压后,内容如图 2‑3所示。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(3)
    图 2‑3项目包详细内容

    打开rvstar_quick_start文件夹,如果正确安装了SES,只需要双击“rvstar_example.emProject”文件即可打开SES并导入项目,操作正确会出现图 2‑4界面,项目的文件结构如红框标注部分。各文件夹的内容说明请参考进阶教程第2章。注意:工程所在路径必须是全英文路径。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(4)
    图 2‑4显示项目的文件结构

    3. 编译项目

    3.1. 编译选项设置

    不管是使用已有项目或是手动创建项目,非必须情况请不要修改Code > External Build的内容。如果需要修改编译选项,请参考进阶教程第4章。

    3.2. 在SES中编译helloworld项目

    本节以2.2节导入的工程helloworld为例介绍如何在SES中如何编译项目,生成二进制文件(默认为elf格式)。

    键盘直接按F7或者点击菜单栏选项的Build下第一个选项,如图 3‑1,即可编译当前工程,编译成功后输出如图 3‑2所示。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(5)
    图 3‑1 通过菜单栏Build选项编译

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(6)
    图 3‑2 编译成功

    4. 调试项目

    SES既支持其原生的J-Link调试器进行调试,也支持通过OpenOCD使用板载蜂鸟调试器进行调试。

    在下载程序之前,需要根据所使用的调试器,针对性的设置GDB Server,下文将对这两种方式分别介绍。

    4.1. 使用板载调试器调试

    4.1.1. 安装驱动

    开发板已经集成了调试器,可以直接通过TYPE-C接口和短接冒连接,如图 4‑1。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(7)
    图 4‑1板载调试器

    板载调试器是预先焊到开发板上的“蜂鸟调试器”电路,由于蜂鸟调试器是基于USB与主机PC连接,因此需要在PC上安装驱动。下文将分别在Linux环境下和Windows环境下介绍如何安装驱动。新版开发板已经带有eprom,如图 4‑1红框标注所示,所以不需要安装驱动,但是要修改cfg文件。在IDE中打开“nuclei-sdk -> SoC -> gd32vf103 -> Board -> gd32vf103v_rvstar -> openocd_gd32vf103.cfg”,修改第7行引号内的内容为“USB \<-> JTAG-DEBUGGER”即可,修改后如图 4‑2。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(8)
    图 4‑2修改openocd的cfg文件

    4.1.2.1在Linux环境下安装驱动

    这里以虚拟机上的Ububtu 16.04版本的Linux操作系统来演示如何在Linux环境下安装驱动,其详细步骤如下:

    使用“JTAG调试器”将主机PC与FPGA开发板连接,注意使该USB接口被虚拟机的Linux系统识别(而非被Windows识别),如图 4‑3所示,若USB图标在虚拟机中显示为高亮,则表明USB被虚拟机中Linux系统正确识别,再将FPGA开发板通电。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(9)
    图 4‑3虚拟机Linux系统识别USB 图标

    1.在控制台中使用lsusb指令查看信息,参考的打印信息如下:
    • Bus 001 Device 010: ID 0403:6010 Future Technology Devices International, Ltd FT2232xxxx

    2.将misc文件夹内99-openocd.rules文件复制到当前路径下,控制台中输入sudo cp 99-openocd.rules /etc/udev/rules.d/99-openocd.rules指令复制文件到指定路径下。

    3.断开调试器再重新连接到Linux系统中。

    4.使用ls /dev/ttyUSB*命令查看ttyUSB信息,参考输出如下:/dev/ttyUSB0 /dev/ttyUSB1

    5.使用ls -l /dev/ttyUSB1命令查看分组信息,参考输出如下: crw-rw-r-- 1 root plugdev 188, 1 Nov 28 12:53 /dev/ttyUSB1
    • 可以看到ttyUSB1已经加入plugdev组,接下来我们要将自己添加到plugdev组。使用whoami命令查看当前用户名,我们将其记录为\< your_user_name >。

    6.使用sudo usermod -a -G plugdev \<your_user_name>命令将自己添加进plugdev组。

    7.再次确认当前用户名已属于plugdev组,使用groups命令,可以看到打印信息中有plugdev即成功将当前用户添加至plugdev组。

    4.1.3.1 在Windows环境下安装驱动

    在Windows环境下安装驱动步骤如下:
    • 连接蜂鸟调试器,确保蜂鸟调试器和PC相连。
    • 下载Windows环境下使用的蜂鸟调试器驱动软件,下载链接如下:http://www.nucleisys.com/developboard.php,具体位置如图 4‑4。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(10)
    图 4‑4下载Windows系统下蜂鸟调试器驱动

    下载完成后双击HBird-Driver.exe
    蜂鸟调试器具有USB转串口的功能,所以正确安装驱动后可以在设备管理器中看到USB的串口号(例如COM11)以及串行总线,如图 4‑5。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(11)
    图 4‑5查看设备管理器

    4.1.4. 设置GDB Server

    驱动安装完成后不需要设置SES中GDB Server的选项内容,使用默认选项即可,如果想详细了解这一部分内容,请参考进阶教程第5章。

    4.1.5. 通过串口打印输出

    嵌入式系统常用SoC的UART口连接主机PC的COM口(或者将UART转换为USB后连接主机PC的USB口)进行调试,这样可以将嵌入式系统中的printf函数重定向至主机的显示屏。

    蜂鸟调试器具有串口功能,可以通过SES自带的串口工具读取显示打印内容。设置步骤如下:
    • 连接蜂鸟调试器后,如图 4‑6,在菜单栏选择“Tools-->Terminal Emulator-->Terminal Emulator”打开串口工具。
    • 蜂鸟调试器如果已经正确安装了驱动,则可以设置连接的COM口,如图 4‑7,在菜单栏选择“Tools-->Terminal Emulator-->Properties”可以打开串口设置弹窗,或者点击Terminal窗口中红框标注的小图标。
    • 如图 4‑8,设置Baud Rate为115200,在port选项位置双击,选择蜂鸟调试器对应的串口号,参考之前在设备管理器中的内容,其它选项与图中保持相同即可。
    • 如图 4‑9,点击电话图标连接串口。

    经过上述设置,以helloworld工程为例,当程序被下载至开发板并按下Reset按键后,因为本例程运行过程中使用到了printf函数,所以可以在SES串口上看到如图 4‑10的参考输出。有关下载调试的内容请参考后续章节。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(12)
    图 4‑6打开SES串口工具

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(13)
    图 4‑7打开串口设置弹窗

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(14)
    图 4‑8设置波特率和串口号

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(15)
    图 4‑9连接串口

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(16)
    图 4‑10 helloworld打印输出到串口

    4.2.4. 调试程序

    驱动安装完成并且串口助手已经打开就可以开始调试程序。如图 4‑11所示,点击绿色播放按钮即可进入调试模式。进入调试模式之前会先检查工程编译情况,编译完成后启动openocd和GDB并下载程序到开发版当中。下载完成后的调试界面如图 4‑12。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(17)
    图 4‑11进入调试模式

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(18)
    图 4‑12调试模式界面

    SES的调试功能很多,各功能的详细使用请参考如下页面:

    4.2. 使用J-Link调试

    运行时使用printf函数可以高效地帮助开发者确认程序运行情况,由于嵌入式系统往往没有配备显示屏,因此需要将嵌入式系统中的printf函数重定向打印至主机的显示屏。在本参考项目中,既支持其原生的J-Link调试器的RTT功能输出printf,也支持通过蜂鸟调试器的UART串口功能输出printf。如果使用蜂鸟调试器的串口,需要自行准备跳线连接至PC,这里不做介绍。

    4.2.1. 连接J-Link至开发板

    RV-STAR开发板也支持通过J-Link连接,请至少准备5根双母头杜邦线和一根公母头杜邦线。

    J-Link连接需要用杜邦线连接串口,移除开发板短接串口自下而上的五个短接冒,移除后如图 4‑13,这五个接口自下而上分别是GND,JTCK,JTDI,JTDO,JTMS。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(19)
    图 4‑13移除开发板短接冒

    图 4‑14是J-Link的引脚图,红框标注为需要连接的引脚,连接对应名字即可,其中J-Link的1脚(VTref)先不连。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(20)
    图 4‑14 J-Link引脚图

    连接完成后用公母头将J-Link的1脚连接到开发板上VCC3V3的插孔中,最终J-Link硬件连接如图 4‑15所示。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(21)
    图 4‑15 J-Link硬件连接图

    4.2.2. 修改Debug设置

    使用J-Link调试程序需要修改工程设置,其步骤如下:
    • 点击菜单栏的Project选项下的Options打开设置页面。
    • 在Debugger栏目下Target Connection选项切换为J-Link,如图 4‑16。

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(22)
    图 4‑16修改工程设置为使用J-Link

    4.2.3. 通过RTT打印输出

    如果使用J-Link,则J-Link具有的RTT功能也可以重定向printf的打印输出(不必占用SoC的UART输出),详细步骤请参考进阶教程第6章

    4.2.4. 调试程序

    驱动安装完成并且串口助手已经打开就可以开始调试程序。如图 4‑17所示,点击绿色播放按钮即可进入调试模式。进入调试模式之前会先检查工程编译情况,编译完成后启动openocd和GDB并下载程序到开发版当中。下载完成后的调试界面如图 4‑18。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(23)
    图 4‑17进入调试模式

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(24)
    图 4‑18调试模式界面

    SES的调试功能很多,各功能的详细使用请参考如下页面:

    5. 运行项目

    上述设置完成,调试无误后,可以不用进入调试模式,直接将程序下载至开发板中运行。不同于调试模式,下载运行需要手动连接GDB Server或者J-Link。使用板载调试器下载和使用J-Link下载有部分区别,下文将分别介绍其下载运行步骤。

    5.1. 使用板载调试器通过GDB Server下载

    • 通过板载调试器连接开发板至主机。
    • 在SES中菜单栏选择Target项目下的Connect GDB Server选项,如图 5‑1所示。
    • 选择Target项目下的DownloadFile,选择elf文件,如图 5‑2,找到编译生成的elf文件(默认在Output文件夹中),双击即可下载到FPGA评估板中。
    • 点击“Target-->Reset GDB Server”可以刷新GDB,程序会自动开始运行。如果此时连接了串口调试助手并且程序中调用了printf,就可以在串口看到打印内容。
    • 下载后如果不需要继续调试或者不需要再次下载,则可以断开GDB Server。在菜单栏选择“Target-->Disconnect GDB Server”即可断开连接。

    由于程序下载到flash当中并且在flash当中运行,所以不会掉电丢失,可以通过开发板上的reset按键实现复位。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(25)
    图 5‑1连接GDB

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(26)
    图 5‑2下载elf文件

    5.2. 使用J-Link下载

    • 通过J-Link连接开发板至主机。
    • 在SES中菜单栏选择Target项目下的Connect J-Link选项,如图 5‑3所示。
    • 这里以helloworld工程为例,选择Target项目下的Download helloworld,如图 5‑4,即可将程序下载至FPGA评估板中。
    • 下载成功后IDE会自动断开J-Link。

    由于程序下载到flash当中并且在flash当中运行,所以不会掉电丢失,可以通过开发板上的reset按键实现复位。
    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(27)
    图 5‑3连接GDB

    SEGGER Embedded Studio IDE-SES的快速上手risc-v单片机中文社区(28)
    图 5‑4下载elf文件



    题主优质好文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    点评回复

    使用道具 举报

      离线 

  • TA的每日心情
    飞起
    2021-11-22 18:36
  • 签到天数: 31 天

    [LV.5]

    发表于 2021-10-21 08:07:08 | 显示全部楼层
    感谢分享
    全球首家只专注于RISC-V单片机行业应用的中文网站
    点评回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条


    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2021-12-9 01:20 , Processed in 8.428105 second(s), 54 queries .

    快速回复 返回顶部 返回列表