« 2012年12月 | トップページ | 2013年2月 »

2013.01.21

粗大ごみ処分

特電のオフィスには使われていないソファーが2個あって、かなり場所を圧迫していました。個人で区にゴミ処理を依頼したら300円~1800円くらいで済むのに、事業者の出す粗大ゴミは区は回収してくれません。ゴミ処理業者に依頼しなければなりません。

このソファーを捨てようと、いままで何度かいろいろな粗大ゴミ処理業者に問い合わせていたことはあったのですが、どの業者さんもトラック費用とかいうことで5万円くらいの見積もりを出されていました。ソファーが5万円もしないのに、捨てるのに5万円ってどういうことと!?と、躊躇して、ずっと捨てられずにいました。

さて、今日の朝、例のごとく「ご家庭で不要になった粗大ごみを無料で回収いたします。テレビ・ステレオ・コンポ、動かなくても映らなくても結構です・・・・」のトラックが回っていたので、気になってググってみると、やはりあの無料回収はヤバイとのこと。

ちゃんとお金を出して処理してもらうのが良さそうなのことで、粗大ごみ回収業者を検索して、見積もりを依頼してみました。今日見つけた業者さんは、かなり良心的で、2人掛けソファー×2個と、折りたたみ自転車1台と、ラックに使っていた棚板数枚を処分して2万円弱でした。

長年の懸案だった、ソファーの片づけができ、特電のオフィスがひろびろしました。

縄跳びくらいならできそうです。

これで運気もUpかな

| | コメント (2)

2013.01.17

新規のRXduinoアプリを作るには(CubeSuite+で)

RXduinoのアプリを作る場合は、基本的にツリーに元からあるuserappサブプロジェクトの中のmain.cppを改造したり、そのフォルダにファイルを追加していってユーザプロジェクトを作ってください。

もし完全に新規にアプリケーションのプロジェクトを作成したい場合は、ツリーのどこかで右クリックして、「追加→新しいサブプロジェクト」を行ってください。

Rxcs_4

そして、「空のアプリケーション(CC-RX)」として作成し、プロジェクト名を適当につけ、作成場所はcslib\の下に作ります。

Rxcs_5

そして、「ファイル→追加→既存のファイルを追加」、とやります。

Rxcs_6

次に開いたダイアログでは、cslib\cscommon\フォルダにある4つの.cファイルを追加します。

Rxcs_7

そして、インクルードパスやマクロ定義を追加するのですが、「CC-RX(ビルド・ツール)」の上で右クリックし、ビルドオプションのインポートを実行し、既存のusertappから設定をインポートすればOKです。

このとき、ハマりやすいのですが「サブプロジェクト」の「アプリケーション」のサブプロジェクトファイル(*.mstp)を選ばなければインポートできません。

そして、また「ファイル→追加→既存のファイルを追加」を行い、今度はcslibフォルダにある*.libファイルを追加します。RaXinoの場合はtkdnhal.libとrxduino.libが必須で、あとのeeprom.lib、fatfs.lib、liquidcrystal.lib、sdmmc.lib、servo.lib、spi.lib、、usbhost.lib、wire.libは必要な場合のみ追加してください。

Rxcs_9

これで、新しいアプリケーションのプロジェクトができました。

最後にmain.cppを作成し、

#inlcude <rxduino.h>
void setup()
{・・・}
void loop()
{・・・}

などを書けば完成です。

ただ、リンク時に
** L2142 (E) Interrupt number "223" of "vector" has multiple definition
のようなエラーが出ることがあります。

この対処法はまだ不明です。

| | コメント (0)

CubeSuite+でRXduinoをビルドする

ルネサスエレクトロニクスのCubeSuite+という新しい統合開発環境があります。CubeSuite+はHEWより新しいツールで、いろいろな点(アイコンやフォント、文字コード、ウィンドウのドラッグアンドドロップなど)が近代化されています。

このCubeSuite+を使えばRXマイコンのプログラムをビルドできるので、RXduinoをCubeSuite+でビルドできるようにしてみました。

ソース付き版はこちらからダウンロードできます。

rxduino-106-src-cs.zipをダウンロード

ライブラリ版はこちらからダウンロードできます。

rxduino-106-lib-cs.zipをダウンロード

上のアーカイブを解凍していただくと、rxduino-106-csあるいはrxduino-106-lib-csというフォルダが出てきます。これをC:\WorkSpaceあたりに移動してください。

