0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

迅为2K1000开发板龙芯平台Ejtag 单步调试 PMON 的汇编阶段

平常心0 2022-03-21 15:14 次阅读

迅为2K1000开发板

Ejtag调试器

在 9.6 小节中,我们在汇编节点实现了 led 闪烁的功能,如果您自己写的程序没有成功,我们该如何调 试呢?就可以利用 Ejtag 仿真器进行单步调试。

那我们要如何进行单步调试呢?我们是不是就得先知道每一个指令对应的地址呢?这样我们才可以打断点。我们先来修改一下在 9.6 小节中的代码,我们加一个标签。如下图所示:

然后我们重新编译 pmon 源码生成 pmon 镜像并烧写到开发板,一定要将编译的烧写到开发板!!!接着在 pmon-loongson3/zloader.ls2k 使用命令/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-objdump -d start.o > 1.txt

将编译得到的 start.o 文件进行反汇编并将结果输出到 1.txt,添加 led3_ctrl 标签的目的是为了反汇编以后更加容易找到 led3 控制相关的指令,如下图所示:

使用命令 vim 1.txt 打开反汇编后的输出文件,找到标签 led3_ctrl 所在的位置,如下图所示:

从上图可以看出,控制 led3 相关的代码是从地址 d60 开始的,而 MIPS 的入口地址是 0xbfc00000,所以我们是不是就可以把断点打的地址为 0xbfc00d84 的地方呢,这个地方对应的指令为点灯操作。

接着我们启动 Ejitag 工具并配置好 Ejtag 工具,在 Ejtag 命令行下输入命令 hb 0xffffffffbfc00d84,注意,此

时开发板并未上电!!!

接着我们给开发板上电,此时 hb 命令会执行成,这时立刻输入 set 命令停止 cpu,如下图所示:

然后我们输入命令 hbls,查看断点是否设置成功,设置成功如下图所示:

接着输入命令 cont,让 cpu 执行到断点出停止,如下图所示:

然后使用命令 unhb 0xffffffffbfc00d84 删除断点,这里一定要删除,不然 si 命令不能往下执行,如下图所示:

接着输入命令 si 1 执行 1 条执行,si 1 的意思就是单步执行 1 条指令,如下图所示:

此时我们可以发现 led3 已经点亮,说明我们之前写的汇编代码是没有问题的。如果大家没有点亮,可以使用 set 命令来查看通用寄存器的值来排查错误。

接着我们将断电打在关灯的指令位置,在反汇编 1.txt 文件中,我们可以发现关灯的指令是在 da0 位置, 如下图所示:

所以我们输入命令 hb 0xffffffffbfc00da0 将断点打在这个位置下,如下图所示:

然后执行 cont 命令运行 cpu,cpu 会执行到这个断点位置,然后停止,如下图所示:

cpu 已经停到这个位置了,我们就可以使用命令 unhb 来删除断点了,这里一定要删除,不然 si 命令不能往下执行,如下图所示:

接着输入命令 si 1 条指令,如果我们写的代码没有问题,可以发现 led3 熄灭,如下图所示:

这样我们就在汇编阶段下调试完成了 led,同理,调试其他的 GPIO 大家也可以使用这种方法,这里就 不在赘述,大家可以自行探索一下。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 龙芯
    +关注

    关注

    3

    文章

    358

    浏览量

    31475
  • PMON
    +关注

    关注

    0

    文章

    7

    浏览量

    8268
  • EJTAG
    +关注

    关注

    0

    文章

    2

    浏览量

    8165
  • 2K1000
    +关注

    关注

    0

    文章

    21

    浏览量

    617
