1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言 在之前做项目的时候, 他是一个智能拨号模块, 是一个单独运行的程序, 在arm开发板上每次重启之后, 需要自己再去手动运行一次, 这个时候我们想到既然他是智能拨号模块, 那就要实现一个全自动的, 也就是开机时让他自启动, 自启动设置 1. 在Linux 下编写一个hello.c(此程序需要在ARM上开机自启动) hello.c如下: #include #include #include #include int main (int argc, char **argv) { int fd = -1; int rv = -1; char buf[64]; memset(buf, 0, sizeof(buf)); strcpy(buf, "hellon"); fd = open("hello.txt", O_RDWR|O_CREAT, 0600); while(1) { rv = write(fd, buf, strlen(buf)); sleep(3); } return 0; } 2. 使用交叉编译工具编译hello.c, 生成一个在ARM下运行的可执行文件 使用交叉编译工具, 生成hello, 可执行问文件, 可以看到不能直接运行, file命令查看文件, 可以看到是 ARM. 3. 将可执行文件拿到ARM开发板上, chmod a+x hello , 给执行权限 这里有俩种方法都可以将文件拿到arm板上 , 一种是通过secure crt 远程登陆的rz和sz命令, 将文件拿到ARM板上, 一种可以通过tftp将可执行文件拿过去. 要注意拿过去的可执行文件没有权限, 使用chmod 命令给一个权限 我们先执行一下, 可以看到已经将hello写入 hello.txt中, 将hello.txt删除, 方便我们进行以下的测试 4. 打开开机启动文件(shell 脚本), 每个板子可能有不同的Linux内核, 故启动文件名称不一样 例如: /etc/init.d/rcS /etc/init.d/rc.local /etc/profile /usr/etc/rc.local 我的板子上是 “/etc/init.d/rcS” 这个文件名称 5. 在 /etc/init.d/rcS 文件中添加需要自启动程序(方案一) 即在shell中 执行一个可执行文件, 进入到绝对路径, ./可执行文件名称 即可, 例如: cd /apps ./hello 5. 在 /etc/init.d/路径中添加一个shell脚本(方案二) 创建了init进程, init进程执行init.d解释/etc/inittab, 这个就会去执行/etc/init.d中有一个rcS的脚本, 这个脚本是for循环, 找到/etc/init.d中以S打头的至少俩个字符的脚本, 然后执行这个脚本; |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
91 浏览 0 评论
iTOP-3A5000主控板龙芯架构外加机箱就是一台电脑主机
1031 浏览 0 评论
迅为RK3568开发板EMMC镜像导出打包update.img
1080 浏览 0 评论
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
1506 浏览 0 评论
2213 浏览 0 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 21:37 , Processed in 0.622961 second(s), Total 71, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号