スキップしてメイン コンテンツに移動

僕がBootLoaderをいじれる理由

毎度あちこちに有りますが、私BASICのアマチア・プログラマでC++なんて知らないしアセンブラなんか良くわからんと言う人なので、あんまり突っ込まれると困るんですが・・
PICの時代からもそうなんですが、Bootloaderは、結構いじれるんです。
理由は、はっきり言って短いからですね。
OptiBoot 512Byte
FastBoot 384Byte
Picで作って他のはたしか、256Byteだったかな、384Byteだったかな・・

日本語にしたら、たったの、255文字を生成するプログラムは、コンパイルオプションを除外するのになれれば、実効コードは凄く短いんですね。

各ブートローダーの中には、世代単位での差をカバーするためのMCUごとのコンパイル時のコードが入ってますから、自分が作ろうとしてる、MCUはどっちか?・・・考えもせずに、切り替えてみて、MCUにISPして、結果見れば、どっちがいいか解るから、・・って言うやり方です。
二択か三択くらいだから、総当たりしたって、たいした事無い、それが全部で5−6カ所有るだけで、間違いなくこれはこっち・・ってとこも有るので、割と簡単なんですよ。

つまるところ、一世代前のMCUって言うとこには、ATmega8 って書いて有り、いわゆる現行のとこには、ATmega168とかが有る方、それが二択になってる。
後は、MCU単位の設定が書いて有る、ヘッダファイルだけど、長いのはMCUが一杯有るからで、必要なとこは、せいぜい8行です・多くてその倍・・64KB以下のMCUなら、その辺に足したり、選択し直せば動きます。(全然駄目は有るよ・・そうゆう時は素直に諦めましょう)

bootloaderの場合、一番長いのは、makefileだと思う位だから、Arduino IDEの文法と、BASICの文法に照らしてみれば、なんとなく何言ってるのか解ります。
そうだなーーイタリア語多少理解出来る私が、スペイン語聞いてる位は、解ります、フランス語ほど難解じゃないが、(ありゃ発音で・文字にしてくれると解るんですよ)・・英語出来ると、ドイツ語が何言ってるか微妙に解るみたいなね・・

たぶん、ここだべ・・・

で直すと動くんですね。

これ長くて、分岐が、100も有ったら、総当たりも出来ないし、お手上げなんですが、ブートローダー位なら・・なんたって、日本語255文字・・自動生成するための、プログラムですから・・・


実は前に書いてた、ISPのGUIアプリは、その後の、「なんだ読めるじゃん、GCC」で・・ちょっと変更してるんですね。
つまり、FastBootの方が、Optibootより、64KB以下に関しては全然いいので、FastBootのプロトコルを、STK500v1にしちゃえば、代替え、BootLoaderに出来て、Arduinoの改編も要らないよねって言う考え方ですね。

実際STK500互換、ブートローダーっていくつか有るんですが、Arduinoで動いたり動かなかったりなので、うまく最適化すればいいんだろうと。

FastBootの方が、いいって言うのは、FastBootは、Tiny13から、mega644pまで、どれでも動き、通信線1本でも、RS485でも大丈夫で、更に、通信速度を、自動判別するんです。1200BPSから、115200BPSまでの範囲(8MHzのソフトURTだと、38400BPS位が安全ですが)で自動認識します。OptibootもATmega_Bootも通信速度ごとに、ブートローダーをコンパイルしなきゃいけないんですね。(単にMakeに周波数いれるだけだけど)
これは、boards.txt書き換えてね・・って書かないで済むので便利なんですね。(早くしたければ書き換えてね・・で済む)・・optibootから交換した場合ですよ。

Fastbootは、独自プロトコルなんだけど、原型はSTK500って書いて有るんです、じゃあ原型に戻せばいいじゃんと言う事なんですね。(弊害が出てひょっとすると大きくなるかも知れないけど、元が、256Byte-384Byteですから・・)
たぶん独自になってる理由は、tiny13とか、2KBクラス用に、つめたから、STK500を簡略化したんだと思ってます。
プロトコルリスト見てると、たしかにスタートとか一緒だし・・

512Byteになってもいいや、Arduino用だし、4KB位から使えればいいんだし・・どう考えたって、TIny13を、Arduino IDEでプログラミング出来ないですから。