その中のcslibフォルダに、CubeSuite+のRXduinoプロジェクトの一式が納められています。

Rxcs_1

RaXino用にライブラリをソースコードごとビルドするには、CubeSuite+で、「RXduinoライブラリ構築(RaXino).mtpj」 を開いてください。

ターゲットボードごとのプロジェクトは、これから整備していこうと思います。

Rxcs_2

RaXinoLibのプロジェクトを開いたときには、下の図のようにuserappという1つのサブプロジェクトが登録されていると思います。このuserappが、ユーザが作るアプリです。中にはresetprg.cや、intvect.cなどがありますが、ユーザが編集するのはmain.cppです。

Rxcs_raxinolib

一方、ソースコード付きのライブラリアーカイブを展開したときには、このように様々なライブラリのサブプロジェクトが一緒に加わります。

Rxcs_raxinosrc

そして、これを全体ビルドすればOKなのです。

はい、めでたしめでたし・・・ではさすがに芸がないので、CubeSuiteのデフォルトの設定から変えたビルドのプロパティを解説します。ビルドのプロパティは、プロジェクトツリーにあるCC-RX(ビルド・ツール)というところをクリックすれば編集できます。

① インクルードパスに、..\..\include\rxduino, ..\..\include\tkdnhal ,
..\..\include\lib
の3箇所を追加します。

Rxcs_3

② マクロ定義でTARGET_BOARD=BOARD_RAXINOを追加します。

TARGET_BOARDの値として取りうる値は、

  • BOARD_YRDKRX62N
  • BOARD_YRDKRX63N
  • BOARD_RAXINO
  • BOARD_GRSAKURA
  • BOARD_RAXINOI
  • BOARD_NP1055
  • BOARD_ULT62N0_SDRAM
  • BOARD_ULT62N0_MMC
  • BOARD_ULT62N
  • BOARD_RXMEGA

です。ライブラリを再構築する際は、すべてのサブプロジェクトでこのマクロ定義を変更して、再ビルドしてください。ちょっと面倒ですね。

③ リンカのセクション定義を修正します。

さて、E1エミュレータがあれば、ソースコードレベルでデバッグもできます。下の図のボタンを「ビルド後デバッグ」押せば、ビルドした後、自動的にプログラムをマイコンに書き込んでデバッグモードに入ってくれます。

Rxcs_10

あとは、ハードウェアブレークポイントを仕掛けたり、自由自在にデバッグできるはずです。

Rxcs_11

CubeSuiteですごいなと思うのは、この解析グラフという機能です。おそらく変数の値をサンプリングしてグラフ化してれるのだと思うのですが、まだ動かせていません。おいおい探っていこうと思います。

Rxcs_12

まだCubeSuiteの使い方はよくわかっていないところが多いので、何か問題もあるかもしれません。とりあえず動いた、というレベルですので、この情報はご参考までにとどめておいてください。

| | コメント (0)

2013.01.16

DIP20ピン形状のRXマイコン基板の配線

DIP20ピン形状のRXマイコン基板の配線が引けて、ピン配置が決まりました。

Rxdip_pinout

  • SPIとUARTは2系統出しています。SPIのポートBは、JTAGと共有なので、E1エミュレータもつなげられます。
  • また、UARTは3系統出ていて、UART0はI2C、UART1はSPI、UART6はCANと共有されています。
  • USBホスト/ファンクション切り替え回路もオンボードで搭載しているので、USB_D+、USB_D-、VBUS、GNDにコネクタをつなげば、USBがホスト/ファンクションどちらでも使えます。
  • PA4、PA5、PA6、PA7には、これからADコンバータをつなげられるか検討します。
  • フルカラーLEDがのっていて、好きな色に光らせることができます。
  • オンボードで12MHzの水晶が乗っていて、8逓倍してCPUが96MHzで動きます。
  • USBの信号線には保護ダイオードが乗っています。

モード切り替えの端子(MD)をLにするとUSBプログラムモードになり、Hまたはオープンにするとプログラムが起動します。

書き込みにはFDTや、CubeSuite、HEW、RXprogなどいろいろなツールが使えます。余裕があればマスストレージ機能も搭載したいです。

プログラムは、もちろんRXduinoライブラリで楽々開発でき、USB仮想COMポートが使えるようになります。

基板の雰囲気はこんな感じです。

Rxdip_2

