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

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

3天内不再提示

怎样使用Simavr在Linux中调试AVR代码

454398 来源:wv 2019-10-10 15:27 次阅读

步骤1:

对Ubuntu有一些依赖性(这就是我所依赖的)一直使用):

sudo apt-get install avr-libc libelf-dev

libglut3-dev gtkwave git build-essential我必须在10.10中删除一些不适用于OpenGL的Mesa符号链接。仅在与-lGL有关的编译问题上执行此操作,

sudo rm /usr/lib/libGL.so

cd /usr/lib

sudo ln -s libGL.so.1 libGL.so

cd最后,使用git下载源代码:

git clone git://gitorious.org/simavr/simavr.git

现在,构建它。

cd simavr

make

如果有任何错误,请给我评论。我很乐意提供帮助。完成后,您应该在simavr子目录中有一个名为 run_avr 的新程序。

第2步:尝试测试

该软件附带了大量测试。它们位于代码中的( surprise !)测试子目录中。您可以这样运行:

。/run_avr 。./tests/atmega88_example.axf

您应该看到类似这样的内容:

AVR_MMCU_TAG_VCD_TRACE 00c6:00 - UDR0

AVR_MMCU_TAG_VCD_TRACE 00c0:20 - UDRE0

Loaded 1760 .text

Loaded 114 .data

Loaded 4 .eeprom

Starting atmega88 - flashend 1fff ramend 04ff e2end 01ff

atmega88 init

avr_eeprom_ioctl: AVR_IOCTL_EEPROM_SET Loaded 4 at offset 0

Creating VCD trace file ‘gtkwave_trace.vcd’

Read from eeprom 0xdeadbeef -- should be 0xdeadbeef.。

Read from eeprom 0xcafef00d -- should be 0xcafef00d.。

simavr: sleeping with interrupts off, quitting gracefully

注意它已制成VCD跟踪文件?让我们看看GTKWave的样子!

步骤3:

gtkwave gtkwave_trace.vcd您可以通过Waves对话框将左侧的Signals拖放到Signals列表中,以使其显示起来。您也可以右键单击信号并更改其属性(例如使它们以二进制显示)。

第4步:如何为我工作

您可以在命令行上指定要模拟芯片,并可以为其创建目标文件由avr-gcc(ELF格式)运行。我还在这里将频率指定为8Mhz。

run_avr -mcu attiny85 -freq 8000000 -t ~/repos/life/code/avr/tutorials/ctc_ledblink.o这产生了一个很棒的输出:

AVR_MMCU_TAG_VCD_TRACE 0053:00 - TCCR0B

AVR_MMCU_TAG_VCD_TRACE 004a:00 - TCCR0A

AVR_MMCU_TAG_VCD_TRACE 0038:01 - tick

AVR_MMCU_TAG_VCD_TRACE 0038:02 - reset_timer

AVR_MMCU_TAG_VCD_TRACE 0038:08 - OC0A

Loaded 136 .text

Starting attiny85 - flashend 1fff ramend 025f e2end 01ff

attiny85 init

Creating VCD trace file ‘gtkwave_trace.vcd’

avr_timer_configure-0 TOP 31250.00Hz = 256 cycles

avr_timer_configure-0 TOP 488.28Hz = 16384 cycles

avr_timer_configure-0 TOP 488.28Hz = 16384 cycles

avr_timer_configure-0 A 2450.98Hz = 3264 cycles

avr_timer_configure-0 TOP 31250.00Hz = 256 cycles

avr_timer_configure-0 A 156862.75Hz = 51 cycles

simavr: sleeping with interrupts off, quitting gracefully

