[管理者用]

イゼルローン日誌
宇宙・・・それは人類に残された最後の観光地である

         
戻る 
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年

2019年01月
1月31日 ・そんなこんなで、1月も終わりである。経済関係のこともいろいろと勉強になったな。
・たとえば、ブレーキメーカとして名を馳せる曙ブレーキ工業さんがまずいことになっているようだということも、経済関連のことを眺めていて知った。どうやら決算はそれなりに悪くないのに、ゼロ金利で経営の苦しくなっている地銀団の一斉貸し剥がしにあってしまったようだ。車や電車などの超重要部品なわけで、多分そちらからの支援も受けられるだろうけど、いろいろなところに歪がでているのだな。
・ところで、昨日送った波形などへの返答は今日も無し。クレーマー扱いで無視されてしまっているのか、あるいは何か問題が分かったのか。
・さて、今日もプログラムの書き換え作業。考えていると結構細かいところに問題が出てきて悩んだりする。今まで動いているところはなるべく変更を少なくしながら、CからC++のクラスライブラリにして、扱いがもっと楽になるようにして・・と整理していくので、結構悩ましい。まぁ、今週中には目処がつけられるだろう、たぶん。


1月30日 ・昨日送られてきたメールの内容がどうしても気に障るので、最小限の接続、すなわちGNDとTXDだけの接続にして、波形をとってみる。当然ではあるけれど、結果は同じで、TXDに引きずられるようにMAX3232のV+/V-端子の電圧が揺れる揺れる。面白いのは毎回同じではなくて、連打していると大きくなったり小さくなったりすること。チャージポンプのスイッチングタイミングとも関係するのかな?
・ついでにデータラインを見ると、これまた入力データに引きずられるように大きく変動して、通常マイナス6V程度の電圧が+3V近くまで振れている。
・これでは送信するたびにゴミデータを受信してしまうことは間違いない。とりあえず取れた波形の画像データをメールで送っておく。クロストークかな?とも思ったけれど、いくらスイッチトキャパシタとはいえ、3.3Vで、0.1μFのコンデンサを250kHzでスイッチングしているとすると、移動する電荷は3.3×0.1e-6×250e3≒82.5[mC/Sec]・・・だから82.5mA流れているのと同じくらい。
・そこまでインピーダンスが高いとも思えないので、おおかたコンデンサの選定ミスだろうとは思うけどね。これでも埒があかなかったら、チップコンデンサ二階建てでもやってみるか。

1月29日 ・手元に基板がなくなったのだけど、お付き合いのある会社さんの方で手持ちがあったので、ちょっとお借りすることができた。試しにこれで同じように波形を見てみると、ほら案の定、同じ現象が発生する。ただ、こちらはCOMブートローダで使っている側は比較的おとなしいので認識するところまでちゃんと進むけど。
・そんなことをしていたら、メーカさんの方から「こちらではちゃんとダウンロードできたので、そちらで使っているUSBシリアルケーブルの問題ではないか」という回答。いや、ちゃんと波形まで送ったでしょ。せめて波形くらい見ようよ。
・というところで、Cで書かれていたプログラムのC++化。タスクの構成もガラッと変えるので、キューの扱いも変更になる。
・とりあえずUARTは終わったので続いてCAN。CANの下に複数のスレーブデバイスが繋がるわけだけど、予定ではこれらのスレーブ毎に管理するタスクを設けて、それらからCAN通信タスクに送受信要求をするという形態にしよう。各タスク間の通信は実績のあるメッセージキューを使うことにする。と、CANクラス側で送信データ用のメッセージキューを作って、メッセージ送信要求関数を呼ぶときに返信用のキューのハンドルを同時に渡してやるという形が良いのかな。まぁ、いわば「切手を貼って宛先を記入した返信用の封筒を同封の上、ご応募ください」というところかな。

1月28日 ・原因が分かったので、メールしたら「基板を確認させてください」とのことだったので、発送する。さて、手元に基板がなくなってしまったな。とりあえず机上で作成していくとするか。
・そんなところで、git。今まで適当なところでディレクトリまるごとバックアップしていたのだけど、自動生成されるファイルも多くてコピーに時間がかかって仕方がない。そういえばローカルな環境でSDカードとかにpushできれば差分バックアップになるから速いのではないかな?と思い立って検索。
git init --bare --shared d:/test/backup.git
という具合にしてリモート側(バックアップ先)をこしらえて、
git remote add origin d:/test/backup.git
でよし。あとは
git push origin master
てな具合にすれば、バックアップされる。ちょっと変更を加えて試してみると、確かに速い速い。しかも過去の変更履歴もきちんと残るし、変更箇所もgitkなどで一目瞭然。以前のバージョンに戻すことも簡単だし。今まで使わなかったのは勿体無かったな。

