2023年1月12日木曜日

TOPPERS/ASP - AVR32版 その4

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


Atmel Software Framework (ASF)のコピー

前回作成した雛形プロジェクトのディレクトリと、「TOPPERS/ASP AVR32版」のソースツリーのディレクトリを同時に2つエクスプローラーで開いておきましょう。

記事通りに作業すると、雛形プロジェクトは以下のディレクトリに保存されているはずです。


C:\Users\<ユーザー名>\Documents\Atmel Studio\7.0\GccBoardProject1

雛形プロジェクトのディレクトリ - 1


同じく、TOPPERS/ASPのソースツリーは以下のディレクトリに保存されているはずです。

「asp_avr32_gcc」や「asp_avr32_gcc_master」を「asp_1.9.2」に改名した場合。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2

TOPPERS/ASPソースツリーのディレクトリ - 1


さて、2つ開いたエクスプローラーでそれぞれ以下の場所を表示するようにします。

まず、雛形プロジェクトの方は、以下のディレクトリへ移動させます。


C:\Users\<ユーザー名>\Documents\Atmel Studio\7.0\GccBoardProject1\GccBoardProject1\src

雛形プロジェクトのディレクトリ - 2


次に、TOPPERS/ASPのソースツリーの方は、以下のディレクトリへ移動させます。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\target\at32uc3a3_xpld_gcc

TOPPERS/ASPソースツリーのディレクトリ - 2


雛形プロジェクトの方のディレクトリに注目!

以下の3つのディレクトリとヘッダーファイルを確認して下さい。


●ASF

●config

●asf.h

雛形プロジェクトのディレクトリ - 3


この3つを開いてあるもう一方のエクスプローラー、TOPPERS/ASPのソースツリーの方にコピーします。

結果、TOPPERS/ASPのソースツリーの方は、以下のようになりましたか?

TOPPERS/ASPソースツリーのディレクトリ - 3


これで、ASF関連のソースコードの回収は完了です。

雛形プロジェクトの方のエクスプローラーは閉じちゃって構いません。


ヘッダーファイルのコピー

TOPPERS/ASPをビルドするにあたり、AVR32の様々な定義を記述したヘッダーファイルが必要となります。

それを一から自分で書いていたら大変ですので「Microchip Studio」からいただいちゃいましょう。

新たに、以下のパスを表示するエクスプローラーを開きましょう。


C:\Program Files (x86)\Atmel\Studio\7.0\packs\atmel

ヘッダーファイルのディレクトリ - 1


次に、TOPPERS/ASPのソースツリーの方のエクスプローラは、以下のディレクトリへ移動させます。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\arch\avr32uc3_gcc

TOPPERS/ASPソースツリーのディレクトリ - 4


ヘッダーファイルの方のディレクトリに注目!

以下のディレクトリを確認して下さい。


●UC3A_DFP

ヘッダーファイルのディレクトリ - 2


このディレクトリを開いてあるもう一方のエクスプローラー、TOPPERS/ASPのソースツリーの方にコピーします。

結果、TOPPERS/ASPのソースツリーの方は、以下のようになりましたか?

TOPPERS/ASPソースツリーのディレクトリ - 5


ここで、コピーしたヘッダーファイルのバージョンを調べておきます。

TOPPERS/ASPのソースツリーの方のエクスプローラーでコピーした「UC3A_DFP」ディレクトリをダブルクリックしてください。

そこで新たに現れたディレクトリの名前がヘッダーファイルのバージョンを示します。

以下の例では「1.0.80」となっていますね?

TOPPERS/ASPソースツリーのディレクトリ - 6


このバージョンは「Microchip Studio」をインストールした時期によって異なります。

そのため、TOPPERS/ASPのMakefileに対し、このバージョン通りのディレクトリ名を教えてあげないといけません。

それを行うには、以下のディレクトリにある「Makefile.prc」を修正する必要があります。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\arch\avr32uc3_gcc

