itop4412开发板添加开机启动程序

1. 先编写代码,以helloworld.c为例子

 1 #include<stdio.h>
 2 #include<unistd.h> //这个文件是什么
 3  main()
 4 {
 5     int i = 0;
 6     while(1)
 7     {
 8         sleep(2);
 9         printf("hell0 world!\n");
10     }
11 }

2. 在ubuntu14环境下,用交叉编译器编译一下,生成.o文件,下一个问题,怎么通过串口把.o文件传给开发板?

3. 在串口log中看到,是不是4核板子,没任务的时候,关闭了另外3个?

1 [   63.520839] CPU1: shutdown

4. #vi root/etc/init.d/rcS这个文件在哪里,开发板和源码我都没找到?原来在根文件系统里面\4412_SCP精英版\linux-QT\root.tar.gz\etc\init.d\rcS,打开看一下,把/bin/int_helloworld &加入最后一行,讯为用的是nfs网络文件系统的方式。把根文件系统打包一下。开机即可看到输出。

 1 #! /bin/sh
 2 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
 3 runlevel=S
 4 prevlevel=N
 5 umask 022
 6 export PATH runlevel prevlevel
 7
 8 #
 9 #    Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
10 #
11 trap ":" INT QUIT TSTP
12 /bin/hostname iTOP-4412
13
14 #/bin/mount -n -t proc none /proc
15 #/bin/mount -n -t sysfs none /sys
16 #/bin/mount -n -t usbfs none /proc/bus/usb
17 #/bin/mount -t ramfs none /dev
18 [ -e /proc/1 ]    || /bin/mount -n -t proc  none /proc
19 [ -e /sys/class ] || /bin/mount -n -t sysfs none /sys
20 [ -e /dev/tty ]   || /bin/mount    -t ramfs none /dev
21
22 echo /sbin/mdev > /proc/sys/kernel/hotplug
23 /sbin/mdev -s
24 /bin/hotplug
25 # mounting file system specified in /etc/fstab
26 mkdir -p /dev/pts
27 mkdir -p /dev/shm
28 /bin/mount -n -t devpts none /dev/pts -o mode=0622
29 /bin/mount -n -t tmpfs tmpfs /dev/shm
30 /bin/mount -n -t ramfs none /tmp
31 /bin/mount -n -t ramfs none /var
32 mkdir -p /var/empty
33 mkdir -p /var/log
34 mkdir -p /var/log/boa
35 mkdir -p /var/lock
36 mkdir -p /var/run
37 mkdir -p /var/tmp
38
39 ln -sf /dev/ttyS2 /dev/tty2
40 ln -sf /dev/ttyS2 /dev/tty3
41 ln -sf /dev/ttyS2 /dev/tty4
42
43 amixer cset numid=5 127
44 amixer cset numid=6 1
45 amixer cset numid=30 8,0
46 amixer cset numid=40 1
47 amixer cset numid=43 1
48 amixer cset numid=47 1
49
50 /sbin/hwclock -s -f /dev/rtc
51
52 syslogd
53 /etc/rc.d/init.d/netd start
54 echo "                        " > /dev/tty1
55 echo "Starting networking..." > /dev/tty1
56 #sleep 1
57 #/etc/rc.d/init.d/httpd start
58 #echo "                        " > /dev/tty1
59 #echo "Starting web server..." > /dev/tty1
60 #sleep 1
61 #/etc/rc.d/init.d/leds start
62 #echo "                        " > /dev/tty1
63 #echo "Starting leds service..." > /dev/tty1
64 #echo "                        "
65 #sleep 1
66
67 #echo "*************************************" > /dev/ttySAC2
68 #echo "     http://www.topeet.com.cn        " > /dev/ttySAC2
69 #echo "*************************************" > /dev/ttySAC2
70 #echo "*************************************"
71 #echo "     http://www.topeet.com.cn        "
72 #echo "*************************************"
73
74
75 mkdir /mnt/disk
76 #mount -t yaffs2 /dev/mtdblock3 /mnt/disk
77
78 /sbin/ifconfig lo 127.0.0.1
79 /etc/init.d/ifconfig-eth0
80
81 echo "                                  " > /dev/tty1
82 echo "Starting Qtopia, please waiting..." > /dev/tty1
83 echo "                                  "
84 echo "Starting Qtopia4, please waiting..."
85
86 /bin/qtopia  &
87 /bin/int_helloworld       &

5. trap ":" INT QUIT TSTP这个是什么语法?

在有些情况下,我们不希望自己的shell脚本在运行时刻被中断如数据库备份, 我们可不希望用户使用ctrl+C之类便进入到shell状态,做我们不希望做的事情。这便用到了信号处理。 

kill -l可以列出系统的信号名称,如下: 

 1 -bash-3.00# kill -l
 2 1) SIGHUP    2) SIGINT    3) SIGQUIT   4) SIGILL
 3 5) SIGTRAP   6) SIGABRT   7) SIGBUS    8) SIGFPE
 4 9) SIGKILL   10) SIGUSR1   11) SIGSEGV   12) SIGUSR2
 5 13) SIGPIPE   14) SIGALRM   15) SIGTERM   17) SIGCHLD
 6 18) SIGCONT   19) SIGSTOP   20) SIGTSTP   21) SIGTTIN
 7 22) SIGTTOU   23) SIGURG   24) SIGXCPU   25) SIGXFSZ
 8 26) SIGVTALRM  27) SIGPROF   28) SIGWINCH  29) SIGIO
 9 30) SIGPWR   31) SIGSYS   34) SIGRTMIN  35) SIGRTMIN+1
