步骤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,解决它会花费我更多的时间-这样一来,它只需花费几分钟就可以启动并运行,并找到我的问题。我强烈建议您尝试一下!
苹果11已经支持Wi-Fi6,Wi-Fi6的优点是什么
关于Android手机隐藏的那些安全功能你知道吗
孔雀彩电维修实例
辉钼(MoS2)有望代替硅成为新一代半导体材料
雷达传感器的应用类型有哪些
怎样使用Simavr在Linux中调试AVR代码
维修吉时利源表2602B无输出案例
阻碍国产手机出海的暗礁在哪?
三星s8/s8plus配置价格曝光,双曲面屏6.2英寸,全景相机,安卓7.0,新增紫色,搭载骁龙835
贸泽面向全球开售用于物联网的无线SoC和模组
中国移动公布2018年前三季度营业数据,比上年同期下降0.3%
第1部分:sparkfun的布局设计工具和开源硬件衍生工具
锤子M2L什么时候上市?最新消息:全面屏+无线充电+全网通,老罗即将放大招
关于星云加速器/智能硬件的分析和介绍
复合机器人:下一代工业机器人
央行数字货币的可行性怎么样
安科瑞消防设备电源监控系统在数据中心的应用
Maven环境搭建和所需配置以及简单介绍
雷军:我们硬件净利润不超过5%,荣耀赵明:5%已经很高了 打脸?
浅谈PCB蚀刻质量及先期存在的问题