1月27日 ・さて、昨日の続きでUARTの誤動作を追いかけてみる。と、MAX3232のV+とV-端子、つまり、チャージポンプで作った、RS-232Cレベルの出力電源となる電圧が入力データによって大きく揺さぶられている。+側が7V弱くらいから3V近く落ちるし、−側は0Vくらいまで上がってきてしまう。これではまともに動くわけがない。おそらく原因はこれだな。
・受信した時の消費電流の増加に対処しきれていないということだから、チャージポンプ自体がおかしいのか、周囲に付いているセラミックコンデンサの容量不足、あるいはESRやESLが大きすぎる(それって殆ど不良品じゃないかという気がするけど)というあたりか。いずれにしてもこれでは基板に手を加える以外に対処のしようがないので、メーカさん(というか、販売代理店さんか)にメールしておく。

1月26日 ・さて、UARTからコマンドを入力できるようにしようというわけで1行入力を作る。とりあえず入力された行をそのままエコーバックするように作ってみたのだけど、動作がおかしい。1文字入力しただけで何か応答が返って来る。しかも文字化け。おかしいなと思ってもう1チャンネルの方を試すと、こちらは文字化けもせずにエコーバックしている。いやいや、そもそもエコーバックなんてコードは入れていない。それにターミナルでのローカルなエコーバックもしていないことは、D-SUBコネクタを抜いたらエコーバックがなくなることからも明らかだ。プログラムをいろいろ変更してみてもだめ。いっそのこと・・・とUART送信を全部殺しても駄目。まさかと思ってリセットボタンを押したままやってみても怪しい文字がエコーバックされる。
ここに至って原因がハードウェアだとわかってくる。さて、とりあえずオシロで波形を見てみるとボードについているレベル変換IC・・・MAX3232の出力がおかしい。なぜか入力に引きずられるような波形が出ている。しかもレベルがおかしい。
・さて、よくわからなくなってきた。試しに手元にあったUSBシリアル変換ケーブルをいろいろ持ってくると、全滅だ。ならば・・・とUSBシリアル変換チップ基板(出力はTTLレベル)にADM232を使ったレベル変換アダプタを繋いで試してみるけどやはり駄目。
・ここまでくると、MAX3232側の問題としか言いようがない。とりあえずボードのメーカさんには連絡するとして、このままではデバッグが進まない。さて、どうしたものかな。

1月25日 ・やられた・・・仮想マシン下のWindows10のネットワーク接続を許可していたのが運のつき。「WindowsはWindowsUpdateを走らせるためにある。Updateしていない時は自由に使えるけどね」ということをすっかり忘れていた。プログラムを書いていたのにいつのまにか勝手にリセットされて、しかも再起動に失敗している。
・さて、昨日の続き。割り込み許可にしたらいきなり送信割り込みが発生するなら、そもそも1バイト目をわざわざ書く必要はない。全部割り込みで始末すれば良いだろうということで、ちょっと書き換え。なるほど、うまくいくな。
・そんなことをしながら、ローカルディスクでgitでSDカードにバックアップを作ろうとしていろいろ試しているうちに失敗した。うっかりコマンドラインで、ソースコードのディレクトリでdelしてしまった。ごっそり消えてしまっている。この前バックアップしたところまで戻るのか・・と呆然したが、ふと「gitは残ってるんじゃないか?」と、git statusしたら「deleted」の山。これは無事だな。
git reset --hard HEAD
無事復旧。心臓に悪かったな。

1月24日 ・昨日のコンストラクタのテスト。試しに入れてみたら無事に動いたことが確認できた。よし、これでかなりすっきりする。さて、今日はUARTの割り込み処理だな。
・というところで、割り込み送信のテスト。前任者のUART出力周りを見ていると、読み出し専用のフラグに書き込んでクリアしようとしていたりと、不思議なコードが混ざっている。流石に不要だろうなと思るような部分を削除。
・これで動かしてみたら、一応1行表示はできたけど、よく見ると2文字目が欠けている。送信割り込みを許可にして、1バイト目を書き込んだら送信完了時に送信バッファエンプティ割り込みが発生するものだと思っていたのだけど、どうやら送信バッファエンプティ状態で割り込みを許可するとすぐ割り込みが発生するようだ。順番を入れ替えて1バイト目を書き込んでから割り込みを許可したら無事動作。


