きょうのかんぱぱ

デジモノが大好きなかんぱぱの日記です。

タグ「KOZOS」が付けられているもの


2万円のChromebookを使ってみた

TwitterにChromebookが2万円というツイートが流れてきました。Amazonのタイムセールのようです。

Chromebookという名前は聞いたことがありますが、これまで実際に使ったことはありません。

思えば、最近はクラウドの利用が多くなり、Google AppsやGoogle Driveをよく使うようになっています。今の利用スタイルであればChromebookでもありなのかもと自分へのお年玉としてChromebookを購入してみました。

購入した機器はHP Chromebook 11 G3です。メモリが4GBなのにこの価格ということで手頃だと思います。

外観はこんな感じです。HPのロゴとChomeのロゴが入っています。11インチなので大きさはMacBook Airぐらいです。残念ながら厚みはそれほど薄くはありません。

chromebook01.jpg

H8/3048F-ONE評価基板でKOZOSを動かしてみた(実装編)

  • 投稿日:
  • by
  • Category:

KOZOSはフルスクラッチの小さなOSです。今回は以前cygwin上に作成したH8 gccクロスコンパイル環境を使って開発をします。KOZOSのターゲットボードはH8/3069Fネット対応マイコンLANボード(K-01271)であり、今回のH8/3048F-ONE評価基板とCPUが違います。CPUのコアはH8/300Hなので同じですがフラッシュROMとRAMの容量が異なり、それに伴ってメモリマップも変わってきます。

  • H8/3069F ・・・・CPU内蔵 フラッシュROM 512KB、RAM 16KB
  • H8/3048F-ONE・・CPU内蔵 フラッシュROM 128KB、RAM 4KB

この評価基板には外部フラッシュROMや外部RAMも実装されているのですが、この時点ではどのようなメモリマップに配置されているのかがわからないので、CPUの内蔵ROM/RAMのみを使います。
ROMはともかくRAMが4KBしかない点が気になりますが、まずはできるところまでやってみようと考えました。

H8/3048F-ONE評価基板でKOZOSを動かしてみた(準備編)

  • 投稿日:
  • by
  • Category:

ソフィアシステムズさんのBDZ Series H8 Embedded Training Boardをヤフオクで手にいれました。

h8board01.jpg

すでに販売終了のもので何か仕様書のようなものはないかと探してみましたが見つかりませんでした。でも、秋月電子で販売しているH8/3069Fネット対応マイコンLANボード(K-01271)を使ったことがありますのである程度動かせるかなと。秋月電子でも同じCPUを使ったAKI-H8/3048F-ONEマイコンボード(K-02119)がありますのでこのデータシートも役に立ちそうです。

※この内容は個人的な興味で行ったもので保証はありませんし、内容についてソフィアシステムズ様などへの問い合わせ等も行わないようにお願いします。

このボードの概要は以下の通りです。

【特 徴】
・CPUに16ビット・ワンチップ・マイコン H8/3048F-ONEを採用
・μITRON(Ver4.0準拠)が動作可能なハードウェア仕様
・外部I/Fとして、RS232C×1chと100Base-Tを装備
・1MB外付けSRAMを搭載し、内蔵フラッシュROMを使用せずにデバック作業が可能
・プログラムダウンロード、オンチップデバックが可能なI/Fを装備

秋月電子のH8/3069Fボードではシリアルポートを使ってマイコンに書き込みを行いました。このH8ボードでも同様のことができるはずです。ボードのコネクタを目視で確認したところ次の2つがシリアルのようです。

・JCOM (RS232C)・・・D-SUB9Pで見るからにRS232C

・JPRG (3P)・・・・・PRGはプログラミングの略?

このH8ボードでは、CPUが小さい基板にはんだ付けされていて、全ピンが引き出されています。この部分を利用して、H8/3048Fのデータシートをみながらテスターで辿ってどのように接続されているのかを確認していきます。

マイコンのフラッシュに書き込むためのシリアルポートはポート1を使用しますが、このH8基板ではJPRGにTXD1,RXD1、JCOMにTXD0,RXD0が接続されていました。これで、JPRGコネクタがH8/3048F-ONEプログラム書き込み用と判断しました。

また、基板上にはRS232CドライバであるMAX3232があり、JPRGとJCOMはRS232Cレベルと考えられますので、いつものFT232基板(5V/3.3V)を使うのではなく、秋月電子のUSB-シリアル変換ケーブル(M-00720)を使いました。

WindowsPCをUSB-シリアル変換ケーブルを使ってJPRGコネクタに接続し、定番のFDTをインストールしてデバイスが認識されるかを確認したところ問題なく認識できました。これでH8/3048F-ONEへの書き込み準備ができました。

h8board02.jpg
次はマイコンに書き込むプログラムを作成します。以前H8を使ったときはKOZOSという小さいOSを書き込みましたので、この基板でもKOZOSを動かしてみたいと思います。
(続く)

茶室で楽しむKOZOS拡張基板に参加してきました

  • 投稿日:
  • by
  • Category:

「茶室で楽しむKOZOS拡張基板」というイベントに出かけてきました。このイベントの詳細についてはATNDCuBeatSystemsさんのページをご覧ください。今回の参加者は10名で、大阪や福島から来られたかたもいらっしゃいました。

