python的优点
功能强大,无需编译,集成了系统级的API,访问硬件也是没有压力的,例如ioctl,下面的代码演示操作蜂鸣器,直接在开发板上编写代码运行即可,无需编译,对调试驱动等应该很有帮助,配合python webserver,实现远程硬件控制相信也是可行的:
#!/usr/bin/python
import fcntl
fd = open('/dev/pwm', 'r')
fcntl.ioctl(fd, 1, 100)
上面的代码相当于打开/dev/pwm设备,然后执行ioctl。
在开发板上安装python
适用于 6410/210 开发板,python版本为 2.7.2。
先从以下地址下载:http://dl.vmall.com/c0eoeolewg
下载完成后,将python-friendlyarm.tgz文件拷到SD卡上,再将SD卡插入开发板,在minicom或超级终端上输入以下命令行进行解压:
cd /usr/
tar xvzf /sdcard/python-friendlyarm.tgz
解压完成,输入python,出现python提示符就表示安装成功啦:
python
注意事项:
1) 必须在 /usr/ 目录下解压,放到其他目录会工作不正常
2) python软件包大小共有50M,如果你是256M Nand Flash的用户可能会无法存放,请选择性的删除一些组件来释放空间,比如不需要使用Qtopia4可以删除/opt/Qtopia4.4.3目录,不需要Qt4可以删除/usr/local/Trolltect目录。
使用python
用python控制蜂鸣器
用vi将下面的内容保存成文件,命名为 pwm.py:
#!/usr/bin/python
import fcntl
fd = open('/dev/pwm', 'r')
fcntl.ioctl(fd, 1, 100)
在命令行上输入 ./pwm.py,应该能听到蜂鸣器响了。
用python中调用c/c++
将python-friendlyarm.tgz在PC上也解压一份:
cd /opt/
mkdir python-arm
cd python-arm
tar xvzf ~/python-friendlyarm.tgz
写一个c++文件api.cpp:
#include <Python.h>
class MyClass {
public:
int add(int x,int y) { return x+y; }
};
extern "C" int add(int x,int y)
{
MyClass obj;
return obj.add(x,y);
}
将c++编译成动态库:
arm-linux-g++ -fPIC api.cpp -o api.so -shared -I/opt/python-arm/include/python2.7 -I/opt/python-arm/lib/python2.7/config
将编译生成的api.so拷到SD卡上,在你的python脚本中就可以调用它了:
#!/usr/bin/python
import ctypes
plib = ctypes.CDLL('/sdcard/api.so')
print "result: %d" %(plib.add(1,2))
[ 此帖被xoom在2013-03-22 14:44重新编辑 ]