基于ARM9 2410的嵌入式串口编程

来源:互联网 发布:全国旅游基础数据库 编辑:程序博客网 时间:2024/05/17 01:37
基于ARM9 2410的嵌入式串口编程
基于ARM9 2410的嵌入式串口编程
2007-04-17  OHY
   下面的程序是在2410开发平台上调试通过的,一个串口的发送实验程序serial.c。
 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
 char szsendbuf[4];
 int fd,c,res,nsize = 4;
 FILE *pfile;
 int filel;
 struct termios oldtio,newtio;
 struct stat st;
 fd = open("/dev/ttyS0",O_RDWR | O_NOCTTY);
 tcgetattr(fd, &oldtio);
 bzero(&newtio, sizeof(newtio));
 newtio.c_cflag = B115200 | CRTSCTS | CS8 | CLOCAL | CREAD;
 newtio.c_iflag = IGNPAR | ICRNL;
 tcflush(fd, TCIFLUSH);
 tcsetattr(fd, TCSANOW, &newtio);
 stat("a.txt", &st);
 pfile = fopen("a.txt", "r");
 filel = st.st_size;
 while(4 == nsize)
 {
  bzero(szsendbuf, 4);
  nsize = fread(szsendbuf, 1, 4, pfile);
  nsize = write(fd, szsendbuf, nsize);
 }
 fclose(pfile);
 tcsetattr(fd, TCSANOW, &oldtio);
 close(fd);
}
    代码写完以后,需要用ARM的GCC编译器来编译代码,而不能以GCC来编译代码。因为2410是ARM体系结构,和普通PC机的体系结构不一样的。
    可以将armv4l-unknown-linux-gcc这个文件拷贝到刚才编写C的源程序同一目录下,这样就不需要使用一串长长的绝对路径了。如果需要将刚才的serial.c编译成一个名字为serial的可执行文件,可使用下面的命令:
./ armv4l-unknown-linux-gcc -o serial serial.c
 
   在运行上述生成的文件时,先通过minicom将宿主机挂载到目标板上。例如宿主机的IP地址为:192.168.2.100,目标板的IP地址为:192.168.2.101。可以通过下面的命令将其挂载:
mount 192.168.2.100:/ /tmp
   这样,宿主机的这个根目录就挂载到目标板上了。由于要进行串口的调试实验,minocom需要用来与目标板进行窗口通信。所有对目标板的操作控制,最好通过telnet来进行,可以通过下面命令实现:
telnet 192.168.2.101
   连接到目标板上成功的时候,需要输入登陆的用户名和密码,一般是输入root按回车就可以,也有例外的。
   然后在目标板的/tmp目录中就可以看到整个宿主机根目录的内容,再找到serial所在的目录,输入下面命令:
./serial  就可在宿主机的minicom中看到一个文件属性的输出了。
原创粉丝点击