0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在嵌入式Linux上运行一个最简单的“Hello Liunx”程序

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-04-10 10:36 次阅读

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

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

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

1、 需要一个基于Arm的gcc交叉编译器;

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

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

第一个问题,相对比较容易解决,直接和中间厂商要来了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

1、Enable:

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软件,还可以。

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

#include

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 ---成功了!

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18954

    浏览量

    301649
  • Linux
    +关注

    关注

    87

    文章

    11196

    浏览量

    208659

原文标题:嵌入式Linux编程之旅,我的第一次艰难跋涉

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式Linux-Qt环境搭建 Qt程序运行测试

    本编介绍如何在嵌入式Linux开发板配置Qt运行环境,并进行Qt程序运行测试。
    的头像 发表于 06-01 09:07 7328次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>-Qt环境搭建 Qt<b class='flag-5'>程序</b><b class='flag-5'>运行</b>测试

    【Rico Board试用体验】简单嵌入式应用程序的编译与测试过程

    本帖最后由 cwfwh 于 2016-12-7 20:06 编辑 前面已经介绍过,基于Fedora环境的嵌入式交叉编译环境搭建过程,有这个基础后,这里介绍
    发表于 12-07 20:04

    怎样去做一个简单hello程序编译及运行示例呢

    嵌入式linux简单hello程序编译及
    发表于 11-04 06:12

    嵌入式Linux板子运行Hello World

    嵌入式Linux板子运行Hello World
    发表于 11-19 07:37

    Linux实现ARM嵌入式开发

    时间:2019.1.26最近接触ARM平台上的嵌入式开发,选择了Linux作为宿主机,直接装了Ubuntu16.04的双系统,没有windows下装虚拟机。
    发表于 12-14 09:01

    什么是嵌入式嵌入式Liunx组成

    什么是“嵌入式”?答:除了电脑,其他东西都是“嵌入式嵌入式Liunx组成拿windows做类比,比如我们的手表
    发表于 12-17 07:54

    创建简单Hello World Linux应用程序的过程

    本教程将向您介绍创建简单Hello World Linux应用程序的过程,然后将该应用
    发表于 08-28 06:32

    什么是嵌入式Linux

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统
    发表于 10-11 13:47

    嵌入式liunx开发技术详解

    嵌入式liunx开发技术详解主要内容本书以嵌入式Linux 系统开发流程为主线,剖析了嵌入式Linux
    发表于 03-04 16:58 55次下载

    嵌入式Linux应用程序例程

    嵌入式Linux应用程序例程(arm嵌入式开发步骤)-嵌入式Linux应用
    发表于 07-30 13:23 16次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>应用<b class='flag-5'>程序</b>例程

    python程序嵌入式linux系统运行。。

    最近在写运行嵌入式linux系统下的python程序。中间遇到很多坑,接下来我就一一说下。从windows编写python脚本,然后将文
    发表于 11-01 16:32 12次下载
    python<b class='flag-5'>程序</b><b class='flag-5'>在</b><b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>系统<b class='flag-5'>运行</b>。。

    嵌入式linux简单hello程序编译及运行示例

    嵌入式linux简单hello程序编译及
    发表于 11-01 16:56 9次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>简单</b>的<b class='flag-5'>hello</b><b class='flag-5'>程序</b>编译及<b class='flag-5'>运行</b>示例

    嵌入式Linux应用程序开发-(1)第一个嵌入式QT应用程序

    一个嵌入式QT应用程序成功安装 Qt Creator 开发环境后,我们通过
    发表于 11-01 17:21 16次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>应用<b class='flag-5'>程序</b>开发-(1)第<b class='flag-5'>一个</b><b class='flag-5'>嵌入式</b>QT应用<b class='flag-5'>程序</b>

    完整的嵌入式程序_从单片机工程师的角度看嵌入式Linux

    前言这篇文章简单我们来起梳理嵌入式Linux些知识,方便于些想跟我
    发表于 11-02 12:06 13次下载
    <b class='flag-5'>一</b><b class='flag-5'>个</b>完整的<b class='flag-5'>嵌入式</b><b class='flag-5'>程序</b>_从单片机工程师的角度看<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    。搭建Linux平台交叉编译环境在上篇文章我们介绍了使用AWTK开发简单的应用并在PC模拟运行,本篇文章就来介绍
    的头像 发表于 12-07 12:08 631次阅读
    【从0开始创建AWTK应用<b class='flag-5'>程序</b>】编译应用到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>平台<b class='flag-5'>运行</b>