1621 views|0 replies
- Last login
- 2023-11-15
- Online Time
- 196 hours
- Prestige
- 1018 points
- Points
- 641 points
|
Add a startup program to the itop4412 development board
[Copy link]
1. Write the code first, taking helloworld.c as an example, copy code 1 #include
2 #include//What is this file? 3 main() 4 { 5 int i = 0; 6 while(1) 7 { 8 sleep(2); 9 printf("hell0 world!\n"); 10 } 11 } Copy code 2. In ubuntu14 environment, compile with cross compiler to generate .o file. The next question is how to pass .o file to development board through serial port? 3. In the serial port log, it can be seen that it is a 4-core board. When there is no task, it shuts down the other 3 cores? 1 [ 63.520839] CPU1: shutdown 4. #vi root/etc/init.d/rcS Where is this file? I can't find the development board and source code? It turns out that it is in the root file system\4412_SCP Elite Edition\linux-QT\root.tar.gz\etc\init.d\rcS. Open it and add /bin/int_helloworld & to the last line. Xunwei uses nfs network file system. Package the root file system. You can see the output after turning on the computer. Copy code 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 mkd ir -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/ttyS 2 /dev/tty4 42 43 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 #slee p 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 " " > /dev/ttySAC2 69 #echo "******************************************" > /dev/ttySAC2 70 #echo "******************************************" 71 #echo " " 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 & Copy code 5. trap ":" INT QUIT TSTP What is the syntax of this? In some cases, we don't want our shell script to be interrupted during runtime, such as database backup. We don't want users to enter the shell state by using ctrl+C and do things we don't want to do. This is where signal processing comes in. ) SIGCHLD 6 22) SIGCONT 23) SIGSTOP 24) SIGTSTP 25) SIGTTIN 7 26) SIGTTOU 27) SIGURG 28) SIGXCPU 29) SIGXFSZ 8 30) SIGVTALRM 31) SIGPROF 32) SIGVALRM 33) SIGVID 34) SIGVID-OF-R 35) SIGVID-STOP 36) SIGVID-OF-R 37) SIGVID-STOP 38) SIGVID-STOP 39) SIGVID-STOP 40) SIGVID-STOP 41) SIGVID-STOP 42) SIGVID-STOP 43) SIGVID-STOP 44) SIGVID-STOP 45) SIGVID-STOP 46) SIGVID-STOP 47) SIGVID-STOP 48) SIGVID-STOP 49) SIGVID-STOP 50) SIGVID-STOP 51) SIGVID-STOP 52) SIGVID-STOP 53) SIGVID-STOP 54) SIGVID-STOP 55) SIGVID-STOP 56) SIGVID-STOP 57) SIGVID-STOP 58) SIGVID-STOP 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-1 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# Copy code Usually there are four signals we need to ignore, namely: HUP, INT, QUIT, TSTP, that is, signals 1, 2, 3, 24. Use such statements to make these interrupt signals ignored: trap "" 1 2 3 24 or trap "" HUP INT QUIT TSTP 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# Copy code Usually we need to ignore four signals, namely: HUP, INT, QUIT, TSTP, that is, signals 1, 2, 3, 24. Use such statements to make these interrupt signals ignored: trap "" 1 2 3 24 or trap "" HUP INT QUIT TSTP 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# Copy code Usually there are four signals we need to ignore, namely: HUP, INT, QUIT, TSTP, that is, signals 1, 2, 3, 24. Use such statements to make these interrupt signals ignored: trap "" 1 2 3 24 or trap "" HUP INT QUIT TSTP
|
|