jenprog フラッシュプログラマ
Linux, macOS, Windows で動作する Python プログラム言語で記述されたコマンドラインインタフェースのフラッシュプログラマです。シリアルポートのアクセスには pyserial を使用しています。
- マルチプラットフォームです。
- ソースコードが添付されているので、製造工場の工程などへの展開が容易です。
注意事項
本ページの記載物はオープンソースコミュニティーの成果物に基づいています。成果物のすべての著作権者、ならびに当社は、サポートや保証を行いません。コード記載のライセンス条件なども参照してください。ただし、問題報告、修正情報などは歓迎いたします。
構成
本 SDK の構成を解説します。
- jenprog
- Python プログラム言語で記述されたフラッシュプログラマです。 v1.2 をベースに当社で一部修正を行っています。
- pyserial
- Python のシリアルポート対応のコード
環境
現時点で確認している動作環境をお知らせします。
Python インタプリター (v2.7)
※ Windows 版は 32bit 用のみ、Active Python にて確認。
pyserial v2.6 (Windows は v2.5)
ダウンロード
jenprog ユーティリティは、TWELITE SDK の Tools/jenprog に含まれます。
Pyserial (Python シリアルポートサポート) が必要であれば、以下のダウンロードが利用できます。詳細は一時配布元を参照ください。
MONOSTICK/TWE-LITE-R 用 リセット、プログラムモードユーティリティ
MONOSTICK/TWELITE Rを使用した場合は、プログラム上からモジュールのリセット、プログラムモードの設定が可能です。
MONOSTICKでは、プログラムモードに設定するボタンが省略されているため、jenprog を使用するためには、本ユーティリティで予め MONOSTICK をプログラムモードに設定しておく必要があります。
TWELITE SDK には、Windows用のTools/TWE_PRG_MODE ユーティリティと、Linux、macOS用の Tools/jenprog/tweusb ユーティリティを用意しています。詳細は、SDK ディレクトリ内の readme ファイルを参照してください。
使用方法
インストール
1. Python をセットアップします。
※ Windows 版の場合は python の実行パスに注意してください。(bash などを実行する場合は、cygwin 付属の python が実行される場合があります)
2. pyserial をセットアップします。
■ Linux, macOS の場合は、管理者権限で以下のコマンドを実行します。 # 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 ■ macOS の場合 # 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 との比較 ...