PIC32+Harmony V1.07でConsoleのインスタンスが1つに制限される

今制作している機器では,Console機能をUSBとUARTに共通して実装し,どちらからでもコマンドを受け付けるようにする必要がある.
しかし,
Issue of the "Console System Service Library" in Harmony PIC32
の通り,Console機能の複数インスタンス生成でバグが見つかっていて,手動修正が必要となる.

続きを読む PIC32+Harmony V1.07でConsoleのインスタンスが1つに制限される

PIC32+Harmony Moduleに付随するPin Diagramでハマる

ConsoleとCommandのSystem Service Librariesを使っている.
このとき,Consoleのインスタンスを2つにし,インスタンス0をUart,インスタンス1をUSB DeviceのCDCに割り当て,どちらからでも同じコマンド入力に対応するようにしたいと思った.
手始めに,インスタンス0にUartのみ割り当て,デバッグをして,
ConsoleのSYS_CONSOLE_Write関数
Command Processor System Service Library
に引っかかりながらも,何とかコマンド入出力が可能になった.

続きを読む PIC32+Harmony Moduleに付随するPin Diagramでハマる

PIC32+Harmony System Service Librariesの Command Processor System Service Libraryでハマる

Harmony Ver 1.06.02で記述
HarmonyVer 1.07.02でも同様現象を確認

このライブラリは,DOSプロンプトのようなコマンドインターフェースを簡単に実装できる.
で,早速使ってみても動かない.
ヘルプの通りにコマンドとコールバック関数をちゃんと登録しているのに.
SYS_CMD_MSG関数などで表示はできるものの,コマンド入力を受け付けない.

ライブラリのプログラムを調べると,USARTからのデータをリードFIFOに登録していない.
なぜか・・・ここで2週間悩む.

続きを読む PIC32+Harmony System Service Librariesの Command Processor System Service Libraryでハマる

PIC32+Harmony System Service LibrariesのConsole SYS_CONSOLE_Writeでハマる

この関数の第2パラメータは,コンソール出力先がUSARTの時は関係ない.
関数内部で第2パラメータは見ていない.

これは大した問題ではないが.

大問題なのは,第3パラメータの文字列配列は,auto変数だとバグるということ.
関数内宣言の変数配列のポインタを渡すときは,static宣言する.
あるいはグローバル変数配列のポインタを渡すこと!.

続きを読む PIC32+Harmony System Service LibrariesのConsole SYS_CONSOLE_Writeでハマる

XC32コンパイラのコンパイル(最適化制約解除)

Attribute System(http://blog.goo.ne.jp/mk_nukkeyoh-/e/cb9500e28fe0bb567dc892e05c2755b8)様で取り組まれている,XC32のSelf Buildに取り組んでみた.
公開してあるbuild-xc32-133.shを使わせていただき,せっかくなので最新のXC32 V1.34をコンパイルした.
コンパイル環境は,MinGW32(base=v2013072200,GCC=v4.8.1-4)+MSYS(v2013072300)を使用した.

続きを読む XC32コンパイラのコンパイル(最適化制約解除)