63B03デュアルCPUマイコンボードで遊んでみた(2)解析編

前回はROMデータの読み込みまでを行いました。このROMデータの解析を行ってこのマイコンボードの仕様を探ります。しかし、63B03の開発環境は持っていませんので、インターネットにある情報から開発環境の整備を行います。今回はWindows10 Home 64bitのPCで作業をおこなっています。

ROMから読みだしたデータはIntel HEX形式のフォーマットになっているので、これをバイナリファイルに変換します。

プログラムはVectorのサイトで見つけた以下のプログラムを使用しました。

こちらにROMから読みだしたデータを与えて、バイナリファイルに変換します。

63b03_intelhex_binary.png

これでバイナリファイルができました。

63B03デュアルCPUマイコンボードで遊んでみた(1)調査編

ヤフオクで63B03が載っているマイコンボードを見つけました。このマイコンボードは2枚のCPUボードがDual Port-RAMで結合されて協調して動作するもののようです。価格も安かったので落札しました。

到着したマイコンボードはこんな感じです。

68B03_dual_cpu_board1.jpg

基板の大きさも同じで、40Pのコネクタも同じ位置に配置されていますが、若干構造は違うようです。それぞれのボードが特定の役割を持っているように見えます。

Wio NODEでIoTセキュリティを考えさせられた

年末年始に遊ぼうかと秋月電子でSeeed StudioのGrove Wio NODEを買ってきました。ESP8266が搭載されていてWi-Fiに接続でき、各種Groveモジュールを接続することができます。価格も1100円とお手頃です。

wio_node.jpg

ちゃんとくさんの記事「Wio Node」で半田付けなしの電子工作!温度計作りでIoTはじめの一歩を参考にしながらセットアップして、Seeed StudioのWio NODEのAPIをたたくと温度センサーの値が取得できたり、7セグメントLEDに好きな数字を表示することができました。

wio_node_led.jpg

7セグメントLEDに数値を表示するAPIはこんな感じで簡単に使えます。

$ curl -k -X POST https://us.wio.seeed.io/v1/node/Grove4DigitUART0/display_digits/表示開始桁位置/表示したい数字4桁?access_token=登録したWio NODEにアクセスするための文字列

例えば、このAPIを私のVPSで動かして、VPSのロードアベレージの数値を自宅の7セグメントLEDに表示するということもできてしまいます。

このとき、APIの仕様を見ながら、いろいろ試してみたのですが、うっかりAPIのドメインを間違えてしまいました。タイムアウトでエラーとなったのですが、タイムアウトで返ってきたということは、ドメインが存在して接続までできたということになります。

間違えたドメインは以下の通りです。

  • 正しいドメイン us.wio.seeed.io
  • 間違ってアクセスしたドメイン us.wio.seed.io

このように非常にドメインが似ており、このus.wio.seed.ioは実際に存在しました。もし、私のようにうっかりタイプミスをしてしまった場合、このサイトのWWWサーバのログに呼び出したAPIのURLやWio NODEに割り当てられたアクセストークンが記録されてしまいます。APIのURLからどんなGroveデバイスが接続されているのかもわかるでしょう。

このため、今登録したアクセストークンは漏洩した可能性があると判断し、一度Wioデバイスの登録を削除したあとに、再度登録して新しいアクセストークンを作成しました。

このサイトはそのような目的は無いのかもしれませんが、悪意があれば、IoTデバイスのアクセストークンを入手し、意図しないWio NODEの制御が行われてしまう可能性があります。アクセストークンによる認証だけでは危険だなと再認識しました。

micro:bitとmbedで2018年の書き初めをしてみた

あけましておめでとうございます。昨年はTK-80互換機で書き初めをしましたが、今年の新春初プログラミングはmbedでした。

micro:bitにGhz2000さんのSPI接続14セグメントLED表示器を接続して、新年のメッセージを表示させました。

プログラムはこんな感じです。

ny2018.png

mbed用のライブラリが提供されていますので、micro:bitのSPIポートに接続するだけで動作しました。

では、本年もよろしくお願いします。

SBC6809ルーズキットに6809モニタを載せてみた

SBC6809ルーズキットを組み立てて無事完成しましたが、いまのところサンプルプログラムしか動きません。次のステップに進むにはモニタプログラムを動かしたいところです。

まずは6809アセンブラの入手です。検索してみたところ次のものをみつけました。

なんと、太田昌孝氏が作成したもので、junet時代のものでした。

早速macのxcodeでコンパイルしたところ、レガシーなCの書き方のためエラーがでてしまいます。

as09 $ make
cc -O -DMC6809 -c -o as68.o as68.c
as68.c:10:7: warning: incompatible redeclaration of library function 'malloc'
[-Wincompatible-library-redeclaration]
char *malloc(),*strcpy(),*strcat();
^
 :
as68.c:989:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
printdecimal(n,p)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
127 warnings and 20 errors generated.
make: *** [as68.o] Error 1
as09 $

SBC6809ルーズキットを組み立ててみた

TwitterでスイッチサイエンスさんからSBC6809ルーズキットが販売されていることを知り早速オーダーしました。

sbc6809_board1.jpg

キットといっても基板だけです。あとはマニュアルを見て自分でパーツを集めて組み立てるというものです。

以前、6802のワンボードコンピュータELIS68を組み立てた時のパーツ集めよりは楽そうです。

micro:bitのプログラムをmbedで開発するには

この記事はmicrobit Advent Calendar 2017Mbed Advent Calendar 2017の17日目の記事です。

micro:bitのプログラムをmbedで開発するには、以下を参照するとよいでしょう。

https://os.mbed.com/teams/BBC/code/microbit-samples/

このプログラム一式を「Import into Compiler」で自分のワークスペースに取り込んで試すことができます。

microbit_mbed_samples.PNG

microbit-samplesの中にあるsourceディレクトリがmicro:bitの各機能を使用したサンプルプログラムになります。