jenprog フラッシュプログラマ

Linux, OS X, Windows で動作する Python プログラム言語で記述されたコマンドラインインタフェースのフラッシュプログラマです。シリアルポートのアクセスには pyserial を使用しています。

注意事項

本ページの記載物はオープンソースコミュニティーの成果物に基づいています。成果物のすべての著作権者、ならびに当社は、サポートや保証を行いません。コード記載のライセンス条件なども参照してください。ただし、問題報告、修正情報などは歓迎いたします。

構成

本 SDK の構成を解説します。

jenprog
Python プログラム言語で記述されたフラッシュプログラマです。 v1.2 をベースに当社で一部修正を行っています。
pyserial
Python のシリアルポート対応のコード

環境

現時点で判明している動作環境をお知らせします。

Python インタプリター (v2.7)
  ※ Windows 版は 32bit 用のみ、Active Python にて確認。
pyserial v2.6 (Windows は v2.5)

ダウンロード

jenprog ユーティリティは、TWE-SDK の Tools/jenprog に含まれます。

Pyserial (Python シリアルポートサポート) が必要であれば、以下のダウンロードが利用できます。詳細は一時配布元を参照ください。

MONOSTICK/TWE-LITE-R 用 リセット、プログラムモードユーティリティ

MONOSTICK/TWE-LITE-R では、プログラム上からモジュールのリセット、プログラムモードの設定が可能です。

特にMONOSTICKでは、プログラムモードに設定するボタンが省略されているため、jenprog を使用するためには、本ユーティリティで予め MONOSTICK をプログラムモードに設定しておく必要があります。

TWE-SDK には、Windows 用については Tools/TWE_PRG_MODE ユーティリティを、Linux や OS X については Tools/jenprog/tweusb ユーティリティを用意しています。詳細は、SDK ディレクトリ内の readme ファイルなどを参照してください。

使用方法

インストール

1. Python をセットアップします。
※ Windows 版の場合は python の実行パスに注意してください。(bash などを実行する場合は、cygwin 付属の python が実行される場合があります)

2. pyserial をセットアップします。

■ Linux, OS X の場合は、管理者権限で以下のコマンドを実行します。
# python setup.py install

■ Windows は、ダウンロードした exe ファイルを実行します。     

弊社提供の SDK の Tools/jenprog に格納済みです。改めてのインストールは不要ですが、SDKを導入しない機材へのインストール時には参考にしてください。

3. jenprog を適当なフォルダに展開します。
※ 現時点ではインストール用の調整をしておりません。

4. 展開したフォルダ中の jenprog を実行可能にし、実行パスを設定してください。
※ Windows でも bash 上で同様の作業を行えます。ただし、そのままでは、SDKのcygwin bashにはpython が含まれており、こちらが実行されるため動作しません。

$ cd {展開フォルダ}
$ tar xvfz {アーカイブ名}.tar.gz
$ cd {展開フォルダ}/jenprogxxx/
$ chmod +x jenprog
$ PATH=`pwd`:$PATH

Windows の Jennic BASH Shell を使う場合は、以下の内容のスクリプトを /usr/bin に格納するとよい。
PATH に /usr/bin が含まれていれば、このスクリプトが実行される。
#!/bin/sh
/cygdrive/c/Python27/python 'c:\Jennic\Tools\jenprog\jenprog' $*

FLASH 書き込み (jenprog)

1. USB-UART ケーブル (FTDI製チップ) をPCに差し込みます。必要ならドライバ(http://www.ftdichip.com/Drivers/VCP.htm) を組み込みます。

3. 差し込んだデバイス名を確認しておきます。以下の例では /dev/ttyUSB0 となります。
※ 通常のシリアルポートは /dev/ttyS0 といった割り当てになります。VMWare, VBox などのバーチャルマシンを利用する場合、USBが不安定な場合など設定によりホストマシンのシリアルポートが通常のシリアルポートとして割り当てることが可能です。

■ Linux の場合
 # dmesg |grep tty
 ...
 usb 2-2.1: FTDI USB Serial Device converter now attached to ttyUSB0
■ OS X の場合
 # ls /dev//dev/tty.usbserial*
 /dev/tty.usb.serial-FTXXXXXX
■ Windows の場合は、デバイスマネージャで対応の COM ポートを探してください。
 

4. 動作例です。

  # jenprog -h
... 利用法の表示 ...

  # jenprog -t /dev/ttyUSB0 -s
    flash: ST M25P40
    mac: 0x001bc501207008ec license: 0xffffffffffffffffffffffffffffffff
... MAC アドレスの表示 ...

  # jenprog -t /dev/ttyUSB0 -m 11223344AABBCCDD
  erasing sect #0 ...
  MAC/Lic was updated as below...
    flash: ST M25P40
    mac: 0x11223344aabbccdd license: 0xffffffffffffffffffffffffffffffff

  # jenprog -t /dev/ttyUSB0 SmplTag_Coord_JN5148_200_0.bin
  writing...
    0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 5.79 kb/s
  writing mac address and key...done

  OK: firmware is successfully programmed.
... ファームウェアの書き込み ...

  # jenprog -t /dev/ttyUSB0 -y SmplTag_Coord_JN5148_200_0.bin
  erasing sect #0 ...
  writing...
    0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 5.78 kb/s
  writing mac address and key...done
  verifying...
    0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 9.69 kb/s

  OK: firmware is successfully programmed.
... ファームウェアの書き込み+べリファイ ...

コンペア

一度書き込んだファームウェアが正しく書き込まれたかを検証する機能を追加しました。

  # jenprog -t /dev/ttyUSB0 -z firmware.bin
... firmware.bin との比較 ...