找回密码
 注册
关于网站域名变更的通知
查看: 340|回复: 1
打印 上一主题 下一主题

在linux嵌入式开发板上如何进行开机自动运行用户应用程序的操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-20 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令,增加运行用户应用程序的命令,达到开机自动运行用户应用程序的目的。
7 o9 o2 O; U# }7 y/ V7 k- u$ Q% m6 K$ }
下面以我做的实验为例,描述具体的实现步骤。该方法源于网络,我加以验证,稍做修改,此文相当于转载。
' I6 x6 O7 K# B; |
1.进入pc机的Linux 操作系统,在/nfs/usr/下通过mkdir lz 命令新建一个名为lz的文件夹,进入lz文件夹,通过mkdir hello新建一个hello文件夹用来存放我们将要编写的hello.c文件和编译生成的可执行文件。
: k& \8 p5 x4 V3 a4 O1 {

5 x: B* K6 E9 k4 o9 \; D2.在/nfs/usr/lz/hello下通过vi hello.c命令新建hello.c文件,编辑如下测试程序:

( N4 S* c0 h6 D, j: h0 u5 O4 {4 l, Y% x2 S
#include
" V& [: o3 w' U" rint main(){
/ J3 N7 C  v( n2 ?* ^. `# Oprintf("Hello,test ARM-linux!\n");( }& b8 `- D) d0 S' i) c7 ^
return 0;
6 k. [+ G5 M# [6 ?4 t) @}

( G5 @4 d  I5 J8 T
, }( e% z$ s& v- G. f) ^完成编辑后通过:wq保存后退出。
; @- p9 x( J8 k2 q
. e: [+ L6 m8 M( y  G3 g1 `
3.主机通过如下命令交叉编译环境编译hello.c:
- k$ U* ?: y) V6 x  A7 R/ Y0 x

0 G% A; b! }3 w* \3 i#arm-linux-gcc –o hello hello.c
4 @+ [7 y! m; d3 V) F" {/ ?
. b- T2 ^; [# L) m4 a& M
4.通过ls 命令可以看到在/nfs/usr/lz/hello/下已经生成了hello可执行文件,我们可以在开发板上通过./hello来测试自己编写的hello.c执行情况

2 ?: u+ Z( V' v  ]6 a
5 p0 j  T6 \2 w9 [# y/ Y% T& X% `# J' u) V5.修改rc.local文件,在文件的最后通过‘#’释掉启动图形界面的指令,增加执行用户应用程序hello的指令,具体实现如下:

2 n2 `# S" q# `5 G5 j8 [# E* s' |) z' Z1 ]9 q5 R
#export PATH=$QPEDIR/bin:$PATH
3 u1 g' a( g, N; s8 Q- ^  l# T#qtopia
' @& u0 y% N9 x7 j. P9 r/ M1 X" J. e#/usr/qtopia/bin/qtopia
: _  M8 A: [. q$ l+ V2 G2 N3 L3 m/usr/lz/hello/./hello
' o) y% M' v4 B- o' M6 h

. D& A+ W/ x# h* g. y: |& Y注:前三行是注释掉启动图形界面,最后一行是添加的执行用户的hello测试程序。

" @' C* Q- Z* z- H' x) ~4 E3 K: ^8 r5 B' {
6.重启开发板,通过vivi参数配置让开发板通过nfs挂载主机上的文件系统,这时我们就可以通过超级终端看到开发板已经运行了我们编写的hello程序。
+ r: U7 e7 O8 T; k0 a1 ^4 f8 a
# j+ r! U/ y: A! W8 J
! e3 V" @1 C4 J: a从接触linux系统下编程,一直困扰着我一个问题,就是我的程序应该怎样运行。以前学习裸机程序和单片机程序的时候,不用考虑这一问题,写好的程序直接在上电的时候直接由启动代码运行我的main函数。可是在有操作系统的情况下,我编译好的程序怎样执行呢?总不能我每次要手动去执行啊~!郁闷了两年了,呵呵,从2010.12月到2011.1月,期间边学习linux下编程,边寻找这方面的资料,哎,貌似这种技术对人家很简单啊,百度上的很少,终于找到一篇,如下;
9 i- {* z) F8 f" z+ D' r

  W: ?0 L& {) g4 S开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令,增加运行用户应用程序的命令,达到开机自动运行用户应用程序的目的。
: _1 r& {$ f4 k" D' N2 Q( w3 D9 w! L8 K; O% X! y
下面以我做的实验为例,描述具体的实现步骤。该方法源于网络,我加以验证,稍做修改,此文相当于转载。
5 w$ B0 \6 w! e, f4 X" O4 ^( G: e
$ d- \) p( k& V% G, W$ N8 E
游客,如果您要查看本帖隐藏内容请回复

* o+ a; g# v6 f2 s, {3 c" p
8 ?2 y: o! |6 k; k# E1 m" m
! ?. Z# t; y2 C2 `4 w! i  A
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:14 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表