はじめまして。ausiteと申します。H8マイコンのC言語プログラムについて質問させていただきます。
ヴイストン社のビュートローバーH8というキットを利用した、H8/36064のC言語開発環境をLinux(Ubuntu16.04LTS)に構築しようとしています。
gcc-h8300-hmsをインストールして、コンパイラの動作確認として、ヴイストンHPで配布されている「モータ駆動」サンプルwww.vstone.co.jp/.../download.htmlをコンパイルしようとしたところ、syntax errorが出てしまいました。まずはsyntax error時の鉄則として全角スペースやカッコの過不足等を探しましたが見つからず。
syntax errorということはコードの書き方に問題があるように思います。restprg.cはリセットベクタ処理のプログラムのように思えるのですが、コンパイル時に何かオプション等が必要なのでしょうか。
なお、WindowsでHEWを使って同じサンプルのビルドを試みたところ、エラーは出ませんでした。
メーカーに問い合わせたところ、Linuxはサポート外とのことでした。どなたかご教授願えませんでしょうか?
//実行コマンド$ h8300-hms-gcc -mn -mh -nostdlib -I./include main.c resetprg.c vs-wrc003lv.c
//出力main.c: In function `main':main.c:24: warning: return type of 'main' is not `int'resetprg.c:7: error: syntax error before '=' tokenresetprg.c: In function `__entry':resetprg.c:11: error: syntax error before "__entry"vs-wrc003lv.c: In function `getPAD':vs-wrc003lv.c:586: warning: comparison is always true due to limited range of data type
//resetprg.c#include <machine.h> #include <_h_c_lib.h> #include "vs-wrc003lv.h" #include "stacksct.h" extern void main(void);__entry(vect=0) void PowerON_Reset(void); /*7行目*/ #pragma section ResetPRG __entry(vect=0) void PowerON_Reset(void) /*11行目*/ { set_imask_ccr((UBYTE)1); _INITSCT(); set_imask_ccr((UBYTE)0); main(); sleep(); while(1); }
ausiteさん、こんにちは。NoMaYと申します。わわいさんも、こんにちは。fujitaさんの、コンパイラ間の移植を余り安易に考えない方がよい、というアドバイスに私も同意しているので、リプライしようか迷っていたのですが、HEWはgcc-renesas.comで配布されているGNUH8コンパイラが扱えますので、学習手段としては、e2 studioよりはHEWの方が良いと思います。