1月23日 ・さて、どうもC++のコンストラクタが動いていないことがわかる。いろいろ調べていくとstartup_stm32なんちゃら.sというスタートアップが何種類もあって、マイコンの種別に応じて使い分けているらしい。これらの中にある


bl __libc_init_array

というのがコンストラクタの呼び出しをしているのだけど、これがなぜか今使っているものだけ抜け落ちている。前任者が削除したのか、その前から無かったのかは不明だけど、多分これだろう。


1月22日 ・どうも動きがおかしいなと思っていたら、C++のコンストラクタが呼ばれていないということがわかる。コンストラクタは当然main()に来る前の話なので、スタートアップにあるはずだ。調べてみるとstartup_stm32なんちゃら.sというのがたくさんあって、これがマイコンの種別やRTOSを使うのか否かなどによって使い分けられている。この中でmain()に飛ぶ直前に


bl __libc_init_array

という具合に、__libc_init_arrayを呼んでいるのがコンストラクタの呼び出し。ところが、今回リンクされているものだけがこのBL命令が抜けている。これが原因かな?

1月21日 ・axfから.bin形式に変換したら良いのだろうか?と、arm-none-eabi-objcopyでやってみたけど、単に巨大なbinファイルができただけで、ドラッグ&ドロップで書き込むのは無理。さて、STの専用ツールであるST-LINKと同じ名前をつけている以上何か手はあるのだろうと検索していると、ST-LINK Utilityというものが、いわゆる一般的なライタプログラムのようになるらしい。早速調べていくと
STSW-LINK004(ST-LINK Utility)
STSW-LINK007(ST-LINKのファームウェアアップグレードツール)
STSW-LINK009(STSW-LINK007をWindows7やら10やらで使うための追加ドライバ類)
の三本立て。ついでに、使わないけどSTM32 Flash loader demonstrator (FLASHER-STM32)
・全部インストールしたら、Nucleoを接続。いつものように、リムーバブルディスクにはなるけど、そのままでいい。そのままLINK007のアップグレードツールを起動してファームウェアをアップグレード。電源OFF/ONした後、やはりリムーバブルディスクになるけど、無視して続いてLINK004のST-LINK Utilityを起動。Connectをクリックしたら、あっさり接続された。
・File選択をしたらデモプログラムの.AXFがそのまま選べるので選択して書き込みしたら何も問題なく書き込めた。続いて作成中のプログラムの先頭にボードのLEDのON/OFFをするコードを入れて生成された.HEXや.BINを選択して書き込みしてみたけど、全く問題なく書き込み完了。よし、これでいけるな。
・この環境だと、ボードのジャンパの設定変更も不要。xyzzyでエディットしたら、そのままシェル(というか、コマンドプロンプトか)でmake。ST-LINK Utilityで書き込みすれば終了後にアプリケーションが勝手に起動するので動作確認できる。リセットしなおしとか、電源OFF/ONなんかも不要で楽でいい。