TOPPERS/ASPソースツリーのディレクトリ - 7


そこで「Makefile.prc」をテキストエディターなどで開き、以下の部分を修正します。

15行目付近からの…

  1. ...
  2. #
  3. # コンパイルオプション
  4. #
  5. INCLUDES := $(INCLUDES) \
  6.          -I$(SRCDIR)/arch/$(PRC)_$(TOOL)/UC3A_DFP/1.0.53/include/AT32UC3A3256
  7. COPTS := $(COPTS) -mpart=uc3a3256 -DBOARD=UC3_A3_XPLAINED -std=gnu99
  8. LDFLAGS := $(LDFLAGS)
  9. ...


…という部分を以下のように修正します。

  1. ...
  2. #
  3. # コンパイルオプション
  4. #
  5. INCLUDES := $(INCLUDES) \
  6.          -I$(SRCDIR)/arch/$(PRC)_$(TOOL)/UC3A_DFP/1.0.80/include/AT32UC3A3256
  7. COPTS := $(COPTS) -mpart=uc3a3256 -DBOARD=UC3_A3_XPLAINED -std=gnu99
  8. LDFLAGS := $(LDFLAGS)
  9. ...


おわかりいただけただろうか?

「INCLUDES :=」の定義の2行目において「1.0.53」などとなっている古いバージョンの表記を今回使用する「1.0.80」に修正しています。

もちろん、前述した方法でヘッダーファイルのバージョンを調べた結果「1.0.80」でなかった場合は、それに合わせたバージョン番号をディレクトリ名として修正すれば良いです。

修正が終わったら、忘れずに「Makefile.prc」を保存してください。

これで、ヘッダーファイルの回収は完了です。

ヘッダーファイルの方のエクスプローラーは閉じちゃって構いません。


スタートアップファイル「start.S」のコピーと修正

ターゲットに電源が入った後、いの一番に実行されるアセンブラのソースコード「start.S」を作成します。

一から書くのは大変なので、既に用意されているものをベースに作成しましょう。

元となるソースコードは、「startup_uc3.S」という名前で以下のパスに配置されています。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\target\at32uc3a3_xpld_gcc\ASF\avr32\utils\startup

TOPPERS/ASPソースツリーのディレクトリ - 8


この「startup_uc3.S」を以下のディレクトリにコピーします。


C:\cygwin64\home\morita\asp_1.9.2\arch\avr32uc3_gcc

TOPPERS/ASPソースツリーのディレクトリ - 9


ついでに、今コピーした「startup_uc3.S」を「start.S」に改名しておきましょう。

TOPPERS/ASPソースツリーのディレクトリ - 10

続きまして、改名した「start.S」をテキストエディターなどで開き、以下の部分を修正します。

59行目付近からの…

  1. ...
  2.   .global _stext
  3.   .type _stext, @function
  4. _stext:
  5.   // Set initial stack pointer.
  6.   lda.w sp, _estack
  7. ...


…という部分を以下のように修正します。

  1. ...
  2.   .global _stext
  3.   .type _stext, @function
  4. _stext:
  5.   // Set initial stack pointer.
  6.   //lda.w sp, _estack       // コメントアウト!
  7.   lda.w r0, _kernel_istkpt  // 追記!
  8.   ld.w sp, r0[0]            // 追記!
  9. ...


もう一箇所!

103行面付近からの…

  1. ...
  2.   // Start the show.
  3.   lda.w pc, main
  4. ...


…という部分を以下のように修正します。

  1. ...
  2.   // Start the show.
  3.   //lda.w pc, main  // コメントアウト!
  4.   lda.w pc, sta_ker // 追記!
  5. ...

修正が終わったら、忘れずに「start.S」を保存してください。


リンカスクリプト「at32uc3a3_xpld.ld」のコピーと修正

ソースコードをビルドした後に、どのようにメモリに配置すればよいのか?をリンカに指示するためのリンカスクリプト「at32uc3a3_xpld.ld」を作成します。

