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
    +关注

    关注

    88

    文章

    11817

    浏览量

    219550
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74380
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32N6 PSRAM 上运行代码调试

    开发其产品过程,使用了 STM32N657X0H3Q。客户的代码很大,不能放在SRAM 上运行,想放在 PSRAM 上去运行,并咨询如何在 STM32CubeIDE 上进行调试。2.2. 重现问题关于如何将用户
    发表于 04-15 16:02 0次下载

    LAT1621_STM32N6 PSRAM 上运行代码调试

    STM32N6 项目中,用户代码可能会比较大,此时仅用内部 SRAM 并不能满足用代码运行需求。那么,将代码放置到 PSRAM 上运行也是个不错的选择。 客户开发其产品过程
    发表于 03-11 10:44 0次下载

    深入RK3588内核:rockchip_linux_defconfig的作用与调试价值

    RK3588 芯片的 Linux 开发,有一个文件始终是开发者绕不开的核心 ——kernel/arch/arm64/configs/rockchip_linux_defconfi
    的头像 发表于 02-03 15:56 1380次阅读
    深入RK3588内核:rockchip_<b class='flag-5'>linux</b>_defconfig的作用与<b class='flag-5'>调试</b>价值

    Linux系统性能调试工具—strace

    今天给大家分享一个linux内核自带的调试工具,该工具可用于查看和定位系统问题,进程运行过程探索,进行进程监控,对每个系统调用都可以监测,有助于我们优化系统性能。
    的头像 发表于 01-30 17:03 2023次阅读
    <b class='flag-5'>Linux</b>系统性能<b class='flag-5'>调试</b>工具—strace

    DR1平台Linux应用开发指南:含GDB调试、Python及MQTT实战

    Linux-6.1.111 系统,提供完整操作步骤与关键代码,创龙科技通过标准化流程与实操案例,帮助开发者高效完成嵌入式 Linux 应用开发与调试
    的头像 发表于 01-05 16:48 4823次阅读
    DR1平台<b class='flag-5'>Linux</b>应用开发指南:含GDB<b class='flag-5'>调试</b>、Python及MQTT实战

    Termux调试圣诞树Python代码

    Termux调试Python代码(以圣诞树立例)非常简单,核心分为环境准备、代码编写、运行调试
    发表于 12-09 09:02

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板进行GDB调试

    GDB(GNU Project Debugger)是Linux环境下功能全面的调试工具。它提供了一系列强大的调试功能,包括设置断点、单步执行、打印与观察变量、查看寄存器及堆栈信息等。
    的头像 发表于 11-11 13:47 5395次阅读
    ElfBoard技术贴|如何在【RK3588】ELF 2开发板进行GDB<b class='flag-5'>调试</b>

    Windows和Linux环境下分别使用Olimex和蜂鸟调试器下载程序

    ://doc.nucleisys.com/hbirdv2/quick_start/sdk.html 的说明进行操作。 Linux系统下使用Olimex ARM-USB-TINY-H调试
    发表于 10-31 08:26

    探索AVR64DD32 Curiosity Nano:一款强大的AVR DD系列评估平台

    AVR64DD32板可轻松访问AVR64DD32的特性,由MPLAB® X IDE和Microchip Studio提供支持,从而将该器件集成到定制设计。Curiosity Nano评估板包括板载
    的头像 发表于 10-13 15:45 981次阅读
    探索<b class='flag-5'>AVR</b>64DD32 Curiosity Nano:一款强大的<b class='flag-5'>AVR</b> DD系列评估平台

    AVR64EA48 Curiosity Nano评估套件技术解析与应用指南

    MPLAB® XIDE和Microchip Studio提供支持,可轻松访问AVR64EA48的特性,从而将该器件集成到定制设计。Curiosity Nano系列评估板包括一个板载调试器。无需外部工具即可对
    的头像 发表于 10-11 14:48 797次阅读
    <b class='flag-5'>AVR</b>64EA48 Curiosity Nano评估套件技术解析与应用指南

    AVR16EB32 Curiosity Nano评估套件技术解析与应用指南

    Microchip Technology AVR16EB32 Curiosity Nano评估套件(EV73J36A)是一款硬件平台,用于评估AVR ® EB系列微控制器。 该板安装有AVR16EB32微控制器(MCU),并包含
    的头像 发表于 10-10 09:39 872次阅读
    <b class='flag-5'>AVR</b>16EB32 Curiosity Nano评估套件技术解析与应用指南

    为什么Config0/1 的 Boot Select 设置 Keil ICE 调试模式下无效呢?

    ICE 调试模式下,代码将在 Flash Select 字段(APROM 或 LDROM)选择的区域中进行编程,并从该区域启动,而不是从 Config0/1 的 Boot Sel
    发表于 08-20 06:27

    时间同步设备复杂网络环境调试要点

    时间同步设备是保障网络系统协同运行的基础设施,尤其金融、电力、通信等领域对精度要求较高的场景,其稳定性直接影响业务连续性。实际部署,网络环境的复杂性常给同步精度带来挑战。本文将
    的头像 发表于 08-13 15:48 635次阅读
    时间同步设备<b class='flag-5'>在</b>复杂网络环境<b class='flag-5'>中</b>的<b class='flag-5'>调试</b>要点

    TC399的SCR代码调试,ELF文件缺少符号怎么解决?

    的任何调试信息 - 似乎没有调试符号,因此,我无法调试 SCR 代码。 您能否告知 Aurix Development Studio 是否提供了允许包含专门针对 SCR 端的
    发表于 07-21 07:33

    如何解决Air780EPM开发调试难题?深度解析高效调试方法

    Air780EPM项目开发调试效率往往直接影响进度。面对代码报错、逻辑漏洞等常见痛点,开发者亟需一套系统化的方法论。本文将揭秘实战
    的头像 发表于 05-17 10:46 886次阅读
    如何解决Air780EPM开发<b class='flag-5'>中</b>的<b class='flag-5'>调试</b>难题?深度解析高效<b class='flag-5'>调试</b>方法