Ubuntuにsimavrをインストールしました。次のパッケージがインストールされています: avrdude binutils-avr gcc-avr avr-libc gdb-avr libelf-dev libglut3-dev gtkwave build-essential.
ledramp の例 (simarv フォルダー内の 1 つの例) を実行しようとしましたが、正常に動作します。しかし、board_ledramp フォルダーを board_ledramp2 フォルダーにコピーし、board_ledramp2 フォルダーで再コンパイルして実行すると、セグメンテーション フォールト エラーが発生しました。
私のコマンドは次のとおりです。
make clean
make
./obj-i686-linux-gnu/ledramp.elf
make コマンド後のコンソール ログは次のとおりです。
AVR-CC atmega48_ledramp.c
1869 32 11 1912 778 atmega48_ledramp.axf
CC ../parts/button.c
CC ledramp.c
LD obj-i686-linux-gnu/ledramp.elf
ledramp done
エラーメッセージは次のとおりです。
Loaded 1850 .text
Loaded 32 .data
firmware atmega48_ledramp.axf f=8000000 mmcu=atmega48
Starting atmega48 - flashend 0fff ramend 02ff e2end 00ff
atmega48 init
Segmentation fault
「file」コマンドを使用して元のelfファイルと私のelfファイルを比較しようとしましたが、出力は同じです:
./obj-i686-linux-gnu/ledramp.elf: ELF 32-bit LSB executable, Intel
80386, version 1 (SYSV), dynamically linked (uses shared libs), for
GNU/Linux 2.6.15, not stripped
誰が何がうまくいかなかったのか説明できますか?
ありがとう!