こちらも一から書くのは大変なので、既に用意されているものをベースに作成しましょう。

元となるリンカスクリプトは、「link_uc3a3256.lds」という名前で以下のパスに配置されています。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\target\at32uc3a3_xpld_gcc\ASF\avr32\utils\linker_scripts\at32uc3a3\256\gcc

TOPPERS/ASPソースツリーのディレクトリ - 11


この「link_uc3a3256.lds」を以下のディレクトリにコピーします。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\target\at32uc3a3_xpld_gcc

TOPPERS/ASPソースツリーのディレクトリ - 12


ついでに、今コピーした「link_uc3a3256.lds」を「at32uc3a3_xpld.ld」に改名しておきましょう。

TOPPERS/ASPソースツリーのディレクトリ - 13

続きまして、改名した「at32uc3a3_xpld.ld」をテキストエディターなどで開き、以下の部分を修正します。

42行目付近からの…

  1. ...
  2. OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
  3. OUTPUT_ARCH(avr32:uc)
  4. ENTRY(_start)
  5. ...


…という部分を以下のように修正します。

  1. ...
  2. OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
  3. OUTPUT_ARCH(avr32:uc)
  4. /* ENTRY(_start) コメントアウト! */
  5. STARTUP(start.o)                    /* 追記! */
  6. PROVIDE (hardware_init_hook = 0) ;  /* 追記! */
  7. PROVIDE (software_init_hook = 0) ;  /* 追記! */
  8. PROVIDE (software_term_hook = 0) ;  /* 追記! */
  9. ...


修正が終わったら、忘れずに「at32uc3a3_xpld.ld」を保存してください。


クロック設定の変更

デフォルトのままではパフォーマンスが悪いのでCPUのクロック設定を変更します。

これを行うには、ASFのクロック設定ファイル「conf_clock.h」の内容を変更する必要があります。

この「conf_clock.h」は、以下のパスに配置されています。


C:\cygwin64\home\<ユーザー名>\asp_1.9.2\target\at32uc3a3_xpld_gcc\config

TOPPERS/ASPソースツリーのディレクトリ - 14


conf_clock.h」をテキストエディターなどで開き、以下の部分を修正します。

44行目付近からの…

  1. ...
  2. #define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_RCSYS
  3. //#define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_OSC0
  4. //#define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_PLL0
  5. ...


…という部分を以下のように修正します。

  1. ...
  2. //#define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_RCSYS // コメントアウト!
  3. //#define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_OSC0
  4. #define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_PLL0    // アンコメント!
  5. ...


もう一箇所!

60行面付近からの…

  1. ...
  2. //#define CONFIG_PLL0_SOURCE PLL_SRC_OSC0
  3. //#define CONFIG_PLL0_SOURCE PLL_SRC_OSC1
  4. /* Fpll0 = (Fclk * PLL_mul) / PLL_div */
  5. //#define CONFIG_PLL0_MUL (48000000UL / BOARD_OSC0_HZ)
  6. //#define CONFIG_PLL0_DIV 1
  7. ...

…という部分を以下のように修正します。

  1. ...
  2. #define CONFIG_PLL0_SOURCE PLL_SRC_OSC0                 // アンコメント!
  3. //#define CONFIG_PLL0_SOURCE PLL_SRC_OSC1
  4. /* Fpll0 = (Fclk * PLL_mul) / PLL_div */
  5. //#define CONFIG_PLL0_MUL (48000000UL / BOARD_OSC0_HZ)
  6. #define CONFIG_PLL0_MUL (84000000UL / BOARD_OSC0_HZ)    // 追記!
  7. #define CONFIG_PLL0_DIV 1                               // アンコメント!
  8. ...


修正が終わったら、忘れずに「conf_clock.h」を保存してください。


コマンドラインでのビルド

さて、これで全ての準備は整いました。

お疲れ様でした~!!

早速ビルドしてみましょう。

