①シリアル経由でOSの実行形式ファイルをダウンロードし、RAM上にいったん保存する。



まずダウンロードを実現するために一般的に利用されているファイル転送のプロトコルを利用。

それがXMODEMプロトコル

「モデムでのパソコン通信」の時代に、ファイル転送のために広く利用されたプロトコル。

プロトコル仕様が簡単なので実装の手間がかからず、また広く普及しているためにツール類も豊富とのこと。

XMODEMプロトコルは転送効率と信頼性は悪いらしいですが、失敗してもOSのサイズが小さいので再度転送すれば問題なしという位置づけで採用とのこと。


【プロトコル仕様】
本に記載されているプロトコル仕様に対して現状把握してみた内容をコメントしてみました。

[送信側]
①受信側から定期的に送信されるNAK(0x15)を受けたら、送信を開始する。
⇒受信用意できているよと知らせているのだろう

②データはブロック単位に分けて送信する。ブロックは固定長なので、ファイルの終端などでデータ量が足りない場合にはEOF(0x1a)で埋める。
⇒ブロック単位というのは何バイトだろう?ファイルの終端の後にEOFを詰める件了解。初期化をEOFで実施すればよさげ。

③1ブロック送信したらACK(0x06)かNAKが返ってくるのを待つ。ACKの場合には、引続き次のブロックを送信する。NAKの場合には、同じブロックを再送する。
⇒受信した信号がOKかを応答してきて、応じて処理を実施するのだろう

④データの終わりはEOT(0x04)を送信し、ACKが返ってきたら終了する。
⇒EOTとはEndOfTerminateの略かな?これに対してACKという応答がついてくる

⑤中断したい場合はCAN(0x18)を送信する。CANを受けたら中断する。
⇒CANとはCancelの略かな?これには同じCANで応答されるようだ

[受信側]
①受信準備ができたら、合図として定期的にNAKを送信する。シリアルから文字を受信したらデータ受信開始する。
⇒受信準備は何をもって準備完了なのか?定期的というのは何秒周期?シリアルで文字を受信したらNAKは出すのを辞めるのだろう

②SOH(0x01)を受けたら、連続するデータをブロックとして受信する。受信に成功したらACKを返す。失敗したら(チェックサムエラーなど)NAKを返す。
⇒ブロック長は送信側と共有できていないとダメだよなぁ、ACKとNAKの出しわけ注意

③EOTを受けたらACKを返して終了する。
⇒EOTを受ける条件はどんなんだろう

④中断したい場合はCANを送信する。CANを受けたら中断する。
⇒CANを受けたらCANを返すの他に、自発的にCANを返すもありなんだな


【ブロックフォーマット】
上記で疑問に思ったことの一部が下記の内容で解決されそうです。
________________________________________________
|a|b|c|         d         |e|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a(1byte):データのサイズを表す。128バイトであればSOH、1024バイトであればSTXをセットする。
b(1byte):ブロック番号をセットする。1から開始して1ずつカウントアップし、255の次は0になる。
c(1byte):ブロック番号の1の補数(全ビットを反転させたもの)をセットする。チェック用
d(128byte):送信するデータを128バイトもしくは1024バイト単位でセットする。送信するデータが128バイトもしくは1024バイトに満たない場合はEOFでパディングする(空いた部分を埋める)。
e(1byte):8ビットのチェックサム、もしくは16ビットのCRC符号をビッグエンディアンでセットする。



ブロックのフォーマットは了解ですが制御信号のフォーマットはどんなんなのか?
ブートローダーには、次の機能が必要になります。
①シリアル経由でOSの実行形式ファイルをダウンロードし、RAM上にいったん保存する。
②保存した実行形式ファイルを、適切にRAM上に展開する。
③RAM上に展開したOSを実行する。

1ステップづつ本章で作成します。
ヤマダ電機・ビックカメラに行くとスマートフォンがいい感じで並んでいて活気づいている。
なにが人気かと聞くとiPhone(Apple)とGALAXYS(samsung)。
たしかに操作感はいいかんじ。
iPhoneの中身はsamsungが作っているらしい、となるとsumsung人気か。

ヤマダ電機の店員は、商品の名称でなく会社名をキーワードにスマートフォンの現状を説明していた。
Apple/sumsung/LGは何回も繰り返し聞いたぞ。

日本製も続々出ているので注目のようだ。



(記事)

