描述

步骤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,解决它会花费我更多的时间-这样一来,它只需花费几分钟就可以启动并运行,并找到我的问题。我强烈建议您尝试一下!

打开APP精彩内容

点击阅读全文

linux avr,怎样使用Simavr在Linux中调试AVR代码相关推荐

  1. lldb 调试php,linux系统下如何在vscode中调试C++代码

    本篇博客以一个简单的hello world程序,介绍在vscode中调试C++代码的配置过程. 1. 安装编译器 vscode是一个轻量的代码编辑器,并不具备代码编译功能,代码编译需要交给编译器完成. ...

  2. Eclipse中调试Python代码--调试FWTools2.4.7中的gdal_retile.py

    Eclipse中调试Python代码 Gdal_retile.py是用于对遥感影像创建金字塔,近期本人想读懂改程序中的代码.读懂代码的较好方式就是单步调试,但是由于之前没有学过Python语言,不但对 ...

  3. Chrome谷歌浏览器在DevTools中调试JS代码格式化

    大家在Chrome浏览器中调试JS代码时经常看到的是被压缩后的JS代码,可读性很差,在DevTools中js页面最下面有个格式化的图标**{}**,如下图所示: 点击格式化后会打开新的视图,新js名称 ...

  4. 如何在浏览器中调试JS代码,debug

    如何在浏览器中调试JS代码,debug 首先需要一段js代码,我将它放进html文件里面: 创建一个html文件,<script>标签里面放入需要调试的js代码,html文件如下: < ...

  5. 【Js】【调试】VSCode中调试Js代码

      以前调试一段js代码总是会将js代码嵌入html页面,然后利用浏览器的开发者工具打断点来调试js代码,感觉还是有一点麻烦,想着直接在vscode中调试一个js代码那不就很方便了吗.   vscod ...

  6. 在WebStorm中调试NodeJS代码

    1.nodeJS的安装 1.1.nodeJS的安装,可以到对应的官网下载,下载地址:http://nodejs.cn/: 1.2.也可以在webStorm中安装 2.新建NodeJS程序,举例说明: ...

  7. 在谷歌浏览器中调试js代码

    用谷歌浏览器打开待调试界面,然后鼠标右键,选择检查 浏览器会出现以下界面,选择sources,并选择左侧文件夹中该页面的文件(此时开发页面会分为三栏,最左侧是页面文件,中间是源代码,最右侧是调试窗口栏 ...

  8. linux多网卡配置ip地址(linux一个网卡配置多个ip)

    Linux如何配置ip地址 1.打开Linux终端系统,然后在系统中输入如下代码. 2.然后开始填写ip地址.子网掩码.网关等命令代码,如图所示. 3.在终端填写完之后,进行保存然后退出. 4.接着把 ...

  9. 在Chrome 中调试Javascript

    在前面的两篇文章中我们讲了如何在IE中调试Javascript和在Visual Studio中调试Javascript,在本篇内容中,我们讲一下如何在谷歌 Chrome中调试Javascript. C ...

最新文章

  1. 维特森 VTD72K14 多圈空心角度传感器 角位移传感器
  2. java.net.uri,java.net.uri
  3. 教你从0到1搭建秒杀系统-抢购接口隐藏与单用户限制频率
  4. Spring通过Gmail SMTP服务器MailSender发送电子邮件
  5. loadView的使用总结
  6. 线程WAITING--BlockingQueueDemo
  7. linux下如何运行脚本程序设计,Uboot 如何运行脚本
  8. memtrack: Couldn‘t load memtrack module (No such file or directory) 的问题解决
  9. 剑指offer——面试题3:二维数组中的查找
  10. 一份清单:所有可以放进head标签的元素
  11. android 毫秒值转换时分秒],毫秒数转换成天时分秒、时分秒
  12. 小米Android版本不不一致,小米5s卡刷包android版本不一致怎么解决
  13. 02组团队项目-Alpha冲刺-1/6
  14. Haproxy常见的负载均衡调度算法及应用场景
  15. 常用GIS(高清卫星影像、DEM)数据下载
  16. 代码随想录第八天 LeetCode 344、541、剑指Offer 05、151、剑指Offer58 (字符串)
  17. Matlab之real和imag函数
  18. elasticsearch-7.2.1启动报错
  19. leetcode 1534. Count Good Triplets(python)
  20. OMRON NJ501-1520真实项目程序 欧姆龙NJ做的程序27轴+110个气缸+1个机械手

热门文章

  1. GB35114检测GB28181检测GB1400检测国标35114检测 国标28181检测 国标35114检测
  2. Android studio和码云步骤,android地图开发框架
  3. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛) CAIP 完整版题解
  4. 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)java题解
  5. Android大作业—乐道步走(HappyRunning)一款计步器和跑步运动轨迹记录Android APP
  6. 网络表示学习-Node2vec
  7. AppsFlyer 研究(十三)SRN平台对接-Google Adwords对接配置
  8. 【Java 并发编程】 03 万恶的 Bug 起源—并发编程的三大特性
  9. 创客匠人:知识付费怎么做裂变增长?
  10. 常见CHERRY键盘PS2接头数据线定义 - Powered by Discuz!