Cygwinを開いて、TOPPERS/ASPソースツリーの場所まで移動しましょう。


$ cd asp_1.9.2/


次にその直下の「OBJ」ディレクトリに移動します。


$ cd OBJ/


コンフィギュレーターのパーミッションを実行可能に設定します。


$ chmod 755 ../cfg/cfg/cfg.exe


ここまで、大丈夫ですか?

Cygwinターミナル - 1


そうしたら、プロジェクトのコンフィグファイル(sample1.cfg)の情報を元に、OSに必要な定義を記したソースコード(「kernel_cfg.c」と「kernel_cfg.h」)を生成します。


$ make depend


以下のような表示にならずエラーが出力される場合は、残念ながらこれまでの作業に誤りがあります。

お手数ですが、最初からご確認を!

Cygwinターミナル - 2


ここまで上手くいったら、ホンチャンのビルド。

以下のコマンドを実行します。


$ make all


以下のように無事にビルドが通ったでしょうか?

Cygwinターミナル - 3


本日はここまで!

とても煩雑な作業でしたが、お疲れ様でした。

コマンドラインではビルドが通るようになりましたので、次回はIDE(統合開発環境)で開発できるようにプロジェクトを作って、ターゲットへプログラムを転送し、デバッグを行うところまでやっていきましょう。


<続く>

2023年1月10日火曜日

TOPPERS/ASP - RL78版 目次

思い出しながら何とか完結!

以下RL78版に関する記事の目次です。


■TOPPERS/ASP - RL78版 その1

TOPPERS/ASP - RL78版 概要

必要なもの

ダウンロード/GitHub


■TOPPERS/ASP - RL78版 その2

開発環境の構築(コンパイラ編)


■TOPPERS/ASP - RL78版 その3

開発環境の構築(IDE編)


■TOPPERS/ASP - RL78版 その4

プロジェクトの作成


■TOPPERS/ASP - RL78版 その5

プログラムの転送とデバッグ


■TOPPERS/ASP - RL78版 その6

サンプルプロジェクトの説明

RL78版カーネルについて

「RL78」は「H8」より優れているのか?

ライセンスについて



なお、Qiitaにも上記の記事を1ページにまとめたダイジェスト版を投稿しました。

こっちの方が読み易いです。

でもQiitaって、あまり組み込み分野の記事って盛り上がらないんですよね…。

(オマエの文書が悪い…とか言われると傷付きます。)

よろしければ参考にしてください。

Qiita

TOPPERS/ASP - RL78版 - Qiita

2023年1月5日木曜日

まさかのIBM製マック!?PowerBook 2400c

私はMacユーザーです。

しかし、会社ではWindowsパソコンを使って仕事をしています。

でも、家のパソコンは代々Macです。

プログラマーという職業柄、家に帰ってまでパソコンの画面なんか見たくはありません。

とはいえネットやメールなど、今やパソコン無しでは普段の生活にも支障をきたす時代。

そこで妥協点として、プライベートでは仕事を連想してしまう無骨なWindowsパソコンではなく、見目麗しいMacを使うことにしたのが切っ掛けだったと思います。

(まあ、今や家にパソコンが無くたってAndroidのタブレット一台でもあれば事足りるんですけどね…)

今回は、手持ちの歴代Macの中でも、異様な一台を紹介します。

PowerBook 2400c/180」です!

「PowerBook 2400」エンブレム


詳しくは、こちらのページを参照してください。

発売は、なんと1997年!?20世紀のパソコンです。

でも、私の機体はそんな古さを感じさせないほどキレイですよね?

新品同様の筐体


この時代のMacのロゴは「レインボーロゴ」と呼ばれる七色のリンゴ。

この機種には(小さいですが…)天板にも配置されています。

天板のレインボーロゴ


今のMacのノートPCとは逆に、天板を開いた状態では、このレインボーロゴは「逆さリンゴ」になってしまうのですが、ここはご愛嬌!

