ブログ - 最新エントリー

C++への対応

カテゴリ : 
雑記
2011-6-17 2:58
C++のコードが利用できない訳ではなく、それに伴う小細工が面倒なのと、小さいマイコンでそこまで要求されても・・・というのが正直なところ。
一番のネックは不用意に記述されて出力コードサイズが巨大化してしまう事。その他はやっぱり動的なメモリの確保といった所ですか。

ご質問の数としても少ない訳ではなく、その都度「無理」とか「とりあえず版」で対応していたのですが、次のリリース版ではSAM7Sがらみの一部のターゲットで「とりあえず版」にちょっとだけ手を加えて、クラスぐらいは使えるモノを解禁していこうかと思っています。
あまり期待しないでくださいね

FREEDOM IIIライブラリV4.0もうひといき

カテゴリ : 
雑記
2011-6-14 0:04
まだ未公開のFREEDOM III library v4.0ですが、互換性に関してのお問い合わせがありましたので、APIのリファレンスのみを先行して以下に公開しておきます。
FREEDOM III library v4.0
現行のAPIについては、ページの最初にあるpdfを参照してください。まだまだ書きかけの部分がありますが、リリース時には完成しています。

見れば見るほど嫌気がさすほどのボリュームと非互換性ですが、実際に使うのはそのうちの一部だけですので、それほど仰々しいものでも無いと思っています。
大きな違いだけ列挙しますと、
  • 適用はFDIII-HCに限定
  • DXLIBは以後不使用
  • API名称はできるだけ共通のフォーマットに変更
  • OSに依存できる機能(旧似非タスクやインストラクション)はOS任せに
  • PC版DXLIB2等との互換性を重視したパケット通信APIに
  • 初期化APIは全く互換性なし
  • CPU内蔵フラッシュを使用したモーションデータの管理機能を全面削除し、SDカード一本に絞る
  • 大幅な負荷率軽減
  • SDカードへの自由なアクセスAPI追加
  • デバイスとのネットワーク安定化
  • ネットワークを複数タスクでアクセスする際の排他制御の無意識化
  • いざという時もあろうかと思ってWDTを活性化
といったところでしょうか。
ホントToppers様様といった所です。

FREEDOM IIIライブラリの互換性

カテゴリ : 
TOPPERS
2011-6-7 11:45
まるで何とかの出前みたいに出る出るといってリリースされていないFREEDOM IIIライブラリですが、もう少しだけお待ちください。
旧来との互換性を無視という訳ではないのですが、OSで担える機能はそれに任せることにしたため、かなりの部分で互換性が保たれない状態です。おまけに、内部だけでもんでいる事もあって、毎日のようにかい離してしまっています
その代りと言っては難ですが、サンプルプログラムの拡充を図っていますので、使い勝手の向上を感じていただけるのではないかと思っています。

それと、FDIII-HCのブートローダですが、かなり頑張ってサイズを減らした事で、ユーザプログラムにおいては従来と同様のメモリマップを維持することが出来ました。先行してリリースしようとも考えていましたが、最新ライブラリあって意味を持つのでこちらもひとまずお待ちください。

SAM3S

カテゴリ : 
雑記
2011-5-25 0:21
最近はarmもcortexに主流が移りつつある様です。単純に早くてうまいのであれば使いたくなるものでもありますが、sam3sシリーズにはsam7sシリーズと端子の互換性がある程度確保されたものがあるので、チップを貼り替えさえすればいっちょあがりなんてぇ事になればなお幸せ
ソースの互換性はコアの違いから期待してもしょうがないところでもありますが、ペリフェラルは大差無い部分も多いので結構使いまわせましたし、JTAG経由の書き込みも難なく使えています。
メルトダウン後の処置の目途が立つ頃にはベステクでも何かこさえる気分になるかもしれませんが(逆かな)、自前で貼り替えてもハードルは低いので遊べるでしょう。

COMポートネタ

カテゴリ : 
その他
2011-5-6 17:21
最大は256までらしいが、255で正常に稼働せず。
まぁWindowsで256個もCOMポートを開くことはないが、Vistaが入ったPCで知らぬ間に使えるCOMポートが無くなっていたので、ちょっと調べてみたらとんでもない事に。どうやらBluetoothでペアリングを繰り返しているうちに、自動的に削除されていると思っていた仮想COMポートが、幽霊のように残っていた事が判明。
デバイスマネージャは通常接続されていない装置はリストに列挙されないが、環境変数"devmgr_show_nonpresent_devices"を追加し"1"を設定した後、デバイスマネージャで「非表示のデバイスの表示」にチェックを入れると、今まで見えなかったゴミもろとも表示される。

