Tiny6410流水灯——在已经启动的ARMLinux系统上C程实现
拿到开发板有几个月了,一直想弄个流水灯程序,以验证一下怎么下载程序和运行程序。刚开始弄个裸机程序试试,但不想破坏原NandFlash中的系统,在SD卡上启动倒是也可以,但老是插拔SD卡也不方便,何况有时候接触不好读不出。后来想想,干脆弄个C程序在已经启动的系统上试验一下流水灯吧。可是我对这个还是不太熟悉,只好上网baidu一下。倒真找到一个,试了一下,成功,小小的喜悦一下。最令我惊喜的是,SecureFXPortable居然可以连接到开发板的plg目录,以后可以直接把虚拟机中linux里的文件直接剪切到plg下,爽不爽?!且看流程。
一、启动虚拟机中的Linux,编写如下代码,保存为testLed.c
/****file_name: testLed.c****/
/*此流水灯的顺序不对,是因为板子上3、4灯对调了,是板子的事*/
#include
#include
#include
#include
void main(void)
{
intfd,led;
while(1)
{
fd=open("/dev/leds0",0);
if(fd<0)
{
fd=open("/dev/leds",0);
}
if(fd<0)
{
perror("opendevice leds");
exit(1);
}
ioctl(fd,0,1);
for(led=0;led<4;led++)
{
ioctl(fd,1,led);
sleep(1);
ioctl(fd,0,led);
}
close(fd);
}
}
然后在终端中执行 arm-linux-gcc –o testLed testLed.c,生成testLed文件。
二、硬件连接
打开开发板,让系统运行起来。连接好网线,即让开发板与PC通过网线连接通网络。
三、虚拟机IP设置
设置虚拟机中Linux为桥接方式,在Linux终端设置IP地址,以管理员方式执行 ifconfig eth0 192.168.1.10,即设置Linux IP为192.168.1.10。没有管理员权限,ifconfig是无法执行的。
四、SecureFXPortable软件设置
不通过网线,物理网口是不能启动的,因此SecureFXPortable无法和linux以桥接方式连接(这人问题曾折腾了我两个星期,天天上网找原因,最后把网线连接开发板后就解决了。开始的时候以为只要设置好IP就行了,其实必须打开物理网口)。
在Windows下启动SecureFXPortable,新建连接,即windows和虚拟中的linux 联网。
点击 文件—连接 出现 连接对话框。如下图
上文已经建立好了Linux的Ip 地址:192.168.1.10,填到下图中:
输入Linux下的登陆有户名,勾选 保存用户名
输入登陆密码:
确定后,成功进入Linux的 /home/用户名 目录,如下图
至此,连接虚拟机中Linux成功,下面建立和开发板的连接。
记得手册上说用Telnet登陆开发板,故选这个
Tiny6410的IP地址默认是192.168.1.230,填入,其余默认即可
记得手册上说用FTP方式传输文件
手册上说用户名和密码均为plg,帐号不用填(我也不知道怎么填,故空着)
成功登入开发板plg目录
在连接通Linux的情况下,若在Linux中重新添加或删除文件,得刷新后才能显示出来。如下图点击SecureFX的 刷新 按钮(我也是才知道的,不断试验得出的)
将编译好的testLed右键单击,选择 剪切,见下图:
切换到开发板下,选择plg目录, 粘贴
一般情况都以二进制形式传输文件
下载到开发板上plg目录后,进入这个目录,记得更改文件权限 chmod 777 testLed,然后执行./testLed
在此之前因为开发启动后跳马灯一直运行着,会和这个新写的程序同时执行,效果不理想,可以关掉原跳马灯:执行 /etc/rc.d/init.d/leds stop。然后再运行./testLed。
累死我了,不过Win7的截图还是不错的。希望对同学们有用。