ピンヘッダは、秋月の連結ソケットが使えるように設計しました。

来週中にはもう一種類の別の基板と一緒に、面付けして出図しようと思います。

いまのところ一般向けに販売する予定はありませんが、販売するとしたら、価格は2,000円~2,500円程度(ただし1000個受注時の単価)でいきたいと思います。

これは評価ボードではなく、「DIP形状のIC」というスタンスです。つまり、実装したり外したりして繰り返し使うものではなく、1回限りの消耗品です。1個単位での単価10,000円程度になりますが、3個、5個あるいは10個、25個パックとして販売し、消耗品として考えていただけるような、数量に応じたリーズナブルな価格を設定するつもりです。

| | コメント (0)

2013.01.12

FPGAでの割り算は怖くない

これまで割り算回路は規模が大きくなったりレイテンシが遅くなると思って避けてきたのですが、どうしても割り算を避けられない計算が必要になったので、XILINXのCoreGenに用意されている割り算IPコアを使ってみることにしました。

そのCoreGenのIPコアというのは、Divider Generatorというものです。

Divgen

設定すべきところはいくつかあるのですが、

  • Dividend and Quotient・・割られる数のビット幅
  • Divisor Width・・割る数のビット幅
  • Remainder Type・・余りの出し方 (余りを出すか小数点以下の計算をするか)
  • Fractional Width・・余りのビット幅
  • Operand Sign・・符号ありかなしか
  • Clocks per Division・・何クロックごとにサンプリングするか

です。詳しいことは後程解説します。

さて、実際に65535/xを計算する回路を作って、BLOGANAを埋め込んで実験してみたところ、下の図のような感じで反比例の関数が描けました。

Dividor

さて、いったい何クロックで計算してくれているのかを調べてみます。

Div_with_frac

このRFDという信号は、コアが出力する信号で「今のデータを取り込みますよ」というのを示すものだそうです。この信号が出てから35クロック後に計算結果が出ていました。

「35クロック」はちょっと遅くないかなと思って調べてみたのですが、どうやら正解でした。

この割り算コアは筆算の要領で計算しているのでしょう。だから、割られる数のビット幅が16bitだったら、基本的には16回の繰り返しをするので、16+3クロックかかります。

「あまり」の出し方を「Remainder(あまり)」にするか「Fractional(小数)」にするかの選択があって、Fractionalにすると、もう16クロックかかります。

Remainderなら単純にあまりを計算するだけなのですが、Fractionalという出力は、余りではなく、小数点以下の数値を計算するものということです。

この意味は、たとえば、65535÷3 = 16383.75 です。この0.75を2進数にすると、0.1100000000000000なので、小数点以下を16bitの整数としてみれば49152になるわけです。

もうひとつ例を出します。たとえば、65535÷93を計算させると商は704で、余りは44394と出ます。この44394というのは0.67740…を意味します。

このようにあまりを小数として出すときには、 Fractional  = 余り×2^(Fractionalのビット幅)÷割る数 なので、もう1回割り算をしなければいけません。そういうわけで、16クロック余計にかかっていると思われます。

Remainder TypeをRemainderに戻したら、ちゃんと19クロックで計算してくれるようになりました。

Div_with_rem

それでも、19クロックはかかります。乗算と違ってすぐには出ません。

CoreGenの設定項目で「Clocks per Division」というのがありますが、これは何クロックごとにサンプリングするかを設定するものです。これを1にすると、毎クロックごとに計算してくれます。(RFDは上がりっぱなしになる)

でも、レイテンシは19クロックなので、つまり、中でパイプライン化して処理しているようです。結果が出る前に次のデータを与えても、ちゃんと古いデータを覚えていて計算をしてくれています。

Pipelined

16bit÷16bitの計算で、余りはFractionalとして出すようにした場合の、使用スライス数と、論理合成時間を計ってみました。スライス数は、除数の生成カウンタやロジアナコアも含めたサイズです。結果は以下のとおりです。

Clocks per Division slice数 論理合成時間 XC6SLX45の何%を使うか
1 365 6分55秒 5%
2 301 1分44秒 4%
4 193 1分39秒 3%
8 130 1分32秒 2%
除算器なし 41 1分26秒 1%

※XC6SLX45での実験結果

1クロックごとに計算するような設定にすると、論理合成時間が極端に長くなります(特にImprementation)。データが毎クロックごとに到着するのでなければ、Clocks per Divisionはできるだけ大きくしておいたほうが良いでしょう。

