2013年2月27日水曜日

python-on-a-chipを構築してみた

python-on-a-chipから clone、
pymite-09.tar.gz をダウンロードして展開。
展開したフォルダーの /src/platform/mbed に移動。
mbed.py の TextLCDクラスを削除。
以下のバッチファイル make.bat を実行。
pymite.zip が出来上がるので mbed のオンラインコンパイラにインポート。
既存の main.cpp は削除、コンパイルして mbed で実行。
パソコンで ipm.py を実行すると、Python の対話モードで動いた。

エラーが発生すると止まってしまう。mbed固有のライブラリの使い方がまだわかってないです。
 
vmが一度出来てしまうと、usrlib_img[]のバイトコードを差し替えれるようにすれば、わざわざ再コンパイルしなくてもいいと思う。

Windowsインストーラ付き:
python2.6 : http://www.python.org/download/releases/2.6.6/
pySerial2.5 : http://sourceforge.net/projects/pyserial/

rem make.bat 2013/2/27
set PYTHON26=c:\python26\python.exe
IF NOT EXIST %PYTHON26% GOTO exit

set TOOLS=../../tools/
set LIB=../../lib/
set VM=../../vm/

set PMIMGCREATOR=%TOOLS%pmImgCreator.py
IF NOT EXIST %PMIMGCREATOR% GOTO exit
set PMGENPMFEATURES=%TOOLS%pmGenPmFeatures.py
IF NOT EXIST %PMIMGCREATOR% GOTO exit
set PMSTDLIB_SOURCES=%LIB%__bi.py %LIB%dict.py %LIB%list.py %LIB%string.py %LIB%sys.py
set PMSTDLIB_SOURCES=%PMSTDLIB_SOURCES% %LIB%ipm.py
set SOURCE_IMG=pmstdlib_img.cpp
set SOURCE_NAT=pmstdlib_nat.cpp
set ZIP=pymite.zip

IF NOT EXIST pmfeatures.py GOTO exit
%PYTHON26% %PMGENPMFEATURES% pmfeatures.py > pmfeatures.h
IF ERRORLEVEL 1 GOTO exit

%PYTHON26% %PMIMGCREATOR% -c -u -f pmfeatures.py -o main_img.cpp --native-file=main_nat.cpp main.py mbed.py
IF ERRORLEVEL 1 GOTO exit

IF NOT EXIST %LIB%__bi.py GOTO exit
%PYTHON26% %PMIMGCREATOR% -c -s -f pmfeatures.py --memspace=flash -o %SOURCE_IMG% --native-file=%SOURCE_NAT% %PMSTDLIB_SOURCES%
IF ERRORLEVEL 1 GOTO exit

IF NOT EXIST %VM%pm.h GOTO exit
set SCRIPT="ds=['./','%VM%'];
set SCRIPT=%SCRIPT%es=['*.h','*.c','*.cpp'];import zipfile;import glob;import os;z=zipfile.ZipFile('%ZIP%','w');
set SCRIPT=%SCRIPT%[[[z.write(f,os.path.basename(f)) for f in glob.glob(d+e)] for e in es] for d in ds];
set SCRIPT=%SCRIPT%z.close()"
%PYTHON26% -c %SCRIPT%
IF ERRORLEVEL 1 GOTO exit

%PYTHON26% -c "import zipfile;z=zipfile.ZipFile('%ZIP%','r');z.printdir()"
IF ERRORLEVEL 1 GOTO exit

ECHO SUCCESS!!! PLEASE IMPORT %ZIP%

:exit
EXIT/B

(2013/2/27)
---

0 件のコメント: