嵌入式linux串口编程(下)

上篇跟大家分享了串口编程的设置以及打开,在这里还要提醒各位,打开串口的时候,要看准串口的设备名,不然会使程序出现标示符损坏的情况的。

当我们设置好了串口之后,打开串口函数后,我们就得把它下载到开发板上来用用看,也就是交叉编译。

宿主机上我们进行读写的操作,开发板(tiny 6410)进行读的操作,读写共用一个头文件。

头文件

#include <stdio.h>
#include <string.h>
#include <sys/types.h>//file ,fd,pid
#include <errno.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdlib.h>
#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的串口编译就写到这里,谢谢各位

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值