逆に、Clocks per Division = 8ならば、このコアを入れても論理合成時間が長くなることはないようです。何も入れない回路と大した差はありません。また、radix-2の設定にしておけば、乗算器も使いません。

XILINXのCoreGenが生成する割り算回路はちゃんと動作してくれます。Clocks per Division = 8ならSliceもそれほど食いませんし、論理合成が極端に長くなることもありません。

乗算と違って1クロック後に結果が出るわけではありませんが、余りを「あまり」として出すならレイテンシは、BIT数+1クロックです。(符号付きの場合は2クロック増える)

※回路構成の選択で、Radix-2ではなくHigh Radixを選択すると、何ビットかまとめて計算してくれるらしく、レイテンシをとても短くできる。たとえば32bit÷16bitなら5クロックで計算可能。ただし、BlockRAMやDSP48A1sを大量に消費する。

結論を言うと、SLICE数や論理合成時間を気にすることなく使っていいと思います。

| | コメント (0)

2013.01.10

DIP20ピン形状のRXマイコン基板を考案

最近、受託開発でやっているFPGAの案件があって、SPI通信でいろいろなパラメータを送らなければFPGAが動作しない仕様になっています。

FPGAにSPI通信でパラメータを送り込むためにRXduinoを使ってみたところ、我ながらかなり便利でした。USB仮想シリアルのコンソールを作って、対話型インタフェースでメモリライト、メモリリード、テーブル転送・・などそういうコマンドが実行できるようになっています。

さて、RXマイコンをFPGAの開発の補助用に使うと、すごく便利だということを認識しました。RXマイコンはFPUを搭載していてCPUも高速なので、例えばsin/cosを計算させてテーブルをつくってFPGAに送るような、そういうツールとして使うのに最適です。

ただ、そのような用途には、Arduinoの形状だったりmbedの形状だと大きすぎると言うのも事実です。そこで、やはりDIP20ピン形状が最適だろうと思い、無性に設計したくなりました。

DIPパッケージのRXマイコンボードというのは、実は2011年の1月、つまり約2年前に既に自分が考案していました。このときの設計では幅600milで、DIP28ピン形状でした。このアイデアを最初に製品化したのはRaXino-iだったわけです。

その次に考えたのが20ピン300mil幅のDIP形状のもので、昨年の6月のことです。このときはUSBのコネクタのGNDパッドがDIPの横からはみ出るのが嫌で、それ以上検討を進めませんでした。

ふとおもったのは、汎用のUSBつきRXマイコン評価ボードとして考えるからうまくいかないのではないかということでした。例えば、FPGAに書き込むための冶具、CANでスイッチを入れるための治具・・。そういう単一の機能に特化したプログラムを書いてしまった「部品」にしてしまえば、常にはUSBを使わなくてもよいわけです。

思い切ってDIP20ピンのICみたいにします。20ピンのうち電源とかUSBとかに7本とられてしまうのでユーザが使えるピンは13本しかないけど、Arduinoだって12本くらいで全部やっているでしょ。だから、大抵の用途には何10本もの信号はいらないのではないかと思った次第です。

Rx62_dip

それでも、USBファンクション/ホスト、JTAG、SPIx2、CAN、UARTx2、A/Dが使えるし、バウンダリスキャンに対応しているので、未接続の裏側ピンの状態もプローブすることができます。E1も接続できますし、これ自身がUSB-JTAGになってFPGAをコンフィグすることもできます。

あと、DIP20ピンの嬉しいところは、形状を誰でも暗記できるということがあります。

TTLでいろいろ作った経験があれば、右上がVCCで左下がGNDというのは体に染み付いていると思います。それにICの幅は万能基板に挿したときに間が2個だというのも体で覚えています。DIP40とかArduino形状だといちいち図面を見なければならないので、面倒です。

だから、やっぱり、DIP20。

では、DIP24や28、32ではだめかというと、狭いところに部品として実装することを考えるとと使いづらいと思います。

| | コメント (2)

2013.01.08

STM32F207のバウンダリスキャン

DigikeyでSTEVAL-PCC010V2というSTM32F207の評価ボードを購入しました。
目的は、ST社のSTM32F2xxがJTAGでバウンダリスキャンできるかどうかを確かめるためです。

