PIC初心者用掲示板

PICの初心者用の質問箱です。
何でもお気軽にどうぞ!

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 5609. CCS-Cでの分割コンパイルについて [makoto] 2005/07/21 22:27
    ┗ 5612. 投稿者削除 [ ] 2005/07/22 09:07
        ┗ 5614. Re: CCS-Cでの分割コンパイルについて [PIC初心者] 2005/07/22 14:29
            ┗ 5615. 投稿者削除 [ ] 2005/07/22 15:09
    ┗ 5618. Re: CCS-Cでの分割コンパイルについて [makoto] 2005/07/23 19:39
        ┗ 5630. Re: CCS-Cでの分割コンパイルについて [nyannnyannko2005/07/24 23:28
            ┗ 5640. Re: CCS-Cでの分割コンパイルについて [makoto] 2005/07/26 22:42


5609. CCS-Cでの分割コンパイルについて [makoto] 2005/07/21 22:27
いつも大変お世話になってます。makotoです。
 CCS-Cコンパイラでの分割コンパイルを試みていますが失敗します。CCS-Cコンパイラーで分割コンパイルは可能なのでしょうか?
 できるとしたら、#fuseや#deviceはどのファイルに入れるのがよいのでしょうか?
(分割コンパイルは他のコンパイラ等で未経験の初心者です。お手柔らかにご教授下さい。)

main.h
 #fuse , #deviceを記述
main.c
 #include "main.h"
#include "sub.h"
関数main()を記述
main()でsub.cで定義されている関数test()を呼び出し
sub.c
#include "sub.h"
関数test()の内容を記述
sub.h
関数test()のプロトタイプ宣言

テスト結果
 プロジェクトをコンパイルする/main.cをコンパイルする
→コンパイルエラー 「test()の内容がみつからない」
 
sub.cをコンパイルする
→コンパイルエラー 「main関数がみつからない」

MPLAB ver6.40
CCS-C PCWH ver3.188(MPLABに統合して使用)
分割コンパイルをしたい理由:
 main.cのプログラム量を減らし読みやすくする
 sub.cに入れた関数を他プログラムで再利用するため

5612. 投稿者削除 [ ] 2005/07/22 09:07

5614. Re: CCS-Cでの分割コンパイルについて [PIC初心者] 2005/07/22 14:29
>分割コンパイルして1つにリンクしたいのなら、できないと思う。
>#include を使ってコンパイルするしかないよ。
>
>#include "main.h"
>#include "sub.h"
>#include "main.c"
>#include "sub.c"
>

PIC18系は、PROGRAMメモリ容量も大きめですが、
この場合でも、分割コンパイルは出来ないのでしょうか?

5615. 投稿者削除 [ ] 2005/07/22 15:09

5618. Re: CCS-Cでの分割コンパイルについて [makoto] 2005/07/23 19:39
やはり やったことある人はいないのでしょうか?
それではC18コンパイラーではどうでしょうか。
PICで分割コンパイルをやったことある人、やろうと試みた人の返信をお待ちしています。


追記:
 私はPIC18F452でやってます。たしかに18F452
はROM,RAMともに大きく、分割コンパイルできると
いいのですが、そもそもコンパイラーが対応している
かが気がかりです。

5630. Re: CCS-Cでの分割コンパイルについて [nyannnyannko2005/07/24 23:28

C18 の場合はマイクロチップ純正なのでちゃんとリンカーに対応しています。
バージョンアップの料金まで考慮すると一番安価な C言語になるでしょう。

アセンブラとの混在で使用しています。

5640. Re: CCS-Cでの分割コンパイルについて [makoto] 2005/07/26 22:42
nyannnyannkoさん、情報ありがとうございます。
C18の方を調べてみます。

>C18 の場合はマイクロチップ純正なのでちゃんとリンカーに対応しています。