逆さリンゴ


インターフェースを見ていきましょう。

背面には、左からマウスなどを繋げるADB、電源、モデム、FDドライブ、外部モニタ、SCSIといった各種ポートが並びます。

右側には、赤外線通信ポートと、PCカードスロットが配置されています。

え…USB?

そんなものは知らない…。

背面のインターフェース


右側面にはサウンド入出力のジャックが配置されています。

右側面のインターフェース


この「PowerBook 2400c/180」は、「サブノートPC」というカテゴリーの製品です。

筐体そのもののサイズは非常に小さい(しかし、今の基準では分厚い…)のですが、キーボードはしっかりしており、適度なサイズとストロークを確保しています。

トラックパッドの下には。カイゼル髭のようなボタンがあります。

Macらしく1ボタンです。

及第点のキーボード


さて、所々で時代を感じさせる本機ですが、ご覧の通りパッと見、新品のような状態です。

これには訳があります。

実は、この機体は私が新品で購入したものではないのです。

正確な時期は忘れましたが、今から十数年前にジャンク屋で転がっていたものを格安で購入したものなのです。

この機体の発売が1997年ですので、その当時でも相当な旧型だったわけですが、私は以前から、この機体の数奇な生まれに不思議な魅力を感じていました。

それに関しては後述。

そのジャンク品は見た目はボロボロで、動作保証無し!

同系統のデザインのフロッピードライブも付いていましたが、こちらは蓋が破損!

(未だに動作自体は正常です。)

外付けフロッピードライブ


ダメ元で家に持ち帰り電源を入れたところ、本体は案の定うんともすんとも言わず…。

まずは電源回路を疑いました。

分解して地道にテスターを当てて故障箇所を探します。

一般的に、こういった精密機械において電源入れても何も反応がない…という症状は、軽症であることが多いです。

(因みに一番厄介なのは、通電して動いてはいるが不安定というケース。)

調べていくと、やはりそうか!

経年劣化か衝撃でチップヒューズが切れているだけだったのです。

そこで、電源回路にある全てのチップヒューズをポリスイッチに交換しました。

それだけで、あっさりと起動成功!

せっかく復活したのだから、とことん改造しよう!…ということで、IDE規格のハードディスクを取り出して、IDE/コンパクトフラッシュ変換アダプタを使用してコンパクトフラッシュをハードディスクとして使用することにしました。

今で言うところのSSDへ交換したみたいな感じですね。

その後、この「PowerBook 2400c/180」を売っていたジャンク屋で「PowerBook 2400c」の新品未開封のプラスチック筐体を見つけ、これに交換しました。

このプラスチック筐体、「PowerBook 2400c」本体のジャンクの5倍ほどの値段がしましたよ~。


今考えると…嵌められた!?

まあいいけど。


…このような経緯から、不自然なほどのキレイな見た目となっているのです。

さて、華麗なる復活を果たした「PowerBook 2400c/180」は、その後しばらく家のパソコンとして活躍をしてくれました。

しかしながら時代の流れには逆らえず、ここ数年はほとんど通電させていませんでした。

そこで、ブログのネタに丁度よいと思って本日押し入れから引っ張り出してきました。

さてさて起動するかな~?


電源プラグを差し込んだ瞬間に「ジャ~ン」というCコードがあっさりと聞こえてきました。

液晶は相当暗いものの「Mac OS 9.1」のロゴを表示!

「PowerBook 2400c/180」の起動 - 1


イケるか~!?

頑張れ!!

「PowerBook 2400c/180」の起動 - 2


よし!デスクトップまで行きました!!

やはりハードディスクじゃなくて、コンパクトフラッシュなどでシリコン化すると経年劣化には強いですね。

起動時間も倍以上早くなっていると思います。

あとは、ハードディスクと比べて消費電力も少ないし、モーターの始動時の突入もありません。

だから電源回路にも優しいでしょう。

これは良い改造だったかなぁ~と。

