※ ChatGPTを利用し、要約された質問です(原文:H8マイコンによるIRQ0割り込み処理について質問です。C言語を使って)
H8マイコンによるIRQ0割り込み処理について質問です
このQ&Aのポイント
H8マイコンを使ったIRQ0割り込み処理についての質問です。C言語を使用しており、Ubuntu 10.04 LTS - Lucid Lynx -で開発しています。
リスト1のソースプログラムをコンパイルする際にリスト2のエラーメッセージが発生します。具体的には、16行目の「init_irq0()」が問題であると思われます。
エラーメッセージの内容や初期化方法について説明してください。
H8マイコンによるIRQ0割り込み処理について質問です。C言語を使って
H8マイコンによるIRQ0割り込み処理について質問です。C言語を使っています。開発環境はUbuntu 10.04 LTS - Lucid Lynx -です。
リスト1(experiment.c)のソースプログラムをmakeコマンドでコンパイルしたのですが、リスト2のエラーメッセージが出てしまいます。ちなみに、リスト3がMakefileです。
リスト1ーーーーーーーーーーーーーーーーーーーーーーーーーー
#include"3664.h"
#pragma interrupt
void int_irq0(void)
{
CLI();
IRR1 &= 0xfe;
PDR5 = (PDR5++)&0x3f | (PDR5 & 0xc0);
STI();
}
int main()
{
init_led();
init_irq0();
PDR5 = (0x00 & 0x3f) | (PDR5 & 0xc0); /* PDR5 は,port5 のデータレジスタ*/
while(1){
SLEEP();
}
}
リスト2ーーーーーーーーーーーーーーーーーーーーーーーーーー
owner@ubuntu:~/h8test$ make
h8300-hms-gcc -O -mh -g -mrelax -mint32 -DH8_3664 -c -o experiment.o experiment.c
h8300-hms-gcc -O -mh -g -mrelax -mint32 -DH8_3664 -c -o h8c.o h8c.c
h8300-hms-gcc -O -mh -g -mrelax -mint32 -DH8_3664 -T h8_link.x -nostdlib h8_start.s \
experiment.o h8c.o -o h8exp.exe -lc -lgcc
experiment.o: In function `_main':
experiment.c:16: undefined reference to `_init_irq0'
collect2: ld はステータス 1 で終了しました
make: *** [h8exp.exe] エラー 1
リスト3ーーーーーーーーーーーーーーーーーーーーーーーーーー
TARGET = h8exp.mot
CFLAGS = -O -mh -g -mrelax -mint32 -DH8_3664
TOOL_PREFIX = h8300-hms-
CC = $(TOOL_PREFIX)gcc
LDSCRIPT = h8_link.x
CRT0 = h8_start.s
SRCS = experiment.c
FUNC = h8c.c
all : $(TARGET)
$(TARGET): $(TARGET:.mot=.exe)
$(TOOL_PREFIX)objcopy -O srec $(TARGET:.mot=.exe) $@
$(TARGET:.mot=.exe): Makefile $(LDSCRIPT) $(SRCS:.c=.o) $(FUNC:.c=.o) \
$(CRT0) $(LIBS)
$(CC) $(CFLAGS) -T $(LDSCRIPT) -nostdlib $(CRT0) \
$(SRCS:.c=.o) $(FUNC:.c=.o) -o $@ $(LIBS) -lc -lgcc
write:
h8write -3664 $(TARGET) /dev/ttyS0
clean :
rm -f $(TARGET)
rm -f $(TARGET:.mot=.exe)
rm -f $(SRCS:.c=.o)
rm -f $(FUNC:.c=.o)
エラー通り、ソース(experiment.c)の16行め「init_irq0()」が問題でしょうか。init で初期化しているので文法的に変でない限りステータス1で終了しないと思うのですが。予想でも結構なので解決方法を教えてください。回答よろしくお願いします。(最後に、長文になってしまいすみませんでした。)