收藏 人收藏

    相关推荐

    基于龙芯2K0300处理器 龙芯中科携手正点原子发布龙芯ATK-DL2K0300B开发板

    龙芯中科携手正点原子发布龙芯ATK-DL2K0300B开发板。该开发板正点原子发布的首款
    的头像 发表于 02-25 15:29 361次阅读
    基于<b class='flag-5'>龙芯</b><b class='flag-5'>2K</b>0300处理器 <b class='flag-5'>龙芯</b>中科携手正点原子发布<b class='flag-5'>龙芯</b>ATK-DL<b class='flag-5'>2K</b>0300B<b class='flag-5'>开发板</b>

    全新上市 |iTOP-LS2K0300开发板HMI

    全新上市 |iTOP-LS2K0300开发板HMI
    的头像 发表于 02-17 14:39 267次阅读
    全新上市 |<b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-LS<b class='flag-5'>2K</b>0300<b class='flag-5'>开发板</b>HMI

    国产龙芯处理器双核64位系统2K1000开发板/核心

    视频教程 新增龙芯2K1000开发环境搭建系列、系统编译与烧写系列、PMON基础知识及启动流程分析系列、pmon移植教程系列视频教程。更多视
    发表于 02-17 11:12

    龙芯2K1000开发板/核心介绍

    视频教程 新增龙芯2K1000开发环境搭建系列、系统编译与烧写系列、PMON基础知识及启动流程分析系列、pmon移植教程系列视频教程。更多视
    发表于 02-08 11:01

    龙芯2K1000开发板/核心流畅运行Busybox、Buildroot、Loognix、QT5.12系统

    视频教程 新增龙芯2K1000开发环境搭建系列、系统编译与烧写系列、PMON基础知识及启动流程分析系列、pmon移植教程系列视频教程。更多视
    发表于 01-21 14:38

    龙芯LS2K1000LA和LS2K1000有何区别?

    则是使用mips架构。所以俩个不同架构的处理器使用的源码略有不同,但是硬件上基于2k10002k1000la的开发板&核心
    发表于 11-14 11:06

    电子】龙芯LS2K1000LA和LS2K1000有何区别?

    电子】龙芯LS2K1000LA和LS2K1000有何区别?
    的头像 发表于 11-13 14:13 419次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b>电子】<b class='flag-5'>龙芯</b>LS<b class='flag-5'>2K1000</b>LA和LS<b class='flag-5'>2K1000</b>有何区别?

    【北京】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器

    【北京】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器
    的头像 发表于 10-25 14:56 445次阅读
    【北京<b class='flag-5'>迅</b><b class='flag-5'>为</b>】itop-<b class='flag-5'>龙芯</b><b class='flag-5'>2k1000</b><b class='flag-5'>开发</b>指南Linux基础入门vim 编辑器

    国产龙芯处理器选择2K1000开发板有资料

    视频教程 新增龙芯2K1000开发环境搭建系列、系统编译与烧写系列、PMON基础知识及启动流程分析系列、pmon移植教程系列视频教程。更多视
    发表于 10-16 14:23

    龙芯2K0300蜂鸟试用】试用开箱体验及调试

    龙芯2K0300蜂鸟试用开箱: 龙芯2K0300蜂鸟开发板是一块集成度很高的板卡,
    发表于 09-08 12:08

    龙芯2K0300蜂鸟试用】龙芯2K0300蜂鸟开发板上电测试!

    。无论是进行硬件调试、软件开发还是系统集成,都能显著提升开发效率,优化产品设计流程。 市场潜力 :龙芯2K0300蜂鸟的发布,预示着国产嵌入
    发表于 09-05 20:46

    【北京龙芯iTOP-LS2K0500开发板快速启动手册-第3章 Windows安装串口终端

    龙芯iTOP-LS2K0500开发板
    的头像 发表于 08-28 15:13 690次阅读
    【北京<b class='flag-5'>迅</b><b class='flag-5'>为</b>】<b class='flag-5'>龙芯</b>iTOP-LS<b class='flag-5'>2K</b>0500<b class='flag-5'>开发板</b>快速启动手册-第3章 Windows安装串口终端

    【北京】itop-龙芯2k1000 sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤

    【北京】itop-龙芯2k1000 sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤
    的头像 发表于 08-26 14:18 860次阅读
    【北京<b class='flag-5'>迅</b><b class='flag-5'>为</b>】itop-<b class='flag-5'>龙芯</b><b class='flag-5'>2k1000</b> sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤

    2K0500开发板硬件连接快速测试

    2K0500开发板硬件连接快速测试
    的头像 发表于 08-13 15:40 429次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>2K</b>0500<b class='flag-5'>开发板</b>硬件连接快速测试

    龙芯2K0300蜂鸟试用】开发板简介

    龙芯2K0300蜂鸟试用】开发板简介 广东龙芯 2K0300 蜂鸟
    发表于 08-12 17:27