`
lovecontry
  • 浏览: 1095143 次
文章分类
社区版块
存档分类
最新评论

嵌入式Linux编程--我的第一次艰难跋涉

 
阅读更多

其实从很早我就想深入学习Linux,但时间有限,并且Linux门槛挺高,不是很容易上手。最近由于隧道项目中用到嵌入式LinuxArm CPU上的Linux),并且提供硬件的单位针对Linux的编程收费很高,并且时间很长,所以犹豫再三,决定开始深入学习Linux,并在学习过程中完成预定的任务。

没有想到,在嵌入式Linux上运行一个最简单的“Hello Liunx”程序就费了很大的周折,不过功夫不负有心人,经过几天的艰难跋涉,总算成功了,下面我把我的历程说一下,给后来人有个参考。

要想在嵌入式Linux运行程序,需要有下面几个问题解决:

1、 需要一个基于Armgcc交叉编译器;

2、 需要WindowsVPC上的Linux进行交互,以便交换文件;

3、 嵌入式Linux系统需要和VPC上的Linux系统或Windows系统进行交互,以便交互文件;

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 311.25pt" type="#_x0000_t75"><imagedata o:title="linux07091703" src="file:///C:/DOCUME~1/%E5%8F%B6%E5%B8%86/LOCALS~1/Temp/msohtml1/01/clip_image001.jpg"></imagedata></shape>

第一个问题,相对比较容易解决,直接和中间厂商要来了cross-2.95.3.tar.bz2 安装包,这是一款基于Arm平台上的交叉编辑器。直接解压到任意目录即可。

第二个问题,有些棘手,查了若干资料,终于找到可行的办法。

1、 Windows XP建一个共享文件夹,如“share

2、 虚拟机运行起来后,在Linux命令行方式输入:smbmount //ip地址或计算机名/共享文件夹名 挂载点

3、 Ok,连接成功。

第三个问题,原想着很容易,却没有想到是最难的,中间厂商的办法如下:

采用目标板挂载NFS目录的方式进行开发

主机:NFS服务器

1、 修改配置文件etc/exports,如

/nfs/rootfs 192.168.0.X(rw,sync,no_root_squash) //具体含义略

2、 配置其为所有用户可读,chmod 644 /etc/exports

3、 NFS服务器重新载入 etc/exports, /etc/init.d/nfs reload

4、 检查防火墙,不要屏蔽相应端口

目标板:内核需要支持NFS

1Enable:

File Systems à

Network File Systems à

NFS file system support

Provide NFSv3 client support

配置完后,重新编译内核

2、目标板启动后,mount –t nfs 192.168.0.Y:/nfs/rootfs/mnt –o nolock

按上面一步步做了,目标板提示RPC什么错误之类,上网查资料,用Servers指令开启服务,很可惜,目标板不支持Servers指令。

最后发现目标板支持FTP服务器,总数找到一个救命稻草,不过很可惜,用户密码未知,问了中间厂商,用户和密码仍然错误,最后打了n次电话,告诉可以在目标板上添加新用户,然后再登录FTP

很恐怖的是,书本上教的useradd竟然没有,后来查看目标板bin上的文件,原来是adduser命令,添加上用户,果然可以登录了。不过linux上的FTP客户端不好使,Windows自带的也不行,只好下了个FlashFXP软件,还可以。

<shape id="_x0000_i1026" style="WIDTH: 330pt; HEIGHT: 261.75pt" type="#_x0000_t75"><imagedata o:title="linux07091701" src="file:///C:/DOCUME~1/%E5%8F%B6%E5%B8%86/LOCALS~1/Temp/msohtml1/01/clip_image003.jpg"></imagedata></shape>

在虚拟机的Liunx系统编写如下程序:

#include <stdio.h>

int main(int argc,char **argv)

{

printf("hello linux/n");

}

编写Makefile文件

all:tt

tt: test.c

/usr/local/arm/2.95.3/bin/arm-linux-gcc -o tt test.c

clean:

-rm -rf tt

在命令行运行Make指令,生成tt文件

tt文件通过FTP客户端拷贝到目标板上。

开始直接输入[root@()]$tt 没有反应,查资料,发现原来要这样(如下),为什么?暂时不知道!

[root@()]$ ./tt ,竟然有错误提示,提示内容如下:-sh./tt:Permission denied

上网查资料说是权限不够,需要运行如下指令:chmode 777 tt

运行后,竟然告诉我,没有这个命令,最后发现原来是 chmod(看来指令的名称都被中间厂商修改了)。

运行chmod 777 tt 后,在去运行 ./tt ^^#$^#$@&# OK ---成功了!

<shape id="_x0000_i1027" style="WIDTH: 414.75pt; HEIGHT: 281.25pt" type="#_x0000_t75"><imagedata o:title="linux07091702" src="file:///C:/DOCUME~1/%E5%8F%B6%E5%B8%86/LOCALS~1/Temp/msohtml1/01/clip_image005.jpg"></imagedata></shape>

后记:linux的使用习惯与windows有很大的区别,linux联网需要激活网卡才能工作,运行文件需要 ./XXX格式,并且有权限的用户才能执行,类似的小问题,对一个linux菜鸟来说,真是一个又一个的拦路虎,不过到现在总算接近门槛了,对我来说,后面的路还很长,困难才刚刚开始 … … :-(

分享到:
评论

相关推荐

    嵌入式对象--面向AMetal框架和接口的编程--周立功

    嵌入式对象--面向AMetal框架和接口的编程--周立功嵌入式对象--面向AMetal框架和接口的编程--周立功嵌入式对象--面向AMetal框架和接口的编程--周立功嵌入式对象--面向AMetal框架和接口的编程--周立功嵌入式对象--面向...

    嵌入式Linux系统--002嵌入式系统组成.ppt

    "嵌入式Linux系统--002嵌入式系统组成" ...嵌入式Linux系统是一个复杂的系统,包括嵌入式硬件、嵌入式系统软件、文件系统等组件,每个组件都有其特点和优势,了解这些组件对于设计和开发嵌入式Linux系统非常重要。

    基于嵌入式linux开发 --孙天泽

    嵌入式Linux作为一种广泛应用的操作系统,在各种嵌入式设备中扮演着重要角色。本文将围绕嵌入式Linux开发的基本流程与框架进行阐述,旨在为初学者提供一个清晰的入门指南。 #### 嵌入式Linux开发概述 嵌入式Linux...

    嵌入式linuxU-Boot介绍

    嵌入式linuxU-Boot介绍 嵌入式开发重要资料 更多资源,请登录我的博客:http://blog.csdn.net/baidu_man2010 如需real 6410 嵌入式ARM11开发板请登录My_Shop:http://real-arm.taobao.com/

    嵌入式Linux高级编程--06posix_网络编程.ppt

    嵌入式Linux高级编程--06posix_网络编程.ppt

    嵌入式C编程-02-流程控制.pptx

    嵌入式C编程-02-流程控制.pptx

    嵌入式Linux开发教程-周立功-(上册)

    《嵌入式Linux开发教程-周立功-(上册)》是一本专为初学者设计的教程,旨在帮助读者深入理解和掌握嵌入式Linux开发的基本技能。这本书涵盖了从基础概念到实际项目实施的关键知识点,是学习Linux系统在嵌入式硬件上的...

    嵌入式Linux系统--003pxa270开发板的使用.ppt

    嵌入式Linux系统--003pxa270开发板的使用.ppt

    嵌入式系统--体系结构.编程与设计.part2.rar

    嵌入式系统--体系结构.编程与设计.part2.rar,本资源来自网络,仅供个人学习之用

    嵌入式Linux应用程序开发详解

    第一章-LinuxBasic 第二章t-LinuxApp02-LinuxCommand 第三章-LinuxApp03-C 第四章-LinuxApp04-EmbededSystem 第五章-LinuxApp05-Environment 第六章 文件IO编程 第七章LinuxApp07-ProcessControlling 第八章LinuxApp...

    高质量嵌入式Linux-C编程

    《高质量嵌入式Linux-C编程》不仅仅是一本教程,它更像是一位经验丰富的导师,带领读者一步步深入嵌入式Linux-C编程的奇妙世界。这本书不仅能够让读者知其然,更能知其所以然,通过系统地学习和实践,不断提升自己的...

    嵌入式Linux系统开发教程(第2版)

    本书的最后给出了一个综合实例,帮助读者理解嵌入式Linux 的开发方法和技巧。 目录 第1章 嵌入式系统基础 第2章 Linux基础 第3章 ARM体系架构 第4章 嵌入式编程 第5章 软硬件开发环境 第6章 交叉编译...

    嵌入式课件\嵌入式linux应用程序编程-线程及socket编程

    南京邮电大学嵌入式课件\嵌入式linux应用程序编程-线程及socket编程

    【正点原子】I.MX6U嵌入式Linux C应用编程指南V1.4

    《【正点原子】I.MX6U 嵌入式 Linux C 应用编程指南 V1.4》 本资源为嵌入式 Linux C 应用编程指南,基于 I.MX6U 微处理器,旨在帮助开发者快速上手嵌入式 Linux 应用开发。该指南涵盖了嵌入式 Linux 的基本概念、...

    嵌入式linux教程 第二版pdf

    《嵌入式Linux教程 第二版》是一本深入讲解如何在嵌入式系统中应用Linux操作系统的专业书籍。这本书详尽地介绍了嵌入式Linux的基础知识、开发环境的搭建、内核配置与裁剪、驱动程序开发以及应用程序设计等多个方面,...

    ARM9嵌入式系统设计-基于S3C2410与Linux

    ARM9代表的是ARM公司的第九代处理器架构,S3C2410是基于ARM9核心的一款微处理器,它广泛应用于多种嵌入式系统产品中,具有高性能和低功耗的特点。ARM处理器在32位嵌入式处理器市场中占据了重要的份额,它所采用的...

    嵌入式linux培训班--课件1

    嵌入式linux培训班--课件嵌入式linux培训班--课件嵌入式linux培训班--课件嵌入式linux培训班--课件

    嵌入式系统编程-体系结构.编程与设计

    这是一部关于嵌入式系统--体系结构.编程与设计的书,详细的描述了嵌入式系统的软硬件体系结构和编程要领

    嵌入式LinuxC编程入门(第2版)

    适合于没有或者缺乏嵌入式Linux程序设计经验的初学者作为嵌入式Linux C语言开发的自学教材,同时也适合于已掌握C语言基础编程技术,需要提高嵌入式C语言编程实践能力,以及对嵌入式Linux编程感兴趣的程序员进行阅读...

Global site tag (gtag.js) - Google Analytics