iPhoneの独壇場だった“スマートフォン界”が活気づいている。事前予約に当たる「購入宣言」が30万台に達したauの「ISO3」が11月26日に発売。さらに昨日12月3日にはdocomoからシャープ製の「LINX 3D SH-03C」が発売されるなど、各社の“本命機”が続々登場している。いまや主要家電量販店での携帯電話の販売数も、約35%が“スマホ”(スマートフォン)に移行しており(10月期、GfKジャパン調べ)、いよいよ本気で購入を考えるタイミングと言えそうだが、この冬の“スマホラッシュ”の特徴はどこにあるのだろうか。

【写真】カメラ部分をチェック!

「初心者が簡単に使いこなせるスマートフォンが増えました」と話すのは「LABI1 日本総本店 池袋」のdocomo販売スタッフ。「今まではサラリーマンの方がほとんどでしたが、女性客が増えました。明らかに客層が変わってきていて、ケータイ界の動きは、著しく変わりそうです」(同スタッフ)。その要因としては、“これまでのケータイのいいとこどり”をした機種が登場したことが大きい。“ワンセグ”や“おサイフ”“赤外線”に“デコメ”など、iPhoneにはない人気機能を搭載することで“とっつきやすさ”が格段に向上。多くのモデルで2年使用時の実質負担額が3万円前後というお買い得感も手伝って、一般のケータイユーザーに響く条件がそろったと言える。



そうなると気になるのは、“どの機種を選べばいいのか”という点。docomo、au、SoftBankから続々登場するスマホの中から、オススメのケータイに注目してみた。



■裸眼で3Dが楽しめる!docomo「LINX 3D SH-03C」

国内メーカーでいち早くスマホ発売にこぎつけ、この冬唯一主要3社すべてから発売するシャープの本命機がコレ。12月3日に発売され同機種は、欲しい機能をすべて搭載した“新時代スマホの決定版”とも言える存在だ。特にスゴイのが、裸眼で3Dが見える“モバイル3D液晶”を搭載している点。ドコモマーケットで配信される多彩な3D動画や3D対応のゲーム、さらには3D写真の撮影にも対応しているため、3Dコンテンツを存分に楽しむことができる。さらに、カメラは960万画素を誇り、顔検出機能やシーン自動認識機能などコンパンクトデジカメ並みの使い勝手を実現。名刺をカメラで読み取り、電話帳に登録できるなど、ビジネス面で使える機能も満載だ。日本特有の“機能全部盛り”を施したスマホで、“新時代スマホ”の象徴的な存在といえるだろう。

■30万人が購入宣言! 2種の液晶表示が可能なau「IS03」

docomoよりも一足先に発売されたau「IS03」も、docomoとはまた違った“いいとこどり”スマホだ。3Dこそ搭載していないが、2種の液晶表示を用いることで、無操作状態が続いてメイン画面がオフになったスリープ状態でも、時刻や不在着信、未読メールが確認でき、実に使い勝手がいいのだ。さらに、auの音楽、動画配信サービス「LISMO!」にアプリで対応している点も大きい。様々な映画やビデオクリップなどを、スマホでじっくり楽しむことができる。もちろんワンセグやおサイフ機能にも対応し、カメラは957万画素と、こちらも“てんこ盛り”の内容となっている。

■機能はもちろん、本体のデザインも多彩なSoftBank「GALAPAGOS 003SH」

一方、iPhoneを擁し、スマホ界で圧勝してきたSoftBankが投入するAndroid機が、12月上旬以降に発売される「GALAPAGOS 003SH」だ。docomoの「LINX 3D SH-03C」同様、裸眼で3Dコンテンツが楽しめるほか、最新版のOS2.2を搭載しているので、ニコニコ動画などのFLASH対応サイトも、ブラウザで簡単に視聴できる。さらに他社と異なるのが“デザイン”。これまでの着せ替えケータイとは異なり、カバーではなく本体のカラーバリエとして10種のリミテッドモデルを発売。通常カラーと合わせると、実に13色展開となり、自分好みの本体を選ぶことができるのだ。機能の充実に加え、オシャレも楽しめる、さらに一歩先を行くスマホと言えるだろう。



これまで親しんできたケータイ機能が充実することで、安心して乗り換えることができるスマホが出揃ったこの冬。ひと足先に発売され、その性能の高さで品薄状態が続くGalaxyなど従来型“高性能スマホ”と合わせ、自分好みの一台を見つけて“スマホデビュー”してみてはいかが? 【詳細は、11月30日発売の東京ウォーカーに掲載】