现在我有了跟踪文件,我像在步骤3中一样用gtkwave对其进行了查看。我使用了数据表,并将寄存器与期望值进行了比较,然后将定时器寄存器向后设置!哎呦!无论如何,如果没有simavr,解决它会花费我更多的时间-这样一来,它只需花费几分钟就可以启动并运行,并找到我的问题。我强烈建议您尝试一下!

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

    关注

    87

    文章

    10990

    浏览量

    206733
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66759
收藏 人收藏

    评论

    相关推荐

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的
    的头像 发表于 01-31 10:41 451次阅读

    linux用gdb调试遇到函数调用怎么办?

    linux用gdb调试遇到函数调用怎么办? 在Linux上使用GDB调试时,遇到函数调用是一个常见的情况。函数调用可能涉及到多个函数、多个文件,这就需要我们仔细审查
    的头像 发表于 01-31 10:33 196次阅读

    linux虚拟机怎么运行代码

    运行代码Linux虚拟机中的常见操作,本文将详细介绍如何运行代码。 首先,要运行代码,你需要先安装好Linux虚拟机,并确保能够顺利运行。
    的头像 发表于 11-17 10:12 2228次阅读

    gdb动态调试演示

    应用开发,还是嵌入式Linux应用开发,在我们接到新需求开始撸代码的时候(一般这时候都是在公司编码测试,可以运行带调试信息的debug版程序),都可以使用该技能进行代码的调测,简单实用
    的头像 发表于 11-01 15:28 417次阅读
    gdb动态<b class='flag-5'>调试</b>演示

    请问AVR是否可以使用Linux操作系统?

    AVR是否可以使用Linux操作系统?
    发表于 10-24 06:13

    linux调试core dump的方法

    下面说明一下 linux调试 core dump 方法。 dmesg+addr2line调试 先介绍 2 个 linux 命令: dmesg ,一种程序,用于检测和控制内核缓冲。程
    的头像 发表于 10-08 16:13 417次阅读

    AVR1000b:编写用于AVR MCU的C代码入门

    电子发烧友网站提供《AVR1000b:编写用于AVR MCU的C代码入门.pdf》资料免费下载
    发表于 09-19 14:22 0次下载
    <b class='flag-5'>AVR</b>1000b:编写用于<b class='flag-5'>AVR</b> MCU的C<b class='flag-5'>代码</b>入门

    CLI Linux-10.1代码

    电子发烧友网站提供《CLI Linux-10.1代码集.zip》资料免费下载
    发表于 08-14 09:32 0次下载
    CLI <b class='flag-5'>Linux</b>-10.1<b class='flag-5'>代码</b>集

    CLI Linux——从10.2.2.1/9.5.5.1代码

    电子发烧友网站提供《CLI Linux——从10.2.2.1/9.5.5.1代码集.zip》资料免费下载
    发表于 08-02 15:29 0次下载
    CLI <b class='flag-5'>Linux</b>——从10.2.2.1/9.5.5.1<b class='flag-5'>代码</b>集

    Linux——从9.5.4代码

    电子发烧友网站提供《Linux——从9.5.4代码集.zip》资料免费下载
    发表于 08-01 16:56 0次下载
    <b class='flag-5'>Linux</b>——从9.5.4<b class='flag-5'>代码</b>集

    Linux代码

    电子发烧友网站提供《Linux代码集.zip》资料免费下载
    发表于 07-28 15:01 0次下载
    <b class='flag-5'>Linux</b>的<b class='flag-5'>代码</b>集

    使用GDB调试Linux应用程序

    本篇讲解使用GDB调试Linux应用程序,以下以 `hellowld.c` 为例介绍 GDB 的调试入门。
    发表于 06-27 15:48 337次阅读

    LPCXpresso v4.3.0调试我的代码时,下载图像后显示错误怎么解决?

    当我 LPCXpresso v4.3.0 调试我的代码时,然后在下载图像后显示错误 Quote: 15: Set break/watch 的目标错误 无法设置执行中断 - 没有
    发表于 06-09 08:15

    Linux C开发中的一些常用的调试技巧

    Linux使用gcc编译程序的时候,对于调试的语句还具有一些特殊的语法。
    发表于 06-01 09:03 157次阅读

    s32g调试代码使用M7内核后,不能uboot成功怎么解决?

    s32g274ardb2 板调试项目,然后它可以运行和调试它。 现在我想在 A53 内核运行 LINUX BSP,所以我将映
    发表于 05-05 13:03