1月20日 ・そんなところで仕事がらみで、STM32を載せたRed Bullというボードを買った。STM32F103ET6という、なかなか大きな規模なものを搭載していて、タッチパネル付きのフルカラーグラフィック液晶がついて、CANやRS-485のトランシーバICなどもついていたりするなかなかサービス良いもので8000円。
・以前はボードを借りていたのだけど、トラブル対応のために返却したので、今回はこちらのお財布で購入。
・このボード、一応シリアルポート経由のブートローダで書き込めるということなのだけど、これが相性があるのか、以前も散々苦しめられた経緯がある。
・嫌な予感もありつつ、早速ジャンパを設定して書き込みしてみるか・・と思ったらマニュアルと基板のシルクが違っている。一応回路図を追いかけて、多分これだろうとやって、電源を入れるとでもプログラムが起動しなくなったので、これで良いのだろう。USB-UARTのアダプタを繋いで、FlashLoader Demo(なんでDemoなのかは不明だけど)を起動。コントロールパネルとFlashLoaderの両方ともビットレートやパリティ(なぜか偶数にするらしい)を設定して、画面の「Next」をクリック。
・見事に撃沈した。原因不明だけど、全く動いてくれない。認識されなかったり、「Remove Protectionするけどいい?」というだけで、その先に進めない。以前もこれで散々な目にあったっけ。ひょっとしてTxDとRxDが逆なのかといろいろやってみたけどギブアップ。仮想マシン下からやっているのが駄目なのかな?でも、所詮USB-UARTだしな。
・さて、駄目だと言っていても仕方ない。そういえば、以前Nucleoボードに付いているオマケのST-LINKを独立して使ったことがあったな。ということで、Nucleo F742ZGを発掘。確かもっと小さいのも持っていたはずなのだけど見つからないので、とりあえずこれでいこう。
・こいつにはST-LINKの6ピンコネクタがある。ジャンパを二箇所外せば本体の基板からSWDのラインが切り離されてST-LINKを使った汎用書き込みアダプタに化けるという具合。
RedBull側にもJTAG/ST-LINK用のコネクタがあるので、この間を繋いでヤればいけるんじゃないだろうか。
・ということで、接続ケーブルを作成する。一応接続をメモしておくと
・ST-LINK側/RedBull側で
1/1(TargetのVddSense?)
2/9(SWCLK)
3/4(GND)
4/7(SWDIO)
5/15(nRST)
6/13(SWO)
という具合。これで電源を入れたら一応サクッとリムーバブルディスクとして認識されて、System Volume Informationも現れたのでこれで接続は良いのだろう。さて、あとはどうやって書き込むかだけど、デモやサンプルプログラムでは.axfと.hexしかなくて、試しにDrag&Dropしても駄目。さて、どうしたものかな。

1月19日 ・留学生の起業支援を強化するらしい。技能実習生についても帰国後に現地での起業を支援するようなことはできないのかな?日本から資本を入れてそこからリターンを得る。うまくいけば、世界的なネットワークができるわけだけど。

1月18日 ・とりあえず、while(1);状態になった株だけど、プログラミング中に少し頭を冷やしたい時などに、株価を眺めている。国内株はいいけど、海外株は15分遅れとか平気で言うので、なんだか面白くない。でも、考えたら米国なら「国内」なんだから無料でリアルタイムで見られるだろうと思ったら、ご本家のNASDAQがちゃんとサービスを提供している。
・リアルタイムで見られるだけではなく、眺めたい株だのを選んで一覧表(ポートフォリオ)にしておいたり、自分で持っている株の情報を登録しておけば、リアルタイムで変化するのがわかるし、銘柄毎にリアルタイムでグラフが動いていくのが見られるし、GoogleだのTwitterだののアカウントと連動してセーブしておけるという具合。なんか、ドラマとかでよく見るような感じだな。
・さて、そんなところで、旧バージョンから書き換え。まず、朝のお約束で、git addして、git commitしておく。入出力関係が少し整理できたので、旧バージョンの動作処理関係のコードをバッサリと削除。キューやタスクの類も構成を大幅に変える予定なので、こちらも削除。必要最小限のmain()と、CAN、UARTだけの状態に戻す。とりあえず出来たと見ていいかな。

1月17日 ・さて、頼んでいた基板が届いた。しかし、ARMなマイコンがついて、カラーグラフィック液晶パネルがついて、その他諸々があって8千円か。自分で作る気力を失わせるのに充分な価格だな。
・そんなこんなでプログラムの整理は続く。とりあえず、クラス分けした中の関数をタスクとして登録すれば、classから生成したオブジェクトとタスクが1対1で対応するので非常にすっきりする気がしてきた。コンストラクタでメッセージキューのハンドルを渡すようにすれば、Class間の結合もわかりやすいだろう。これでいこう。