デスクトップの表示


アプリケーションは「Microsoft Office」などが入っていますね。

2chブラウザーなんかもある。

生活感を感じますね。

ランチャー


さて、散々「異様」であるとか「数奇」などと称してきた「PowerBook 2400c/180」ですが、その魅力とは一体何なのか?

すでに題名で言ってしまってますが、これは当時のAppleがIBMへ開発を委託して完成した製品なのです。

パソコンに詳しい人にとっては、これは異様と感じざるを得ません。

歴史を紐解けば、インテルのCPUを載せた「IBM PC」とモトローラのCPUを載せた「Macintosh」は、長い期間対立関係にありました。

また当時のノートPC市場において、IBMの「ThinkPad」シリーズとAppleの「PowerBook」シリーズは、お互い強力なブランドとして確立されており、動作するOSこそ違えど苛烈なライバル関係にありました。

一方で、この「PowerBook 2400c」が発売された頃は、パソコン市場からサーバー市場への転換を図ろうとしていたIBMが、Appleとモトローラと組んで「PowerPC」という新たなアーキテクチャのCPUを協力して開発していた時期にあたります。

実際、この「PowerBook 2400c」に搭載されているCPUもこの「PowerPC」の最初期のものです。

昨日の敵は今日の友…。

そうした混沌の時代に産み落とされた数奇なモデルが、この「PowerBook 2400c」なのです。

IBMが開発を担当したとは言っても、実際に設計を行ったのは当時の「日本IBM大和事業所」という会社です。

ここは「ThinkPad」などのモバイル系機器の設計・開発を強みとしていたIBMの日本法人でした。

故に、ここで開発された「PowerBook 2400c」が、どこか昔の「ThinkPad」と似た雰囲気を持っていることも無理からぬことです。

外見からでも分かりますが、実際に分解してみると、それまでのMacとは全く違う設計思想であることを強く感じました。

そのIBMも、いつしかパソコン市場から完全に撤退。

レノボという中華系企業が「ThinkPad」のブランドを引き継いだものの、やはりかつての輝きはなく…。

「ThinkPad」と似た雰囲気?


また「PowerBook 2400c」は、当時のAppleの最高経営責任者であったギル・アメリオにより日本に派遣された技術者チームが、東京の満員電車を体験して小型軽量マシンのきっかけを掴んだ…といった逸話がある通り、明確に日本市場にターゲットを向けた製品という点でもApple製品としては異例なモデルと言えます。

そのギル・アメリオも、この製品の発売とほぼ同時に復権した、かのスティーブ・ジョブズにAppleを追い出されることとなります。

その後のAppleの躍進は、皆さんの御存知の通り。

しかしながら、この「PowerBook 2400c」以降、明確に特定の国にターゲットを絞った製品は、Appleから出ていないような気がします。

特定の市場に合わせて製品を分けて開発を行うのは、経営的に非効率であるとスティーブ・ジョブズは考えたのでしょう。

ギリギリのタイミングでしたが「PowerBook 2400c」は、ギル・アメリオ体制だったから出せた製品とも言えますね。


このような、まるで業界の歴史の「紆余曲折」を捏ねて固めたような生い立ち。

それこそが「PowerBook 2400c」の最大の魅力だと思います。


先日の「モバイルギアII(MC/R330)」とは異なり、この「PowerBook 2400c」が活躍できる場面は、もはや無いでしょう。

プラスチック筐体は未だ新品同様ですが、液晶は保護膜(剥がせないやつ)が波打ち、バックライトの陰極管の輝度も落ちています。

再び長い眠りにつく「PowerBook 2400c」


それでも一番思い入れのあるMac、なにせゴミ同然のジャンクからここまで頑張ってキレイにしたのですから!

可能な限り動態保存を維持していきたいと思います。

2023年1月2日月曜日

TOPPERS/ASP - AVR32版 その3

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


Atmel Software Framework (ASF)とは?

