プロジェクトのフォルダを整理した [MPLABXとXC8]
(2013.08.01)
親族SNS管理人はマニュアルでプロジェクト・フォルダごとバック・アップするスタイル(CVSやSVNが使えない)でPICの開発を行っています。
I2C通信機能の組み込みでも、開発の大きなステップ(I2C単体送受が出来るようになったときとか、I2C割り込み処理の大幅な変更を決意したときとか)を見計らって、日付を付けたプロジェクト・フォルダのコピーを作成して来ました。同じプロジェクトのバックアップ・フォルダがいくつも並んでいると邪魔なので、新たにBluetooth専用フォルダーを作ってその下にプロジェクト・フォルダを移しました。
そして、デスクトップに置いたプロジェクト・フォルダへのショートカットを変更しようとして・・・
”あれ?ショートカットのプロパティが自動的に変更されてる”、
”(Windowsに)こんな機能があること、知らなかった”
残念ですがMPLABX IDEの方は、新しいプロジェクト・フォルダの置き場所を指示し直さなければなりません。面倒なことにCコンパイラのincludeディレクトリがフルパスで登録されるので、こちらも再指定しなければなりません。しかし、フルパスからプロジェクト・ディレクトリ相対の指定に変更しても、問題無いようです。
それまでの指定が
”C:\...\Application\Bluetooth_Interface_Common\INCLUDE”
デストロイして指定し直すと
”C:\...\Applocation\Bluetooth_Folder\Bluetooth_Interface_Common\INCLUDE”
デストロイせず、プロジェクト相対に書き直すなら
”INCLUDE”
です。
”プロジェクト・ディレクトリ直下のディレクトリはフルパスでなく相対指定してくれると良いんだけどなぁ~”
親族SNS管理人はマニュアルでプロジェクト・フォルダごとバック・アップするスタイル(CVSやSVNが使えない)でPICの開発を行っています。
I2C通信機能の組み込みでも、開発の大きなステップ(I2C単体送受が出来るようになったときとか、I2C割り込み処理の大幅な変更を決意したときとか)を見計らって、日付を付けたプロジェクト・フォルダのコピーを作成して来ました。同じプロジェクトのバックアップ・フォルダがいくつも並んでいると邪魔なので、新たにBluetooth専用フォルダーを作ってその下にプロジェクト・フォルダを移しました。
そして、デスクトップに置いたプロジェクト・フォルダへのショートカットを変更しようとして・・・
”あれ?ショートカットのプロパティが自動的に変更されてる”、
”(Windowsに)こんな機能があること、知らなかった”
残念ですがMPLABX IDEの方は、新しいプロジェクト・フォルダの置き場所を指示し直さなければなりません。面倒なことにCコンパイラのincludeディレクトリがフルパスで登録されるので、こちらも再指定しなければなりません。しかし、フルパスからプロジェクト・ディレクトリ相対の指定に変更しても、問題無いようです。
それまでの指定が
”C:\...\Application\Bluetooth_Interface_Common\INCLUDE”
デストロイして指定し直すと
”C:\...\Applocation\Bluetooth_Folder\Bluetooth_Interface_Common\INCLUDE”
デストロイせず、プロジェクト相対に書き直すなら
”INCLUDE”
です。
”プロジェクト・ディレクトリ直下のディレクトリはフルパスでなく相対指定してくれると良いんだけどなぁ~”
|
|
|
MPLABXで使うJREのVersionを調べてみた [MPLABXとXC8]
(2013.03.11)
親族SNS管理人は”MPLABX IDEをインストールするときには、始めにJREをインストールするもの”と思い込んでいました。ネット検索で見つかる日本語版のユーザーズ・ガイド<これです>には今でもそのように記されています。
ところが、Microchip TechnologyのDeveloper's Help Centerにこんな記述<これです>がありました。
"MPLAB X now installs its own version of Java on Windows and Linux . It is no longer necessary to install Java yourself or to ensure that you have the correct version. It is installed in the MPLAB X directory structure and will not interfere with any existing Java installation."
『MPLABXのディレクトリ構造の中に必要なJREを組み込むから、ユーザーは気にしなくて良い』と言うことです。
親族SNS管理人はJDK1.7でJAVAプログラムの開発環境を整えたのですが、”MPLABX IDEがJRE7に対応していない”と知って、自分の開発環境がどうなっているのかmplb_ide.confの記述を調べてみました。すると・・・
親族SNS管理人がJAVAの実行環境をUpdateした後も、MPLABX IDEが問題なく使えたのは、この仕組みのお陰でした。
良かった!
親族SNS管理人は”MPLABX IDEをインストールするときには、始めにJREをインストールするもの”と思い込んでいました。ネット検索で見つかる日本語版のユーザーズ・ガイド<これです>には今でもそのように記されています。
ところが、Microchip TechnologyのDeveloper's Help Centerにこんな記述<これです>がありました。
"MPLAB X now installs its own version of Java on Windows and Linux . It is no longer necessary to install Java yourself or to ensure that you have the correct version. It is installed in the MPLAB X directory structure and will not interfere with any existing Java installation."
『MPLABXのディレクトリ構造の中に必要なJREを組み込むから、ユーザーは気にしなくて良い』と言うことです。
親族SNS管理人はJDK1.7でJAVAプログラムの開発環境を整えたのですが、”MPLABX IDEがJRE7に対応していない”と知って、自分の開発環境がどうなっているのかmplb_ide.confの記述を調べてみました。すると・・・
jdkhome="C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.6.0_32-windows-x64\java-windows\"
親族SNS管理人がJAVAの実行環境をUpdateした後も、MPLABX IDEが問題なく使えたのは、この仕組みのお陰でした。
良かった!
|
|
|
MPLABX IDEでconfig設定を行う技を習得した [MPLABXとXC8]
(2012.12.27)
MPLABX IDEの導入から三日経って、新しいウィンドウにも少しずつ慣れてきました。開発をサポートする様々な改善・工夫が盛り込まれているので、最初のハードル(開発環境の変化)さえ飛び越えてしまえば、そのあとは”へー”とか”ふ~ん”とか感心しながら先に進めます。
以前”お試し”で触ったときは、何をどうしたらMPLAB IDE(V8)と同じことが出来るのか判らず、メニューを探し回るのにうんざりして、投げ出してしまいました。そのときと何が変わったのか判りませんが、”違いを受け入れられれば難しくは無い”のだと思います。
親族SNS管理人がMPLABX IDE(とXC8)を導入したのは、PIC18F45K50の試作環境を整備するためでした。サンプル・プロジェクトを立ち上げ、最初にXC8のconfig設定情報を探しました。
しかし、Help==>Help Content==>XC8 Toolchainと辿って、丹念に探しましたが見つかりません!
”どうなってるんだ(怒)”
MPLABX IDEのユーザーズ・ガイド”Chapter 12. コンフィグレーション設定の要約”にもXC8のコンフィグレーション設定については何も記述が有りません。
”どうなってるんだ(怒々)”
XC8コンパイラのユーザー・ガイドを調べて、漸く以下の文書に辿りつきました。
C:\Program Files (x86)\Microchip\xc8\v1.12\docs\chips\18f45k50.html
何とかconfig設定情報を手にしましたが、”MPLABX IDEからアクセス出来ないのは何か変”と思い直し、右上にある検索ウィンドウに”PIC18F45K50”を入力するとあっさり、この情報に辿り着きました
検索すれば直ぐに見つかる
よく見るとC18 Toolchainの情報です。
”XC8の方に一言書いておいて欲しいな~”とぶつくさ文句を垂れながら、ふと思いついてCompiler ToolchainをC18(v3.44)に替えてみると・・・
ビンゴ~!
何のことはない、XC8にしなくてもC18(v3.44)でコンパイルできるのです。あのリリース・ノートのDevice Support.htmの記述は一体何だったのでしょうか?まぁ、そのお陰でMPLABX IDEへの移行が成し遂げられたのですから、良しとしましょう。
---------------------------
ここまでは前ふりです
---------------------------
で、肝心の”MPLABX IDEのconfig設定技”ですが、Configuration Bitsを表示(Window==>PIC Memory View==>Configuration Bits)して、設定項目(例えばFOSCとか)ごとに(Option欄に示される)選択肢を一つを選び、(Setting欄に表示される)設定結果を確認します。一通り設定が済んだら、直ぐ下にある『Generate Source Code to Output』ボタンを押すと、指定したconfig設定を実現する、#pragma configのコードが表示されます。
例えばこんな感じ
これをソースにコピペすれば”config設定の出来上がり”と言うわけです。Toolに頼っぱなしになるのも問題ですが、親族SNS管理人はconfig設定情報ファイルを探してうろうろすることはもう無い(PIC18F45K50が多分最後になる)と思います。config設定はこれで決まりだ!
MPLABX IDEの導入から三日経って、新しいウィンドウにも少しずつ慣れてきました。開発をサポートする様々な改善・工夫が盛り込まれているので、最初のハードル(開発環境の変化)さえ飛び越えてしまえば、そのあとは”へー”とか”ふ~ん”とか感心しながら先に進めます。
以前”お試し”で触ったときは、何をどうしたらMPLAB IDE(V8)と同じことが出来るのか判らず、メニューを探し回るのにうんざりして、投げ出してしまいました。そのときと何が変わったのか判りませんが、”違いを受け入れられれば難しくは無い”のだと思います。
親族SNS管理人がMPLABX IDE(とXC8)を導入したのは、PIC18F45K50の試作環境を整備するためでした。サンプル・プロジェクトを立ち上げ、最初にXC8のconfig設定情報を探しました。
しかし、Help==>Help Content==>XC8 Toolchainと辿って、丹念に探しましたが見つかりません!
”どうなってるんだ(怒)”
MPLABX IDEのユーザーズ・ガイド”Chapter 12. コンフィグレーション設定の要約”にもXC8のコンフィグレーション設定については何も記述が有りません。
”どうなってるんだ(怒々)”
XC8コンパイラのユーザー・ガイドを調べて、漸く以下の文書に辿りつきました。
C:\Program Files (x86)\Microchip\xc8\v1.12\docs\chips\18f45k50.html
何とかconfig設定情報を手にしましたが、”MPLABX IDEからアクセス出来ないのは何か変”と思い直し、右上にある検索ウィンドウに”PIC18F45K50”を入力するとあっさり、この情報に辿り着きました
検索すれば直ぐに見つかる
よく見るとC18 Toolchainの情報です。
”XC8の方に一言書いておいて欲しいな~”とぶつくさ文句を垂れながら、ふと思いついてCompiler ToolchainをC18(v3.44)に替えてみると・・・
ビンゴ~!
何のことはない、XC8にしなくてもC18(v3.44)でコンパイルできるのです。あのリリース・ノートのDevice Support.htmの記述は一体何だったのでしょうか?まぁ、そのお陰でMPLABX IDEへの移行が成し遂げられたのですから、良しとしましょう。
---------------------------
ここまでは前ふりです
---------------------------
で、肝心の”MPLABX IDEのconfig設定技”ですが、Configuration Bitsを表示(Window==>PIC Memory View==>Configuration Bits)して、設定項目(例えばFOSCとか)ごとに(Option欄に示される)選択肢を一つを選び、(Setting欄に表示される)設定結果を確認します。一通り設定が済んだら、直ぐ下にある『Generate Source Code to Output』ボタンを押すと、指定したconfig設定を実現する、#pragma configのコードが表示されます。
例えばこんな感じ
// PIC18F45K50 Configuration Bit Settings #include <p18F45K50.h> // CONFIG1L #pragma config PLLSEL = PLL4X // PLL Selection (4x clock multiplier) #pragma config CFGPLLEN = OFF // PLL Enable Configuration bit (PLL Disabled (firmware controlled)) #pragma config CPUDIV = NOCLKDIV// CPU System Clock Postscaler (CPU uses system clock (no divide)) #pragma config LS48MHZ = SYS48X8// Low Speed USB mode with 48 MHz system clock (System clock at 48 MHz, USB clock divider is set to 8) // CONFIG1H #pragma config FOSC = INTOSCIO // Oscillator Selection (Internal oscillator) #pragma config PCLKEN = ON // Primary Oscillator Shutdown (Primary oscillator enabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor (Fail-Safe Clock Monitor disabled) #pragma config IESO = OFF // Internal/External Oscillator Switchover (Oscillator Switchover mode disabled) (この後もずらずら続く)
これをソースにコピペすれば”config設定の出来上がり”と言うわけです。Toolに頼っぱなしになるのも問題ですが、親族SNS管理人はconfig設定情報ファイルを探してうろうろすることはもう無い(PIC18F45K50が多分最後になる)と思います。config設定はこれで決まりだ!
|
|
|
大事なことを書き忘れた [MPLABXとXC8]
(2012.12.26)
新しい技(PICkit3の二個使い)で有頂天になり、大事なこと(どうしたらMPLABXを二つ立ち上げることができるか)書き忘れました。と言ってもマニュアルに書いてある通りなのですが・・・
”2.6 IDE で複数のインスタンスを使う方法”という地味な見出しの所でやり方が説明されていました。
PICkit3二個使いのやり方
マニュアルに記されたディレクトリを無視して、適当なディレクトリを設定しましたが今のところ不都合はありません。ショート・カットのプロパティでは”作業ディレクトリ”も設定できますが、こちらは使わない(多分)ようです。親族SNS管理人は、一応こちらにも(--userdir以下と)同じディレクトリを設定しました。
こんな感じ
赤線部分を追加
ショート・カット名(”MPLABX1”と”MPLABX2”)だけだと紛らわしいのでアイコンの色を変えてみました。(ちょっと懲りすぎ?)
GIMPで色相を変えてみた
新しい技(PICkit3の二個使い)で有頂天になり、大事なこと(どうしたらMPLABXを二つ立ち上げることができるか)書き忘れました。と言ってもマニュアルに書いてある通りなのですが・・・
”2.6 IDE で複数のインスタンスを使う方法”という地味な見出しの所でやり方が説明されていました。
PICkit3二個使いのやり方
マニュアルに記されたディレクトリを無視して、適当なディレクトリを設定しましたが今のところ不都合はありません。ショート・カットのプロパティでは”作業ディレクトリ”も設定できますが、こちらは使わない(多分)ようです。親族SNS管理人は、一応こちらにも(--userdir以下と)同じディレクトリを設定しました。
こんな感じ
赤線部分を追加
ショート・カット名(”MPLABX1”と”MPLABX2”)だけだと紛らわしいのでアイコンの色を変えてみました。(ちょっと懲りすぎ?)
GIMPで色相を変えてみた
|
|
|
新しい技(PICkit3の二個使い)を習得した [MPLABXとXC8]
(2012.12.25)
MLPABX IDE(V1.60)とXC8(V1.12)をインストールしました。手順は前(3月頃)と変わり無く、滞りなく進みました。
早速、MPLAB IDE上で作ったtemp_controler3のプロジェクトをインポートしてみましたが、そのままではコンパイル(コンパイラーをXC8に変えた)は通りませんでした。ヘッダー・ファイルを色々修正しなければならないようです。ここはじっくり、XC8の環境に向き合う必要があります。一旦、temp_controler3のコードから離れて、XC8のサンプル(テンプレート)から始めることにしました。
テンプレートはこんな感じ
これに必要なコードを付加して、temp_controler3のプロジェクトを立ち上げるつもりです。
MPLABXで遊んでみました。親族SNS管理人は”設計資料一式をプロジェクト・フォルダに放り込んでおく"のが好みです。MPLABX IDEのファイル枠にはプロジェクト・フォルダ以下のファイルが全て表示され、テキスト・ファイルの編集だけでなく、こんなことも出来てしまいます。
JPGファイルを開いてみた
PDFファイルをクリックするとAdobe Readerが(最大化したIDE画面の上に)ポップアップするので、マニュアル参照に重宝しそうです(使用するデバイスのマニュアルは設計資料フォルダの中に置くのが親族SNS管理人のスタイル)。
そして、MPLABX IDEで一番嬉しかったのがこれ!
♪じゃじゃ~ん♪
MPLABXのウィンドウが二つ
”PICkit3の二個使い”(プロジェクト・プロパティで異なるPICkit3を指定している)です。
PIC間で通信するアプリケーションを開発するとき(例えばステッピング・モータ・コントローラなど)、いちいちPICkit3を差し替えてデバッグする苦労から解放されます。temp_controler3でもリモート表示する計画なので早速役に立つ筈です。
嬉しい!
MLPABX IDE(V1.60)とXC8(V1.12)をインストールしました。手順は前(3月頃)と変わり無く、滞りなく進みました。
早速、MPLAB IDE上で作ったtemp_controler3のプロジェクトをインポートしてみましたが、そのままではコンパイル(コンパイラーをXC8に変えた)は通りませんでした。ヘッダー・ファイルを色々修正しなければならないようです。ここはじっくり、XC8の環境に向き合う必要があります。一旦、temp_controler3のコードから離れて、XC8のサンプル(テンプレート)から始めることにしました。
テンプレートはこんな感じ
#if defined(__XC) #include/* XC8 General Include File */ #elif defined(HI_TECH_C) #include /* HiTech General Include File */ #elif defined(__18CXX) #include /* C18 General Include File */ #endif #if defined(__XC) || defined(HI_TECH_C) #include /* For uint8_t definition */ #include /* For true/false definition */ #endif #include "system.h" /* System funct/params, like osc/peripheral config */ #include "user.h" /* User funct/params, such as InitApp */ /******************************************************************************/ /* User Global Variable Declaration */ /******************************************************************************/ /* i.e. uint8_t ; */ /******************************************************************************/ /* Main Program */ /******************************************************************************/ void main(void) { /* Configure the oscillator for the device */ ConfigureOscillator(); /* Initialize I/O and Peripherals for application */ InitApp(); /* TODO */ while(1) { } }
これに必要なコードを付加して、temp_controler3のプロジェクトを立ち上げるつもりです。
MPLABXで遊んでみました。親族SNS管理人は”設計資料一式をプロジェクト・フォルダに放り込んでおく"のが好みです。MPLABX IDEのファイル枠にはプロジェクト・フォルダ以下のファイルが全て表示され、テキスト・ファイルの編集だけでなく、こんなことも出来てしまいます。
JPGファイルを開いてみた
PDFファイルをクリックするとAdobe Readerが(最大化したIDE画面の上に)ポップアップするので、マニュアル参照に重宝しそうです(使用するデバイスのマニュアルは設計資料フォルダの中に置くのが親族SNS管理人のスタイル)。
そして、MPLABX IDEで一番嬉しかったのがこれ!
♪じゃじゃ~ん♪
MPLABXのウィンドウが二つ
”PICkit3の二個使い”(プロジェクト・プロパティで異なるPICkit3を指定している)です。
PIC間で通信するアプリケーションを開発するとき(例えばステッピング・モータ・コントローラなど)、いちいちPICkit3を差し替えてデバッグする苦労から解放されます。temp_controler3でもリモート表示する計画なので早速役に立つ筈です。
嬉しい!
|
|
|
開発環境を変更する決意を固めた [MPLABXとXC8]
(2012.12.24)
温度コントローラ3の開発に向けて準備を進めています。温度コントローラ2にタッチ・スイッチと電流出力(デジタルとアナログ)を追加する構想です。
I/Oピン数とプログラム・メモリのサイズがネックになっていて、LCD表示とUSBインターフェースに関して、”そのまま残す”、”機能を削減して残す”、”片方だけ残す”、”両方とも諦める”、色々ある選択肢を前にして決めかねています。
最有力候補は、
(1)デバイスをPIC18F45K50に変更してI/Oピンを確保する。
(2)タッチ・スイッチの数を増やしてモード切替操作をシンプルにする。
(3)残ったプログラム・メモリで電流出力機能を追加する。
(4)足りなければUSB経由のコマンド受信操作を削除する。
(データ・ログ送信機能は残す)
(5)それでも足りなければ、LCD表示を諦める。
(LEDチカチカで諸々を表示する)
というものです。
”タッチ・スイッチ化でどれだけプログラム・メモリが捻出できるか?”によって開発が左右されるので、早速PIC18F45K50でプログラムの試作を始めようとしたのですが、しょっぱなで躓いてしまいました。
mplabc18だと、コンフィグ設定が出来ません!
これまで(mplabc18の場合)、以下のような構文でコンフィグを設定してきましたが、PIC18F45K50の<設定値>に関する情報が見つからないのです。
#pragma config <設定値>
無理やりCONFIG_DECLマクロを定義してコンパイルしたら、こんな警告メッセージが表示されました。
”_CONFIG_DECL macro has been deprecated; please utilize #pragma config”
そうしたいのは山々なんですが・・・
結局、mplabx-ide-v1.60のリリース・ノートのDevice Support.htmを見て諦めました。そこに”PIC18F25K50とPIC18F45K50はC18のサポート対象外で、XC8ならPIC18F25K50とPIC18F45K50をサポートしている”と記されていました。orz
止むを得ません。これを機にMPLAB_X&XC8へ移行する決意を固めました。前回はお試しでしたが、今回は移行します。さて、どうなるか?
温度コントローラ3の開発に向けて準備を進めています。温度コントローラ2にタッチ・スイッチと電流出力(デジタルとアナログ)を追加する構想です。
I/Oピン数とプログラム・メモリのサイズがネックになっていて、LCD表示とUSBインターフェースに関して、”そのまま残す”、”機能を削減して残す”、”片方だけ残す”、”両方とも諦める”、色々ある選択肢を前にして決めかねています。
最有力候補は、
(1)デバイスをPIC18F45K50に変更してI/Oピンを確保する。
(2)タッチ・スイッチの数を増やしてモード切替操作をシンプルにする。
(3)残ったプログラム・メモリで電流出力機能を追加する。
(4)足りなければUSB経由のコマンド受信操作を削除する。
(データ・ログ送信機能は残す)
(5)それでも足りなければ、LCD表示を諦める。
(LEDチカチカで諸々を表示する)
というものです。
”タッチ・スイッチ化でどれだけプログラム・メモリが捻出できるか?”によって開発が左右されるので、早速PIC18F45K50でプログラムの試作を始めようとしたのですが、しょっぱなで躓いてしまいました。
mplabc18だと、コンフィグ設定が出来ません!
これまで(mplabc18の場合)、以下のような構文でコンフィグを設定してきましたが、PIC18F45K50の<設定値>に関する情報が見つからないのです。
#pragma config <設定値>
無理やりCONFIG_DECLマクロを定義してコンパイルしたら、こんな警告メッセージが表示されました。
”_CONFIG_DECL macro has been deprecated; please utilize #pragma config”
そうしたいのは山々なんですが・・・
結局、mplabx-ide-v1.60のリリース・ノートのDevice Support.htmを見て諦めました。そこに”PIC18F25K50とPIC18F45K50はC18のサポート対象外で、XC8ならPIC18F25K50とPIC18F45K50をサポートしている”と記されていました。orz
止むを得ません。これを機にMPLAB_X&XC8へ移行する決意を固めました。前回はお試しでしたが、今回は移行します。さて、どうなるか?
|
|
|