denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

PIC開発

PIC_colo_miniがようやく動いた

PIC16F1829を使ったPIC_colo_miniがようやく動きました。組み立てたのはまだ1台だけです。今年の夏は、あまりに暑いので半田付け作業をする気になれませんでした。(^_^;) PIC16F1788用PIC_coloデバッガをPIC16F1829用に書き換える作業はスムーズに進んだの…

なんとかLチカが動いた

『Lチカ・プログラムをLoadして動かす』 やろうとしたのはそれだけなのですが・・・ LoadコマンドでLチカ・プログラムをFlashメモリに書き込みました。Runコマンドで所定のアドレス(cinit)から走り出しました。 ただ・・・ 直ぐ、0番地付近に設定したBrea…

放置していた不具合に対処した

通信ポートは、現在の環境に合わせてWindowsなら”COM4”、Linux(Raspi)なら”/dev/ttyUSB0”を設定しています。これを利用者の環境に合わせて設定できるようにする計画なんですが・・・ 何らかの事情でPICと通信できない場合、今までのプログラムは受信待ちル…

readelfの問題が解決した

Raspi上の動作確認で、関数リストを作成できないという不具合が発覚しました。 実は、WindowsとRaspiでreadelfの出力に違いがあることは分かっていて、解析内容は同じなのですが、Raspiの方はコメントが日本語になっています。 <Windows上のxc32-readelfの…

Raspi上で動かしてみた

当初はRaspiとPIC間の通信にI2Cを使う計画でした。しかし、USBシリアルを利用すればPCでも同じアプリが動くことに気付き、UART通信でやることにしました。 それ以来、開発はPC上で進めてきましたが、粗方動き始めたので久しぶりにRaspi上で動かしてみること…

タイミング依存のバグが見つかった

不具合に気付いたのはPICのTMR0レジスタを読み出したときです。TMR0は常にカウントUPしているので、読み出す度に異なる値が表示される筈なのですが、0を示したままです。はて? 調べてみると、ホストとPIC間のコマンド送受が正しく機能していません。あれこ…

break_conditionとbreak_statusの操作は混乱気味

PIC側に設定されているbreak_conditionとbreak_statusをホスト側で読み取り、break_statusをクリアして書き戻したり、break_conditionに”THRU”または”BREAK”を設定して書き戻したりする操作を組み込もうとしています。 break_conditionとbreak_statusを反復…

cinitのことを忘れていた

PICのProgram Memoryを眺めていて、リセットからMain関数が呼び出される前に、何か処理していることに気が付きました。リスト・ファイルを調べて見ると・・・Cプログラムの初期化処理(cinit)です! ユーザ・プログラムの起動は、単純にmain関数を呼び出せ…

PICkit3の夏バテ対策を見つけた

現在の気温は27度。久しぶりに涼しい朝を迎えています。お陰様でPICkit3も好調です。 気温が30度を越すとPICkit3の調子がおかしくなる(<==夏バテと呼んでる)のですが、最近頻発するのが”A tool request has been waiting for・・・”というエラーです。 デ…

PICkit3が夏バテした

昨日(8/9)は関東地方も38度を超える猛暑日でした。 エアコンの無い(扇風機だけ ^_^; )部屋で開発しているので、室温もぐんぐん上がっていきます。 昨年も経験しているのですが、猛暑日になるとPICkit3がおかしくなります。昨日も3時過ぎに変なメッセー…

関数を固定アドレスに配置してみた

目指しているのは、ユーザ・プログラム(HEXファイル)をFlashメモリに書き込んで、ユーザが定義した関数を呼び出すことです。 HEXファイルを読み取り、Flashメモリに書き込むところまで出来ました。 あとは、書き込んだFlashメモリ上のアドレスを関数コール…

MCCでサクッと開発開始

Tools ==> Embedded ==> MPLAB Code Configuratorと辿って、MCCを起動すると下のような画面が表示されます。(<==起動に時間が掛かります)今回はホストとPIC間の通信にUARTを使い、Flash Programmingを行うので、Device ResourcesからEUASRTとMEMORY(<==下…