ASFとは、ドライバ、プロトコル、スタック、コーディングユーティリティ、ビルドシステムなどを開発者に提供するソースコードのライブラリです。

いわゆる純正のライブラリパッケージであり、これを使用するとCPUに内蔵されているペリフェラル(周辺機器)を簡単に利用することができるというものです。

今回の「TOPPERS/ASP AVR32版」のカーネル内でも、割り込み、タイマーやシリアル通信ドライバなどは、このASFのドライバを使用しています。

ところが、このASFのソースコードのライセンスの条項が不明瞭なために再配布できません。

そのため「TOPPERS/ASP AVR32版」のソースコードが不完全なものとなり、そのままではビルドが通らず、通すためには手動で不足分のソースコードをコピーしていただくという手間を強いることになってしまいました。

面目無いです…。

では、そのASFのソースコードを何処から入手すれば良いのか?

そのためには、インストールした「Microchip Studio」上で雛形となるプロジェクトを作って、そこで生成されたASFのソースコードを「TOPPERS/ASP AVR32版」のソースツリーにコピーするという方法を採ります。


雛形プロジェクトの作成

まずは「Microchip Studio」を起動して下さい。

「Microchip Studio」 - 1


画面上部の「File」、「New」、「Project...」メニューを順にクリックしていきます。

「Microchip Studio」 - 2


以下のようなダイアログが表示されます。

ここでは「GCC ASF Board Project」を選択し、ダイアログ右下の「OK」ボタンをクリックしましょう。

これで「GccBoardProject1」という名前のプロジェクトを作成したことになります。

このプロジェクト名、覚えておいてください。

「New Project」ダイアログ


続いて、以下のようなダイアログが表示されます。

まずは「Extensions」コンボボックスに注目してください。

デフォルトでは「Atmel ASF(x.xx.x)」と言った具合に、「Microchip Studio」をインストールした時点での最新版のASFを使用するように選択されています。

「Board Selection」ダイアログ - 1


今回の場合、デフォルトの最新版でも多分大丈夫なのでしょうが、検証をしていないので「Atmel ASF(3.49.1)」に設定してください。

これで動くことを確認してから、最新版を試すことをオススメします。

気持ち悪いから最新版で試したい!って方は、貴殿のご武運をお祈りします!

「Board Selection」ダイアログ - 2


使用するASFのバージョンを設定したら、そのコンボボックスのすぐ左、「Select By Board」のラジオボタンをクリックします。

「Board Selection」ダイアログ - 3


このASFのバージョンでサポートされている多くの評価ボードがリストアップされています。

その中から、今回使用する「UC3-A3 Xplained - AT32UC3A3256」を選択し、ダイアログ右下の「OK」ボタンをクリックします。

「Board Selection」ダイアログ - 4


すると、以下のようにダイアログが消えて、元の「Microchip Studio」の画面に戻ります。

ただし「ASF Wizard」というタブが表示されていますね。

このタブの左上、「Project:」という表示のコンボボックスに注目してください。

「Microchip Studio」 - 3


このコンボボックスをクリックすると、作成した「GccBoardProject1」というプロジェクト名が選択できるようになっているので、これをクリック!

「Microchip Studio」 - 4


すると「ASF Wizard」というタブは、以下のような表示に切り替わります。

この画面の見方なのですが、左側のリストには、このプロジェクトで指定したデバイスである「AT32UC3A3256」で使用できるASFのライブラリが表示されています。

右側のリストには、このプロジェクトで既に選択されている(使用する)ASFのライブラリが表示されています。

デフォルトで選択されているのは「GPIO」と「Generic board support」のみですね。

つまり、左側のリストから右側のリストに項目を移動させることにより、自由に使用するASFのライブラリをプロジェクトに付け加えることができる訳ですね。

「Microchip Studio」 - 5


今回の「TOPPERS/ASP AVR32版」に必要な最低限のASFライブラリは以下の4つです。


●GPIO - General - Purpose Input / Output (driver)

