完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 jf_11671167 于 2021-10-9 10:32 编辑 关键词:RISC-V,编译,软件模拟,调试系统,平头哥玄铁CPU、调试工具,集成开发环境、GDB,剑池CDK,IDE, 引言 对于开发人员来说,顺畅的调试系统和高效的调试方法将有效降低开发过程中的信息误差,提升开发效率。本文将介绍玄铁CPU的调试系统组成,分为如下两大部分:
希望通过本文的介绍,能使用户对玄铁CPU的调试系统有一定的理解、了解玄铁CPU配套的调试工具的使用。同时方便大家更容易理解后续介绍的调试方法。 一 调试系统的基本介绍 图1 典型的MCU调试系统中 调试系统是一套为基于硬件调试模块,结合软件调试工具,为开发者提供解决软硬件bug的威廉希尔官方网站
系统。软件调试部分包括调试工具、link及其固件。硬件调试部分包括调试模块(Debug Module)。 例如图1所示,在典型的MCU调试系统中:
二 玄铁CPU调试系统总览 图2.1 玄铁调试系统概览 如图2.1所示,玄铁CPU调试系统主要由以下几部分组成:
本章节主要介绍玄铁CPU的硬件调试框架,以及部分软件调试工具、Profiling工具的简介。 2.1 玄铁CPU的硬件调试框架 在玄铁CPU的硬件设计上,调试功能集中在调试模块(Debug Module)中基本结构如图2.2所示。基于该架构,调试模块的各个功能可以覆盖各种IOT设备领域的CPU,包括低功耗、音频处理、视频处理、计算型等领域的CPU。 图 2.2 RISC-V调试框架总览 玄铁CPU中的调试模块,是基于《RISC-V Debug Spec v0.13.2》实现的,实现的功能包括:复位及调试控制、寄存器访问、内存访问、断点等功能。 关于调试模块中具体的功能及其操作接口,请查阅《RISC-V Debug Spec v0.13.2》,附链接:https://github.com/riscv/riscv-debug-spec 基本的调试功能介绍:
2.2 玄铁CPU的软件调试工具 如图2.1所示,玄铁CPU配套有诸多调试工具,本章节将分别介绍几个典型调试工具,如表2.1所示: 表2.1 玄铁调试工具
2.2.1 DebugServer DebugServer是平头哥自行设计实现的调试工具。其目的是为了配合GDB完成对CPU的软件调试,其中包含一套GDB Remote Serial Protocol的实现,并解析该协议,通过USB操作link完成协议的执行。同时DebugServer也实现了一套CLI,完成一些简单的调试功能,如复位、指令单步,读写寄存器、读写内存等。 图 2.3DebugServer Console版本界面 2.2.2 GDB GDB是一个软件调试工具,是GNU组织维护的开源软件:https://www.gnu.org/software/gdb/。GDB支持不同的后端体系架构,目前GDB的发布的源码版本中已经支持玄铁8系列、9系列CPU。能够满足玄铁CPU的日常开发需求。 通过一段简单示例看一下GDB使用。 图2.4 RISC-V GDB使用示例 2.2.3 剑池CDK 剑池CDK是玄铁CPU的开发环境,集成了编辑、编译、调试等功能,便于开发者使用。本章节简要介绍以下CDK的调试功能,如下图所示: 图2.5 剑池CDK调试界面 截图中基本上涵盖了日常使用到的调试功能:
详细调试手册请查看剑池CDK帮助文档 2.2.4 CPF CPF(C-SKY Profiling analysis utils)是一套针对玄铁CPU应用程序的性能分析工具,包含了一系列记录和分析的工具。CPF基于T-Head trace(目前仅T-Head qemu支持T-Head trace功能)进行分析,通过T-Headtrace 硬件能够非侵入式的获取CPU运行时的信息,真实反映CPU 的运行轨迹。借助于CPF,开发者可以提高开发效率,优化系统设计。 图2.6 CPF report结果 如图2.6所示,这是一个helloworld的打印输出示例程序,通过CPF工具,可以直观的看出该程序各函数在执行工程中的耗时占比,除此之外,还能看到程序执行的cycle数、指令数,被调用的次数等。 2.2.5 PERF Perf是一系列强大的性能分析工具集合。在Linux2.6.31版本引入,至今tool/perf目录拥有1万多个提交,是内核开发中最活跃的几个领域之一,通过perf可以使用一到两行命令就完成像程序热点采样,接口调用分析,阻塞分析。 玄铁CPU的PMU单元支持了大量硬件事件计数器,包含了指令数,周期数,cache访问,分支预测等等,图2.7 以memcpy为例演示perf通过PMU或者程序执行的指令数、周期数。 tst-mem2比tst-mem具有更大的循环拷贝次数。 图2.7 perf stat –e instructions, cycles tst-mem 关于平头哥玄铁CPU的调试系统介绍就到这里。其他关于玄铁CPU调试系统的文档请参考:
后续我们还将为大家介绍基于玄铁CPU的生态芯片,如何对RISC-V开发板进行调试。 本文转自平头哥芯片开放社区(occ),更多详情请前往https://occ.t-head.cn/development/activities/cdk?channelName=1 。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15708 浏览 1 评论
13762 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19683 浏览 2 评论
59128 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88232 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
788浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
685浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:52 , Processed in 0.697104 second(s), Total 42, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号