私は割と、Arduino側を改造して使えるようにしようって言うのは、性に合わないんですね。だって、バージョン上がるごとに、利用者全員がパッチあてなきゃいけないのは不便です。30分で終わるにしろ、利用者が1000人居たら、トータルで3万分ほど、時間を無駄にしますからね。(20日分くらい)
だたったらこっち側直すって言う、そうゆうタイプなんですね。(自分が、20日かかって直せば、以降時間は失われないって言う意味で)

ちょっとこれはやってみようと思ってます。

最近MCU買い出して思ったけど、Tiny13と、Tiny85の価格差とか考えると、8KBだけでいいやって言う気になってますし・・大きさの問題で、Tiny25は気になってますが、たぶんArduino IDEだと有効に使えないだろうとも見てます、それもたぶん、15-20円位の差しか無いはずなんですね。Tiny45と、Tiny85の差額が、5円だったんですね・・85選びますよね。


なんて言うか、私は、その昔の、MacOS 6-9までの内で7辺り位までの、Toolboxの、開発ガイドラインが、まるで聖書のように立派だと思ってるんですね。
アプリケーションは、OSの標準サービスだけを使い、独自サービスは、アプリ内に内包する、基本的に、Toolboxを使うって言う奴・・勝手にOSにDLLなんかぶち込まない・・好き勝手にあっちこっちにINIとか書き込まない・・昔のマックの、ドラッグドロップでインストール出来るアプリですね。
OSをいじらないで、どう乗り切るかのパズルゲームなんですね。
何でもかんでもいじっちゃっていいなら、簡単なんですよ。ただ、その結果誰でも使えなくなるし、延々とアップデートやメンテナンスしなきゃいけなくなる。

何処かで互換性とっておけば、開発者が死んじゃっても、アプリは生き残るんですね。


なんて言うか、Avrdudeとかがサポートしてる、ISP互換に作っておけば、私が飽きちゃっても、それまでの成果が無駄にならないんですね。
これ日本の成果物で凄く多くて、折角開発したのに、全然使って無い物とか・・例えば、テレテキストとか、ラジオの文字通信とか・・・例えば、イタリアだと、この日本が開発しといて使えて無いテレテキストで、空港のあのモニター表示が、家でみれますし、列車の遅延も、高速道路の渋滞の文字で読めます。車に積んでおけば、IPなんか無くっても情報は得られるんですね。
たぶん地デジも同じような機構で、番組表を送ってるけど、番組表しか送ってない。
道路渋滞情報とか送っててくれたら、車の中で表示できるが、それはNAVIに頼ってる。(NAVI売りたいから、わざとやらないのか?)

いわゆる、「仏作って魂入れず」みたいなの駄目なんですね、私自身がコンテンツ作る商売で、コンテンツ嘗めてるメディアって嫌いなのも含みます。・・どうもハード優先しすぎるんですよ、日本人も、日本政府も・・ゲームもそうだけど、洒落たコンテンツで内容が良ければ、「エロゲー風の紙芝居」だっていい物はいいんですもの。3Dでグリグリすりゃいいってもんんじゃない。
そして、ハードと一緒に、ソフトがゴミになるように考えられてる・・ソフトの継承性が無視されてるんですね。すっごい量の、頭脳時間を注ぎ込んだ物を、惜しげもなく捨てちゃう。
他の国ってそんなに無駄しないんですね。
国民の英知の結晶を、ハードと一緒に、4-5年で、無かった事にするってもったいないですよーー

MSXの根強い引っ張り方にも感動しますが、PC9801とか、TOWNSとかどーなったんでしょう、やっぱ結晶は捨てられたんでしょうね。

日本人の好きな、独自路線の方向を行くと、そうやって、いずれ捨てられちゃうので、私はそれ出来ないんですね。

とりあえず、互換路線で行こうかと・・

コメント

このブログの人気の投稿

楽天 不正利用の顛末