このボードは2つの基板に分かれていて、CPUボードをLANボードに挿す形になっています。CPUボードのコネクタ(CN2)が標準的なARM20ピンのJTAGコネクタになっているので、ここにPocket JTAG Cableを接続します。

Stm32f2xx_1

JTAGデバイスの自動認識を実行すると、STM32F2xxとCortexが見つかりました。

何の苦労もせずに、最初から入っているデフォルトのサンプルプログラムを動かしたまま、バウンダリスキャンができました。このプログラムを実行したときには、ほとんどのピンは入力状態になっているようで、コネクタに指を近づけるとノイズでH→L→H→・・と遷移してしまうのが見えます。プルアップにもなっていないようでした。

Stm32f2xx_2

この評価ボードをリセットした後の、各ピンの動作を波形にして見てみましょう。

Stm32f2xx_3

MDCとMDIOが激しく動いて、PHYチップを初期化しています。約1.5秒後に初期化が完了しておとなしくなります。

このように、STM32F2xxは、何の苦労もせずに、MITOUJTAGをつなぐだけですべてのI/Oピンの動作が見えました。

なお、このボードは昨年12月30日に注文して1月7日に届きました。8日間。私の中ではDigikey最長記録の達成です。1月1~3日あたりに非常にゆっくりとアメリカ国内を移動して、成田の税関が混んでいたのか、リリースされたのが4日の夜なので、そこで配達が止まってしまい土日に入ったことが大きかったようです。

Ups_slowly

| | コメント (0)

2013.01.06

Spartan-6のBitStreamが太る理由

Spartan-6のBitStreamは、たまーに、少しだけサイズが大きくなることがあります。その原因がついにわかりました。

その原因を語るには、まずBitStreamの内容を理解する必要があります。BitStreamというのは、要するに、FFFFFFFFAA99556630A1・・・というアレです。

このビット列は、実は、FPGAの中にあるコンフィギュレーションマシンの命令コードなのです。FPGAのコンフィギュレーションというのは、FPGA内部にあるコンフィギュレーションマシンに様々なコマンドを与えて、データフレームを流しこむことで行われます。

Bskaiseki

コンフィギュレーションメモリにデータフレームを書き込むと、FPGAのLUTやIOBに望みの動作をするように設定されます。データフレームを書き込んだあと、CRCを設定して開始コマンドを送ることでFPGA全体がスタートするのです。

さて、Spartan-6のBitStreamは、他のXILINXのFPGAとは違い、1つの命令が16bit単位になっています。(まぁこの事自体がとてもマイナーなトリビアです。普通に使っている分には気にする必要はありません・・) 

そんなBitStreamを手作業で解読しているととても大変なので、ツールを作りました。

Sp6bsdec

こんなツールです。

BitStreamは、最初にRCRCというコマンドを発行してCRCをリセットし、次にフレーム長レジスタ(IOBのフレーム長-1)を設定し、・・という手順を実行していきます。そして、WCFGコマンドを発行してアドレス0(コンフィグメモリの最初)からデータフレーム(全FPGAのコンフィグデータ)を送り込みます。

さて、本題に入ります。

ISE13を使って単純なロジックと、BlockRAM(9kB)を使うデザインを作りました。

その出来上がったBitStreamをダンプしてみたところ、BlockRAMを使うデザインでは、データフレームを送り込んだあと、さらに追加で82ワードのデータを送り込んでいるシーケンスが追加されていました。

071558:Write(0x1) FAR_MAJ [0104 0017]
  フレーム アドレス レジスタ ブロックおよびメジャー  ブロック0 , 行 1 , メジャー 4 
  フレーム アドレス レジスタ マイナー  ブロックRAM0 , マイナー 23 
07155E:Write(0x5) CMD <WCFG> コンフィギュレーション データを書き込みます。
071564:Write(0x3) FDRI データフレームの転送 82 word

このように、追加のデータを流し込まなければならないので、ビットストリームが太るのです。

また、もう一つのBitStreamが太る要因としては、SPI ROMをx2モードでコンフィギュレーションしようとした場合にも起こります。

2bit幅のSPI ROMをコンフィグROMとして使うようなBitStreamを作った場合、BitStreamの先頭に以下のようなコマンド列が付け加えられました。

>00006E:Write(0xf) CWDT [FFFF]
000072:Write(0x13) GENERAL1 [0044]
  マルチブート アドレスの下位半分 0044
000076:Write(0x14) GENERAL2 [6B00]
  SPI オペコード 6b
  ブート アドレスの上位半分 00