あとは片っ端から二度と使われることのないデバイスを一つ一つ手動で削除するだけだが、必要な物まで削除してしまわないように。
なお、Windows 7以降ならBluetoothデバイスのペアリングで追加されたCOMポートは、そのBluetoothデバイスを削除すれば一緒に無くなる模様。

ついでと言っては何だが、ちょっとだけプログラムネタ。
自前でCOMポートを扱うプログラムを作ろうとすると、設定項目とAPIのボリュームで結構大変。大そうな事をする訳でも無いのにプログラムの行数だけは増えてゆくもの。なんていうネタがあったので、至極単純なシリアルターミナルを数十行で作ってみた。
イベントやブロッキング・タイムアウトなんぞ一切無視して、全てポーリングで処理して無限ループするだけの代物。まるでマイコンのプログラムの様だw
#include <signal.h>
#include <windows.h>
#include <conio.h>

int term = 1;

void signal_handler (int signo) {
(void)signo;
signal (SIGINT, signal_handler);
term = 0;
}

void main (void) {
int i;
char c = 0;
HANDLE h = CreateFile ("\\\\.\\COM3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
DCB dcb = { BaudRate:115200, ByteSize: 8, Parity: NOPARITY, StopBits: ONESTOPBIT, };
COMMTIMEOUTS timeouts = {0,0,0,0,0};
COMSTAT stat;
DWORD l;
UCHAR buf[500];

if (h != INVALID_HANDLE_VALUE) {
signal (SIGINT, signal_handler);
if (SetCommState (h, &dcb)) {
if (SetCommTimeouts (h, &timeouts)) {
while (term) {
if (kbhit ()) {
c = getch ();
WriteFile (h, &c, 1, &l, NULL);
}
if (ClearCommError (h, NULL, &stat)) {
if (stat.cbInQue > sizeof (buf)) stat.cbInQue = sizeof (buf);
if (ReadFile (h, &buf, stat.cbInQue, &l, 0) != 0) for (i = 0; i < l; i++) putchar (buf[i]);
}
Sleep (5);
}
}
}
CloseHandle (h);
}
}
COMポートやボーレート等は適宜変更して、GCC Developer Liteのコンパイラオプションを開き、設定リストから「x86 (Console)」を選んでコンパイルすればWindowsのコマンドプロンプトで動くexeファイルの完成。終了するにはCtrl+Cを押してね。
まかり間違うとOSの負荷だけ上がってPCが熱暴走しかねないが、こんなおバカな代物でも時には使い道があるやも知れないので、備忘録として載っけておく。ってかTera TermやSimple Termでいいじゃん。

FDIII-HC Toppers版 かなり良い感じ

カテゴリ : 
TOPPERS
2011-4-18 1:26
昨年ちらっと触れたネタですが、ここに来てやっと完成度が上がってきました。互換性よりも利便性と性能向上が目的だったため、あるべき姿に近づいてきたかと思います。
残念なお知らせとしては、今後FREEDOM IIIライブラリはFDIII-HC専用として提供する事になりますので、旧来のSAM7S I/Oボードでのサポートは現在リリースしているGCC Developer Liteで終了となります。
さらに、最新FREEDOM IIIライブラリを使用するには、FDIII-HC本体のブートローダのアップデートが強要されます。これはブートローダにおいてSDカードを活用するための機能拡張が主になります。

とりあえずこんな感じにコーディングできれば楽しいじゃないですか。

といった所が現在予定している大きな更新ネタです。

AX-18Aへの対応

カテゴリ : 
新商品
2011-4-11 19:20
AX-12+のハイパワー・ハイスピード版といった位置付けにあるDynamixel AX-18Aの販売準備中ですが、Dynamixel Configurator Ver1.7.3.0以前において一部未対応の部分がありましたのでVer1.7.4.0にて先行対応しました。

厚み

カテゴリ : 
雑記
2011-4-9 16:04
何年かぶりに見た某誌の薄さに、色々思うところアリ。

SAM7S向けのDXLIBへの要望

カテゴリ : 
雑記
2011-4-5 0:51
SAM7SのEVBFDIII-HCであまり仰々しい事を強いらせずに使ってもらうつもりだったSAM7S向けのDXLIBですが、昔からイマイチなツクリだった事のと、詳細なアラームステートがわかるPC用のDXLIB2と似た構成でのAPIを提供して欲しいという要望もあって、広範に見直しているところです。

なお、DXLIB_SAM7SをいじるとFREEDOM IIIライブラリにも影響があるのと、サンプルコードもかなり修正が必要なので、もう少しだけ諸々検証してからGCC Developer Liteをアップデートします。

原発

カテゴリ : 
その他
2011-3-31 9:24
何か起こる前に全原発を安全に停止させて廃炉してくれ
リサイクルに回せないゴミは受付お断り
だからと言って不法投棄何ぞするな

もう原発の恩恵なんぞいらない