1月16日 ・さて、大幅なプログラムの構造の見直しに伴ってC++化というのか、「誰がこの変数の持ち主なのか」「どれがひとつの関数グループになるのか」「グループにアクセする入出力ルートは何になるのか」を整理していく。
・とりあえず、CAN関係は片付いてきたので、UARTに取り掛かると、これが入り乱れてゴチャゴチャになっている。どうやらいろいろなところから寄せ集めてきたような感じで、UARTの初期化部分がいろいろなところにある。grepしながら探していくと、あっちもこっちも止められていて結局残ったのはルート部分になったユーザアプリの中の初期化だったというオチがついていた。まぁ、それはそれで良いんだけどね。
・さて、そんなところで、NISAへの切り替えが終わったというので、NISAで買って手元の特定預かり分を売却。
・夜になってついでに外国株とやらもお試ししてみる。米国株は源泉徴収されるけど、英国やオーストラリアなどの株なら非課税。ついでにNISAなら国内分の課税もないので配当も額面まるまる受け取れるらしいので、長期保有で配当目当てというところ。
・市場は午後11:30から開くらしい。あちらは100株単位とか1000株単位とかケチなことは言わず、1株単位から売買できる。手数料($5か0.45%のうちの高い方で、上限は$20らしい)を取られるし、為替スプレッド(いわゆるドル/円レートに上積みされる分:$1あたり25銭らしい)があるとかいうのでそこはなんとなく頭に入れて、とりあえず成行きで注文してみる。
・すぐに約定したけど、結果を見ると滅茶高いことになっていて、直後なのに損益が結構なマイナスになっている。もちろん、口座の「買い付け余力」もその分減少。手数料などなどを込みにしても随分高いじゃないか。ぼったくられたか?と思ったのだけど、そういえば何か書いてあったなと思い出して検索したら、なるほど外国株を円建てで買った時に為替レートの変動だののに配慮して資金ショートしないように、一旦5%ほど多めな金額分資金を拘束するのだとか書いてある。改めて別のページから保有株式を見ると、1株あたりのドル建て単価はそれなりで、円建てだと1ドルが114円くらいになっている。ドル円のレートを見ると今は1ドル108円ちょっとくらいのようなので、ちょうと5%くらい高めの設定だ。この分がどんな風になっていくのかウォッチしてみよう。デイトレーダーのように短期の売買を繰り返す人はドル建ての口座に予め移してから取引するのかな?
・そんなところで、株式のお勉強用の予算はこれで使いきった。これはこれで面白かったけど、「虚空感」がいっぱいだ。実際には何も生み出していない、誰も幸せにしていない、何も手に入れていないのにお金という数字だけが目の前でどんどん動いているというのは不気味な世界だ。銀行に預けていて少しだけ利息が付くととか、配当を受け取るというのはまだいいけど、こうやって1,2週間の間にちょっとクリックしただけで、7000円以上増えたことにされている(もちろん、単に株を持っているだけで、売らない限り何の意味もない数字だけど)というのはどうなのかな。さて、地道にプログラミングにとりかかろう。
1月15日 ・ぼんやりと企業の情報などを見ているとこれまた面白い。JASDAQあたりではやはりというのか、いわゆる「ヒルズ族」な企業が目白押し。スタートアップの立ち上がりもご立派で(まぁ、なにせ固定費は事務所代と人件費くらいのものだしな)、なるほどこれなら夜の繁華街でヴイヴイ言わせていたりするわけだ。
・事業内容を見ていると、これで本当に10年単位のスパンでやっていけるのか、少々不安を感じないでもないけど、まぁそこはそれ、ちゃんと太客がついているのだろう。そういうところにじっくり育ててもらえればいつか花開くこともあるだろうな。

1月14日 ・STM32のレジスタの説明を見ているのだけど、これが実にわかりにくい。こういうのを見ると、たとえ将来自動翻訳によって言語の壁が取り払われても、「マニュアルの解説マニュアル」が求められる状況には変わりがないだろうなと思える。そういえば、昔Intelのマニュアルに比べてMotorolaのマニュアルは難しく感じたっけな。
1月13日 ・さて、納品の準備。明日は祝日だけど今日中に発送しておけば間に合うだろう。
・そんなところで、なんとなくYahooファイナンスなどをインストールして株などを眺めてみている。ネットサーフィンならぬ、ストックサーフィンというところ。「こんな会社があるんだなぁ」とか「これで上場するほど利益があがるのか」などと眺めては四季報を見て売上高や形状利益などの推移やら株価の変動などを見たり、webサイトを眺めたりする。
・一気に赤字が解消して来期あたりに黒字転換、更に伸びそうな右肩上がりなところを見ると思わず応援したくなってくるな。
・というところで、生命保険を解約して放置してたのだけど、医療保険くらいは入っておくかとネットで見積もり。まぁ、こんなものだろうと月々3千円くらいのものを組み立てて注文。健康診断の結果と共に、タバコを吸っていないことを確認するため、コチニン(ニコチンではないのか)検査に来るのだとかか。そういえば、某工業高校に通ってた奴が言ってた喫煙検査っていうのはこれのことか。どんなものなのか聞き忘れていたので、ちょっと興味あり。健康診断はABだらけなのでまず大丈夫だろう、多分。