00007A:Write(0x15) GENERAL3 [0044]
  ゴールデン ビットストリームの下位半分 0044
00007E:Write(0x16) GENERAL4 [6B00]
  SPI オペコード 6b
  ゴールデンブート アドレスの上位半分 00
000082:Write(0x17) GENERAL5 [0000]
  ユーザー定義のスクラッチパッド レジスタ 0000
000086:Write(0x5) CMD <NULL> NULL コマンド
00008A:Write(0x18) MODE_REG [3100]
  ビットストリームモード。 bit[10:0] を使用。マルチブートおよびフォールバックに必須
  リブート用のバス幅 4 bit
  BOOTMODE 1
  リブート用の vsel 設定 0x00
00008E:Write(0x10) HC_OPT_REG [005F]
000092:Write(0x5) CMD <IPROG> リコンフィギュレーションするため reboot_rst を生成します。

詳しくはわかりませんが、SPIx2やSPIx4を使う場合は、BitStreamが2つ入っていて、IPROGというコマンドを発行してリコンフィギュレーションを発行しているようでした。

「最初に読み込んだコンフィギュレーションはここで終了して、以後、再コンフィギュレーションをするときにはGeneralレジスタに設定されたSPIコマンドを使って読み出しなさいよ」という意味です。

このツールは意外と便利で、ISEのBitGenにある様々なオプションの効果を見ることができます。つまり、下のようなダイアログのチェックボックスがBitStreamにどういう影響を及ぼすかがわかります。

Bitgen_option

例えば、圧縮BitStreamをONにすると、こんな感じのBitStreamになります。

Compress_bitstream

普通のBitStreamはアドレス0から2Mbitくらい(XC6SLX16の場合)のデータをまとめて送るのですが、圧縮BitStreamはアドレスを細かく指定しながら4バイトとか数十バイトとかの単位で送っています。BitStreamはほとんどが00だから、必要なところだけ送れば圧縮にもなるでしょうね。

こんな感じで、XILINX FPGAがさらに面白くなりました。

BitStreamの標準サイズは、

 ・XC6SLX16では3,713,568bit
 ・XC6SLX45では11,875,232bit

となっています。これはどこからどこまでの長さを表しているかということですが、どうやら先頭のFFFFFFFFAA995566・・・の部分から、最後のDESYNCコマンドを書いた後の14発のNOOPの最後の部分までの長さのようです。正味のデータフレームだけではなく、RCRCコマンドやCOR1への書き込みなど、一連の命令を含んだ長さです。

結論としては、BlockRAMを使うデザインや、SPIx2やSPIx4を使う場合にはBitStreamに余計なコードが追加されるため太るというわけでした。

このBitStream解析ツールは、ソースコード付きでJTAGひろばにアップロードしました。

 ● Spartan-6 BitStream解析ツールをダウンロード

無償でダウンロードできるようにしたので、どうぞ遊んでみてください。

| | コメント (0)

2013.01.03

あけましておめでとうございます

あけましておめでとうございます。

今年の抱負は、

MITOUJTAGやFPGAの開発を全力ですること

です。

やりたいことはいっぱいあって・・

① MITOUJTAGの進化
 ・ALTERA MAX V、Lattice MachXO、PSoCなどへの書き込み
 ・ALTERAのFPGAとJTAG通信する方法の確立(内蔵ロジアナやSPI ROM書き込み)
 ・BLOGANAの高度化
 ・XILINX用のJTAG-UART
 ・MITOUJTAG Proの大幅機能Up
 ・MITOUJTAG 3.0の開発
 ・MITOUJTAG Airの改良と普及

② XILINX 7シリーズのボード開発

③ SerialATA IPコアやPCI Express IPコアの開発
 ・Scatter Gather DMAの開発
 ・AXI4対応
 ・MicroBlazeとの連携
 ・64bit対応

④ その他製品
 ・JTAG解析装置の発売
 ・JTAGを使った■■■の発売
 ・商用RXduinoの機能強化と販売拡充

⑤ お客様によりきめ細かいサポートの提供
 ・月刊特電の発行頻度を上げる
 ・お客様専用ページの設置

いろいろやりたいことがありすぎて、どれから手をつければよいか・・

とにかく頑張ります。

  • 今年もよろしくお願いします。
  • | | コメント (0)

    « 2012年12月 | トップページ | 2013年2月 »