[戻る]
一括表示

MPLABX V5 ビルドエラーについて 投稿者:吉田 志郎 投稿日:2018/11/08(Thu) 10:14:45 No.1241

割り込みプログラムでビルドエラーが発生する原因について

[使用環境] MPLAB X IDE ver5.00
コンパイラ xc8 ver2.00

割り込み処理なしのプログラムではビルドエラーは発生していませんが、
割り込み処理を入れた途端にビルドエラーが出て原因が分からず、
その答えを探る中で「C言語によるPICプログラミング大全」に辿り着き、そこに答えを求めました。
この本の

309頁「リスト9−3−1 割り込み処理の実際例」(Interrupt1.c)

のプログラムでエラーが発生するのかどうか試してみました。
やって見るとやはり、ビルドエラーが発生します。
その時に MPLAB XIDE の下部にある[OUTPUT]窓に表示される情報を下記にコピーします。
どうすればこのエラーを解決できるのかご教示頂けるとありがたいです。

[OUTPUT][Configration LoadingError]
info: Configuration "default" will build with toolchain "XC8" at "C:\Program Files (x86)\Microchip\xc8\v2.00\bin".

[OUTPUT][Interrupt1(Clean,Build,..)]

CLEAN SUCCESSFUL (total time: 15ms)
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Work_microchip/MPLABX_work/project_xc8/Interrupt1/Interrupt1.X'
make -f nbproject/Makefile-default.mk dist/default/production/Interrupt1.X.production.hex
make[2]: Entering directory 'C:/Work_microchip/MPLABX_work/project_xc8/Interrupt1/Interrupt1.X'
"C:\Program Files (x86)\Microchip\xc8\v2.00\bin\xc8-cc.exe" -mcpu=16F18857 -c -fno-short-double -fno-short-float -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall -std=c99 -gdwarf-3 -mstack=compiled:auto:auto -o build/default/production/_ext/1472/Interrupt.p1 ../Interrupt.c
../Interrupt.c:37:6: error: variable has incomplete type 'void'
void interrupt isr(void) {
^
../Interrupt.c:37:15: error: expected ';' after top level declarator
void interrupt isr(void) {
^
;
2 errors generated.
(908) exit status = 1
nbproject/Makefile-default.mk:105: recipe for target 'build/default/production/_ext/1472/Interrupt.p1' failed
make[2]: Leaving directory 'C:/Work_microchip/MPLABX_work/project_xc8/Interrupt1/Interrupt1.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Work_microchip/MPLABX_work/project_xc8/Interrupt1/Interrupt1.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/default/production/_ext/1472/Interrupt.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 1s)

Re: XC8 v2.0 投稿者:koujikuu 投稿日:2018/11/08(Thu) 12:49:52 No.1242


XC8 V2.0 になって割り込み書式が変更になったのが原因と思われます

void interrupt my_isr_routine (void) {
}

void __interrupt () my_isr_routine (void) {
}

もしくは、C Standard C99→C90 に変更する

Re^2: XC8 v2.0 投稿者:吉田 志郎 投稿日:2018/11/08(Thu) 13:09:59 No.1243

koujikuu 様
早速のご回答を頂きありがとうございました。
やって見たところ、すんなりビルドできました。
助かりました。

>
> XC8 V2.0 になって割り込み書式が変更になったのが原因と思われます
>
> void interrupt my_isr_routine (void) {
> }
> ↓
> void __interrupt () my_isr_routine (void) {
> }
>
> もしくは、C Standard C99→C90 に変更する

- WebForum -