1月12日 ・更新だのなんだのとお金が飛ぶ。こういうときはURが良いなと思うのだけど、結局高いし、仕方ない。まぁ、ボチボチと頑張ろう。
・そんなところで、プログラムの大改造。まずはCANバス周りだけど、この部分は特に手を加える必要が無かったので前任者の残したままの状態。じっと眺めていると不要になった部分やデバッグ中に入れてその後コメントアウトしたようなものなどが残っているので、見やすくするためにそのあたりをざっくり削除して、少しずつ読みながらコメント入れだな。
・なんだかドラマの下町ロケット2についてブラック企業だとかやりがい搾取だなんだという声があったらしい。開発なんてどうなるのかわからないものを相手にして、意図したように手なづけていくようなものなので、一日のルーティンだけ済ませれば終わりという仕事とはだいぶ違うしな。叩き潰す相手によってはどうしても時間を食うこともある・・・が、疲労してくると恐ろしいほど効率が落ちてきて、無駄に時間が過ぎるだけになる。自分の限界は自分で察知できるようにならないとな。

1月11日 ・榮太郎の工場直営の売店へ。今日は鏡開きということで、お汁粉を配っていた。ちゃんと餅入りでしかも美味しかった。福袋はなくなってしまったようだな。ちょっとだけ買って帰る。
1月10日 ・突然思い立って温泉に行く。じっくりお湯につかりながらいろいろ考えてみたりしているうちにため息ひとつ。
1月9日 ・さて、前任者の書いていたCのプログラムだけども、やはりC++を使って書き換えたほうがすっきりしそうな感じがするので、とりあえず基本的なclassだけ作ってテストしてみる。と、いきなりエラー。
・エラーメッセージによると、_exit、_kill、_getpid、_sbrkがundefined referenceということだ。いや、こんなの要らないのだけどと思って検索してみたら、あちこちで躓いている人がいるようだけど、見て真似をしてみてもうまくいかない。これはダミーの関数を作るしかないかとも思ったけど、やっぱりサポートされないというのは変だなということでmakefileをもう一回眺めていたら、$(F_NO_EXCEPTIONS)という、なんだか怪しげなものを
CXXFLAGS = -std=gnu++98 $(COMPILE_OPTS) $(WARNINGS_CXX) $(F_NO_EXCEPTIONS)
という形で利用している。
・それならF_NO_EXCEPTIONSはどうなっているのかなと見たら、
#F_NO_EXCEPTIONS = -fno-exceptions # disabling exceptions saves code space
というなるほどなことをしている。これはムムムであるということで、#を削ってmakeしたら無事リンク完了。後で実機のボードで確認しないといけないけど、おそらくこれでC++で書く道は開通だな。

1月8日 ・というところで、1年ぶりにどういう環境でプログラミングしていたのか再確認。すっかり忘れているな。とりあえずソースコードのフォルダを見ると、makefileがあった。開いてみると、なるほどやはりWindows上だな。直接ツールのパスを指定しているので、このままできるのかな?とmakeしてみたらちゃんとできた。なるほど、ソースファイルもmakeした時に一覧を取り込んでコンパイルすることにしているから、ソースファイルを追加削除してもmakefileはいじらなくて良いのだな。
・まぁ、どうせ走ってるのはgccなので、c++も使えるだろうと.cppファイルを追加したらちゃんとコンパイル&リンクされた。よし、これでとりあえずビルドはできるな。あとは書き込みか。

