步驟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文章
11508瀏覽量
213549 -
代碼
+關注
關注
30文章
4898瀏覽量
70589
發布評論請先 登錄
泰克示波器 MSO58 混合信號示波器在嵌入式系統調試中的核心技巧

如何解決Air780EPM開發中的調試難題?深度解析高效調試方法

模擬示波器在電路設計與調試中的應用
在i.MX RT 1176上正常運行代碼時與使用IAR調試代碼時存在一些奇怪的差異,為什么?
HarmonyOS NEXT 原生應用/元服務-ArkTS代碼調試worker/taskpool調試
恩智浦分享Zephyr調試技巧
HarmonyOS NEXT 原生應用/元服務-ArkTS代碼調試使用斷點
HarmonyOS NEXT 原生應用/元服務-ArkTS代碼調試attach啟動調試
嵌入式工程師都在找的【Linux內核調試技術】建議收藏!
是德示波器在音頻設備調試中的作用

鴻蒙Flutter實戰:08-如何調試代碼
【AI技術支持】ESP32C3 開發板在Linux環境下,進行JTAG 調試演示

在Linux服務器上使用IAR Build Tools實現DevOps和CI/CD

評論