楽天から届いたポイントメール 事の起こりはこのメールからだった・ 「へえ、俺楽天に、1500ポイントばかり有るけど、これって、1500円って事?」とTwitter仲間に話して、「そうだよ、ずいぶん買い物したねー」と言われて気付いた・・私は少なくともここ2年以上、楽天なんか使って無い! パスワードさえ本人が忘れてるような楽天のポイントが増えるのはおかしい。 パスワードをリセットして、初めて、「楽天ポイントの確認」なんかに入ってみた。 「えーっとたしか5年くらい前にVoIPの部品買った記憶はある」 確かにそれは存在したただし、合計1万円にも満たない・・ 「楽天って豪気だなー、ポイント一割もくれるのかー」と思ったが、全部を確認すると・・全くいわれの無い買い物がそこに有った。 何この14万のオーディオらしき物って! 僕は実際、楽天にポイントが有る事さえすっかり忘れていたし、どーでも良い会社だった。 これは何・・楽天に登録されてる僕のカードはこの時点で確実に失効してるので、僕のカード支払いでは無いし、こんな請求が来た事は無い。 2011/6/30 知人に聞くと、「楽天の店って、ノルマ高いから良く有る」との事・・こうやって、ほとんど休止してるアカウント悪用してる可能性が高いのだ。 こんなのが横行してたら、楽天の売り上げ高なんか、イカサマでいくらでも作れる事になる。 そしてまず、楽天のヘルプから苦情を投稿し、頭に来たので、三木谷氏のツイッターに送信した。 https://twitter.com/#!/hmiKitani Twitterの方が早く 楽天市場CS @ RakutenIchibaCS と名乗るとこから・・ 「 楽天市場お客様窓口担当です。この度はご心配をおかけいたしまして申し訳ございません。現在のところ、弊社から情報が漏洩したという事実はございませんが、お客様の現状を確認し、別途サポート担当より連絡をさせていただきます。今しばらくお待ち下さい。」 と来て 「なんで、公式のメールの方は帰って来ないのかと返信したら」 楽天市場CS  @ RakutenIchibaCS 「楽天市場お客様窓口担当です。この度はサポートセンターからの回答が遅れ、申し訳ございません。先ほど、ご質問の件に関しまして返信をいたしましたので今一度ご

計画停電が来ました。

色々やろうとしてた割には間に合わず・・ MacBookは余裕で生きてました。PocketWifiを探したんですが見つからす・・テーブルスタンドが、LEDの電池共用だったので、真っ暗ににもなりませんでしたが・・ 暗くてなんかやる気も出ないので、寝床でひっくり返って、MacBook動かしてました。 LEDスタンドが、外部USBバッテリーで余裕で、保ってくれたのも有り・・(それが切れてもまだ内蔵が単四電池3本がある) もう一個か二個くらい、照明用のLEDが有れば耐えられそう。 そんなのも有って、定電流回路ちょっと作ろうかと資料漁ったらいいのがあった。 これ 。 一ヶ月位続くって言うから秋月から、3WのLEDを数発買うかなーー とりあえず、家に転がってた、バイクのバッテリーと、MacBookの電源、携帯電話用ポータブル電源とかで、とうぶん毎日1回3時間程度点灯すればいいのかーー 理想的には、LED位なら、スーパーキャパシタが理想ですよねーー PEKE PROJECTは、とりあえず、1週間ほど、休止して、ATtiny85のブートローダーを作り・・Arduinoベースで、停電認識、通電時PWMでの充電機能、LEDの、省エネPWM点灯とかを、ちょっと研究しとこうと思ってます。

秋月の低ハイト、ピンソケット

最初どうかなーー抜けやすかったら嫌だなあと思ったが、さすがにそうならない努力してあるらしく、パチンと言う感じではまる。長いソケットが、刺さる感じなのにこれは、はまる感じなのだ。 ソケットはともかくピン側は結構扱いに困る・・このままブレッドボーボードには刺さらない。丸ピンにも刺さらないから、相手に出来るのは、専用のソケットだけになる。 ただ、いいなあと思ってるのは、これをISPにすると、パチンとはまる事と、ピン側の高さが制限されて、AVRや、PICの基板に無骨に突っ立っていた、ISPコネクタのハイト下げられる。 低ピン→ブレッドボード × 低ピン→標準ピンソケット × 低ソケット→低ピン ○ (ピンはこれ以外の組み合わせを確認できていない) 低ソケット→標準ピン ○ 低ソケット→細ピン ?? 低ソケット→丸ピン × と言う関係なので、ISPには使える。古いISPコネクタと併用出来るから、ソケットにはいいのだ・(はみ出るけど) ISPのハイトが下がると、基板全体が薄くなる可能性が、SMDとかにある。・・薄くするためにDIP ICをソケット無しで、直接半田付けしちゃう私なんかも・・このハイトは助かる。