ユーザー名:

パスワード:


パスワード紛失

新規登録
ビートス オンラインショップへ
アブソリュート株式会社様へ

REVIVE USBのビルド環境を教えて下さい

前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-2-28 15:36
 
PICは初心者の者です。
REVIVE USBのビルド環境を教えていただけないでしょうか。

今REVIVE USBに独自の改造を加えたいと考えています。
まず下準備としてソースコード(Ver006)を元に同じものをビルドできる環境を構築しようとしています。
とりあえず、MPLAB X Ver3.25,XC8 v.1.36,PLIBなどをインストールしてヘッダーファイル類を読み込めるように手直ししてそのあたりのエラーは出なくなったのですが、#pragmaが認識できないようで、
main.c:125: warning: (335) unknown pragma "udata"
main.c:168: warning: (335) unknown pragma "udata"
main.c:179: warning: (335) unknown pragma "udata"
main.c:212: warning: (335) unknown pragma "code"
のワーニングが出た後、インラインアセンブラの行がエラーとなり先に進むことができません。
これは、開発環境が異なっているのが原因で#pragmaを解釈できないのではないかと考えた次第です。
よろしくお願いします。
イイね!の数:0
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-3-12 14:13 | 最終変更
disklessfu  <EXPERT>   投稿数: 211
REVIVE USBは数年前に開発されたものです。
この数年間に、Microchipが標準とする、PIC18シリーズ用CコンパイラとIDEの組み合わせが
「MPLAB C18(Windows用のみ)とMPLAB IDE(Windows用のみ)」から「XC8(Win,Mac,Linux)とMPLAB X IDE(Win,Mac,Linux)」に変更されました。


※ちなみにMicrochipとしては「MPLAB C18とMPLAB X IDE」「XC8とMPLAB IDE」の組み合わせも、一応想定したようですが、
実績は圧倒的に少ないと思われます。


REVIVE USBは「MPLAB C18(Windows用のみ)とMPLAB IDE(Windows用のみ)」の組み合わせで開発されています。


☆MPLAB C18コンパイラーの最終版 v3.47評価版(無料)がダウンロードできるURL
http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc18-v3.47-windows-eval-installer.exe
このURLはMicrochipのトップページからは辿れないと思います。

☆MPLAB IDE の最終版 v8.92(無料)がダウンロードできるURL
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_92.zip

詳しくは
http://a-desk.jp/modules/mydownloads/singlefile.php?cid=3&lid=79
からダウンロードできるRemoconServant-Firmware-216-set_v2.zipの中の
無料の開発環境と無料のコンパイラのダウンロードURL.txt
を参照して下さい。

このサイトはログインせずに書き込むと管理人(ビット・トレード・ワンさん)に承認されるまで長く日にちがかかります。
今後も投稿されるならアカウントを取得することをおすすめします。

(2016-3-14追記)
MPLAB C18コンパイラーについてはこんなページがありました。このページに上記と同じ評価版へのリンクがあります。
http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=SW006011
このページではMPLAB C18コンパイラー製品版が「No Longer Available」と既述されています。
新規には購入できないようです。
しかし私は、Microchipのサンプルコードを見る限り、XC8がC18の機能を完全に代替するものではないとの印象を持っています。
↓このようにXC8だと割り込みルーチンを書けないように見えるわけです。
#if defined(__XC8)
void interrupt SYS_InterruptHigh(void)
{
#if defined(USB_INTERRUPT)
USBDeviceTasks();
#endif
}
#else
void YourHighPriorityISRCode();
void YourLowPriorityISRCode();
イイね!の数:5
返信する

このトピックに投稿する

題名
投稿本文