Sim's blog

電子工作はじめてみました

CCEの検証

2008-06-23 03:06:40 | MSP430
TIの無償開発ツールCode Composer Essentialsで使えるコードサイズについて調べてみました。
CCEのページには「CCE v3(MSP-CCE430)は無償で、最大 16K バイトのコード領域をサポートします。」と書かれています。コードとデータを合わせて16kバイトなのか、それともコードだけで16kなのか、よく分かりません。
言葉があいまいというか、コードサイズというとデータを含む場合もあったりします。わざわざコード領域という言葉を使っているということは、データ抜きの純粋なコードサイズのみで16kバイトという意味なのかもしれません。もしそうならラッキーです。


検証用に書いてみたコードは次のようなものです。
#include "msp430x42x0.h"

static const char x[0x6000] = {1};

main()
{
    int i;

    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;

    while(1){
        for(i = 0; i < sizeof(x); i++){
            P1OUT ^= x[i];
        }
    }
}

ROM領域に24kバイトの配列がいます。先頭だけ1でそれ以外は0です。
コード自体はとても小さいですが、データは大きいプログラムです。
このプログラムはCCEで何の問題もなくコンパイルできて、さらにトラ技2007年1月号のMSP430-F4270基板で動きました。
デバッグ開始時のメッセージは以下のようなものでした。

MSP430: Program loaded. Code Size - Text: 254 bytes Data: 24608 bytes

CCEで制限されているコードサイズはTextの部分じゃないかと思います。

MSP430-F4270はROMが32kバイト(8000-ffff)、RAMが256バイト(200-2ff)です。配列xは8000-dfffの24kバイトでした。プログラムの先頭はe000でした。

とりあえずデータのサイズに制限がないなら事実上無制限といってよいくらいだと思います。


次に16kバイト以上のコードを作ってみます。
#include "msp430x42x0.h"

main()
{
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;
    
    while(1){
        P1OUT = 0x00; // LED点灯 (2000個)
        P1OUT = 0x00;
        省略
        P1OUT = 0x00;
        P1OUT = 0x00;

        P1OUT = 0x01; // LED消灯 (2037個)
        P1OUT = 0x01;
        省略
        P1OUT = 0x01;
        P1OUT = 0x01;
    }
}

ひたすらコピペして作りました。P1OUTに代入する行が4036個のときのコードサイズが16382バイトでした。つまり16kバイト-2バイトです。ちなみに1行毎に4バイトかかります。1行追加して16kバイトを2バイト超えたときにリンカーのエラーが出ました。エラーメッセージは次のようなものでした。

error: output file "test3.out" exceeds code size limit

コードサイズは16kバイトを超えられないようです。

試しに1024バイトの配列を参照するようにしてみました。デバッガでロードしたときのメッセージは

MSP430: Program loaded. Code Size - Text: 16384 bytes Data: 1054 bytes

になりました。TextセクションとDataセクションをあわせると16kバイトを超えていますが、コンパイルもリンクも問題なく通りました。


まとめると、CCEの無償版はデータを含まない純粋なコードは16kバイトを超えられないがデータのサイズに制限はなく、コードとデータを合わせて16kバイトも超えることはできる、ということになります。
とてもうれしい結果が出ました。
ジャンル:
ウェブログ
コメント (2)   トラックバック (1)   この記事についてブログを書く
この記事をはてなブックマークに追加
« Code Composer Essentials V3... | トップ | STAPA VISION »
最近の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (せくすぃ部長)
2008-06-23 09:03:30
なんかえらい夜遅く、と言うか早朝に検証されたみたいでお疲れ様です。
コードサイズの制限に付いて、これですっきりしました。
re:Unknown (Sim)
2008-06-23 21:41:19
こんばんは、せくすぃ部長さん
眠れない夜のマイコンはさらに眠れなくなりますね><
制限がゆるゆるだったので、とてもよかったと思います。MSP430を使うべき理由が一つ増えました。

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • このブログへのリンクがない記事からのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。
CodeWarrior for Microcontrollers Special Edition のコードサイズ制限を調べた (新適当マイコン電子工作研究所)
Simさんの所で 無償版コンパイラのコードサイズ制限を調べるプログラムを作成していただいたので、 <strong>CodeWarrior</strong>でも調べてみました。