1月7日 ・打ち合わせ。前任者から引き継いだプログラムを少しずつ変更して納品してから約1年。大幅な仕様のバージョンアップとなり、ほぼ1から作り直すような形にしないと実現は難しい事態になってきた。とりあえず現状動いている、HALというのかドライバというのか、ハードウェアアクセス部分などについては今まで無事に動いている実績もあるので「寝た子は起こすな」で良しとして、それらをコントロールする側をごっそり入れ替える形だ。
1月6日 ・ブートローダを読む。プログラムを読んでいたのだけど、だんだん面倒になってきて、ロジック・アナライザのデコード機能を使って流れているデータを全部取り込んで何をしているのか、何をどう送って何が返ってきているのかExcel上に整理していってだいたい話が読めてきた。予想していたのとちょっと違うところもあるけど、だいぶやっていることが見えてきたな。
1月5日 ・なんとなく単位株・・100株だけ買った株だけど、ちょっと米国株を検索してみたら、あちらでは「単位株」という概念は無くて全部1株から買えるらしい。最近お騒がせなAppleだと$140〜$150くらいの幅で動いている。簡単のために$1=100円とすれば、1株が14,000円とか15,000円程度で1株買える。ただ、米国市場で米国株を買うと10%が源泉徴収されるので、米国市場に上場している外国株を狙う方が良いのだとか。まぁ、数千万円、数億円なんていう単位で動かしている人には大きい問題なのだろうな。
・そんなところで、ブートローダを読み込まねばな。さぁ、がんばろう。

1月4日 ・大発会の後はAppleさんのおかげで大幅に下げて始まったようだ。というところで、某社さんも順当に下げたので100株ほど購入をしてみる。買った後はジワジワと上がって、終値で計算すると400円位プラスになった。まぁ、短期で売買する気はあまりないけれど。
そんなところで今度はPSoCのブートローダを調べる。とりあえずUARTブートローダを使って片方のPSoCからもう一方のPSoCを書き込むというのをやってみる。使うのはトップページの写真にも使った自家用PSoC5LPボード。タカチのケースにピッタリサイズで、秋月さんのグラフィック液晶やキャラクタ液晶を実装できるようにしたもので、こういう用途にはなかなか便利なのだ。最初ジャンパの設定を間違えていてMiniProg3で書き込めなくて慌てたけど、そこもクリアしてとりあえず書き込みOK。2枚のボードを繋いでホスト側からダウンロードを開始したらいきなりCommunication Error。あぁ、そうか、コンパイラのバージョンが違うので、ダウンロードするサンプルに含まれているブートローダと、ターゲットのブートローダが一致しなくなっているのか。とりあえず、ターゲットのブートローダを変更して再度やってみたら、無事動作。動きを見ているとなかなか面白いな。

1月3日 ・そんなところでお次はPSoCのブートローダまわりの調査。ドキュメントとサンプルプログラムを漁っていたら手頃そうなものを見つけたので読み込んでみる。まぁ、明日一杯くらいかければだいたい何をしているかわかるだろう。
・そんなこんなで、政府からサーバーは国内に置けという類のお達し。このところの動きとしてははやり敵対的な行動をとっている国の製品やらサービスは使うなという方向に行っている。これで経済が冷え込むと嘆く向きもあるようだけど、国内で青息吐息になっているところが息を吹き返すチャンスかもしれない。時代が大きく変わるときは「回れ右をしたら先頭になっていた」ということが往々にしてあるものだけど、この動きがそうした大転換の目になるかもしれないな。

1月2日 ・というところで、帰省先から帰る。夕方出たのだけど、首都高のジャンクション渋滞が電光掲示板にあったのに、行ってみたら全く無しのノンストップ。反対車線は大渋滞なのに、こちらはガラガラで、気づけば前に車が一台も見えない。これはこれで怖いのだ。なにせ首都高は結構な急カーブだらけ。前に車がいればその動きからある程度加減もできるけど、一人ぼっちで走るといきなり迫ってくる壁という感じでなかなかスリリング。
・家に着けばポストに1日の分厚い朝刊が挟まっている。後でじっくり眺めるとしようか。
・というところで、デバッグ用のコードを追加したプログラムを走らせてみる。なるほどな。そんなところで、評価ボードのマイコンが同じシリーズでメモリ容量が大きいだけなので、ひょっとしてそのままダウンロードできるかも?とやってみたら書き込めて、しかもちゃんと動いた。でも本番用のターゲットでは駄目。さて、これは一体何が起きているのだろう。

1月1日 ・そんなところで「明けまあしておめでとうございます」というところ。
・と言いながら年末年始も関係なしの受験生生活である(いや、受験生でも流石に1/1は休んだりするだろうと思うけど)。今日はPSoCのブートローダをちょっと調べることにする。

前月 次月
エース