組み込みソフトウェアの開発手順を理解する ―― C言語でマイコンを制御するために不可欠

山際 伸一

2. ターゲット・システムの構成

 本特集におけるターゲット・システムは,『ディジタル・デザイン・テクノロジ』(No.1)に付属の基板とマルツパーツ館の学習ベース・ボードを組み合わせた構成です(写真1).


写真1 本特集におけるターゲット・システム
『ディジタル・デザイン・テクノロジ』(No.1)に付属した基板とマルツパーツ館の学習ベース・ボードを組み合わせた構成.

● 使用する開発ツール

 この付属基板は,CPU機能である「LatticeMico32」と周辺機能を組み込んだマイコンとして使用します.

 従って,この付属基板のハードウェアを構成するツールと,LatticeMico32のソフトウェア開発ツールが必要になります(図2).



図2 ソフトウェア開発の体験手順

今回はFPGA基板をマイコンと見なしているが,開発手順は一般的なマイコンを使う場合と大きく違わない.使用するツールが異なるだけである.

● マイコンの構成

 本稿でターゲットして使うマイコン・システムのブロック図を図3に示します.また,入出力ピンの配置を表1にします.


図3 ターゲットとして使うマイコン・システムのブロック図


表1 入出力ピンの配置

 

 

(1)CPU
 今回のマイコンCPU機能は,32ビット・プロセッサのLatticeMico32です.図4のような設定にしてあります.



図4 CPUの設定 (クリックすると拡大します)
マイコンを使う上で,CPU機能の設定内容を知る必要はない.ここでは,コンピュータ・アーキテクチャの知識をお持ちの方や,使用するマイコンの詳細に興味を持たれた方のために,概要のみ紹介する.

(2)メモリ
 8Kバイトのメモリを搭載します.このメモリは読み書き可能です.

 CPUから命令,データの両方のアクセスを受け付けるように0x0番地に配置しています.

(3)LED用汎用入出力
 周辺機能として汎用入出力を実現する汎用入出力モジュールは三つあります.

 LEDを制御するための汎用入出力モジュールは,出力専用に設定しています.0x80000000番地に,配置しています.

 このモジュールのレジスタの最下位から2ビットにLEDのDL3とDL4が接続されています.

(4)7セグメントLED用汎用入出力
 4けたの7セグメントLEDを制御するための汎用入出力モジュールは,出力専用に設定しています.0x81000000番地に配置しています.

 このモジュールでは32本の汎用出力を4分割し,下位から順にDP1,DP2,DP3,DP4に割り当てています.

(5)スイッチ用汎用入出力
 スイッチの入力信号を読み込む汎用入出力モジュールは,入力専用に設定しています.0x82000000番地に配置しています.

 レジスタの最下位からSW1~SW5が割り当てられています.スイッチからの入力信号の立ち上がりで割り込み要求を発生できます.割り込み番号は1です.

(6)シリアル通信
 シリアル通信機能は,0x83000000番地に配置されています.割り込み番号は,0が割り当てられています.

 入出力信号としては送信データと受信データのピンのみが接続されています.

(7)タイマ
 タイマ機能は,0x84000000番地に割り当てられています.割り込み番号は2です.

 このモジュールのタイマ・カウントの時間単位は10MHzですので最小分解能は100nsです.

(8)オンチップ・バス
 CPUと周辺機能は,WISHBONEと呼ばれるシステム・バスで接続されています.32ビット幅でデータのやりとりができます.

 クロック(clk_i)はすべての機能に共通で10MHzが分配されています.また,リセット(reset)もすべての機能に共通です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日