会場となった都筑民家園の茶室はこんな感じのところです。茶室でお抹茶をいただいた経験は数回ありますが、さすがに長机を持ち込んでPCを並べて作業するのは初体験。

kozos_expbrd6.jpg

まずは今回使うプログラムやソースをUSBメモリからコピーして、今回のKOZOS拡張基板に対応したコンパイル済のブートローダーをAKI-H8/3069LANマイコンボードに書き込むのですが、ここが一番の難関で書き込めない人が続出。KOZOS本では第8章でブートローダーが完成し、それ以降は書き込みを行わないためかも・・。私の場合は直前までKOZOS本に取り組んでいたので無事書き込めました。

kozos_expbrd1.jpg

あとは拡張基板をマイコンボードに取り付けて準備完了です。この時点でテスト用のプログラムとMP3データをmicroSDカードにコピーして、拡張基板にとりつけRESETスイッチを押すと、MP3プレイヤーとして動き出しました。

kozos_expbrd2.jpg

次にNT-BASICが組み込まれたプログラムをmicroSDカードに上書きしました。シリアルコンソールからBASICが使えるようになります。しかも、MP3プレイヤーの機能も持っているので音楽を聞きながらBASICが楽しめます。

kozos_expbrd3.jpg

ここでBASICの話で盛り上がりました。RANDOMIZEとかFOR-NEXTとか懐かしいキーワードが飛び出しました。実は若いかたはBASICというものを触ったことがないそうで時代の流れを感じます。

午前中はこのあたりで時間切れになり、昼食には手打ちそばを頂きました。土間にある大きなかまどで茹で上げた二八そばをおいしく頂きました。

kozos_expbrd4.jpg

土間にあるこの釜でおそばを茹で上げていました。

kozos_expbrd5.jpg

午後はもくもくとソースを読んでいろんなことを試そうとしましたが、なかなか構造を理解するのが大変でちょっとした修正しかできませんでした。

まずはmicroSDカードに複数ファイルが入っていたときにファイル名の末尾の文字が消えていないバグを直しました。具体的には2枚目の写真でファイル名がSAMPLE.MP3PPとなっていますが、本当ならSAMPLE.MP3が正しいのです。これは最初にスペース文字列を表示してから、ファイル名を表示すれば良いので、task_fileio.cを以下のように修正しました。

$ diff -rc task_fileio.c.org task_fileio.c
*** task_fileio.c.org   2012-09-29 14:40:35.000000000 +0900
--- task_fileio.c       2012-09-29 14:43:02.000000000 +0900
***************
*** 109,114 ****
--- 109,115 ----
                break;
            }
            while (!pf_readdir(&dir, &filinfo) && filinfo.fname[0]) {
+               ipc_menu_set_filename("               ");
                ipc_menu_set_filename(filinfo.fname);
                if (!(filinfo.fattrib & (AM_DIR | AM_HID))) {
                    if (is_music_file(filinfo.fname)) {

あとはロータリースイッチを回す方向でLCDに"+++"や"ーーー"と表示するようにしました。task_menu.cを以下のように変更しました。

$ diff -rc task_menu.c.org task_menu.c
*** task_menu.c.org     2012-09-29 14:52:40.000000000 +0900
--- task_menu.c 2012-09-29 16:18:04.000000000 +0900
***************
*** 78,83 ****
--- 78,84 ----
              _volume--;
              LED_LEFT();
              DISP_VOLUME(_volume);
+           ipc_display_draw_text(24, 20, "---");
          }
      }
      if (p[2]) {
***************
*** 85,90 ****
--- 86,92 ----
              _volume++;
              LED_RIGHT();
              DISP_VOLUME(_volume);
+           ipc_display_draw_text(24, 20, "+++");
          }
      }
      NTLEVT_END(NTLUSR_TRACK_MENU, NTLUSR_EVENT_MENU_ROTARY);

パラメタを変えるとニジマス君の大きさが変えられるようになっていたので、そのあたりをいじったり、別のBMPファイルをロゴにして表示しようとしましたが、残念ながら途中で時間切れとなってしまいました。

*** 164,170 ****

  {
    ipc_display_clear();
    ipc_display_draw_box(0, 0, 121, 31, 1);
!   ipc_display_draw_logo(2, 2, 0);
    DISP_VOLUME(_volume);

    while (1) {
--- 167,175 ----
  {
    ipc_display_clear();
    ipc_display_draw_box(0, 0, 121, 31, 1);
!   //ipc_display_draw_logo(2, 2, 0);
!   ipc_display_draw_logo(2, 2, 1);
    DISP_VOLUME(_volume);

    while (1) {

最終的なもくもくの結果です。ニジマス君が大きくなってはみでています。ロータリースイッチを回すと+++やーーーと表示されました。ファイル名も正しくSAMPLE.MP3と表示されるようになりました。

kozos_expbrd8.jpg

今回提供いただいたサンプルプログラムは拡張基板のデバイスをフル活用できる内容でしたので、ソースを読み込んでじっくり試してみたいと思います。

このような楽しいイベントを企画いただいた中村さんに感謝です。あと、坂井さんをはじめ参加された皆様お疲れさまでした。

kozos_expbrd7.jpg

警告とメッセージ