SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

2011-07-27(Wed) 次期主力16F688の2

  先日、16F688を始めた、のだが、イレギュラな14ピンのPICだけあって、秋月ライタのゼロプレッシャソケットで直接に書き込むことができない。秋月では、ICソケットで一部だけゲタを履かせて対処する方法を例示していたが、そりゃちょっと面倒すぎるってもんである。

  画像の説明

  つーわけで、ずーっと前に作った、インサーキットプログラミング用のゲタを使い、信号をブレッドボードまで引っ張ってきて、ブレッドボード上で書き込む方法を考案した。実は、丸ピンICソケットのピンは、ブレッドボードへの抜き差しが容易かつ確実なので、作業効率は悪くないのである(製品による相性はあるだろうが)。

  と、それはさておき、動かん。シリアル入力がトンと動かない、シリアル入力どころか、LEDチカチカのパターンを変えようとしても動かない、処理前半のシリアル出力の数を変えるだけなら動く、NOP命令をひとつ足すだけで動かなくなる、よく考えたら動かないときは、ユーザのコードが動作するまでに達していないように見える、もしかするとsdccのライブラリのバグじゃないのか? gpdasmまで引っ張り出してきて、吐かれたコードのインスペクションまで始めたが、よくわからん……散々、動かない地獄を這いずり回って、ようやく対処方法がわかった……

  「コードサイズが4ワードの倍数だと動く」

  ……って、いったいそりゃ、どんな無理ゲーだよッ!! ATTACHバカよねぇ〜、おバカさんよねぇ〜、と歌いたくなったぞ。

  おそらくは、sdccかそのライブラリのバグなのだろうが、Cを使うということは、お気楽プログラミングと引き替えに、いくらかのブラックボックスを受け入れる、ということなのだな、と再認識。

  とはいえ、とりあえずは動かない地獄のループを抜け出した。はぁ。