上篇跟大家分享了串口编程的设置以及打开,在这里还要提醒各位,打开串口的时候,要看准串口的设备名,不然会使程序出现标示符损坏的情况的。
当我们设置好了串口之后,打开串口函数后,我们就得把它下载到开发板上来用用看,也就是交叉编译。
宿主机上我们进行读写的操作,开发板(tiny 6410)进行读的操作,读写共用一个头文件。
头文件
#include
#include
#include //file ,fd,pid
#include
#include
#include
#include
#include
#define MAXSIZE 1024
int set_com_config(int fd,int baud_rata,int data_bits,char parity,int stop_bits);
int open_port(int fd,int com_port);
我们来介绍read;
接下来是写的函数
2,把程序放在开发板上运行,还需要搭建交叉编译的环境,经过交叉编译之后 的程序才能在板上运行。
在这里介绍的NFS网络文件系统的搭建,实现宿主机与开发板的通信。
1,安装NFS
安装有两种方式,一种是源码包,一种是通过命令。在这里我是以root用户执行的
#apt-get install nfs-common
#apt-get install nfs-kernel-server
注意,命令安装,请保证您的机器是联网的。
2,配置宿主机
1)修改配置文件
#vim /etc/exports
添加内容为
/home/share 192.168.*.*(rw,no_root_squash,sync)
解释
/home/share 是要共享的目录,事先可以先创建好
192.168.*。* 这个可以设置成两个通配符,允许任何网段的人访问这个目录
rw 读写权限
sync 资料同步写入硬盘
no_root_squash 客户端共享目录的使用权
保存退出。
2)启动服务
安装完nfs之后我们需要启动它
# /etc/init.d/portmap restart
# /etc/init.d/nfs-kernel-server restart
3)显示共享的目录,更改目录权限
#showmount -e
#chmod 777 -R /home/share
宿主机的环境配置完毕。
2,开发板上的配置(型号:友善之臂 tiny6410)
开发板上的配置,我们借助宿主机来协助完成。
1,首先是安装交叉编译的包
1)下载arm-linux-gcc-3.41.tar.bz2到任意目录下,在百度一搜,出现很多可以下载的,在这里我就没有给出链接了。
2)tar -jxvf arm-linux-gcc-3.41.tar.bz2 / 解压到跟目录下
3)修改环境变量,加入$PATH路径
方法我在这里说明2种,以我的开发板型号为例子讲一下,解压到根目录下找出这样的一个路径
/opt/FriendlyARM/toolschain/4.5.1/bin
第一种方法:修改配置文件 /etc/bash.bashrc
#vim /etc/bash.bashrc
在最后加上
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
请记住修改配置文件一定要用root用户。
第二种方法
增加路径设置,在/etc/profile文件末尾中加入
export PATH="/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH"
保存退出。
4)使环境变量生效
#source /root/.bashrc 方法1
#source /etc/profile 方法2
方法2有时候生效后,再次重启电脑,还要再次输入上诉命令,使其生效
5)查看是否加入环境变量
#echo $PATH
6)显示是否安装成功
#arm-linux-gcc -v
会显示arm-linux-gcc信息和版本,证明安装成功
2,安装minicom工具
作用:将开发板上的终端,放在电脑上运行。
1)安装:
#apt-get install minicom
2)设置:
#minicom -s
之后出现图片左边的菜单选项,选择第三个设置,由于我们三串口转USB口的,设置就如图片右侧,设置完再按倒数第三个选项保存退出
3)打开
#minicom
把开发板上的电源打开,就能正式开机,在电脑显示终端了。
3,搭载交叉编译的环境
1)检查开发板上是否有网络,查看开发板上的ip地址
#ifconfig
#ping 192.168.*.* 后面接的是你的开发板上的IP地址,记住与宿主机要保持在通过网段上
#ping 192.168.*.* 后面是宿主机的IP地址,能通的话就可以进行下一步,挂载共享目录了
2)挂载
#mount -o nolock 192.168.*.* : /home/share /mnt
IP地址是宿主机的IP地址
/mnt 是目标目录
4,开始编译
由于我的程序是分文件操作,在这里就使用makefile进行编译,统一在宿主机上编译,有arm.-linux-gcc编译的,就在开发板上运行,怎样在同个目录下编译两个makefile文件呢
我是这样做的,首先创建两个makefile 和makefile1具体操作如下
#make
#make clean
#make -f makefile1
命令执行的过程就不在这里显示了。记住编译的文件肯定要在共享的目录下,否则开发板是看不到的,还要借助两条串口线,一条是供minicom使用的,一条是你宿主机进行通信用的,两者不同,在串口设置那里格外重要,这将关系到能不能进行通信的问题,端口可在/dev目录下查询
4,之后分别在两个终端运行程序,便可实现其中的通信了
过程就不再这里掩饰了,代码发上去是有些欠缺的,希望读者多多体谅,另外如果您有更好的方法,也可以评论一下,向您学习。
linux的串口编译就写到这里,谢谢各位