10 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5
11 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9
12 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13
14 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
15 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5
16 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1
17 64) SIGRTMAX
18 -bash-3.00# 

通常我们需要忽略的信号有四个,即:HUP, INT, QUIT, TSTP,也就是信号1, 2, 3, 24

使用这样的语句可以使这些中断信号被忽略: 
trap "" 1 2 3 24 或 trap "" HUP INT QUIT TSTP

6. 需要研究的蛮多,中午先去吃饭了

原文地址:https://www.cnblogs.com/429512065qhq/p/8183131.html

时间: 2024-10-07 05:41:45

itop4412开发板添加开机启动程序的相关文章

ubuntu12.04添加开机启动程序(开机启动svn服务)

环境:ubuntu12.04 在/etc/init.d目录建立一个脚本文件svnd.sh cd /etc/init.d touch svnd.sh chmod +x svnd.sh vim svnd.sh 输入如下内容: #!/bin/bash #svnserve startup svnserve -d -r /ysh/svn 更新修改权限: update-rc.d svnd.sh defaults

iTOP-4412开发板-嵌入式平台开机测试

iTOP-4412平台硬件的连接1.核心板和底板的连接 迅为iTOP-4412开发板采用工业级进口板对板连接器,拔插方便稳定可靠,如下图所示. 另外迅为独家提供两种封装的核心板,接口定义完全兼容,如下图所示. iTOP-4412开发平台,核心板和底板可分离.拆分核心板的时候,使用塑料的薄片在核心和底板任意一边轻轻撬动,听到清脆的响声,表明撬动的一边的连接器已经分离,接着依次分离其它三边. 安装核心板的时候,核心板和底板的箭头要指向同一方向,将核心板和底板对齐,然后按压核心板,听到四次清脆的响声,

迅为iTOP-4412开发板以NFS方式调试应用程序

本文讲解一下通过 NFS 网络文件系统来调试我们的应用程序,我们这里以 linux qt 系统为 例. 我们在 qt 系统上调试应用的时候,首先是在虚拟机 Ubuntu 上通过交叉编译生成可执行的二进制文件, 然后把生成的二进制文件拷贝到文件系统里面,然后用命令重新生成 system.img,然后烧写 system.img 到 开发板,然后启动开发板运行我们的程序,或者是通过 tftp 把执行文件下载到开发板上. 上面说的这两种方式操作起来都很麻烦,下面我们讲一下利用 NFS 调试程序. 首先我

WPF 开发自动开机启动程序

原文:WPF 开发自动开机启动程序 本文告诉大家如何在 WPF 开发一个可以自动启动的程序 本文使用的自动开机启动方法是通过快捷方式放在启动文件夹的方式. 创建快捷方式 /// <summary> /// 为本程序创建一个快捷方式. /// </summary> /// <param name="lnkFilePath">快捷方式的完全限定路径.</param> /// <param name="args">

[转载]在iTOP-4412开发板上调试helloworld应用

本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安装.如下图所示.另外需要注意的是,如果要使用 SDK Manager 安装软件,需要将 Eclipse 关闭. 安装完成后,打开文件夹中“USB_fastboot_tool\platform-tools”的命令行 cmd.exe, 如下图所示,输入命令“#adb”,然后回车.这里集成了 adb 命令

Linux开机启动程序详解

我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核.请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存.因此,内核就必须完整地加载到可用RAM的第一个兆字节之内.为了实现这个目的,内核是被压缩了的.这个文件的头部包含着

Linux如何实现开机启动程序详解

Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核.请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存.因此,内核就必须完整地加载到可用RAM的第一个兆字节之内.为了实现这个目的,内核是被压缩

迅为iTOP-4412开发板Ubuntu操作系统烧写方法

本文转自:http://www.topeetboard.com Ubuntu系统烧写硬件平台:iTOP4412开发板 需要准备:串口线.读卡器.一张SD卡最好是2G(自备).另外一张卡(大于等于2G都可以,也可以使用U盘) 软件平台 Ubuntu操作系统,Windows系统 超级终端 镜像文件和压缩包,在光盘的Ubuntu文件夹中,和其它2种操作系统有区别 Ubuntu烧写步骤 第一步:通过PC机的Ubuntu系统把Ubuntu系统文件解压缩到TF卡里面 第二步:通过TF卡启动Ubuntu系统把

嵌入式开发板 迅为4412开发板 搭建Qt应用程序开发环境

集成开发软件qtcreator-3.2.2下载 官网下载 选择GPL/LGPL协议 选择离线下载 选择Linux Host 这里需要注意的是,如果只下载"Qt Creator",是不带运行环境的. 迅为电子网盘下载 "iTOP-4412开发板搭建编译环境所需要的工具包以及补丁包" "07-Qt_Creator" "QtE_IDE3.2.2" "qt-opensource-linux-x64-android-5.3.2