zoukankan      html  css  js  c++  java
  • 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!
    ");
    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 oot.tar.gzetcinit.d cS,打开看一下,把/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. 需要研究的蛮多,中午先去吃饭了

  • 相关阅读:
    2017洛谷7月月赛总结
    poj3169 Layout
    poj3613Cow Relays
    洛谷P1418 选点问题
    poj3311Hie with the Pie
    poj1734Sightseeing trip
    poj3728The merchant
    洛谷P2420 让我们异或吧
    struts2.1笔记02:servlet简介
    struts2.1笔记01:MVC框架思想浅层理解
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8183131.html
Copyright © 2011-2022 走看看