●Generic board support (driver)

●TC - Timer / Counter (driver)

●USART - Serial interface (service)


このうち、上の2つは既に選択されていますので、残りのOSタイマーとして使用する「TC - Timer / Counter」と、デバッグ・シリアルに使用する「USART - Serial interface」の2つを追加しましょう。

まずは「TC - Timer / Counter」から。

左側の「Available Modules」リストから「TC - Timer / Counter (driver)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 6


すると、無事、右側の「Selected Modules」リストに「TC - Timer / Counter (driver)」が追加されたでしょうか?

「Microchip Studio」 - 7


同じ要領で「USART - Serial interface」も追加しちゃいましょう。

左側の「Available Modules」リストから「USART - Serial interface (service)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 8


すると、右側の「Selected Modules」リストに「USART - Serial interface (service)」が追加されるはずです。

「Microchip Studio」 - 9


以上で、必要なASFライブラリの設定は終わりました。

次は、この設定通りにASFライブラリのソースコードをプロジェクトに吐き出させる作業です。

なんてことはないです。

ただ「ASF Wizard」タブの下部にある「Apply」ボタンをクリックするだけです。

「Microchip Studio」 - 10


以下のダイアログが表示されます。

特にやることもなく「OK」ボタンをクリックします。


以下のように、派手な表示の変化もなく作業は終了します。

ちょっと不安ですね?

ちゃんとソースコードが吐き出されているかどうか、後で確認しましょう。

「Microchip Studio」 - 11


さて、必要なソースコードを雛形プロジェクトへ吐き出させたようなので「Microchip Studio」を一旦終了させましょうか。

左上のバッテン(X)をクリックすると以下のダイアログが表示されています。

この雛形プロジェクトを保存するかどうかを問われます。

保存しておいた方が良いでしょう。

(「Yes」ボタンをクリックです。)

変更の保存ダイアログ


もしこの先、無事に「TOPPERS/ASP」の起動に成功して、イザ何かを作ろう!となった場合、今回追加したASFライブラリだけでは絶対に足らなくなることでしょう。

評価ボードにセンサーを繋げて、そのセンサーとSPIで通信するとか、AD変換を使いたいだとか…。

その際には、再び今回の手順で必要になったASFライブラリを追加して、ソースコードを吐き出させて、更にそれを「TOPPERS/ASP」のソースツリーにコピーしなければなりません。

そういう意味では、この雛形プロジェクト、結構使用頻度が高くなるかもしれませんよ?

大切に取っておきましょう!


さて、一連の作業で吐き出されたASFライブラリのソースコードがどうなっているのか?確認しておきましょう。

特に変わったことをしていないのであれば、雛形プロジェクト「GccBoardProject1」は以下のディレクトリに保存されているはずです。


C:\Users\<ユーザー名>\Documents\Atmel Studio\7.0\GccBoardProject1

「GccBoardProject1」ディレクトリ - 1


さらに、このディレクトリの中にある、これまた「GccBoardProject1」というディレクトリの中は以下のようになっています。

「GccBoardProject1」ディレクトリ - 2


さらにさらに、このディレクトリの中にある「src」というディレクトリの中は以下のようになっていますでしょうか?

「src」ディレクトリ


ここで現れる「ASF」と「config」(さらに「asf.h」)こそが、欲しかったモノです!

これらが見つかれば、作業は成功です!


さて「TOPPERS/ASP AVR32版」を動かす上で足りないソースコードのゲットに成功しました。

次のステップは、これらのソースコードのコピーと配置、そして若干の修正です。

忙しいですが、一個ずつやっつけて行きましょう!


<続く>

Simplicity Studioを使ってみた! その3

前回からの続き です。 このテーマを最初からご覧になる場合は こちら からどうぞ。 「Simplicity Studio」でプログラミング インストールしたSilicon Labs社のマイコン用の統合開発環境「 Simplicity Studio 」で、テストプログラムを動かして...