FC2カウンター FPGAの部屋 The Simple MicroBlaze Microcontroller 10 (Cソフトウェアを書いているところ)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

The Simple MicroBlaze Microcontroller 10 (Cソフトウェアを書いているところ)

前回、SCCBレジスタの設定回路(SCCBインターフェース回路)をSMMから制御できるようにハードウェアを変更と、LCDに表示して設定するSCCBレジスタを決定したので、今度はSDKのソフトウェアを変更中だ。
今のところ、SCCB設定用レジスタの設定用のdefineを書いている。まだ全部書けていないが、下のような感じで書いている。

#define    SCCB_REG_00        0x00    // SCCB Register Address 0x00 (GAIN[7:0])
#define SCCB_REG_01        0x40    // SCCB Register Address 0x01 (AWB RED)
#define SCCB_REG_02        0x60    // SCCB Register Address 0x02 (AWB BLUE)
#define SCCB_REG_03        0x0A    // SCCB Register Address 0x03 ([7:6] - GAIN LEVEL[9:8])
#define SCCB_REG_04        0x00    // SCCB Register Address 0x04 ([1:0] - AEC LEVEL L[1:0])
#define SCCB_REG_07        0x00    // SCCB Register Address 0x07 ([5:0] - AEC LVEVL H[7:2])
#define    SCCB_REG_10        0x00    // SCCB Register Address 0x10 ([5:0] - AEC LEVEL L[7:2])
#define SCCB_REG_13        0xEF    // SCCB Register Address 0x13 ([2] - AGC, [1] - AWB, [0] - AEC)
#define SCCB_REG_1E        0x27    // SCCB Register Address 0x1E ([5] - MIRROR)

#define awb_red            reg01
#define    awb_blue        reg02

#define SCCB_2_AGC            ((reg13 & 0x04)>>2)
#define AGC_2_SCCB            ((agc_reg & 0x01)<<2)
#define SCCB_2_AWB            ((reg13 & 0x02)>>1)
#define AWB_2_SCCB            ((awb_reg & 0x01)<<1)
#define SCCB_2_AEC            (reg13 & 0x1)
#define AEC_2_SCCB            (aec_reg & 0x01)
#define    SCCB_2_GAIN_LEVEL    (((reg03 & 0xC0)<<2) | reg00)
#define GAIN_LEVEL_2_SCCB03    ((gain_level & 0x300)>>2)
#define GAIN_LEVEL_2_SCCB00    (gain_level & 0xFF)


/* Global Variable */
// SCCB Register Variable
unsigned char reg00 = SCCB_REG_00;
unsigned char reg01 = SCCB_REG_01;
unsigned char reg02 = SCCB_REG_02;
unsigned char reg03 = SCCB_REG_03;
unsigned char reg04 = SCCB_REG_04;
unsigned char reg07 = SCCB_REG_07;
unsigned char reg10 = SCCB_REG_10;
unsigned char reg13 = SCCB_REG_13;
unsigned char reg1E = SCCB_REG_1E;

unsigned char agc_reg;
unsigned short int gain_level;
unsigned char awb_reg;
unsigned char aec_reg;
unsigned char aec_level_h;
unsigned char aec_level_l;
unsigned char mirror_reg;


作っているが、書いていると飽きてくる。。。が、取り敢えず、マクロを作りきる。

#C++本格的に書いたことが無いので、よくわからないが、C++だったらSCCBレジスタを設定するクラスとかを作って、それを継承して個別のレジスタを設定するメソッドを書けば良いのだろうか?
  1. 2010年12月10日 05:39 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:2

コメント

Modelsim のザイリンクスとアルテラと両方インストールしても大丈夫でした。OSは、WindowsXP SP3 です
両方とも起動することを確認しました

PATH設定?
  1. 2010/12/11(土) 17:07:27 |
  2. URL |
  3. アプロ #-
  4. [ 編集 ]

環境変数のLM_LICENSE_FILEが無くなってしまっていたようでした。再設定したらXilinxのModelSimが動きました。ありがとうございました。
  1. 2010/12/11(土) 18:06:58 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1659-e95e797e
この記事にトラックバックする(FC2ブログユーザー)