|
|
|
- 意柿树 冀
- 8 years ago
- Views:
Transcription
1 Linux/uClinux + MiniGUI:
2
3 MiniGUI MiniGUI-STR Linux/uClinux+MiniGUI Linux/uClinux MiniGUI Linux/uClinux Linux/uClinux SkyEye Xcopilot Linux uclinux GNU Linux/uClinux / Linux/uClinux MiniGUI MiniGUI-STR PC SkyEye Xcopilot MiniGUI MiniGUI-STR ARM3000 HH2410R3 MiniGUI MiniGUI MiniGUI MiniGUI V1.6 MiniGUI V1.6 I
4 MiniGUI V1.6 MiniGUI MiniGUI MiniGUI-Lite IAL MiniGUI API Reference Manual V1.6 MiniGUI API MiniGUI-STR MiniGUI Linux uclinux MiniGUI MiniGUI MiniGUI II
5 Linux/uClinux + MiniGUI 1.1 (C) 2005 III
6 ... I... III Linux PC Linux/uClinux MiniGUI MiniGUI MiniGUI MiniGUI Linux/uClinux Linux/uClinux Linux Linux IV
7 GNU Linux V
8 NFS CRAMFS JFFS ROMFS RAM disk SkyEye ARM Linux SkyEye Xcopilot uclinux Xcopilot uclinux Hello, world Makefile make makefile Makefile uclinux-dist C C Linux/uClinux MiniGUI VI
9 4.1 MiniGUI Windows MiniGUI Windows MiniGUI Linux PC MiniGUI-STR MiniGUI-STR MiniGUI-STR MiniGUI PC MiniGUI-STR SkyEye EP7312 MiniGUI SkyEye EP7312 MiniGUI SkyEye EP7312 MiniGUI-STR SkyEye EP7312 MiniGUI Xcopilot MiniGUI uclibc Xcopilot MiniGUI Xcopilot MiniGUI-STR Xcopilot MiniGUI MiniGUI Linux/uClinux ARM VII
10 MiniGUI ARM HH2410R MiniGUI HH2410R VIII
11 A MiniGUI-STR MiniGUI-VAR A.1 MiniGUI-STR A.2 MiniGUI-STR B MiniGUI-STR B.1 MiniGUI-STR B B.1.2 MiniGUI-STR B.1.3 MiniGUI-STR B.2 MiniGUI-STR MiniGUI.cfg B.2.1 system B.2.2 fbcon qvfb B.2.3 systemfont B.2.4 rawbitmapfonts varbitmapfonts A.2.5 mouse event B.2.6 cursorinfo iconinfo bitmapinfo B.2.7 bgpicture B.2.8 mainwinmetrics windowelementcolors B.2.9 imeinfo B C MiniGUI C C C.3 GNU IX
12
13 PDA Linux uclinux Linux/uClinux WAP 3G GUI J2ME 3D MiniGUI MiniGUI UT TCL MiniGUI MiniGUI MiniGUI Linux/uClinux MiniGUI 1
14 MiniGUI Linux/uClinux Linux Linux Linux/uClinux MiniGUI Linux/uClinux Linux/uClinux Linux C 2
15 1 Linux/uClinux MiniGUI 2 Linux/uClinux SkyEye Xcopilot Linux uclinux GNU 3 Linux/uClinux / 4 Linux/uClinux MiniGUI MiniGUI PC SkyEye Xcopilot 5 MiniGUI Linux/uClinux MiniGUI ARM3000 HH2410R3 MiniGUI-STR MiniGUI-VAR MiniGUI-STR MiniGUI MiniGUI minigui/ MiniGUI-STR libminigui-str tar.gz minigui-res-str-1.6.tar.gz mg-samples-str tar.gz mde-str tar.gz MiniGUI mgdemo tar.gz qvfb-1.0.tar.gz MiniGUI Linux PC Windows skyeye/ SkyEye V0.8.6 xcopilot/ Xcopilot armlinux/ ARM Linux SkyEye EP7312 uclinux/ uclinux-dist Xcopilot m68k-elf 3
16 samples/ 3 cal docs/ MiniGUI PDF Linux PC III CPU 256MB 15GB USB/PS2 PS2 VESA2 1024x Red Hat Linux 9 /usr 5GB RedHat Linux Fedora Fedora /usr /usr/local /home /var /opt /usr/local /opt 3GB #include <stdio.h> int main (void) { return 0; } 4
17 Linux <Ctrl+C> GPL MiniGUI-STR 1.6.x MiniGUI-STR italic URL bold italic constant width Linux Shell Bash Shell root root# user$ user$ make user$ su root# make install <> user$ cd <path to libminigui-str-1.6.2> \ CFLAGS=-m mid-shared-library -mshared-library-id=0 -Os -Wall -g -fomit-frame-pointer \ -I$(UCLINUX_DIR)/lib/uClibc/include PC 5
18 Linux/MiniGUI MiniGUI 12 D / / [email protected] 6
19 real-time embedded operating system RTOS UNIX RTOS RTOS C C ISO C ANSI C C RTOS + ANSI C ANIS C I/O ANSI C malloc/free RTOS RTOS psos psos 7
20 TCP/IP pna prpc phile ANSI C prepc probe pmont RTOS 1-1 RTOS Real-Time Applications Networking Module File System Module Graphics Module RTOS Core Device Drivers ANSI C Library CPU, Devices RTOS VxWorks 1 psos 2 Nucleus 3 WinCE 4 RTOS VxWorks psos Nucleus WinCE Linux/uClinux 5 ecos 6 Linux/uClinux Linux Linux Linux 1 VxWorks WindRiver 2 psos Integrated Systems Inc Linux uclinux
21 uclinux Linux MMU CPU uclinux Linux 32 ecos RTOS Linux/uClinux TCP/IP POSIX ecos uc/os-ii 7 ThreadX 8 uc/os-ii ThreadX RTOS uc/os-ii CPU ThreadX RTOS ThreadX VxWorks psos VxWorks psos Hopen Delta Linux
22 Linux/uClinux Linux/uClinux Linux/uClinux Linux Linux Linux PC Linux PC Linux CPU Linux Linux Linux 32 CPU MMU CPU CPU Linux Linux uclinux uclinux Linux 32 CPU Linux/uClinux 32 10
23 Linux/uClinux 32 x Compaq Alpha AXP Sun SPARC UltraSPARC Motorola PowerPC PowerPC64 ARM Hitachi SuperH IBM S/390 MIPS HP PA-RISC Intel IA-64 DEC VAX AMD x86-64 AXIS CRIS Renesas M32R ARM ARM ARM ARM ARM ARM S3C44B0 S3C2410 S3C4410 CirrusLogic EP7312 Atmel AT91 Linux/uClinux Linux/uClinux PC Linux/uClinux 1.1 task C Linux/uClinux Linux/uClinux C C I/O 11
24 Linux/uClinux PC Linux/uClinux Linux/uClinux Linux PC Linux/uClinux Linux/uClinux 1.1 MiniGUI Linux/uClinux MiniGUI MiniGUI ) LCD 12
25 2) GUI uc/os-ii uc/gui Nucleus GRAFIX VxWorks WindML GUI 3) GUI Linux MicroWindows OpenGUI picogui GUI 4) GUI TrollTech Qt/Embedded MiniGUI GNU GPL GUI Qt/Embedded Linux uclinux 16MB 64MB MiniGUI 9 MiniGUI 10 MiniGUI 1999 GPL
26 MiniGUI Linux/uClinux ecos uc/os-ii VxWorks psos ThreadX Win32 Intel x86 ARM ARM7/AMR9/StrongARM/xScale PowerPC MIPS M68K DragonBall/ColdFire MiniGUI MiniGUI 1998 MiniGUI MiniGUI Linux MiniGUI MiniGUI MiniGUI HappyLinux 1.0 MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI uclinux ecos MiniGUI MiniGUI Linux/uClinux ecos uc/os-ii VxWorks psos ThreadX Win MiniGUI MiniGUI 14
27 MiniGUI MiniGUI 1-2 MiniGUI ANSI C MiniGUI API MiniGUI FrameWork, MMI, Key Applications MiniGUI Portable Layer ANSI C Library Device Drivers Linux/uClinux, VxWorks, ThreadX, ecos, uc/os-ii,... ix86, ARM, MIPS, PowerPC, M68K 1-2 MiniGUI MiniGUI MiniGUI Linux UNIX uclinux uc/os-ii ecos VxWorks MMU CPU GUI MiniGUI MiniGUI-Threads MiniGUI-Threads uc/os-ii ecos VxWorks psos Linux uclinux MiniGUI MiniGUI-Threads MiniGUI-Lite MiniGUI-Threads MiniGUI-Lite 15
28 MiniGUI-Lite UNIX Linux MiniGUI-Standalone MiniGUI uclinux MiniGUI-Standalone MiniGUI-Standalone DOS MiniGUI-Threads UNIX MiniGUI-Lite UNIX MiniGUI Linux/uClinux Linux/uClinux 16
29 3. Linux/uClinux PC PC PC PC Linux/uClinux Windows Windows 17
30 Windows PC PC cross-compiler host target C C C C toolchain helloworld #include <stdio.h> int main (void) { printf ( Hello, world\n ); return 0; } Linux PC user$ gcc o helloworld helloworld.c gcc C #include 18
31 <stdio.h> /usr/include /usr/local/include stdio.h gcc helloworld gcc ld /lib C libc.so Linux PC ARM user$ arm-linux-gcc o helloworld helloworld.c arm-linux-gcc ARM PC #include <stdio.h> stdio.h libc.so arm /usr/local/arm-linux/bin/ /usr/local/arm-linux/arm-linux/include/ /usr/local/arm-linux/arm-linux/lib/ PATH user$ export PATH=:/usr/local/arm-linux/bin:$PATH Shell arm-linux-gcc uclinux uclibc I -L Linux/uClinux Linux 19
32 Linux uclinux Linux/uClinux C UNIX PC Linux/uClinux 1. Linux PC 2. PC PC 3. 20
33 PC Linux/uClinux PC uclinux uclinux uclinux fork fork uclinux uclinux user$ ls more uclinux uc-libc uclibc uclinux setitimer SIGALARM uclibc POSIX Threads 3 Linux/uClinux Linux/uClinux MiniGUI Linux/uClinux 2 SkyEye Xcopilot 21
34 Linux uclinux GNU 22
35 2 Linux/uClinux Linux/uClinux Linux/uClinux Linux SkyEye EP7312 Xcopilot Linux/uClinux Linux UNIX Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux MontaVista HardHat Linux Linux 23
36 Linux Linux Linux Linux RTOS image Flash RTOS Linux RTOS Linux Linux 2-1 Linux Linux Linux 2-1 Linux 24
37 2.1.2 Linux Linus Torvalds Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux 25
38 VFS RTOS Linux OS Linux C C Linux Linux RTOS Linux root filesystem UNIX 26
39 init Linux RAM Linux RTOS Linux API API Linux GNU C glibc Linux Linux uclinux glibc uclibc C Linux Linux RAM Linux RTOS RTOS Linux 27
40 Linux Linux RTOS Linux Linux Linux bootloader MiniGUI PC MiniGUI MiniGUI Linux PC 1) 28
41 Linux Linux UNIX Windows Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux PC Linux Linux UNIX Solaris Linux UNIX Linux UNIX Linux Solaris Solaris Solaris Linux Windows UNIX Cygwin Cygwin UNIX Linux Linux Cygwin arm-linux arm-elf Cygwin 2) / / / 29
42 minicom Linux HyperTerminal Windows console 2-3 Bootloader minicom 2-3 NFS NFS TFTP Trivial File Transfer Protocol DOC DOM CompactFlash ROM 30
43 2-4 Bootloader 2-4 M-System DOC ISA DOC ISA ISA DOC Linux DOC M-System DOC DOS/Windows Windows native toolchain
44 Flash DOC x86 Linux PC Linux RedHat GNU Linux GNU GNU GCC Glibc Binutils GDB 1) GCC GCC GNU Compiler Collection x86 ARM MIPS PowerPC C C++ Java ADA Fortran Pascal GCC gcc [ option filenames ]... g++ [ option filenames ]... gcc C g++ C++ option GCC filenames GCC GCC GCC cpp GCC ld 32
45 GCC.c C.C C++.cc C++.cxx C++.h.s.S.o.a 2) C C Linux Linux uclinux C C Glibc 11 Linux C uclibc 12 uclinux C Linux newlib 13 uclibc RedHat 3) Binutils Binutils as GNU assembler ld GNU linker ar archive / nm objcopy
46 objdump ranlib readelf ELF size section strip GNU Linux Linux minicom minicom minicom s Configuration Serial port setup
47 2-6 minicom Change which setting? Save setup as dfl A-Serial Device /dev/ttys0 /dev/ttys1 E-Bps/Par/Bits N F-Hardware Flow Control No G-Software Flow Control No Shell minicom minicom minicom CTRL-A < > CTRL-A Q minicom 35
48 CTRL-A S CTRL-A R CTRL-A C CTRL-A Z minicom Linux Linux bootloader kernel init CPU C PC LILO GRUB init init init init Linux 36
49 ROM ROM CPU memory map ROM Linux TFTP RAM start_kernel NFS init init init /etc/inittab init /etc/rc.d/rcs init LILO 14 GRUB 15 x86 Blob 16 LART Blob ARM TFTP U-Boot 17 PowerPC ARM RedBoot 18 RedHat ecos RedBoot
50 2.3.3 Flash Flash Flash x86 1 Flash NFS 2 TFTP NFS Linux 38
51 Linux Linux Linux Linux Linus Torvalds Linux x86 ARM MIPS ARM MIPS PowerPC M68k ) make *config make config make menuconfig curses 2-8 make xconfig TK X Window make oldconfig make config 39
52 2-8 make menuconfig make menuconfig.config.config make menuconfig.config make menuconfig make menuconfig ARM Linux user$ make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig ARCH CROSS_COMPILE Makefile Makefile ARCH := arm 40
53 CROSS_COMPILE=arm-linux- Makefile CROSS_COMPILE gcc arm-linux-gcc CROSS_COMPILE arm-linux- 2) Linux Code maturity level options Loadable module support General setup Memory technology devices Block devices Network device support Character devices Filesystems Console drivers 3) user$ make dep C Makefile make menuconfig 41
54 make dep 2.6 make dep make zimage make bzimage make vmlinux user$ make zimage zimage gzip zimage bzimage big zimage gzip vmlinux vmlinux make zimage zimage vmlinux x86 zimage bzimage zimage 512KB bzimage x86 bzimage zimage vmlinux bzimage Makefile bzimage zimage arch/${arch}/boot ARM arch/arm/boot user$ make modules make clean make distclean 42
55 UNIX Linux RTOS Linux Linux Linux Linux / bin sbin boot etc lib usr home root root dev opt mnt var lock log 43
56 proc tmp Linux /bin /sbin /etc /lib /dev /usr /var /proc Linux /bin /etc /lib /dev /var uclinux Linux lib*.a lib*.so Linux glibc libc so libc.so.6 C ld-linux.so Linux C C C malloc free Linux Linux C GNU C Glibc Linux 44
57 Linux Glibc Glibc Linux Glibc ld-linux libc C libm libdl libcrypt libpthread POSIX /lib d a cp user$ cp a lib*.so* ${ROOTFS}/lib/ strip ARM strip user$ arm-linux-strip ${ROOTFS}/lib/*.so uclibc Glibc Glibc libc ld-linux libdl libm libcrypt libpthread Glibc /boot ${ROOTFS}/lib/modules ${ROOTFS}/etc modules.conf 45
58 2.5.4 Linux /dev Linux /dev Linux mem null zero random tty0 ttys0 tty tty console fb0 Framebuffer /dev rcs mknod mknod user$ cd ${ROOTFS}/dev user$ su Password: root# mknod m 666 null c 1 3 mknod mknod -m 666 null 46
59 c 1 3 Documentation/devices.txt /dev ${ROOTFS}/dev cp -a cp user$ cp a /dev/zero ${ROOFS}/dev/ rcs mknod JFFS2 CRAMFS UNIX Linux Linux Linux BusyBox Linux BusyBox Linux BusyBox ls cp mkdir init ifconfig cat rm mount BusyBox 47
60 BusyBox BusyBox C glibc uclibc C Linux init init init init init= init /sbin/init /etc/init /bin/init /bin/sh init UNIX System V init Linux init Linux init System V init init BusyBox init init 1) System V init Linux init Miquel van Soorenburg System V init init halt runlevel shutdown mesg ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/ init System V init init init /etc/inittab /etc/rc.d/ /etc/inittab /etc/rc.d/ 48
61 2-1 init System V init NFS X init X Linux 5 1 2) BusyBox init BusyBox init init BusyBox init Linux init System V init BusyBox init BusyBox init runlevel Linux BusyBox init /sbin/init busybox /bin/busybox BusyBox BusyBox init init BusyBox init init 49
62 /etc/inittab /etc/init.d/rcs inittab action wait inittab action once inittab action respawn inittab action askfirst BusyBox /etc/inittab BusyBox inittab inittab init action action /dev/tty1 /dev/tty4 BusyBox init /etc/inittab BusyBox inittab System V init inittab BusyBox inittab inittab id:runlevel:action:process System V init id id process shell Shell BusyBox sh BusyBox init runlevel process action process BusyBox inittab Action sysinit respawn askfirst wait once ctrlaltdel respawn Ctrl+Alt+Del 50
63 shutdown restart init init inittab ::sysinit:/etc/init.d/rcs ::respawn:/sbin/getty ttys0 ::restart:/sbin/init ::shutdown:/bin/umount -a r inittab init a) /etc/init.d/rcs b) c) /sbin/init init d) init id init #!/bin/sh # Remount the root filesystem in read-write mount -n -o remount,rw / # Mount /proc filesystem mount /proc # Start the network interface /sbin/ifconfig eth /etc/fstab fstab # /etc/fstab # device directory type options # /dev/nfs / nfs defaults none /proc proc defaults 51
64 NFS 3) init System V init BusyBox init init init init fork init init Linux CRAMFS TMPFS RAM disk /var/tmp /tmp /var/tmp RAM Linux Linux 52
65 CPU MMU 4MB ROM RAM CPU 8-16MB CPU 32MB uclinux Linux ROM EEPROM Linux Flash 1) Flash Flash Flash EEPROM Flash Flash NOR NAND Intel 1988 NOR Flash XIP Flash RAM NOR RAM NOR Flash CPU NOR 1-4MB NOR 0 NAND NAND NOR NAND NAND 512 NAND Flash NOR Flash KB 64MB 53
66 NAND Flash 8MB 128MB NAND Flash DiskOnChip 1024MB NAND Flash 100 NOR Flash 10 NAND NOR NOR NAND NOR NAND NAND NOR NAND NOR XIP NOR NAND Flash NOR ROM NAND 2) MTD Linux MTD memory technology device ROM RAM Flash M-System DOC DiskOnChip Linux MTD MTD MTD MTD MTD MTD MTD MTD 2-9 JFFS2 NFTL NAND Flash DOC RAM 54
67 2-9 MTD MTD add_mtd_device() mtd_info MTD mtd_info MTD Linux MTD DOC DOC NAND Flash Common Flash Interface (CFI) RAM ROM DOC NAND Flash M-System Linux DOC1000 DOC2000 DOC Millennium DOC MTD RAM ROM MTD MTD MTD MTD MTD MTD MTD MTD MTD Linux 2-3 CRAMFS No No No Yes Flash JFFS2 Yes Yes Yes Yes Flash Ext2 over NFTL Yes Yes No No Flash Ext3 over NFTL Yes Yes Yes No Flash Ext2 over RAM disk Yes No No No RAM 55
68 Flash RAM CPU RAM disk (initrd) RAM disk Flash RAM RAM disk NFS Linux NFS NFS NFS NFS NFS 56
69 1) NFS NFS Linux NFS Linux NFS NFS RedHat 9.0 setup System Services nfs NFS root#/etc/init.d/portmap start root#/etc/init.d/nfs start NFS /etc/exports IP /tftpboot/rootfs *(rw,no_root_squash) /tftpboot/rootfs * IP IP rw no_root_squash root /etc/exports NFS root#/etc/init.d/nfs restart NFS 2) NFS NFS NFS file system support Root file system on NFS Root file system on NFS 57
70 root=/dev/nfs NFS /dev/nfs Root file system on NFS nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] nfsroot /tftpboot/%s <server-ip> NFS IP ip <root-dir> NFS %s IP <nfs-options> NFS ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> IP IP ip RARP BOOTP <client-ip> IP RARP BOOTP <server-ip> NFS BOOTP <gw-ip> NFS BOOTP <netmask> <hostname> BOOTP <device> <autconf> 58
71 2.6.4 CRAMFS CRAMFS Linus Torvalds 16MB 256MB UID 8 GID UNIX 00:00:00 GMT, January 1, PAGE_CACHE_SIZE 4096 endian 1 CRAMFS CRAMFS Flash Flash RAM CRAMFS mkcramfs cramfsck mkcramfs Linux scripts/cramfs user$ cd ${KERNELDIR}/scripts/cramfs user$ make mkcramfs cramfsck CRAMFS ${ROOTFS} user$ mkcramfs ${ROOTFS}/ cramfs.img 59
72 50% CRAMFS root# mount o loop cramfs.img /mnt/cramfs /mnt/cramfs CRAMFS /mnt/cramfs CRAMFS CRAMFS Ext2 CRAMFS Flash JFFS2 JFFS Axis Flash Flash RedHat David WoodHouse JFFS JFFS2 JFFS2 Flash JFFS2 JFFS2 MTD MTD ROMFS ROMFS uclinux ROMFS uclinux Flash XIP RAM ROMFS Linux ecos Linux ROMFS 60
73 CRAMFS ROMFS ROMFS ROMFS genromfs RAM disk RAM disk Linux RAM RAM disk RAM disk RAM disk RAM disk RAM disk RAM disk CONFIG_BLK_DEV_RAM CONFIG_BLK_DEV_RAM_SIZE CONFIG_BLK_DEV_INITRD RAM disk RAM disk initrd Initial RAM disk ext2 CONFIG_EXT2_FS 1) RAM disk RAM disk Linux RAM disk initrd RAM disk initrd Initial RAM disk RAM disk initrd Linux Linux initrd RAM disk RAM disk Linux Linux initrd 61
74 initrd Linux initrd initrd initrd Flash initrd RAM disk RAM disk RAM disk RAM disk Flash 2) RAM disk Linux RAM disk RAM disk RAM disk RAM disk RAM disk RAM disk 2MB RAM disk ext2 user$ su m password: root# dd if=/dev/zero of=/dev/ram bs=1k count= records in records out root# mke2fs -vm0 /dev/ram 2048 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux 62
75 Block size=1024 (log=0) Fragment size=1024 (log=0) 256 inodes, 2048 blocks 0 blocks (0.00%) reserved for the super user First data block=1 1 block group 8192 blocks per group, 8192 fragments per group 256 inodes per group Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root# mount -t ext2 /dev/ram /mnt/ramdisk root# cp -a ${yourfilesdir}/* /mnt/ramdisk root# umount /mnt/ramdisk root# dd if=/dev/ram of=ramdisk bs=1k count= records in records out root# gzip ramdisk 1 Linux dd RAM disk 2MB dd if=/dev/zero /dev/zero of=/dev/ram /dev/ram /dev/ram RAM disk bs=1k 1k count= MB 2 mke2fs RAM disk 2MB ext2 -m0 mke2fs 5% Linux 3 mount RAM disk /mnt/ramdisk -t ext2 /dev/ram ext2 4 RAM disk RAM disk 5 RAM disk 6 7 dd RAM disk RAM disk if=/dev/ram RAM disk 63
76 ramdisk gzip ramdisk.gz RAM disk Linux RAM disk RAM disk mount umount mke2fs RAM disk Linux loop back device RAM disk user$ su m password: root# dd if=/dev/zero of=ramdisk bs=1k count=2048 root# mke2fs F -vm0 ramdisk root# mount o loop ramdisk /mnt/ramdisk root# cp -av ${yourfilesdir}/* /mnt/ramdisk root# umount /mnt/ramdisk root# gzip ramdisk 1 dd 2 mke2fs ramdisk ext2 mke2fs -F mke2fs 3 mount -o loop ramdisk /mnt/ramdisk ramdisk 4 /mnt/ramdisk ramdisk ramdisk ramdisk 5 6 RAM disk Linux loop back device Linux 64
77 RAM disk initrd 3) RAM disk RAM disk RAM disk gunzip root# gunzip ramdisk.gz root# mount o loop ramdisk /mnt/ramdisk /mnt/ramdisk cp df Available K root# df /mnt/ramdisk Filesystem 1k-blocks Used Available Use% Mounted on /home/snig/ramdisk % /mnt/ramdisk RAM disk RAM disk dd ramdisk /dev/ram /dev/ram /mnt/ramdisk /dev/ram ramdisk /mnt/ramdisk ramdisk 65
78 dd root# gunzip ramdisk.gz root# dd if=ramdisk of=/dev/ram bs=1k count=2048 root# mount /dev/ram /mnt/ramdisk RAM disk RAM disk 4MB 4) RAM disk Linux initrd RAM disk 2MB 2MB 8MB RAM disk 4MB 8MB RAM disk RAM disk RAM disk 8MB RAM disk 8MB RAM disk 2MB dmesg RAM disk user$ dmesg grep RAMDISK RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize RAMDISK: Compressed image found at block 0 RAM disk Linux GRUB /etc/grub.conf kernel 66
79 ramdisk_size=8192 RAM disk 8MB title Red Hat Linux ( ) root (hd0,0) kernel /boot/vmlinuz ro root=/dev/hda1 ramdisk_size=8192 initrd /boot/initrd img SkyEye SkyEye Linux Windows GNU gdb ARM CPU LCD SkyEye Linux uclinux ucos-ii SkyEye SkyEye EP7312 Linux /opt/armlinux user$ mkdir /opt/armlinux /opt/armlinux SkyEye SkyEye EP7312 LCD skyeye tar.bz2 skyeye/ 67
80 user$ cd /opt/armlinux user$ tar jxvf skyeye tar.bz2 user$ cd skyeye user$./configure -target=arm-elf - prefix=/usr/local user$ make user$ su c make install skyeye /usr/local/bin /usr/local/bin PATH skyeye SkyEye user$ skyeye *************************************************************** **** **** **** SkyEye Simulator Ver with GDB 5.3 Interface **** **** **** *************************************************************** GNU gdb 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf". (SkyEye) (SkyEye) ARM arm-linux-cross tar.bz2 armlinux/ root# cd /usr/local root# mkdir arm root# cd arm root# tar jxvf <path to product cdrom>/armlinux/arm-linux-cross tar.bz2 /usr/local/arm ARM Linux /bin arm-linux-gcc PATH /usr/local/arm/2.95.3/bin arm-linux-gcc 68
81 2.7.3 linux patched-for-ep7312.tar.bz2 armlinux/ ARM EP7312 Linux /opt/armlinux linux user$ tar jxvf linux patched-for-ep7312.tar.bz2 make menuconfig user$ cd linux user$ make menuconfig linux Makefile ARCH CROSS_COMPILE ARM /usr/local/arm/2.95.3/bin/arm-linux- System Type CLPS711X/EP721X Implementations EDB
82 2-11 Block devices RAM disk support Intial RAM disk (initrd) support RAM disk ROMFS Filesystems ROM file system support user$ make dep user$ make zimage arch/arm/boot/compressed/vmlinux vmlinux SkyEye 70
83 /opt/armlinux ep7312 user$ cd /opt/armlinux user$ mkdir ep7312 user$ cd ep7312 user$ cp /opt/armlinux/linux /vmlinux. -f SkyEye EP7312 SkyEye skyeye.conf /opt/armlinux/ep7312 skyeye.conf #skyeye config file for ep7312 cpu: arm720t mach: ep7312 mem_bank: map=i, type=rw, addr=0x , size=0x mem_bank: map=m, type=rw, addr=0xc , size=0x mem_bank: map=m, type=r, addr=0xc0000, size=0x mem_bank: map=m, type=rw, addr=0xc , size=0x00c00000 skyeye.conf cpu CPU arm720t SkyEye ARM720T mach ( CPU ) ep7312 EP7312 mem_bank IBM DeveloperWorks SkyEye skyeye vmlinux user$ skyeye vmlinux *************************************************************** **** **** **** SkyEye Simulator Ver with GDB 5.3 Interface **** **** **** *************************************************************** GNU gdb 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. 71
84 Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf". (SkyEye) (skyeye) (SkyEye) target sim cpu info: armv4, arm720t, , ffffff00, 1 mach info: name ep7312, mach_init addr 0x SKYEYE: use arm7100 mmu ops Connected to the simulator. (SkyEye) load Loading section.init, size 0xc000 vma 0xc Loading section.text, size 0xd869c vma 0xc Loading section ex_table, size 0x7b8 vma 0xc010c6a0 Loading section.data, size 0x985b vma 0xc010e000 Start address 0xc Transfer rate: bits in <1 sec. (SkyEye) run Starting program: /opt/armlinux/ep7312/vmlinux Linux version ac4-rmk1 ([email protected]) (gcc version (relea se)) #18 19:29:45 CST 2005 Processor: ARM ARM720T revision 0 Architecture: Cirrus Logic EDB7312 (EP7312 evaluation board) Warning: bad configuration page, trying to continue On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/ram0 rw initrd=0xc ,0x Calibrating delay loop BogoMIPS Memory: 16MB = 16MB total Memory: 14820KB available (865K code, 209K data, 48K init) Dentry-cache hash table entries: 2048 (order: 2, bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Starting kswapd v1.8 pty: 256 Unix98 ptys configured block: queued sectors max/low 9757kB/3252kB, 64 slots per queue RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Blkmem copyright 1998,1999 D. Jeff Dionne Blkmem copyright 1998 Kenneth Albanowski Blkmem 1 disk images: 0: FB0C0000-FB0BFFFF [VIRTUAL FB0C0000-FB0BFFFF] (RO) NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. NetWinder Floating Point Emulator V0.95 (c) Rebel.com Blkmem: bad access: block=2, count=2 (pos=800, len=0) end_request: I/O error, dev 1f:00 (Blkmem), sector 2 EXT2-fs: unable to read superblock Blkmem: bad access: block=0, count=2 (pos=400, len=0) end_request: I/O error, dev 1f:00 (Blkmem), sector 0 romfs: unable to read superblock Kernel panic: VFS: Unable to mount root fs on 1f:00 initrd 72
85 Kernel panic: VFS: Unable to mount root fs on 1f:00 user$ mkdir /opt/armlinux/ep7312/rootfs BusyBox busybox-1.00.tar.bz2 /opt/armlinux user$ tar jxvf busybox-1.00.tar.bz2 user$ cd busybox-1.00 make menuconfig BusyBox
86 2-14 busybox Build Options busybox BusyBox arm-linux- arm-linux-gcc 74
87 busybox route armlinux/ep7312 busybox-config BusyBox user$ make dep user$ make busybox file ARM user$ file busybox busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, statically lin ked, stripped BusyBox user$ make PREFIX=/opt/armlinux/ep7312/rootfs install bin sbin usr/bin usr/sbin BusyBox _install /dev mknod crw snig snig 5, console crw snig snig 1, kmem crw snig snig 1, mem crw snig snig 1, null brw snig snig 1, ram0 crw snig snig 1, random crw snig snig 5, tty crw snig snig 4, tty0 crw snig snig 4, tty1 crw snig snig 204, ttyam0 crw snig snig 204, ttyam1 crw snig snig 1, urandom crw snig snig 1, zero /etc 75
88 inittab fstab user$ cd /opt/armlinux/ep7312/rootfs user$ mkdir etc init BusyBox init BusyBox inittab inittab /opt/armlinux/busybox-1.00/examples/inittab # /etc/inittab init(8) configuration for BusyBox # # Copyright (C) by Erik Andersen <[email protected]> # # # Note, BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use sysvinit. # # # Format for each entry: <id>:<runlevels>:<action>:<process> # # <id>: WARNING: This field has a non-traditional meaning for BusyBox init! # # The id field is used by BusyBox init to specify the controlling tty for # the specified process to run on. The contents of this field are # appended to "/dev/" and used as-is. There is no need for this field to # be unique, although if it isn't you may have strange results. If this # field is left blank, it is completely ignored. Also note that if # BusyBox detects that a serial console is in use, then all entries # containing non-empty id fields will _not_ be run. BusyBox init does # nothing with utmp. We don't need no stinkin' utmp. # # <runlevels>: The runlevels field is completely ignored. # # <action>: Valid actions include: sysinit, respawn, askfirst, wait, once, # restart, ctrlaltdel, and shutdown. # # Note: askfirst acts just like respawn, but before running the specified # process it displays the line "Please press Enter to activate this # console." and then waits for the user to press enter before starting # the specified process. # # Note: unrecognised actions (like initdefault) will cause init to emit # an error message, and then go along with its business. # # <process>: Specifies the process to be executed and it's command line. # # Note: BusyBox init works just fine without an inittab. If no inittab is # found, it has the following default behavior: # ::sysinit:/etc/init.d/rcs # ::askfirst:/bin/sh # ::ctrlaltdel:/sbin/reboot # ::shutdown:/sbin/swapoff -a # ::shutdown:/bin/umount -a -r # ::restart:/sbin/init # # if it detects that /dev/console is _not_ a serial console, it will # also run: # tty2::askfirst:/bin/sh # tty3::askfirst:/bin/sh # tty4::askfirst:/bin/sh # # Boot-time system configuration/initialization script. # This is run first except when booting in single-user mode. # ::sysinit:/etc/init.d/rcs 76
89 # /bin/sh invocations on selected ttys # # Note below that we prefix the shell commands with a "-" to indicate to the # shell that it is supposed to be a login shell. Normally this is handled by # login, but since we are bypassing login in this case, BusyBox lets you do # this yourself... # # Start an "askfirst" shell on the console (whatever that may be) ::askfirst:-/bin/sh # Start an "askfirst" shell on /dev/tty2-4 tty2::askfirst:-/bin/sh tty3::askfirst:-/bin/sh tty4::askfirst:-/bin/sh # /sbin/getty invocations for selected ttys tty4::respawn:/sbin/getty tty5 tty5::respawn:/sbin/getty tty6 # Example of how to put a getty on a serial line (for a terminal) #::respawn:/sbin/getty -L ttys vt100 #::respawn:/sbin/getty -L ttys vt100 # # Example how to put a getty on a modem line. #::respawn:/sbin/getty ttys2 # Stuff to do when restarting the init process ::restart:/sbin/init # Stuff to do before rebooting ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a etc user$ cp /opt/armlinux/busybox-1.00/examples/inittab /opt/armlinux/ep7312/rootfs/etc/ inittab BusyBox init /etc/init.d rcs ${ROOTFS}/etc init.d user$ cd /opt/armlinux/ep7312/rootfs/etc/ user$ mkdir init.rd user$ cd init.rd init.d rcs chmod +x #!/bin/sh hostname ARMLinux mount -t proc proc /proc cat /etc/motd proc /etc/motd ${ROOFS}/etc 77
90 fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 ${ROOTFS} lib var user$ cd /opt/armlinux/ep7312/rootfs user$ mkdir lib var user$ ln s /var/tmp tmp bin dev etc lib linuxrc proc sbin tmp usr var genromfs ROMFS user$ cd /opt/armlinux/ep7312/ user$ genromfs d roofs f initrd.romfs skyeye.conf SkyEye skyeye.conf #skyeye config file for ep7312 cpu: arm720t mach: ep7312 mem_bank: map=i, type=rw, addr=0x , size=0x mem_bank: map=m, type=rw, addr=0xc , size=0x mem_bank: map=m, type=r, addr=0xc0000, size=0x340000, file=./initrd.romfs mem_bank: map=m, type=rw, addr=0xc , size=0x00c00000 /opt/armlinux/ep7312 SkyEye user$ skyeye vmlinux *************************************************************** **** **** **** SkyEye Simulator Ver with GDB 5.3 Interface **** **** **** *************************************************************** GNU gdb 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf"... (SkyEye) target sim 78
91 cpu info: armv4, arm720t, , ffffff00, 1 mach info: name ep7312, mach_init addr 0x SKYEYE: use arm7100 mmu ops Loaded ROM./initrd.romfs Connected to the simulator. (SkyEye) load Loading section.init, size 0xc000 vma 0xc Loading section.text, size 0xd869c vma 0xc Loading section ex_table, size 0x7b8 vma 0xc010c6a0 Loading section.data, size 0x985b vma 0xc010e000 Start address 0xc Transfer rate: bits in <1 sec. (SkyEye) run Starting program: /opt/armlinux/ep7312/vmlinux Linux version ac4-rmk1 ([email protected]) (gcc version (relea se)) # :29:45 CST 2005 Processor: ARM ARM720T revision 0 Architecture: Cirrus Logic EDB7312 (EP7312 evaluation board) Warning: bad configuration page, trying to continue On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/ram0 rw initrd=0xc ,0x Calibrating delay loop BogoMIPS Memory: 16MB = 16MB total Memory: 14820KB available (865K code, 209K data, 48K init) Dentry-cache hash table entries: 2048 (order: 2, bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Starting kswapd v1.8 pty: 256 Unix98 ptys configured block: queued sectors max/low 9757kB/3252kB, 64 slots per queue RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Blkmem copyright 1998,1999 D. Jeff Dionne Blkmem copyright 1998 Kenneth Albanowski Blkmem 1 disk images: 0: FB0C0000-FB171FFF [VIRTUAL FB0C0000-FB171FFF] (RO) NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. NetWinder Floating Point Emulator V0.95 (c) Rebel.com VFS: Mounted root (romfs filesystem). Freeing init memory: 48K Welcome to / \ / \ / \_/ \ _ / _ \ / /\ /\ \ / /_\ \ / / \_/ \ \ _ \ \ \/ / / / \ \ \ \ _ _ / \ /_/ \_\ \_\ _ _ _ _ _ \ \_/\_/ ARMLinux for Skyeye For further information check: Please press Enter to activate this console. init rcs BusyBox Shell BusyBox v1.00 ( : ) Built-in shell (ash) Enter 'help' for a list of built-in commands. 79
92 -sh: can't access tty; job control turned off / # Shell ls l / # ls -l drwxr-xr-x Jan 1 00:00 bin drwxr-xr-x Jan 1 00:00 dev drwxr-xr-x Jan 1 00:00 etc drwxr-xr-x Jan 1 00:00 lib lrwxrwxrwx Jan 1 00:00 linuxrc -> bin/busybox drwxr-xr-x Jan 1 00:00 proc drwxr-xr-x Jan 1 00:00 sbin lrwxrwxrwx Jan 1 00:00 tmp -> /var/tmp drwxr-xr-x Jan 1 00:00 usr drwxr-xr-x Jan 1 00:00 var / # /bin /sbin / # cd /bin /bin # ls -l lrwxrwxrwx Jan 1 00:00 ash -> busybox -rwxr-xr-x Jan 1 00:00 busybox lrwxrwxrwx Jan 1 00:00 cat -> busybox lrwxrwxrwx Jan 1 00:00 chgrp -> busybox lrwxrwxrwx Jan 1 00:00 chmod -> busybox lrwxrwxrwx Jan 1 00:00 chown -> busybox lrwxrwxrwx Jan 1 00:00 cp -> busybox lrwxrwxrwx Jan 1 00:00 date -> busybox lrwxrwxrwx Jan 1 00:00 dd -> busybox lrwxrwxrwx Jan 1 00:00 df -> busybox lrwxrwxrwx Jan 1 00:00 dmesg -> busybox lrwxrwxrwx Jan 1 00:00 echo -> busybox lrwxrwxrwx Jan 1 00:00 false -> busybox lrwxrwxrwx Jan 1 00:00 hostname -> busybox lrwxrwxrwx Jan 1 00:00 kill -> busybox lrwxrwxrwx Jan 1 00:00 ln -> busybox lrwxrwxrwx Jan 1 00:00 ls -> busybox lrwxrwxrwx Jan 1 00:00 mkdir -> busybox lrwxrwxrwx Jan 1 00:00 mknod -> busybox lrwxrwxrwx Jan 1 00:00 more -> busybox lrwxrwxrwx Jan 1 00:00 mount -> busybox lrwxrwxrwx Jan 1 00:00 mv -> busybox lrwxrwxrwx Jan 1 00:00 pidof -> busybox lrwxrwxrwx Jan 1 00:00 ping -> busybox lrwxrwxrwx Jan 1 00:00 ps -> busybox lrwxrwxrwx Jan 1 00:00 pwd -> busybox lrwxrwxrwx Jan 1 00:00 rm -> busybox lrwxrwxrwx Jan 1 00:00 rmdir -> busybox lrwxrwxrwx Jan 1 00:00 sh -> busybox lrwxrwxrwx Jan 1 00:00 sleep -> busybox lrwxrwxrwx Jan 1 00:00 sync -> busybox lrwxrwxrwx Jan 1 00:00 touch -> busybox lrwxrwxrwx Jan 1 00:00 true -> busybox lrwxrwxrwx Jan 1 00:00 umount -> busybox lrwxrwxrwx Jan 1 00:00 uname -> busybox lrwxrwxrwx Jan 1 00:00 usleep -> busybox lrwxrwxrwx Jan 1 00:00 vi -> busybox / # cd /sbin/ /sbin # ls -l lrwxrwxrwx Jan 1 00:00 halt ->../bin/busybox lrwxrwxrwx Jan 1 00:00 ifconfig ->../bin/busybox lrwxrwxrwx Jan 1 00:00 init ->../bin/busybox lrwxrwxrwx Jan 1 00:00 klogd ->../bin/busybox lrwxrwxrwx Jan 1 00:00 pivot_root ->../bin/busybox lrwxrwxrwx Jan 1 00:00 poweroff ->../bin/busybox lrwxrwxrwx Jan 1 00:00 reboot ->../bin/busybox lrwxrwxrwx Jan 1 00:00 swapoff ->../bin/busybox 80
93 lrwxrwxrwx Jan 1 00:00 swapon ->../bin/busybox lrwxrwxrwx Jan 1 00:00 syslogd ->../bin/busybox /sbin # /bin /sbin busybox /usr/bin/ /usr/sbin 700KB busybox SkyEye EP7312 ARM Linux ROMFS 3 4 uclinux Linux MMU / MMU uclinux Linux uclinux Linux Linux uclinux uclinux MMU uclinux Xcopilot m68k CPU uclinux /opt/uclinux user$ mkdir /opt/uclinux /opt/uclinux 81
94 2.8.1 Xcopilot Xcopilot user$ cd /opt/uclinux user$ tar zxvf <path to cdrom>/xcopilot/xcopilot uc0.tar.gz Xcopilot user$ cd xcopilot uc0 user$./configure user$ make xcopilot PDA m68k m68k-elf-tools sh uclinux root# sh <path to cdrom>/m68k-elf/m68k-elf-tools sh /usr/local m68k m68k-elf-gcc uclinux uclinux uclinux uclinux uclinux-dist tar.gz uclinux /opt/uclinux user$ tar zxvf uclinux-dist tar.gz uclinux uclinux-dist user$ cd uclinux-dist 82
95 uclinux user$ make menuconfig uclinux-dist uclinux Vendor/Product 3com/Xcopilot Kernel Linux-2.4.x libc uclibc Customize Kernel Settings 2-17 ROMFS RAM disk EXT2 ROMFS RAM disk EXT2 Block devices RAM disk support ROM disk memory block device(blkmem) blkmem Flash 83
96 ROMFS 2-18 File systems ROMFS EXT2 proc
97 uclinux uclinux-dist uclinux C user$ make dep user$ make Xcopilot images pilot.rom pilot.rom uclinux-dist Xcopilot user$ ln s /opt/uclinux/uclinux-dist/images/pilot.rom ~/.xcopilot/pilot.rom Xcopilot xcopilot uclinux 2-20 user$ cd /opt/uclinux/xcopilot uc0 user$./xcopilot 2-20 uclinux Xcopilot 85
98 ls /> ls -l drwxr-xr-x Jan bin drwxr-xr-x Jan dev drwxr-xr-x Jan etc drwxr-xr-x Jan home drwxr-xr-x Jan lib drwxr-xr-x Jan mnt dr-xr-xr-x Nov 30 00:00 proc lrwxrwxrwx Jan tmp -> /var/tmp drwxr-xr-x Jan usr drwxr-xr-x Nov 30 00:00 var /> SkyEye /bin BusyBox /bin> ls -l -rwxr-xr-x Jan expand -rwxr-xr-x Jan init -rwxr-xr-x Jan reboot -rwxr-xr-x Jan sh -rwxr-xr-x Jan tip /bin> /bin init sh /etc /etc> ls -l -rw-r--r Jan inittab -rw-r--r Jan motd -rw-r--r Jan ramfs.img -rw-r--r Jan rc /etc> RAM disk rc cat rc /etc> cat rc hostname CoPilot /bin/expand /etc/ramfs.img /dev/ram0 mount -t proc proc /proc mount -t ext2 /dev/ram0 /var mkdir /var/tmp mkdir /var/log mkdir /var/run mkdir /var/lock mkdir /var/empty cat /etc/motd rc RAM disk /etc/ramfs.img /dev/ram0 /var /var 86
99 Linux SkyEye Xcopilot Linux/uClinux Linux/uClinux MiniGUI Linux 87
100 3 2 Linux/uClinux Linux/uClinux Linux/uClinux C SkyEye Xcopilot C / PC SkyEye EP7312 Xcopilot Linux/uClinux Hello, world #include <stdio.h> int main (void) { printf ("Hello, world\n"); return 0; } 88
101 helloworld.c Linux PC user$ gcc -Wall -O2 -o helloworld helloworld.c user $./helloworld Hello, world SkyEye EP7312 user$ arm-linux-gcc -Wall -O2 -o helloworld helloworld.c helloworld file user$./helloworld -bash:./helloworld: cannot execute binary file user $ file helloworld helloworld: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, \ dynamically linked (uses shared libs), not stripped file helloworld ELF 32 ARM, version 1 (ARM) arm-linux-strings user$ arm-linux-strings helloworld /lib/ld-linux.so.2 libc.so.6 printf abort _IO_stdin_used libc_start_main GLIBC_2.0 Hello, world arm-linux-strings strings strings helloworld.c Hello, world\n 89
102 printf abort _IO_stdio_used libc_start_main /lib/ld-linux.so.2 libc.so.6 helloworld helloworld /lib/ld-linux.so.2 libc.so.6 /lib/ld-linux.so.2 C glibc 2.0 shared object name /lib LD_LIBRARY_PATH 19 libc.so.6 helloworld arm-linux-strip user$ ls -l helloworld -rwxrwxr-x 1 weiym weiym :41 helloworld user$ arm-linux-strip helloworld user$ ls -l helloworld -rwxrwxr-x 1 weiym weiym :01 helloworld 19 ld-linux.so.2 /lib LD_LIBRARY_PATH arm-linux-strings $arm-linux-strings ld-linux.so.2 grep ^/ arm-linux /usr/local/arm/2.95.3/arm-linux/lib/ 90
103 helloworld 11,049 2,472 arm-linux-strip strip strip helloworld helloworld.static user$ arm-linux-gcc -static -Wall -O2 helloworld.static helloworld.c user$ ls -l helloworld helloworld.static -rwxrwxr-x 1 weiym weiym :07 helloworld -rwxrwxr-x 1 weiym weiym :06 helloworld.static user$ arm-linux-strip helloworld helloworld.static user$ ls -l helloworld helloworld.static -rwxrwxr-x 1 weiym weiym :08 helloworld -rwxrwxr-x 1 weiym weiym :08 helloworld.static helloworld.static strings C glibc strings strip C arm-linux ar 91
104 as ld nm objdump objcopy ranlib readelf size strings strip ar s ar ELF ELF UNIX Excutable and Linkable Format a.out BSS SkyEye EP7312 SkyEye EP7312 initrd RAMDISK initrd 4.3 MiniGUI initrd.img /armlinux/ep7312/ helloworld.static 1. initrd.img /mnt/tmp root# cp <path to cdrom>/armlinux/ep7312/initrd.img. root# file initrd.img initrd.img: Linux rev 1.0 ext2 filesystem data root# mkdir p /mnt/tmp root# mount -t ext2 -o loop initrd.img /mnt/tmp/ 2. helloworld.static initrd root# cp helloworld.static /mnt/tmp/bin 92
105 root# umount /mnt/tmp helloworld.static initrd initrd.img Linux /armlinux/ep7312/ vmlinux.for.ep7312 skyeye.conf cpu: arm720t mach: ep7312 mem_bank: map=i, type=rw, addr=0x , size=0x mem_bank: map=m, type=rw, addr=0xc , size=0x mem_bank: map=m, type=rw, addr=0xc , size=0x , file=./initrd.img mem_bank: map=m, type=rw, addr=0xc , size=0x00c00000 skyeye.conf SkyEye # skyeye vmlinux.for.ep7312 (SkyEye) target sim (SkyEye) load (SkyEye) run bin/ helloworld.static Welcome to / \ / \ / \_/ \ _ / _ \ / /\ /\ \ / /_\ \ / / \_/ \ \ _ \ \ \/ / / / \ \ \ \ _ _ / \ /_/ \_\ \_\ _ _ _ _ _ \ \_/\_/ ARMLinux for Skyeye For further information check: Execution Finished, Exiting Command: /bin/sh Sash command shell (version 1.1.1) /> cd bin /bin> ls helloworld.static init mount sh /bin>./helloworld.static Hello, world /bin> uclinux Hello, world uclinux uclinux MMU 93
106 uclinux uclinux uc-libc uclibc -I -L uclinux MMU uclinux ELF FLAT FLAT ZFLAT ELF objcopy FLAT Xcopilot DragonBall Motorola M Com Copilot PDA -m Motorola DragonBall ARM -I -L l -Wl,-elf2flt -Wl, 20 gcc m m machine m68k GCC
107 Xcopilot uclibc 2 uclibc /opt/uclinux/uclinux-dist/uclibc Hello, world user$ m68k-elf-gcc \ -m mid-shared-library -mshared-library-id=0 -Os -g -fomit-frame-pointer \ -I/opt/uclinux/uClinux-dist/lib/uClibc/include \ -Wl,-elf2flt -Wl,-move-rodata -Wl,-shared-lib-id,0 \ -nostartfiles /opt/uclinux/uclinux-dist/lib/uclibc/lib/crt0.o \ -L/opt/uclinux/uClinux-dist/lib/uClibc/lib \ -o helloworld helloworld.c \ -Wl,-R,/opt/uclinux/uClinux-dist/lib/uClibc/libc.gdb lc -mid-shared-library -mshared-library-id=0 ID ID Os -g -fomit-frame-pointer -I/opt/uclinux/uClinux-dist/lib/uClibc/include uclibc -Wl,-elf2flt ELF FLAT -Wl,-move-rodata.rodata.text -Wl,-shared-lib-id,0 ID 0 -nostartfiles /opt/uclinux/uclinux-dist/lib/uclibc/lib/crt0.o C uclibc crt0.o -Wl,-R,/opt/uclinux/uClinux-dist/lib/uClibc/libc.gdb uclibc libc.gdb lc uclibc C libc.a uclinux-dist 21 in place fpic ID 0 m68k msep-data in place 95
108 Bash Shell uclinux-dist <Ctrl+S> <ScrLck> <Ctrl+Q> helloworld.gdb helloworld ELF FLAT user$ ls -l -rwxr--r-- 1 weiym weiym :39 helloworld -rw-rw-r-- 1 weiym weiym :21 helloworld.c -rwxrwxr-x 1 weiym weiym :39 helloworld.gdb user$ file helloworld.gdb helloworld helloworld.gdb: ELF 32-bit MSB executable, Motorola 68020, version 1 (SYSV), \ statically linked, not stripped helloworld: data file helloworld.gdb ELF 32 Motorola 68020, version 1 (SYSV) helloworld file FLAT file helloworld helloworld Xcopilot helloworld uclinux-dist romfs make image root# cd /opt/uclinux/uclinux-dist root# cp <path_to_helloworld>/helloworld romfs/bin root# make image uclinux-dist/romfs 22 uclinux-dist/images/pilot.rom pilot.rom uclinux-dist/images pilot.rom user$ ln sf /opt/uclinux/uclinux-dist/images/pilot.rom ~/.xcopilot/pilot.rom X Window xcopilot Xcopilot 22 make Linux genromfs 96
109 Command: mount -t proc proc /proc Command: mount -t ext2 /dev/ram0 /var Command: mkdir /var/tmp Command: mkdir /var/log Command: mkdir /var/run Command: mkdir /var/lock Command: cat /etc/motd Welcome to _ / _ _ \ \ \/ / _ _ / \ \ _ _ _ _ \ \_/\_/ _ For further information check: Execution Finished, Exiting Sash command shell (version 1.1.1) /> cd bin /bin>./helloworld Hello, world /bin> cd bin Hello, world make makefile make makefile make Linux make makefile Makefile makefile make makefile Win32 Win32 makefile 97
110 Linux make GNU make GNU make makefile GNUmakefile makefile Makefile UNIX Makefile makfile makefile make makefile $ make -f Makefile.debug makefile make target dependency rule 3.1 helloworld.c makefile helloworld helloworld: helloworld.o gcc o helloworld.o helloworld.o: helloworld.c gcc c Wall O2 o helloworld.o helloworld.c makefile helloworld helloworld.o helloworld.o helloworld.c makefile make <target> all makefile clean clean: rm -f *.o 98
111 make clean rm -f *.o makefile makefile GNU make C makefile helloworld makefile CC= gcc CFLAGS=-Wall -O2 -g LD= gcc LDFLAGS= PROG=helloworld OBJS=helloworld.o # Rule for building an object file.c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(PROG): $(OBJS) $(LD) $(LDFLAGS) -o $@ $< all: $(PROG) clean: rm $(OBJS) $(PROG) f CC CFLAGS LD LDFLAGS make PROG OBJS makefile $ $(CC) $(CFLAGS) makefile GNU make.c.o %.o:%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< make makefile Linux INTERNET make makefile 99
112 3.2.2 Makefile Linux cal cal $ cal March 2005 Su Mo Tu We Th Fr Sa cal.c print.c cal.h cal.c main usage print.c cal.h /samples/cal.tar.gz Linux cal makefile PC SkyEye EP7312 makefile Makefile.arm-linux # Modify the following variables to meet your cross-compilation toolchain. CROSS=arm-linux PREFIX=/usr/local/arm-linux/arm-linux/ ### do not modify the following variables and rules. ### BINDIR=$(PREFIX)/bin CC=$(CROSS)-gcc CFLAGS=-Wall -O2 -g LD=$(CROSS)-gcc LDFLAGS= STRIP=$(CROSS)-strip RM=rm -f INSTALL=install -c PROG=$(CROSS)-cal OBJS=cal.o print.o # Rule for building an object file %.o:%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(PROG): $(OBJS) $(LD) $(LDFLAGS) -o $@ $^ all: $(PROG) clean: $(RM) $(OBJS) $(PROG).depend core install: $(PROG) $(STRIP) $(PROG) $(INSTALL) -o root -g root -s -m 0755 $(PROG) $(BINDIR) uninstall: 100
113 rm -f $(BINDIR)/$(PROG) depend.depend: $(CC) $(CFLAGS) -M *.c >.depend ifeq (.depend, $(wildcard.depend)) include.depend endif makefile Linux makefile clean install uninstall depend makefile arm-linux makefile uclinux uclinux cal makefile Makefile.m68k-elf # Modify the following variables to meet your cross-compilation toolchain. CROSS=m68k-elf UCLINUX_DIR=/opt/uclinux/uClinux-dist PREFIX=/usr/local/m68k-elf/ CFLAGS=-m mid-shared-library -mshared-library-id=0 -Os -Wall -g -fomit-frame-pointer \ -I$(UCLINUX_DIR)/lib/uClibc/include LDFLAGS=-Wl,-elf2flt -Wl,-move-rodata -Wl,-shared-lib-id,0 \ -nostartfiles $(UCLINUX_DIR)/lib/uClibc/lib/crt0.o \ -L$(UCLINUX_DIR)/lib/uClibc/lib \ -Wl,-R,$(UCLINUX_DIR)/lib/uClibc/libc.gdb -lc ### do not modify the following variables and rules. ### CC=$(CROSS)-gcc LD=$(CROSS)-gcc BINDIR=$(PREFIX)/bin RM=rm -f INSTALL=install -c PROG=$(CROSS)-cal OBJS=cal.o print.o # Rule for building an object file %.o:%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(PROG): $(OBJS) $(LD) $(LDFLAGS) -o $@ $^ all: $(PROG) clean: $(RM) $(OBJS) $(PROG) $(PROG).gdb.depend core install: $(PROG) $(INSTALL) -o root -g root -s -m 0755 $(PROG) $(BINDIR) uninstall: rm -f $(BINDIR)/$(PROG) depend.depend: $(CC) $(CFLAGS) -M *.c >.depend ifeq (.depend, $(wildcard.depend)) include.depend endif 101
114 SkeEye EP7312 makefile Makefile.m68k-elf 3.1 m68k-elf-gcc uclibc CFLAGS LDFLAGS strip ELF FLAT PREFIX clean $(PROG).gdb Makefile.m68k-elf Makefile.arm-linux make make f Makefile.arm-linux make f Makefile.m68k-elf Linux PC ARM Linux Xcopilot cal make clean uclinux-dist Linux uclinux uclinux-dist/ uclinux uclibc uclinux-dist makefile uclibc cal 1. uclinux-dist/user cal root# cd /opt/uclinux/uclinux-dist/user root# mkdir mycal root# cd mycal root# cp <path to cal>/cal/*.[ch]. 102
115 2. user tip Makefile root# cp../tip/makefile. 3. Makefile EXEC = mycal OBJS = cal.o print.o all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS$(LDLIBS_$@)) romfs: $(ROMFSINST) /bin/$(exec) clean: -rm -f $(EXEC) *.elf *.gdb *.o 4. user/ Makefile dir_y += games dir_y += games dir_y += mycal uclinux-dist make romfs/bin mycal C C Windows Linux/UNIX 4GB void foo (int bar) { char temp [1024]; 103
116 // do your work if (bar > 1) { bar --; foo (bar); } } return; char Linux uclinux Linux C C C 104
117 3.3.2 byte order short int double Intel x86 0x Intel x A 0x34 A+1 0x12 little-endian A A+1 0x34 0x little-endian unsigned short temp = 0x1234; write (fd, &temp, sizeof (unsigned short)); unsigned short temp; read (fd, &temp, sizeof (unsigned short)); // temp = 0x1234 Intel x86 read temp 0x1234 big-endian temp 0x
118 A A+1 0x12 0x big-endian RISC PowerPC M68k MIPS Xcopilot M68k PC 0x1234 endina.dat #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main (void) { unsigned char *p; unsigned short temp = 0x1234; int fd = open ("endian.dat", O_CREAT O_TRUNC O_RDWR, 0666); if (fd < 0) { perror ("Open file error"); return 1; } // write the short data to the file write (fd, &temp, sizeof (unsigned short)); // read back the data. lseek (fd, 0, SEEK_SET); read (fd, &temp, sizeof (unsigned short)); close (fd); // print the bytes p = (unsigned char*) &temp; printf ("the first byte is 0x%x\n", *p); printf ("the second byte is 0x%x\n", *(p + 1)); } return 0; user$ gcc -o endian endian.c user$./endian the first byte is 0x34 the second byte is 0x12 Xcopilot endian.dat #include <stdio.h> #include <unistd.h> #include <sys/types.h> 106
119 #include <sys/stat.h> #include <fcntl.h> int main (void) { unsigned char *p; unsigned short temp; int fd = open ("endian.dat", O_RDONLY); if (fd < 0) { perror ("Open file error"); return 1; } // read back the data. read (fd, &temp, sizeof (unsigned short)); close (fd); // print the bytes p = (unsigned char*) &temp; printf ("the first byte is 0x%x\n", *p); printf ("the second byte is 0x%x\n", *(p + 1)); } return 0; the first byte is 0x12 the second byte is 0x34 #include <stdio.h> inline int is_big_endian (void) { union { unsigned short i; unsigned char c[2]; } data; data.i = 0x1234; if (data.c[0] == 0x12) return 1; } return 0; int main (void) { if (is_big_endian ()) printf ("This is a big-endian system\n"); else printf ("This is a little-endian system\n"); } return 0; is_big_endian C 107
120 unsigned short temp = 0x1234; unsigned char byte = (unsigned char)(temp >> 8); printf ( the low byte is 0x%x\n, byte); MiniGUI #define MGUI_LIL_ENDIAN 1234 #define MGUI_BIG_ENDIAN 4321 #if defined( i386 ) defined( ia64 ) \ (defined( alpha ) defined( alpha)) \ defined( arm ) \ (defined( CC_ARM) &&!defined( BIG_ENDIAN)) \ (defined( mips ) && defined( MIPSEL )) \ defined( LITTLE_ENDIAN ) \ defined(win32) #define MGUI_BYTEORDER MGUI_LIL_ENDIAN #else #define MGUI_BYTEORDER MGUI_BIG_ENDIAN #endif MiniGUI MGUI_BYTEORDER #if MGUI_BYTEORDER == MGUI_BIG_ENDIAN // for the big-endian system #else // for the little-endian system #endif Xcopilot MiniGUI unsigned short temp; // read back the data. read (fd, &temp, sizeof (unsigned short)); close (fd); #if MGUI_BYTEORDER == MGUI_BIG_ENDIAN temp = ((temp << 8) (temp >> 8)); #endif temp = ((temp << 8) (temp >> 8)); temp MiniGUI MiniGUI MiniGUI Endian 108
121 short int long float double ARM 8 double C #include <stdio.h> void align_1 (void) { struct { char c; int i; } my_struct; } printf ("The size of my_struct is %d\n", sizeof (my_struct)); int main (void) { align_1 (); } return 0; PC user$ gcc -o align align.c user$./align The size of my_struct is char c int i 4 i 4 c 4 i
122 0 c 8 c unused unused unused unused unused unused 4 12 i i 3-5 my_struct 23 8 struct { char c; short s; int i; } my_struct; struct { int i; short s; char c; } my_struct; gcc attribute ((packed)) 23 Linux Linux uclinux 110
123 struct attribute ((packed)) { int i; short s; char c; } my_struct; 32 unsigned int read_uint_from_mem (const unsigned char* data) { unsigned int u; memcpy (&u, data, sizeof (unsigned int)); return u; } unsigned int read_uint_from_mem (const unsigned char* data) { unsigned int *u; u = (unsigned int*)data; return *u; } data 4 SkyEye Xcopilot unsigned char data [1024]; unsigned char u; u = read_uint_from_mem (data + 1); uclinux read_uint_from_mem unsigned int read_uint_from_mem (const unsigned char* data) { Uint32 q1, q2, q3, q4; } q1 = data[0]; q2 = data[1]; q3 = data[2] q4 = data[3] return ((q1<<24) (q2<<16) (q3<<8) (q4)); 111
124 3.3.4 A D A D B B C C ABCD A B C D A 0,0 A 10,10 A A 112
125 3-7 A D A O D O B B 3-7 C C x 1,y 1 ;x 2,y 2 ;x 3,y 3 x 1,y 1 ;x 2,y 2 ;x 3, y 3 x 1 = ax1 + by1 + c y 1 = dx1 + ey1 + f x 2 = ax2 + by2 + c y 2 = dx2 + ey2 + f x 3 = ax3 + by3 + c y 3 = dx3 + ey3 + f 113
126 114 ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) = = = = = = ey dx y f x x y y x x y y x x y y x x y y e y y x x y y x x y y y y y y y y d by ax x c x x y y x x y y x x x x x x x x b y y x x y y x x y y x x y y x x a C a b c d e f static BOOL dogaussianelimination_f (double* x, const POINT* src_pts, const POINT* dst_pts) { double x12, x23, y12, y23, nx12, nx23, ny12, ny23; double numerator, denominator1, denominator2; x12 = (double)(src_pts [0].x - src_pts [1].x); x23 = (double)(src_pts [1].x - src_pts [2].x); y12 = (double)(src_pts [0].y - src_pts [1].y); y23 = (double)(src_pts [1].y - src_pts [2].y); nx12 = (double)(dst_pts [0].x - dst_pts [1].x); nx23 = (double)(dst_pts [1].x - dst_pts [2].x); ny12 = (double)(dst_pts [0].y - dst_pts [1].y); ny23 = (double)(dst_pts [1].y - dst_pts [2].y); denominator1 = x12*y23 - x23*y12; if (fabs (denominator1) < 0.0E-10) return FALSE; denominator2 = y12*x23 - y23*x12; if (fabs (denominator2) < 0.0E-10) return FALSE; numerator = nx12*y23 - nx23*y12; x [0] = numerator / denominator1; numerator = nx12*x23 - nx23*x12; x [1] = numerator / denominator2; x [2] = dst_pts [0].x - x [0] * src_pts [0].x - x [1] * src_pts [0].y; numerator = ny12*y23 - ny23*y12; x [3] = numerator / denominator1; numerator = ny12*x23 - ny23*x12; x [4] = numerator / denominator2; x [5] = dst_pts [0].y - x [3] * src_pts [0].x - x [4] * src_pts [0].y; return TRUE; } src_pts dst_pts a b c d e f x
127 DO_MOUSE_CALIBRATE_PROC mg_do_mouse_calibrate; #define NR_EQUATIONS 6 static double vars1 [NR_EQUATIONS], vars2 [NR_EQUATIONS], vars3 [NR_EQUATIONS], vars4 [NR_EQU ATIONS]; static void do_mouse_calibrate (int* x, int* y) { double x1, y1, x2, y2, x3, y3, x4, y4; x1 = vars1 [0] * (*x) + vars1 [1] * (*y) + vars1 [2]; y1 = vars1 [3] * (*x) + vars1 [4] * (*y) + vars1 [5]; x2 = vars2 [0] * (*x) + vars2 [1] * (*y) + vars2 [2]; y2 = vars2 [3] * (*x) + vars2 [4] * (*y) + vars2 [5]; x3 = vars3 [0] * (*x) + vars3 [1] * (*y) + vars3 [2]; y3 = vars3 [3] * (*x) + vars3 [4] * (*y) + vars3 [5]; x4 = vars4 [0] * (*x) + vars4 [1] * (*y) + vars4 [2]; y4 = vars4 [3] * (*x) + vars4 [4] * (*y) + vars4 [5]; } *x = (int)((x1 + x2 + x3 + x4)/ ); *y = (int)((y1 + y2 + y3 + y4)/ ); BOOL SetMouseCalibrationParameters (const POINT* src_pts, const POINT* dst_pts) { POINT my_src_pts [3]; POINT my_dst_pts [3]; my_src_pts [0] = src_pts [0]; my_src_pts [1] = src_pts [1]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [0]; my_dst_pts [1] = dst_pts [1]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination_f (vars1, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [1]; my_src_pts [1] = src_pts [2]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [1]; my_dst_pts [1] = dst_pts [2]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination_f (vars2, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [2]; my_src_pts [1] = src_pts [3]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [2]; my_dst_pts [1] = dst_pts [3]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination_f (vars3, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [0]; my_src_pts [1] = src_pts [3]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [0]; my_dst_pts [1] = dst_pts [3]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination_f (vars4, my_src_pts, my_dst_pts)) return FALSE; } mg_do_mouse_calibrate = do_mouse_calibrate; return TRUE; do_mouse_calibrate vars1 vars4 a f vars1 vars4 SetMouseCalibrationParameters 115
128 dogaussianelimination_f vars1 vars4 src_pts dst_pts SetMouseCalibrationParameters mg_do_mouse_calibrate do_mouse_calibrate NULL mg_do_mouse_calibrate MiniGUI (10,10) (9,9) MiniGUI DO_MOUSE_CALIBRATE_PROC mg_do_mouse_calibrate; #define NR_EQUATIONS 6 #define LSHIFT(x) ((x)<<10) #define RSHIFT(x) ((x)>>12) static int vars1 [NR_EQUATIONS], vars2 [NR_EQUATIONS], vars3 [NR_EQUATIONS], vars4 [NR_EQUATI ONS]; static void do_mouse_calibrate (int* x, int* y) { int x1, y1, x2, y2, x3, y3, x4, y4; x1 = vars1 [0] * (*x) + vars1 [1] * (*y) + vars1 [2]; y1 = vars1 [3] * (*x) + vars1 [4] * (*y) + vars1 [5]; x2 = vars2 [0] * (*x) + vars2 [1] * (*y) + vars2 [2]; y2 = vars2 [3] * (*x) + vars2 [4] * (*y) + vars2 [5]; x3 = vars3 [0] * (*x) + vars3 [1] * (*y) + vars3 [2]; y3 = vars3 [3] * (*x) + vars3 [4] * (*y) + vars3 [5]; x4 = vars4 [0] * (*x) + vars4 [1] * (*y) + vars4 [2]; 116
129 y4 = vars4 [3] * (*x) + vars4 [4] * (*y) + vars4 [5]; } *x = RSHIFT (x1 + x2 + x3 + x4); *y = RSHIFT (y1 + y2 + y3 + y4); static BOOL dogaussianelimination (int* x, const POINT* src_pts, const POINT* dst_pts) { int x12, x23, y12, y23, nx12, nx23, ny12, ny23; int numerator, denominator1, denominator2; x12 = (src_pts [0].x - src_pts [1].x); x23 = (src_pts [1].x - src_pts [2].x); y12 = (src_pts [0].y - src_pts [1].y); y23 = (src_pts [1].y - src_pts [2].y); nx12 = (dst_pts [0].x - dst_pts [1].x); nx23 = (dst_pts [1].x - dst_pts [2].x); ny12 = (dst_pts [0].y - dst_pts [1].y); ny23 = (dst_pts [1].y - dst_pts [2].y); denominator1 = x12*y23 - x23*y12; if (denominator1 == 0) return FALSE; denominator2 = y12*x23 - y23*x12; if (denominator2 == 0) return FALSE; numerator = nx12*y23 - nx23*y12; x [0] = LSHIFT (numerator) / denominator1; numerator = nx12*x23 - nx23*x12; x [1] = LSHIFT (numerator) / denominator2; x [2] = LSHIFT (dst_pts [0].x) - x [0] * src_pts [0].x - x [1] * src_pts [0].y; numerator = ny12*y23 - ny23*y12; x [3] = LSHIFT (numerator) / denominator1; numerator = ny12*x23 - ny23*x12; x [4] = LSHIFT (numerator) / denominator2; x [5] = LSHIFT (dst_pts [0].y) - x [3] * src_pts [0].x - x [4] * src_pts [0].y; } return TRUE; BOOL SetMouseCalibrationParameters (const POINT* src_pts, const POINT* dst_pts) { POINT my_src_pts [3]; POINT my_dst_pts [3]; my_src_pts [0] = src_pts [0]; my_src_pts [1] = src_pts [1]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [0]; my_dst_pts [1] = dst_pts [1]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination (vars1, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [1]; my_src_pts [1] = src_pts [2]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [1]; my_dst_pts [1] = dst_pts [2]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination (vars2, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [2]; my_src_pts [1] = src_pts [3]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [2]; my_dst_pts [1] = dst_pts [3]; my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination (vars3, my_src_pts, my_dst_pts)) return FALSE; my_src_pts [0] = src_pts [0]; my_src_pts [1] = src_pts [3]; my_src_pts [2] = src_pts [4]; my_dst_pts [0] = dst_pts [0]; my_dst_pts [1] = dst_pts [3]; 117
130 my_dst_pts [2] = dst_pts [4]; if (!dogaussianelimination (vars4, my_src_pts, my_dst_pts)) return FALSE; } mg_do_mouse_calibrate = do_mouse_calibrate; return TRUE; dogaussianelimination vars1 vars4 vars1 vars LSHIFT do_mouse_calibrate 12 vars1 vars4 double 8 int 4 fabs (denominator2) < 0.0E-10 denominator1 == 0 MiniGUI
131 static inline fixed ftofix (double x) { if (x > ) { errno = ERANGE; return 0x7FFFFFFF; } if (x < ) { errno = ERANGE; return -0x7FFFFFFF; } } return (long)(x * (x < 0? -0.5 : 0.5)); static inline double fixtof (fixed x) { return (double)x / ; } static inline fixed itofix (int x) { return x << 16; } static inline int fixtoi (fixed x) { return (x >> 16) + ((x & 0x8000) >> 15); } 0~2π MiniGUI MiniGUI 12.6 Linux/uClinux make makefile 119
132 Linux/uClinux MiniGUI Linux/uClinux 120
133 121
134 4 Linux/uClinux MiniGUI Linux/uClinux Linux/uClinux MiniGUI MiniGUI SkyEye Xcopilot MiniGUI MiniGUI MiniGUI MiniGUI Windows Windows MiniGUI MiniGUI Windows 24 mgdemo-win rar 25 Windows README.txt wvfb.exe mgdemo_win32.exe wvfb MiniGUI 24 /minigui/mgdemo tar.gz Win32 Linux PC 25 /minigui 122
135 MiniGUI Windows MiniGUI Windows Windows MiniGUI Windows Windows wvfb LCD MiniGUI Windows wvfb LCD MiniGUI MiniGUI Windows MiniGUI Windows MiniGUI Windows MiniGUI Windows MS Visual Studio 98 MiniGUI Windows minigui-dev-1.6-win32.rar 123
136 Windows README helloworld MiniGUI helloworld wvfb hellowolrd helloworld.exe dll minigui.dll DLL wvfb Windows MiniGUI 124
137 MiniGUI helloworld.c MiniGUI Win32 MiniGUI Windows MiniGUI MiniGUI MiniGUI MiniGUI Windows MiniGUI Linux/uClinux MiniGUI 1. Linux PC MiniGUI MiniGUI 2. PC MiniGUI 3. MiniGUI MiniGUI 4. MiniGUI MiniGUI-STR MiniGUI MiniGUI MiniGUI MiniGUI-VAR Linux uclinux MiniGUI-STR MiniGUI-VAR A MiniGUI-STR MiniGUI-VAR Linux PC 125
138 MiniGUI-STR MiniGUI Linux EP7312 SkyEye uclinux Xcopilot MiniGUI-STR MiniGUI-STR MiniGUI-STR 1) libminigui-str tar.gz MiniGUI-STR V1.6.2 MiniGUI 2) minigui-res-str-1.6.tar.gz MiniGUI-STR MiniGUI-STR ISO GB2312 3) mg-samples-str tar.gz MiniGUI-STR MiniGUI MiniGUI-STR MiniGUI mg-samples MiniGUI-STR 4) mde-str tar.gz MiniGUI-STR MiniGUI MiniGUI-STR MiniGUI mde MiniGUI-STR MiniGUI-STR MiniGUI-STR V1.6.2 MiniGUI minigui/ mgdemo tar.gz MiniGUI-STR MiniGUI minigui-dev-1.6-linux.tar.gz minigui-dev-1.6-win32.rar GPL MiniGUI-STR 1.6.x GPL mg-samples-str minigui-res-str MiniGUI 126
139 MiniGUI MiniGUI-STR MiniGUI PC Linux PC MiniGUI X Window FrameBuffer qvfb Linux Linux FrameBuffer qvfb FrameBuffer MiniGUI 1) QVFB QVFB Qt FrameBuffer Qt Qt Linux KDE X Window Qt 2 Qt 3 src/tools Qt QVFB qvfb-1.0.tar.gz qvfb user$ tar zxf qvfb-1.0.tar.gz user$ cd qvfb-1.0 user$./configure user$ make qvfb user$ su c make install make install make install make install qvfb /usr/local/bin 127
140 /usr/local/bin qvfb qvfb X Window qvfb & user$ qvfb & qvfb qvfb qvfb qvfb qvfb qvfb PC
141 2) Linux FrameBuffer FrameBuffer Linux 2.2.xx /dev/fb0 /dev/fb1 1024x768-8 user$ dd if=/dev/zero of=/dev/fb0 bs=1024 count=768 FrameBuffer FrameBuffer /dev/fb0 mmap memset 1024x768-8 int fb; unsigned char* fb_mem; fb = open ("/dev/fb0", O_RDWR); fb_mem = mmap (NULL, 1024*768, PROT_READ PROT_WRITE,MAP_SHARED,fb,0); memset (fb_mem, 0, 1024*768); FrameBuffer Linux FrameBuffer FrameBuffer PC PC VESA VESA PC VESA VESA Linux VESA FrameBuffer VESA VESA FrameBuffer VESA FrameBuffer
142 LILO GRUB Linux VESA FrameBuffer fbset FrameBuffer fbset FrameBuffer /proc/devices fb cat /dev/fb0 > /dev/null /dev/fb0 VESA FrameBuffer Linux VESA FrameBuffer VESA FrameBuffer LILO GRUB Linux VESA FrameBuffer VESA FrameBuffer Linux VESA FrameBuffer 26 LILO /etc/lilo.conf /etc/lilo.conf boot = /dev/hda2 timeout = 50 prompt read-only image = /boot/vmlinuz label = linux root = /dev/hda2 other = /dev/hda1 VESA FrameBuffer /boot/vmlinuz fb 26 VESA 386 Linux 130
143 image = /boot/vmlinuz fb label = linuxfb root = /dev/hda2 vga = 0x317 other = /dev/hda1 # VESA FrameBuffer # # # VESA root# lilo vga=0x0317 VESA FrameBuffer 1024x x0317 VESA Colours 640x x x x x x bits?? 0x302??? 8 bits 0x300 0x301 0x303 0x305 0x307 0x31C 15 bits? 0x310 0x313 0x316 0x319 0x31D 16 bits? 0x311 0x314 0x317 0x31A 0x31E 24 bits? 0x312 0x315 0x318 0x31B 0x31F 32 bits?????? GRUB /boot/grub/menu.lst kernel vga=0x0317 # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,0) # kernel /boot/vmlinuz-version ro root=/dev/hda1 # initrd /boot/initrd-version.img #boot=/dev/hda default=0 timeout=10 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Red Hat Linux ( , FrameBuffer) root (hd0,0) kernel /boot/vmlinuz ro root=/dev/hda1 vga=0x0317 initrd /boot/initrd img title Red Hat Linux ( ) root (hd0,0) kernel /boot/vmlinuz ro root=/dev/hda1 initrd /boot/initrd img GRUB LILO 131
144 PC lilo: FrameBuffer Linux Linux LOGO VESA FrameBuffer Linux FrameBuffer Linux FrameBuffer ATI Mach64 ATI Radeon NeoMagic 3Dfx Banshee/Voodoo3 Linux FrameBuffer fbset FrameBuffer Linux VESA FrameBuffer Linux FrameBuffer Framebuffer-HOWTO 27 MiniGUI qvfb qvfb FrameBuffer Linux/uClinux FrameBuffer PC MiniGUI Linux/uClinux FrameBuffer /dev/fb MiniGUI-STR 1) MiniGUI-STR MiniGUI Graphics and Input Abstract Layer GAL IAL Linux 27 Linux 132
145 GAL IAL MiniGUI QVFB Linux FrameBuffer MiniGUI Linux/uClinux FrameBuffer PC MiniGUI MiniGUI Linux/uClinux FrameBuffer Linux/uClinux MiniGUI MiniGUI MiniGUI-STR V MiniGUI-STR V1.6.2 qvfb qvfb MiniGUI galqvfb fbcon Linux/uClinux FrameBuffer MiniGUI galfbcon 4-2 MiniGUI-STR V1.6.2 qvfb qvfb qvfbial MiniGUI qvfb MiniGUI console Linux FrameBuffer nativeial MiniGUI dummy dummyial MiniGUI auto MiniGUI autoial 133
146 ipaq Compaq ipaq H3600/H3800 ipaqial arm3000 ARM3000 arm3000ial fft fft7202ial hh2410r3 2410R3 hh2410r3ial embest embest2410ial 2) MiniGUI-STR MiniGUI JPEG PNG libjpeg libpng MiniGUI MiniGUI MiniGUI-STR MiniGUI-STR libjpeg JPEG jpgsupport libpng PNG pngsupport Linux 3) MiniGUI 3 makefile makefile makefile makefile GNU Autoconf/Automake makefile MiniGUI MiniGUI GNU Automake/Autoconf GNU Autoconf Automake Shell makefile Apache MySQL Autoconf/Automake MiniGUI Autoconf/Automake./configure make make install configure makefile 134
147 make all make make clean *.o make distclean configure Makefile make install bin_programs /usr/local/bin make dist PACKAGE-VERSION.tar.gz PACKAGE VERSION configure.in AM_INIT_AUTOMAKE (PACKAGE, VERSION) make distcheck make dist PACKAGE-VERSION.tar.gz configure make all PACKAGE-VERSION.tar.gz Autoconf/Automake Autoconf/Automake configure Shell Linux/UNIX Shell MiniGUI configure makefile configure SkyEye Xcopilot makefile 4) MiniGUI-STR MiniGUI-STR PC libminigui-str tar.gz minigui-res-str-1.6.tar.gz mg-samples-str tar.gz /minigui/ 135
148 libminigui-str tar.gz user$ tar zxf <path to cdrom>/minigui/libminigui-str tar.gz libminigui-str /configure user$ cd libminigui-str user$./configure./configure Makefile./configure --help B MiniGUI-STR./configure --enable-xxx MiniGUI./configure --disable-xxx./configure make make install libminigui root user$ make user$ su -c make install./configure MiniGUI MiniGUI --disable libjpeg JPEG user$./configure --disable-jpgsupport /usr/local/lib /etc/ld.so.conf 28 ldconfig user$ su -c /sbin/ldconfig 28 Linux PC /etc/ld.so.conf ldconfig /etc/ld.so.cache 136
149 MiniGUI /usr/local/ /usr/local/etc/ /usr/local/lib/ /usr/local/include/minigui/ MiniGUI user$ ls -l R /usr/local/include/minigui/ /usr/local/include/minigui/: -rw-r--r-- 1 root root :37 common.h -rw-r--r-- 1 root root :37 config.h -rw-r--r-- 1 root root :37 control.h drwxr-xr-x 2 root root :37 ctrl -rw-r--r-- 1 root root :37 dti.c -rw-r--r-- 1 root root :37 endianrw.h -rw-r--r-- 1 root root :37 fixedmath.h -rw-r--r-- 1 root root :37 gdi.h -rw-r--r-- 1 root root :37 mgext.h -rw-r--r-- 1 root root :37 minigui.h -rw-r--r-- 1 root root :37 own_malloc.h -rw-r--r-- 1 root root :37 own_stdio.h -rw-r--r-- 1 root root :37 window.h /usr/local/include/minigui/ctrl: -rw-r--r-- 1 root root :37 button.h -rw-r--r-- 1 root root :37 combobox.h -rw-r--r-- 1 root root :37 ctrlhelper.h -rw-r--r-- 1 root root :37 edit.h -rw-r--r-- 1 root root :37 listbox.h -rw-r--r-- 1 root root :37 menubutton.h -rw-r--r-- 1 root root :37 newtoolbar.h -rw-r--r-- 1 root root :37 progressbar.h -rw-r--r-- 1 root root :37 propsheet.h -rw-r--r-- 1 root root :37 scrollbar.h -rw-r--r-- 1 root root :37 scrollview.h -rw-r--r-- 1 root root :37 static.h -rw-r--r-- 1 root root :37 textedit.h -rw-r--r-- 1 root root :37 toolbar.h -rw-r--r-- 1 root root :37 trackbar.h $ ls l /usr/local/lib lrwxrwxrwx 1 root root :07 libminigui-1.6.so.2 -> \ libminigui-1.6.so rwxr-xr-x 1 root root :07 libminigui-1.6.so rw-r--r-- 1 root root :07 libminigui.a -rwxr-xr-x 1 root root :07 libminigui.la lrwxrwxrwx 1 root root :07 libminigui.so -> \ libminigui-1.6.so MiniGUI --prefix MiniGUI-STR root 137
150 make install $ tar zxf <path to cdrom>/minigui/minigui-res-str-1.6.tar.gz $ cd minigui-res-str-1.6 $ su -c make install MiniGUI /usr/local/lib/minigui/res/ MiniGUI MiniGUI 5) MiniGUI-STR mg-samples-str user$ tar zxf <path to cdrom>/minigui/mg-samples-str tar.gz user$ cd mg-samples-str user$./configure user$ make MiniGUI-STR src/ src/ MiniGUI MiniGUI qvfb Linux FrameBuffer qvfb MiniGUI 1) X Window qvfb 2) qvfb file->configure ) MiniGUI /usr/local/etc/minigui.cfg [system] gal_engine=qvfb ial_engine=qvfb [qvfb] defaultmode=320x240-16bpp display=0 138
151 MiniGUI MiniGUI qvfb qvfb MiniGUI Linux FrameBuffer MiniGUI 1) Linux X Window <Ctrl+Alt+F1> 2) MiniGUI /usr/local/etc/minigui.cfg [system] gal_engine=fbcon ial_engine=console mdev=/dev/mouse mtype=ps2 [fbcon] defaultmode=1024x768-16bpp PS2 /dev/mouse FrameBuffer 1024x mtype=none Linux MiniGUI 139
152 <Ctrl+Alt+BackSpace> MiniGUI <Ctrl+Esc> MiniGUI 4-6 Linux MiniGUI mde-str tar.gz 4-6 Linux FrameBuffer MiniGUI SkyEye 2004 EP7312 LCD 29 SkyEye Linux MiniGUI SkyEye EP7312 LCD SkyEye [email protected] 140
153 SkyEye EP7312 armlinux /opt/armlinux/linux armlinux /usr/local/arm/ /armlinux/ep7312/ SkyEye EP7312 LCD armlinux /armlinux/ep7312/armlinux4skyeye-ep7312.tar.gz /opt/armlinux/ep7312 root# cd /opt/armlinux/ root# mkdir /opt/armlinux/ep7312 root# cd ep7312 root# cp <path to cdrom>/armlinux/ep7312/armlinux4skyeye-ep7312.tar.gz. root# tar jxf armlinux4skyeye-ep7312.tar.gz LCD FrameBuffer armlinux root# cd /opt/armlinux/ root# cp ep7312/armlinux4skyeye-ep7312/skyeye_ts_drv.[ch] linux /drivers/char/ root# cp ep7312/armlinux4skyeye-ep7312/ep7312_sys.h linux /drivers/char/ root# cp ep7312/armlinux4skyeye-ep7312/ep7312.h linux /drivers/video/ root# cp ep7312/armlinux4skyeye-ep7312/clps711xfb.c linux /drivers/video/ -f clps711xfb.c SkyEye EP7312 LCD FrameBuffer CLPS711x FrameBuffer EP Linux Linux linux /drivers/char/config.in 33 bool 'Touch scren driver support for SkyEye EP7312 simulation' CONFIG_TS_SKYEYE_EP7312 linux /drivers/char/makefile
154 obj-$(config_ts_skyeye_ep7312) += skyeye_ts_drv.o SkyEye EP7312 Linux make menuconfig Linux linux / make menuconfig Linux System Type CLPS711X/EP721X Implementations EDB7312 Character devices 4-7 Virtual terminal SkyEye EP7312 Touch scren driver support for SkyEye EP7312 simulation 4-7 Linux 142 Console drivers VGA tex console Frame-buffer Support 4-8
155 4-8 Linux FrameBuffer make menuconfig linux /.config CONFIG_VT=y CONFIG_TS_SKYEYE_EP7312_TS=y CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y CONFIG_FB_CLPS711X=y CONFIG_FBCON_ADVANCED=y CONFIG_FBCON_MFB=y CONFIG_FBCON_CFB2=y CONFIG_FBCON_CFB4=y CONFIG_FBCON_CFB8=y CONFIG_FBCON_CFB16=y SkyEye EP7312 LCD Linux 143
156 root# make dep; make bzimage SkyEye EP7312 MiniGUI MiniGUI-STR SkyEye EP7312 MiniGUI src/ial/skyeye-ep7312.h src/ial/skyeye-ep7312.c SkyEyeEP7312 MiniGUI src/ial/ial.c... #ifdef _SKYEYE_EP7312_IAL #include "skyeye-ep7312.h" #endif... static INPUT inputs [] = {... #ifdef _SKYEYE_EP7312_IAL {"SkyEyeEP7312", InitSkyEyeEP7312Input, TermSkyEyeEP7312Input}, #endif... } inputs MiniGUI MiniGUI MiniGUI MiniGUI.cfg SkyEye EP7312 SkyEyeEP7312 InitSkyEyeEP7312Input TermSkyEyeEP7312Input skyeye-ep7312.h skyeye-ep7312.c SkyEye EP7312 Xcopilot Xcpilot --enable-skyeyeep7312ial MiniGUI MiniGUI --enable-skyeyeep7312ial 144
157 _SKYEYE_EP7312_IAL MiniGUI SkyEye EP7312 MiniGUI-STR MiniGUI-STR SkyEye EP7312 MiniGUI-STR MiniGUI-STR user$ cd libminigui-str build/ buildlib-linux-ep7312-skyeye #!/bin/bash rm config.cache config.status -f CC=arm-linux-gcc \ CFLAGS=-I/opt/armlinux/linux /include \./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ \ --build=i386-linux \ --host=arm-unknown-linux \ --target=arm-unknown-linux \ --disable-static \ --disable-cursor \ --disable-micemoveable \ --disable-galqvfb \ --enable-nativegal \ --enable-skyeyeep7312ial \ --disable-qvfbial \ --disable-nativeial \ --disable-latin9support \ --disable-big5support \ --disable-imegb2312 \ --disable-savebitmap \ --disable-savescreen \ --disable-aboutdlg \ --disable-dblclk CC=arm-linux-gcc configure makefile arm-linux-gcc C CFLAGS=-I/opt/armlinux/linux /include 145
158 configure makefile C -I/opt/armlinux/linux /include Linux MiniGUI Linux./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ \ --prefix MiniGUI make install MiniGUI /usr/local/arm/2.95.3/arm-linux/etc/ /usr/local/arm/2.95.3/arm-linux/lib/ /usr/local/arm/2.95.3/arm-linux/include/ --build=i386-linux \ --host=arm-unknown-linux \ --target=arm-unknown-linux \ configure i386 build arm-linux host target --disable-cursor \ --disable-micemoveable \ --disable-galqvfb \ --disable-nativeial \ --disable-qvfbial \ --enable-skyeyeep7312ial \ --disable-latin9support \ --disable-big5support \ --disable-imegb2312 \ --disable-savebitmap \ --disable-savescreen \ --disable-aboutdlg \ --disable-dblclk MiniGUI SkyEye EP enable-skyeyeep7312ial SkyEye EP7312 B MiniGUI-STR MiniGUI MiniGUI-Threads MiniGUI-STR MiniGUI make make install 146
159 user$ cd libminigui-str user$./build/buildlib-linux-ep7312-skyeye user$ make clean; make user$ su c make install --prefix MiniGUI user$ cd /usr/local/arm/2.95.3/arm-linux user$ ls etc/ include/minigui/ lib/libminigui* -l -R -rwxr-xr-x 1 root dip Mar 14 16:30 lib/libminigui.a lrwxrwxrwx 1 root dip 23 Mar 14 16:30 \ lib/libminigui-1.6.so.2 -> libminigui-1.6.so rwxr-xr-x 1 root dip Mar 14 16:30 lib/libminigui-1.6.so rwxr-xr-x 1 root dip 748 Mar 14 16:30 lib/libminigui.la lrwxrwxrwx 1 root dip 23 Mar 14 16:30 \ lib/libminigui.so -> libminigui-1.6.so etc/: -rw-r--r-- 1 root dip 5335 Mar 14 16:30 MiniGUI.cfg include/minigui/: -rw-r--r-- 1 root dip Mar 14 16:30 common.h -rw-r--r-- 1 root dip Mar 14 16:30 config.h -rw-r--r-- 1 root dip 3410 Mar 14 16:30 control.h drwxr-sr-x 2 root dip 4096 Mar 14 16:30 ctrl -rw-r--r-- 1 root dip 2250 Mar 14 16:30 dti.c -rw-r--r-- 1 root dip Mar 14 16:30 endianrw.h -rw-r--r-- 1 root dip Mar 14 16:30 fixedmath.h -rw-r--r-- 1 root dip Mar 14 16:30 gdi.h -rw-r--r-- 1 root dip Mar 14 16:30 minigui.h -rw-r--r-- 1 root dip Mar 14 16:30 window.h include/minigui/ctrl: -rw-r--r-- 1 root dip Mar 14 16:30 button.h -rw-r--r-- 1 root dip Mar 14 16:30 combobox.h -rw-r--r-- 1 root dip Mar 14 16:30 ctrlhelper.h -rw-r--r-- 1 root dip Mar 14 16:30 edit.h -rw-r--r-- 1 root dip Mar 14 16:30 listbox.h -rw-r--r-- 1 root dip 9615 Mar 14 16:30 menubutton.h -rw-r--r-- 1 root dip Mar 14 16:30 newtoolbar.h -rw-r--r-- 1 root dip 5653 Mar 14 16:30 progressbar.h -rw-r--r-- 1 root dip 9601 Mar 14 16:30 propsheet.h -rw-r--r-- 1 root dip 2875 Mar 14 16:30 scrollbar.h -rw-r--r-- 1 root dip Mar 14 16:30 scrollview.h -rw-r--r-- 1 root dip 7190 Mar 14 16:30 static.h -rw-r--r-- 1 root dip 2966 Mar 14 16:30 textedit.h -rw-r--r-- 1 root dip 4107 Mar 14 16:30 toolbar.h -rw-r--r-- 1 root dip Mar 14 16:30 trackbar.h SkyEye EP7312 MiniGUI-STR MiniGUI MiniGUI MiniGUI 147
160 4.3.4 SkyEye EP7312 MiniGUI 1) MiniGUI MiniGUI 3.1 l MiniGUI user$ arm-linux-gcc -Wall -O2 -o helloworld helloworld.c -lminigui lpthread mg-samples-str configure makefile user$ cd <path to mg-samples-str-1.6.2> user$./build-linux-ep7312-skyeye user$ make clean; make mg-samples-str SkyEye EP7312 2) MiniGUI MiniGUI SkyEye EP7312 ROMFS ROMFS skyeye.conf ROMFS initrd.img MiniGUI ROMFS initrd.img /armlinux/ep7312/ ROMFS 1. romfs/ root# mkdir /opt/armlinux/ep7312/romfs -p 148
161 root# cd /opt/armlinux/ep initrd.img root# cp <path to cdrom>/armlinux/ep7312/initrd.img. root# mount -t ext2 -o loop initrd.img /mnt/tmp/ 3. romfs root# cp /mnt/tmp/* romfs/ -a root# umount /mnt/tmp 4. minigui-res-str minigui-res-str config.linux prefix prefix=/opt/armlinux/ep7312/romfs make install MiniGUI-STR /opt/armlinux/ep7312/romfs/usr/local/lib/minigui root# cd romfs/usr/local/lib/minigui/res/ root# rm bmp/*flat.bmp -f root# rm bmp/*phone.bmp -f root# rm icon/*flat.ico -f root# rm imetab/ -rf 5. MiniGUI C libpthread MiniGUI ROMFS /lib root# cd /opt/armlinux/ep7312/romfs root# cp /usr/local/arm/2.95.3/arm-linux/lib/libminigui-1.6.so.2 lib/ root# cp /usr/local/arm/2.95.3/arm-linux/lib/libpthread.so.0 lib/ root# cp /usr/local/arm/2.95.3/arm-linux/lib/libm.so.6 lib/ root# cp /usr/local/arm/2.95.3/arm-linux/lib/libc.so.6 lib/ root# cp /usr/local/arm/2.95.3/arm-linux/lib/ld-linux.so.2 lib/ root# arm-linux-strip lib/* ld-linux.so.2 libc.so.6 libm.so.6 libpthread.so.0 ROMFS /lib arm-linux-strip 149
162 arm-linux-strings <excutable> grep ^lib libminigui.so libminigui-1.6.so ROMFS root# mkdir p usr/local/arm/2.95.3/arm-linux/ root# ln s /lib usr/local/arm/2.95.3/arm-linux/lib ROMFS /usr/local/arm/2.95.3/arm-linux/lib ROMFS /lib 7. MiniGUI root# mkdir usr/local/etc root# cp /usr/local/arm/2.95.3/arm-linux/etc/minigui.cfg usr/local/etc/ [system] # GAL engine gal_engine=fbcon # IAL engine ial_engine=skyeyeep7312 mdev=/dev/ts mtype=def 8. MiniGUI ROMFS /bin root# arm-linux-strip <path to mg-samples-str-1.6.2>/src/ root# cp <path to mg-samples-str-1.6.2>/src/helloworld bin/ 9. genromfs ROMFS 150
163 root# cd /opt/armlinux/ep7312 root# genromfs d romfs f romfs.img root# ls -l romfs.img -rw-r--r-- 1 root root Mar 15 17:03 romfs.img MiniGUI ROMFS 3) MiniGUI /opt/armlinux/ep7312 skyeye.conf #skyeye config for MiniGUI sample cpu: arm720t mach: ep7312 lcd:state=on mem_bank: map=i, type=rw, addr=0x , size=0x mem_bank: map=m, type=r, addr=0x , size=0x000c0000 mem_bank: map=m, type=r, addr=0x000c0000, size=0x , file=./romfs.img mem_bank: map=m, type=rw, addr=0xc , size=0x skyeye.conf romfs.img size 0x Linux /opt/armlinux/ep7312 X Window SkyEye root# cp /opt/armlinux/linux /vmlinux. root# skyeye vmlinux (SkyEye) target sim (SkyEye) load (SkyEye) run /bin helloworld Welcome to / \ / \ / \_/ \ _ / _ \ / /\ /\ \ / /_\ \ / / \_/ \ \ _ \ \ \/ / / / \ \ \ \ _ _ / \ /_/ \_\ \_\ _ _ _ _ _ \ \_/\_/ ARMLinux for Skyeye For further information check: Execution Finished, Exiting Command: /bin/sh Sash command shell (version 1.1.1) /> cd bin /bin>./helloworld MiniGUI helloworld SkyEye 151
164 LCD SkyEye EP7312 MiniGUI helloworld mde-str MiniGUI user$ cd <path to mde-str-1.6.2> user$./build-linux-ep7312-skyeye user$ make clean; make same ROMFS root# cd /opt/armlinux/ep7312/romfs/bin root# cp <path to mde-str-1.6.2>/same/same. root# mkdir res; cd res root# cp <path to mde-str-1.6.2>/same/res/*.gif. romfs.img SkyEye SkyEye LCD MiniGUI same SkyEye LCD MiniGUI SkyEye LCD SkyEye 152
165 4-10 SkyEye EP7312 MiniGUI same uclibc uclinux-dist /opt/uclinux uclinux-dist Xcopilot /uclinux/ uclinux-dist root# cd /opt/uclinux/uclinux-dist root# patch p1 < <path to the patch>/uclinux-dist patch Xcopilot MiniGUI FrameBuffer /opt/uclinux/uclinux-dist root# make menuconfig uclinux-dist
166 4-11 uclinux Vendor/Product 3com/Xcopilot Kernel linux-2.4.x Libc Version uclibc Customize Kernel Settings Character devices digitizer support Virtual terminal digitizer support Xcopilot Virtual terminal Frame-buffer support 154
167 4-12 Frame-buffer support Support for frame buffer devices Dragonball frame buffer Xcopilot FrameBuffer Advanced low level driver options Monochrome support Xcopilot
168 4-13 FrameBuffer MiniGUI uclinux uclinux-dist/uclibc uclibc MiniGUI root# make TARGET_ARCH=m68k menuconfig uclibc
169 4-14 uclibc make TARGET_ARCH=m68k menuconfig uclibc m68k ARM make TARGET_ARCH=arm menuconfig Target Architecture Features and Options Enable floating point number support Enable full C99 math library support 4-15 uclibc 4-15 uclibc Xcopilot MiniGUI-Threads uclibc General Library Settings POSIX Threading Support
170 4-16 uclibc POSIX uclibc uclinux MiniGUI-Standalone MiniGUI MiniGUI-Standalone uclinux-dist uclibc root# cd /opt/uclinux/uclinux-dist root# make dep root# make uclinux-dist user/ Xcopilot ROM images/ pilot.rom Xcopilot MiniGUI MiniGUI-STR Xcopilot MiniGUI src/ial/mc68x328.h src/ial/mc68x328.c MC68X328 MiniGUI src/ial/ial.c
171 #ifdef _MC68X328_IAL #include "mc68x328.h" #endif... static INPUT inputs [] = {... #ifdef _MC68X328_IAL {"MC68X328", InitMC68X328Input, TermMC68X328Input}, #endif... } inputs MiniGUI MiniGUI MiniGUI MiniGUI.cfg Xcopilot MC68X328 InitMC68X328Input TermMC68X328Input mc68x328.h mc68x328.c static int ts = -1;... BOOL InitMC68X328Input (INPUT* input, const char* mdev, const char* mtype) { int err; struct ts_drv_params drv_params; int mx1, mx2, my1, my2; int ux1, ux2, uy1, uy2; /* * open up the touch-panel device. * Return the fd if successful, or negative if unsuccessful. */ ts = open("/dev/ts", O_NONBLOCK O_RDWR); if (ts < 0) { fprintf (stderr, "Error %d opening touch panel\n", errno); return FALSE; } err = ioctl(ts, TS_PARAMS_GET, &drv_params); if (err == -1) { close (ts); return FALSE; } drv_params.version_req = MC68328DIGI_VERSION; drv_params.event_queue_on = 1; drv_params.sample_ms = 10; #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 4, 0) drv_params.deglitch_on = 1; #else drv_params.deglitch_ms = 0; #endif drv_params.follow_thrs = 0; drv_params.mv_thrs = 2; drv_params.y_max = ; // to allow scribble area drv_params.y_min = 0; drv_params.x_max = 159; drv_params.x_min = 0; drv_params.xy_swap = 0; 159
172 /* * according to mc68328digi.h 'How to calculate the parameters', * we have measured: */ mx1 = 508; ux1 = 0; my1 = 508; uy1 = 0; mx2 = 188; ux2 = 159; my2 = 188; uy2 = 159; /* * now calculate the params: */ drv_params.x_ratio_num = ux1 - ux2; drv_params.x_ratio_den = mx1 - mx2; drv_params.x_offset = ux1 - mx1 * drv_params.x_ratio_num / drv_params.x_ratio_den; drv_params.y_ratio_num = uy1 - uy2; drv_params.y_ratio_den = my1 - my2; drv_params.y_offset = uy1 - my1 * drv_params.y_ratio_num / drv_params.y_ratio_den; err = ioctl(ts, TS_PARAMS_SET, &drv_params); if (err == -1) { close (ts); return FALSE; } input->update_mouse = mouse_update; input->get_mouse_xy = mouse_getxy; input->set_mouse_xy = NULL; input->get_mouse_button = mouse_getbutton; input->set_mouse_range = NULL; input->update_keyboard = NULL; input->get_keyboard_state = NULL; input->set_leds = NULL; } input->wait_event = wait_event; return TRUE; InitMC68X328Input /dev/ts iotcl LCD INPUT INPUT MiniGUI : Native Engine : TermMC68X328Input /dev/ts void TermMC68X328Input (void) { if (ts >= 0) close (ts); ts = -1; } 160
173 wait_event #ifdef _LITE_VERSION static int wait_event (int which, int maxfd, fd_set *in, fd_set *out, fd_set *except, struct timeval *timeout) #else static int wait_event (int which, fd_set *in, fd_set *out, fd_set *except, struct timeval *timeout) #endif { fd_set rfds; int retvalue = 0; int e; if (!in) { in = &rfds; FD_ZERO (in); } if ((which & IAL_MOUSEEVENT) && ts >= 0) { FD_SET (ts, in); #ifdef _LITE_VERSION if (ts > maxfd) maxfd = ts; #endif } #ifdef _LITE_VERSION e = select (maxfd + 1, in, out, except, timeout) ; #else e = select (FD_SETSIZE, in, out, except, timeout) ; #endif if (e > 0) { if (ts >= 0 && FD_ISSET (ts, in)) { FD_CLR (ts, in); retvalue = IAL_MOUSEEVENT; } } else if (e < 0) { return -1; } } return retvalue; select ts MiniGUI IAL_MOUSEEVENT MiniGUI mouse_update static int pen_down = 0; /* pen down */ static int mousex = 79, mousey = 79; /************************ Low Level Input Operations **********************/ /* * Mouse operations -- Event */ static int mouse_update(void) { struct ts_pen_info pen_info; int bytes_read; 161
174 if (ts < 0) return 0; bytes_read = read (ts, &pen_info, sizeof (pen_info)); if (bytes_read!= sizeof (pen_info)) { return 0; } switch(pen_info.event) { case EV_PEN_UP: pen_down = 0; mousex = pen_info.x; mousey = pen_info.y; break; case EV_PEN_DOWN: pen_down = IAL_MOUSE_LEFTBUTTON; mousex = pen_info.x; mousey = pen_info.y; break; case EV_PEN_MOVE: pen_down = IAL_MOUSE_LEFTBUTTON; mousex = pen_info.x; mousey = pen_info.y; break; } } return 1; read ts mouse_update 1 MiniGUI mouse_getxy mouse_getbutton static void mouse_getxy (int *x, int* y) { *x = mousex; *y = mousey; } static int mouse_getbutton (void) { return pen_down; } Xcopilot INPUT NULL... input->set_mouse_xy = NULL; input->set_mouse_range = NULL; input->update_keyboard = NULL; input->get_keyboard_state = NULL; input->set_leds = NULL; --enable-mc68x328ial 162
175 MiniGUI MiniGUI --enable-mc68x328ial _MC68X328_IAL MiniGUI Xcopilot MiniGUI-STR MiniGUI-STR Xcopilot MiniGUI-STR MiniGUI-STR user$ cd libminigui-str build/ buildlib-uclinux-xcopilot #!/bin/sh # # Please make sure that the following things are OK: # # 1. You have installed the m68k-elf-tools already. # 2. Your uclinux distribution has been installed into # the directory of '/opt/uclinux/uclinux-dist'. # 3. You configured the uclinux to use uclibc, and have # configured uclibc to support pthread. # 4. You have made the uclinux distribution. # 5. You have made a symbol link of "uclibc" to the correct uclibc directory. # rm config.cache config.status -f CC=m68k-elf-gcc \ CFLAGS="-m Os -I/opt/uclinux/uClinux-dist/lib/uClibc/include \ -I/opt/uclinux/uClinux-dist/linux-2.4.x/include -fno-builtin \ -mid-shared-library -mshared-library-id=0 " \ LDFLAGS="-Wl,-elf2flt -Wl,-move-rodata -Wl,-shared-lib-id,0 -Wl,-elf2flt -Wl,-move-rodata \ -L/opt/uclinux/uClinux-dist/lib/uClibc/lib \ -Wl,-R,/opt/uclinux/uClinux-dist/lib/uClibc/libc.gdb -lc" \./configure --prefix=/opt/uclinux/uclinux-dist/minigui/m68k-elf/ \ --build=i386-linux \ --host=m68k-elf-linux \ --target=m68k-elf-linux \ --disable-shared \ --with-osname=uclinux \ --with-style=flat \ --enable-lite \ --enable-standalone \ --disable-micemoveable \ --disable-cursor \ --enable-fblin1l \ --disable-fblin8 \ --disable-fblin16 \ --disable-fblin32 \ 163
176 --disable-textmode \ --enable-dummyial \ --enable-mc68x328ial \ --disable-nativeial \ --disable-qvfbial \ --disable-latin9support \ --disable-gbksupport \ --disable-big5support \ --disable-savebitmap \ --disable-jpgsupport \ --disable-pngsupport \ --disable-imegb2312 \ --disable-aboutdlg \ --disable-savescreen \ --enable-grayscreen \ --enable-tinyscreen CC=m68k-elf-gcc configure makefile m68k-elf-gcc C CFLAGS="-m Os -I/opt/uclinux/uClinux-dist/lib/uClibc/include \ -I/opt/uclinux/uClinux-dist/linux-2.4.x/include -fno-builtin \ -mid-shared-library -mshared-library-id=0 " configure makefile C C 3.1 -I/opt/uclinux/uClinux-dist/linux-2.4.x/include Linux MiniGUI Linux LDFLAGS="-Wl,-elf2flt -Wl,-move-rodata -Wl,-shared-lib-id,0 -Wl,-elf2flt -Wl,-move-rodata \ -L/opt/uclinux/uClinux-dist/lib/uClibc/lib \ -Wl,-R,/opt/uclinux/uClinux-dist/lib/uClibc/libc.gdb -lc" configure makefile 3.1 MiniGUI configure CC LDFLAGS m68k-elf-gcc./configure --prefix=/opt/uclinux/uclinux-dist/minigui/m68k-elf/ \ 164
177 --prefix MiniGUI make install MiniGUI /opt/uclinux/uclinux-dist/minigui/m68k-elf/etc/ /opt/uclinux/uclinux-dist/minigui/m68k-elf/lib/ /opt/uclinux/uclinux-dist/minigui/m68k-elf/include/ --build=i386-linux \ --host=m68k-elf-linux \ --target=m68k-elf-linux \ configure i386 build m68k-elf host target --disable-shared \ uclinux configure MiniGUI --with-osname=uclinux \ --with-style=flat \ --enable-lite \ --enable-standalone \ --disable-micemoveable \ --disable-cursor \ --enable-fblin1l \ --disable-fblin8 \ --disable-fblin16 \ --disable-fblin32 \ --disable-textmode \ --enable-dummyial \ --enable-mc68x328ial \ --disable-nativeial \ --disable-qvfbial \ --disable-latin9support \ --disable-gbksupport \ --disable-big5support \ --disable-savebitmap \ --disable-jpgsupport \ --disable-pngsupport \ --disable-imegb2312 \ --disable-aboutdlg \ --disable-savescreen \ --enable-grayscreen \ --enable-tinyscreen MiniGUI Xcopilot --enable-fblin1l --enable-mc68x328ial MiniGUI fbcon 165
178 LCD FrameBuffer Xcopilot B MiniGUI-STR MiniGUI MiniGUI-Standalone MiniGUI-STR MiniGUI make make install user$ cd libminigui-str user$./build/buildlib-uclinux-xcopilot user$ make clean; make user$ su c make install --prefix MiniGUI user$ cd /opt/uclinux/uclinux-dist/minigui/m68k-elf user $ ls -l -R.: total 12 drwxr-xr-x 2 root root 4096 Mar 12 00:48 etc drwxrwxr-x 3 root root 4096 Mar 12 00:48 include drwxrwxr-x 2 root root 4096 Mar 12 00:48 lib./etc: total 8 -rw-r--r-- 1 root root 5138 Mar 12 00:48 MiniGUI.cfg./include: total 4 drwxrwxr-x 3 root root 4096 Mar 12 00:48 minigui./include/minigui: total 612 -rw-r--r-- 1 root root Mar 12 00:48 common.h -rw-r--r-- 1 root root Mar 12 00:48 config.h -rw-r--r-- 1 root root 3410 Mar 12 00:48 control.h drwxrwxr-x 2 root root 4096 Mar 12 00:48 ctrl -rw-r--r-- 1 root root 2250 Mar 12 00:48 dti.c -rw-r--r-- 1 root root Mar 12 00:48 endianrw.h -rw-r--r-- 1 root root Mar 12 00:48 fixedmath.h -rw-r--r-- 1 root root Mar 12 00:48 gdi.h -rw-r--r-- 1 root root Mar 12 00:48 minigui.h -rw-r--r-- 1 root root Mar 12 00:48 window.h./include/minigui/ctrl: total 212 -rw-r--r-- 1 root root Mar 12 00:48 button.h -rw-r--r-- 1 root root Mar 12 00:48 combobox.h -rw-r--r-- 1 root root Mar 12 00:48 ctrlhelper.h -rw-r--r-- 1 root root Mar 12 00:48 edit.h -rw-r--r-- 1 root root Mar 12 00:48 listbox.h -rw-r--r-- 1 root root 9615 Mar 12 00:48 menubutton.h -rw-r--r-- 1 root root Mar 12 00:48 newtoolbar.h -rw-r--r-- 1 root root 5653 Mar 12 00:48 progressbar.h -rw-r--r-- 1 root root 9601 Mar 12 00:48 propsheet.h -rw-r--r-- 1 root root 2875 Mar 12 00:48 scrollbar.h -rw-r--r-- 1 root root Mar 12 00:48 scrollview.h -rw-r--r-- 1 root root 7190 Mar 12 00:48 static.h -rw-r--r-- 1 root root 2966 Mar 12 00:48 textedit.h -rw-r--r-- 1 root root 4107 Mar 12 00:48 toolbar.h -rw-r--r-- 1 root root Mar 12 00:48 trackbar.h./lib: total
179 -rw-r--r-- 1 root root Mar 12 00:48 libminigui.a -rwxr-xr-x 1 root root 742 Mar 12 00:48 libminigui.la Xcopilot MiniGUI-STR MiniGUI Xcopilot MiniGUI 1) MiniGUI MiniGUI MiniGUI uclinux-dist user uclinux-dist MiniGUI uclinux-dist romfs make image uclinux-dist/user mgdemo mg-samples-str helloworld.c root# cd /opt/uclinux/uclinux-dist/user root# mkdir mgdemo root# cd mgdemo root# cp <path to mg-samples-str>/src/helloworld.c. Makefile EXEC = mghello OBJS = helloworld.o CFLAGS+=-I/opt/uclinux/uClinux-dist/minigui/m68k-elf/include LDFLAGS+=-L/opt/uclinux/uClinux-dist/minigui/m68k-elf/lib LDLIBS+=-lminigui all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS$(LDLIBS_$@)) romfs: $(ROMFSINST) /bin/$(exec) clean: -rm -f $(EXEC) *.elf *.gdb *.o uclinux-dist/user/ Makefile dir_y += mgdemo 167
180 uclinux-dist make romfs/bin mghello mgdemo makefile mycal makefile CFLAGS MiniGUI LDFLAGS MiniGUI LDLIBS -lminigui MiniGUI 3.2 I L l mg-samples-str configure makefile user$ cd <path to mg-samples-str-1.6.2> user$./build-uclinux-xcopilot user$ make mg-samples-str Xcopilot 2) MiniGUI Xcopilot MiniGUI ROM MiniGUI Welcome to _ / _ _ \ \ \/ / _ _ / \ \ _ _ _ _ \ \_/\_/ _ For further information check: Execution Finished, Exiting 168
181 Sash command shell (version 1.1.1) /> cd bin /bin>./mghello MISC: Can not locate your MiniGUI.cfg file or bad files! DESKTOP: Initialization of misc things failure! pid 10: failed 256 /bin> uclinux-dist romfs/ ROM romfs MiniGUI romfs root# cd /opt/uclinux/uclinux-dist/ root# mkdir romfs/usr/local/etc -p root# cp minigui/m68k-elf/etc/minigui.cfg romfs/usr/local/etc/ MiniGUI.cfg MiniGUI minigui-res-str make install make minigui-res-str config.linux TOPDIR TOPDIR=/opt/uclinux/uClinux-dist/romfs make install MiniGUI TOPDIR uclinux-dist romfs minigui-res-str MiniGUI.cfg MiniGUI.cfg Xcopilot uclinux-dist romfs/usr/local/etc/minigui.cfg [system] [system] # GAL engine gal_engine=fbcon # IAL engine ial_engine=mc68x
182 mdev=/dev/ts mtype=unknown uclinux-dist make ROM mg-samples-str MiniGUI romfs/ make image root# cp <path to mg-samples-str> root# cp src/helloworld /opt/uclinux/uclinux-dist/romfs/bin/ root# cd /opt/uclinux/uclinux-dist root# make image Xcopilot MiniGUI 3) MiniGUI Xcopilot ROM user$ cd ~/.xcopilot user$ ln s /opt/uclinux/uclinux-dist/images/pilot.rom X Window Xcopilot 31 user$ cd <path to xcopilot> user$./xcopilot Xcopilot MiniGUI Welcome to _ / _ _ \ \ \/ / _ _ / \ \ _ _ _ _ \ \_/\_/ _ For further information check: Execution Finished, Exiting Sash command shell (version 1.1.1) 31 Xcopilot MiniGUI /xcopilot/xcopilot uc0-mg.tar.gz xcopilot Xcopilot MiniGUI 170
183 /> cd bin /bin>./mghello MiniGUI Hello, world Xcopilot 4-17 Xcopilot LCD 4-17 Xcopilot MiniGUI MiniGUI PC MiniGUI PC MiniGUI MiniGUI Linux/uClinux MiniGUI Linux/uClinux MiniGUI 171
184 172
185 173
186 5 MiniGUI Linux/uClinux Linux/uClinux MiniGUI MiniGUI NFS Linux/uClinux
187 5-1 ARM3000 CPU S3C44B0X01 RTL8019AS FLASH SAMSUNG 9F2808L10B 16MB BIOS AM29LV160DB 2MB LCD 320* HY57V561620BT-H 32M/8M 5-1 ARM NET-ARM3000-uClinux 1) uclinux uclibc Linux CD-ROM /mnt/cdrom root install.sh user$ su password:< root > root# cd /mnt/cdrom root#./install.sh 175
188 uclinux uclibc /uclinux /usr/arm-linux-uclibc 2) PATH PATH BASH Shell.bash_profile export PATH=/usr/arm-linux-uclibc/bin:$PATH user$..bash_profile 3) uclinux root root# cd /uclinux/uclinux-2.4.x root# make dep root# make uclinux 4) minicom root minicom root# minicom s A Serial Device: /dev/ttys0 1 E BPS/par/bits: / N1 F E NO Save setup as df1 176
189 minicom : root# minicom 5) minicom boot root 6) NFS /etc/exports NFS /uclinux/ *(rw,sync) root NFS root# /etc/init.d/nfs restart 7) IP IP minicom root# ifconfig eth # 8) NFS minicom # mount o nolock -t nfs :/uclinux /home NFS /home 9) MiniGUI-STR user$ cd <path to libminigui-str-1.6.2> 177
190 user$./build/buildlib-uclinux-arm3000 user$ make clean; make user$ su c 'make install' buildlib-uclinux-arm3000 MiniGUI make install MiniGUI-STR /uclinux minigui/ 10) MiniGUI-STR user$ cd <path to mg-samples-str-1.6.2> user$./build-uclinux-arm3000 user$ make clean; make src /uclinux demos root# cp src/helloworld /uclinux/demos 11) MiniGUI-STR MiniGUI MiniGUI MiniGUI-STR /usr/local/lib/ minigui/ /uclinux/demos 12) MiniGUI MiniGUI.cfg MiniGUI /uclinux/minigui/etc MiniGUI.cfg /uclinux/demos [system] gal_engine=fbcon ial_engine=arm3000 [fbcon] defaultmode=320x240-8bpp MiniGUI MiniGUI.cfg /usr/local/lib /home/demos /home NFS MiniGUI MiniGUI.cfg 178
191 .MiniGUI.cfg /usr/local/etc /etc MiniGUI.cfg NFS MiniGUI.cfg 13) MiniGUI-STR minicom # cd /home/demos #./helloworld LCD MiniGUI LCD helloworld ARM3000 buildlib-uclinux-arm3000 MiniGUI-STR build/ MiniGUI CC=arm-uclibc-gcc CC CFLAGS="-Wall -O2 -g -D linux -I/uclinux/uClinux-2.4.x/include -I/uclinux/uClibc /include -fno-builtin -nostartfiles " CFLAGS -Wall -O2 2 -g -D linux linux -I/uclinux/uClinux-2.4.x/include -I/uclinux/uClibc /include uclibc -fno-builtin -nostartfiles LDFLAGS="-elf2flt -static 179
192 -L/uclinux/uClibc /lib -L/uclinux/uClinux-2.4.x/lib -lc" LDFLAGS -elf2flt ELF FLAT -static -L/uclinux/uClibc /lib uclibc -L/uclinux/uClinux-2.4.x/lib uclinux -lc libc MiniGUI --prefix=/uclinux/minigui MiniGUI make install MiniGUI MiniGUI /uclinux/minigui/include/ MiniGUI /uclinux/minigui/lib --build=i386-linux i386-linux --host=arm-elf-linux arm-elf-linux --target=arm-elf-linux arm-elf-linux --disable-shared MiniGUI --with-osname=uclinux uclinux --enable-lite MiniGUI --enable-standalone enable-lite MiniGUI MiniGUI-Standalone --disable-micemoveable --disable-cursor --enable-galfbcon Linux FrameBuffer --enable-fblin4l 4 8 fblin8 MiniGUI-STR fblin8 --enable-textmode Linux --enable-dummyial MiniGUI 180
193 --enable-autoial MiniGUI --enable-arm3000ial arm3000 ARM disable-jpgsupport jpg uclibc jpg --disable-pngsupport png uclibc png --enable-mousecalibrate SetMouseCalibrationParameters MiniGUI SetMouseCalibrationParameters (const POINT* src_pts, const POINT* dst_pts) src_pts 5 dst_pts 5 dst_pst src_pts dst_pst mg-samples-str build-uclinux-arm300 CFLAGS -I/uclinux/minigui/include MiniGUI-STR /uclinux/minigui MiniGUI-STR --prefix LDFLAGS /uclinux/uclibc /lib/crt0.o crt0.o crt0.o C LDFLAGS -L/uclinux/minigui/lib MiniGUI-STR /uclinux/minigui MiniGUI-STR --prefix MiniGUI ARM3000 MiniGUI ARM3000 src/ial/arm3000.c src/ial/arm3000.h 181
194 5.1.5 GAL fbcon engine: Error when opening /dev/fb0 /dev/fb0 minicom # ln s /dev/fb0 /dev/fb/0 GAL fbcon engine: Can't open /dev/tty0" /dev/tty0 minicom # mknod /dev/tty0 c 4 0 GDI: Error in loading raw bitmap fonts. MiniGUI.cfg MiniGUI.cfg HH2410R3 CPU S3C MHz FLASH LCD 16M 240x M SDRAM
195 1) Linux Linux RedHat 9 CDROM /mnt/cdrom root user$ su root# cd /mnt/cdrom root#./arminstall y Linux /HHARM2410-R3 /opt/host/armv4l 2) PATH PATH BASH Shell.bash_profile export PATH=/opt/host/armv4l/bin:$PATH user$..bash_profile 3) minicom root minicom root# minicom s A Serial Device /dev/ttys0 1 E BPS/par/bits / N1 F E NO 183
196 Save setup as df1 minicom root# minicom 4) minicom 5) NFS /etc/exports NFS /demos *(rw,sync) root NFS root# /etc/init.d/nfs restart 6) IP IP minicom # ifconfig eth # 7) NFS minicom # mount -t nfs :/demos /home ) MiniGUI-STR 184
197 user$ cd <path to libminigui-str-1.6.2> user$./build/buildlib-linux-hh2410r3 user$ make clean; make user$ su c 'make install' MiniGUI /opt/host/armv4l/armv4l-unknown-linux/ 9) MiniGUI-STR user$ cd <path to mg-samples-str-1.6.2> user$./build-linux-hh2410r3 user$ make clean; make src/ /demos root# cp src/helloworld /demos 10) MiniGUI-STR MiniGUI MiniGUI MiniGUI /usr/local/lib/ minigui/ /demos 11) MiniGUI MiniGUI.cfg /opt/host/armv4l/armv4l-unknown-linux/etc MiniGUI.cfg /demos [system] gal_engine=fbcon ial_engine=hh2410r3 mdev=/dev/touchscreen/0raw [fbcon] defaultmode=240x320-8bpp MiniGUI MiniGUI.cfg /usr/local/lib /home /home NFS MiniGUI MiniGUI.cfg 185
198 .MiniGUI.cfg /usr/local/etc /etc MiniGUI.cfg NFS MiniGUI.cfg MiniGUI V1.3 /etc MiniGUI.cfg MiniGUI /etc/minigui.cfg 1.3 MiniGUI.cfg MiniGUI-STR MiniGUI-STR MiniGUI.cfg MiniGUI 12) MiniGUI-STR minicom root# cd /home/ root#./helloworld LCD MiniGUI HH2410R3 buildlib-linux-hh2410r3 MiniGUI build/ --prefix=/opt/host/armv4l/armv4l-unknown-linux MiniGUI MiniGUI -I -L MiniGUI-STR --target=arm-unknown-linux arm-unknown-linux --disable-shared MiniGUI --enable-hh2410r3ial MiniGUI HH2410R3 186
199 --with-style=phone MiniGUI phone pc3d --enable-fblin enable-tinyscreen MiniGUI HH2410R3 MiniGUI HH2410R3 src/ial/hh2410r3.c src/ial/hh2410r3.h MiniGUI MiniGUI-STR ipaq H3600/H3800 Intel xscale PX255B SMDK2410 ARM7202 RM9200 ARM
200 A MiniGUI-STR MiniGUI-VAR MiniGUI-STR MiniGUI-VAR MiniGUI MiniGUI-STR Linux uclinux ipaq H3600/H3800 SMDK2410 Intel xscale PX255B ARM7202 ARM3000 RM9200 ARM2410 HHARM2410-R3 MiniGUI-STR MiniGUI / Linux/uClinux MiniGUI MiniGUI MiniGUI-AOR 188 MiniGUI MiniGUI-STR ecos uc/os-ii VxWorks ThreadX QPF TrueType GBK GB18030 EUCKR EUCJP UNICODE PCX TGA PBM
201 NEWGAL NEWGAL GDI 2 MiniGUI MiniGUI ListView GridView MonthCalendar SpinBox Animation IconView MyWindows MiniGUI-STR Linux/uClinux MiniGUI-Threads MiniGUI-Lite MiniGUI-Standalone / API API GAL FrameBuffer qvfb ipaq H3600/H3800 Intel xscale PX255B SMDK2410 ARM7202 ARM3000 RM9200 ARM2410 HHARM2410-R3 ISO ~ ISO GB2312 BIG5 RBF VBF rbf-fixed-rrncnn-8-16-iso
202 rbf-fixed-rrncnn gb rbf-fixed-rrncnn big5 vbf-courier-rrncnn iso vbf-helvetica-rrncnn iso vbf-times-rrncnn iso Windows BMP GIF JPEG PNG libjpeg libpng PC 3D Flat Phone GB2312 Static Button Simple edit box Single-line edit box Multiple-line edit box ListBox ComboBox ProgressBar NewToolbar MenuButton TrackBar PropertySheet ScrollView 190
203 191
204 B MiniGUI-STR MiniGUI RedHat Linux 9 MiniGUI./configure -help Red Hat `configure' configures this package to adapt to many kinds of systems. Usage:./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help --help=short --help=recursive -V, --version -q, --quiet, --silent --cache-file=file -C, --config-cache -n, --no-create --srcdir=dir display this help and exit display options specific to this package display the short help of all the included packages display version information and exit do not print `checking...' messages cache test results in FILE [disabled] alias for `--cache-file=config.cache' do not create output files find the sources in DIR [configure dir or `..'] Installation directories: --prefix=prefix --exec-prefix=eprefix install architecture-independent files in PREFIX [/usr/local] install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify 192
205 an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$home'. For better control, use the options below. Fine tuning of the installation directories: --bindir=dir user executables [EPREFIX/bin] --sbindir=dir system admin executables [EPREFIX/sbin] --libexecdir=dir program executables [EPREFIX/libexec] --datadir=dir read-only architecture-independent data [PREFIX/share] --sysconfdir=dir read-only single-machine data [PREFIX/etc] --sharedstatedir=dir modifiable architecture-independent data [PREFIX/com] --localstatedir=dir modifiable single-machine data [PREFIX/var] --libdir=dir object code libraries [EPREFIX/lib] --includedir=dir C header files [PREFIX/include] --oldincludedir=dir C header files for non-gcc [/usr/include] --infodir=dir info documentation [PREFIX/info] --mandir=dir man documentation [PREFIX/man] Program names: --program-prefix=prefix --program-suffix=suffix --program-transform-name=program prepend PREFIX to installed program names append SUFFIX to installed program names run sed PROGRAM on installed program names System types: --build=build --host=host --target=target configure for building on BUILD [guessed] cross-compile to build programs to run on HOST [BUILD] configure for building compilers for TARGET [HOST] Optional Features: --disable-feature do not include FEATURE (same as --enable-feature=no) --enable-feature[=arg] include FEATURE [ARG=yes] --enable-shared=pkgs build shared libraries default=yes --enable-static=pkgs build static libraries default=yes --enable-fast-install=pkgs optimize for fast installation default=yes --disable-libtool-lock avoid locking (might break parallel builds) --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors --enable-lite build MiniGUI-Lite version <default=no> --enable-standalone build MiniGUI-Lite Stand-Alone version <default=no> --enable-miniguientry use minigui_entry function in MiniGUI <default=no> --enable-fixedmath include fixed math routines <default=yes> --enable-debug build with debugging messages <default=no> --enable-tracemsg trace messages of MiniGUI <default=no> --enable-msgstr include symbol name of message <default=no> --enable-micemoveable user can move window by using mouse <default=yes> --enable-dblclk mouse button can do double click <default=yes> --enable-cursor include cursor support (for MiniGUI-Lite) <default=yes> --enable-clipboard include clipboard support <default=yes> --enable-galfbcon support native FrameBuffer GAL engine on Linux FrameBuffer \ console <default=yes> --enable-galqvfb support native FrameBuffer GAL engine on Qt Virtual \ FrameBuffer <default=yes> --enable-coortrans_cw support clockwise rotation of screen in the native \ FB GAL engine <default=no> --enable-coortrans_ccw support counterclockwise rotation of screen in the \ native FB GAL engine <default=no> --enable-fblin1r build the 1BPP FB subdriver of native graphics engine \ (MSB is right) <default=no> --enable-fblin1l build the 1BPP FB subdriver of native graphics engine \ (MSB is left) <default=no> --enable-fblin2r build the 2BPP FB subdriver of native graphics engine \ (MSB is right) <default=no> --enable-fblin2l build the 2BPP FB subdriver of native graphics engine \ (MSB is left) <default=no> --enable-fblin4r build the 4BPP FB subdriver of native graphics engine \ (MSB is right) <default=no> --enable-fblin4l build the 4BPP FB subdriver of native graphics engine \ (MSB is left) <default=no> --enable-fblin8 build the 8BPP FB subdriver of native graphics engine \ <default=yes> --enable-fblin16 build the 16BPP FB subdriver of native graphics engine \ <default=yes> --enable-fblin24 build the 24BPP FB subdriver of native graphics engine \ (incompleted) <default=no> --enable-fblin32 build the 32BPP FB subdriver of native graphics engine \ <default=no> --enable-ipaqial build the input engine for ipaq H3600 <default=no> --enable-l7200ial build the input engine for L7200 <default=no> --enable-arm3000ial build the input engine for ARM3000 <default=no> --enable-fxrm9200ial build the IAL engine for FXRM9200 <default=no> 193
206 --enable-embest2410ial build the IAL engine for EMBEST ARM2410 <default=no> --enable-fft7202ial build the input engine for FFT7202 <default=no> --enable-px255bial build the input engine for px255b <default=no> --enable-mc68x328ial build the input engine for uclinux touch screen palm/mc68ez328\ <default=no> --enable-skyeyeep7312ial build the input engine for touch screen of SkyEye EP7312\ simulation <default=no> --enable-smdk2410ial build the input engine for SMDK2410 touch screen <default=no> --enable-hh2410r3ial build the input engine for HHARM2410R3 touch screen <default=no> --enable-dummyial build the Dummy IAL engine <default=yes> --enable-autoial build the Automatic IAL engine <default=no> --enable-qvfbial build the QVFB IAL engine <default=yes> --enable-nativeial build the native (console) input engine <default=yes> --enable-nativeps2 build the native engine subdriver for PS2 mouse <default=yes> --enable-nativeimps2 build the native engine subdriver for \ IntelligentMouse (IMPS/2) mouse <default=yes> --enable-nativems build the native engine subdirver for \ old MS serial mouse <default=yes> --enable-nativems3 build the native engine subdirver for \ MS3 mouse <default=yes> --enable-nativegpm build the native engine subdirver for \ GPM daemon <default=yes> --enable-textmode Linux system have console (text mode) \ on FrameBuffer <default=yes> --enable-vbfsupport include var bitmap font support <default=yes> --enable-latin2support include East European (Latin 2, ISO ) \ charset support <default=no> --enable-latin3support include South European (Latin 3, ISO ) \ charset support <default=no> --enable-latin4support include North European (Latin 4, ISO ) \ charset support <default=no> --enable-cyrillicsupport include Cyrillic (ISO ) charset support <default=no> --enable-arabicsupport include Arabic (ISO ) charset support <default=no> --enable-greeksupport include Greek (ISO ) charset support <default=no> --enable-hebrewsupport include Hebrew (ISO ) charset support <default=no> --enable-latin5support include Turkish (Latin 5, ISO ) charset \ support <default=no> --enable-latin6support include Nordic, Latin 6, ISO ) charset \ support <default=no> --enable-thaisupport include Thai (ISO ) charset support <default=no> --enable-latin7support include Latin 7 (ISO ) charset support <default=no> --enable-latin8support include Latin 8 (ISO ) charset support <default=no> --enable-latin9support include Latin 9 (ISO , West Extended) \ charset support <default=yes> --enable-latin10support include Latin 10 (ISO , Romanian) \ charset support <default=no> --enable-gbsupport include EUC encoding of GB2312 charset support <default=yes> --enable-big5support include BIG5 charset support <default=yes> --enable-kbdfrpc include keyboard layout for French \ PC keyboard (non-us 102 keys) <default=no> --enable-kbdfr include keyboard layout for French <default=no> --enable-kbdde include keyboard layout for German <default=no> --enable-kbddelatin1 include keyboard layout for German Latin1 <default=no> --enable-kbdit include keyboard layout for Italian <default=no> --enable-kbdes include keyboard layout for Spanish <default=no> --enable-kbdescp850 include keyboard layout for Spanish CP850 <default=no> --enable-savebitmap include SaveBitmap-related functions <default=yes> --enable-gifsupport include GIF file support <default=yes> --enable-jpgsupport include JPG file support <default=yes> --enable-pngsupport include PNG file support <default=yes> --enable-imegb2312 include IME (GB2312) support <default=yes> --enable-mousecalibrate include code doing mouse calibration <default=yes> --enable-aboutdlg include About Dialog Box <default=yes> --enable-savescreen include code for screenshots <default=yes> --enable-grayscreen target is a gray screen <default=no> --enable-tinyscreen target is a tiny-size screen <default=no> --enable-ctrlstatic include STATIC control <default=yes> --enable-ctrlbutton include BUTTON control <default=yes> --enable-ctrlsimedit include Simple EDIT control <default=yes> --enable-ctrlsledit include Single-Line EDIT control <default=yes> --enable-ctrllistbox include LISTBOX control <default=yes> --enable-ctrlpgbar include PROGRESSBAR control <default=yes> --enable-ctrltoolbar include TOOLBAR control <default=yes> --enable-ctrlnewtoolbar include NEWTOOLBAR control <default=yes> --enable-ctrlmenubtn include MENUBUTTON control <default=yes> --enable-ctrltrackbar include TRACKBAR control <default=yes> --enable-ctrlcombobox include COMBOBOX control <default=yes> --enable-ctrlpropsheet include PROPSHEET control <default=yes> --enable-ctrlscrollview include SCROLLVIEW and SCROLLWINDOW controls <default=yes> --enable-ctrltextedit include TEXTEDIT control which is based-on \ SCROLLVIEW control <default=yes> 194
207 Optional Packages: --with-package[=arg] use PACKAGE [ARG=yes] --without-package do not use PACKAGE (same as --with-package=no) --with-gnu-ld assume the C compiler uses GNU ld default=no --with-pic try to use only PIC/non-PIC objects default=use both --with-osname=linux/uclinux --with-targetname=unknown --with-style=pc3d/flat/phone Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. configure MiniGUI $./configure --with-style=phone --enable-lite --enable-standalone MiniGUI phone MiniGUI-Standalone $./configure --with-style=flat --enable-lite MiniGUI MiniGUI-Lite flat./configure Makefile default=yes default=no B.1.1 GNU --prefix=prefix MiniGUI /usr/local./configure --prefix=/home/test make install 195
208 /home/test/lib /home/test/include /home/test/man --build --host --target MiniGUI 4 --enable-static --enable-shared --disable-static B.1.2 MiniGUI-STR MiniGUI --disable-feature --enable-feature --disable-feature --enable-feature MiniGUI --with MiniGUI with --with-osname=linux/uclinux MiniGUI linux MiniGUI uclinux --with-osname=uclinux --with-style=pc3d/flat/phone MiniGUI pc3d PC flat phone MiniGUI B-1 B-1 MiniGUI-STR lite MiniGUI-Lite no 196
209 standalone MiniGUI-Standalone no lite yes miniguientry minigui_entry no fixedmath yes debug no tracemsg MiniGUI no msgstr MiniGUI no tracemsg micemoveable yes --disable-micemoveable dblclk yes cursor yes clipboard yes galfbcon Linux FrameBuffer yes galqvfb Qvfb yes coortrans_cw GAL no 90 COMPAQ ipaq H3600 coortrans_ccw GAL 90 COMPAQ ipaq H3800 no fblinxx fblin1 fblin2 fblin_2 fblin4 fblin8 fblin16 fblin24 fblin32 GAL 8 16 ipaqial ipaq H3600/H3800 no arm3000ial ARM3000 no fxrm9200ial 9200 no embest2410ial 2410 no fft7202ial 7202 no px255bial Intel xscale PX255B no mc68x328ial Xcopilot no skyeyeep7312ial SkyEye EP7312 no smdk2410ial 2410 no hh2410r3ial 2410R3 no dummyial yes autoial no qvfbial qvfb yes nativeial Linux yes nativeps2 nativeimps2 nativems nativems3 yes nativegpm MiniGUI PS2 IMPS2 MS MS3 GPM textmode Linux yes Linux vbfsupport MiniGUI Var Bitmap Font VBF MiniGUI.cfg [varbitmapfonts] yes 197
210 latin2support atin2support latin3support cyrillicsupport arabicsupport greeksupport hebrewsupport yes latin5support latin6support thaisupport latin7support latin8support latin9support latin10support ISO ISO gbsupport GB2312 / yes big5support BIG5 / yes kbdfrpc kbdfrpc kbdfr kbdde kbddelatin1 kbdit kbdes no kbdescp850 MiniGUI savebitmap BITMAP Windows BMP yes gifsupport GIF yes jpgsupport JPEG yes libjpeg pngsupport PNG yes libpng imegb2312 GB2312 yes mousecalibrate yes aboutdlg About MiniGUI yes savescreen grayscreen tinyscreen ctrlstatic <PrntScrn> MiniGUI <PrntScrn> <Ctrl+PrntScrn> MessageBox 320x240 ctrlstatic ctrlbutton ctrlsimedit ctrlsledit ctrloldmledit ctrllistbox ctrlpgbar ctrltoolbar ctrlnewtoolbar ctrlmenubtn ctrltrackbar ctrlcombobox ctrlpropsheet ctrlscrollview ctrltextedit GB2312 yes no no yes B.1.3 MiniGUI-STR MiniGUI-STR buildlib-min build/ #!/bin/sh./configure \ --with-style=flat \ --enable-grayscreen \ --enable-tinyscreen \ --disable-galqvfb \ 198
211 --disable-qvfbial \ --disable-dummyial \ --disable-micemoveable \ --disable-cursor \ --disable-vbfsupport \ --disable-latin9support \ --disable-big5support \ --disable-savebitmap \ --disable-jpgsupport \ --disable-pngsupport \ --disable-imegb2312 \ --disable-aboutdlg \ --disable-savescreen MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI-Threads fbcon 8 16 native/console VBF Latin2 Latin1 ISO BIG5 GB disable-gb2312support GB2312 GB2312 BITMAP JPEG PNG AboutMiniGUI MiniGUI-STR V1.6.2 MiniGUI # MiniGUI Ver 1.6.x. # This configuration file is for PC3D window style. # # Copyright (C) 2002~2005 Feynman Software 199
212 # Copyright (C) 1998~2002 Wei Yongming. # # Web: # Web: # # This configuration file must be installed in /etc, # /usr/local/etc or your home directory. When you install it in your # home directory, it should be named ".MiniGUI.cfg". # # The priority of above configruation files is ~/.MiniGUI.cfg, # /usr/local/etc/minigui.cfg, and then /etc/minigui.cfg. # # If you change the install path of MiniGUI resource, you should # modify this file to meet your configuration. # # NOTE: # The format of this configuration file has changed since the last release. # Please DONT forget to provide the latest MiniGUI.cfg file for your MiniGUI. # [system] # GAL engine gal_engine=fbcon # IAL engine ial_engine=console mdev=/dev/mouse mtype=imps2 [fbcon] defaultmode=1024x768-16bpp [qvfb] defaultmode=640x480-16bpp display=0 # The first system font must be a logical font using RBF device font. [systemfont] font_number=5 font0=rbf-fixed-rrncnn-8-16-iso font1=*-fixed-rrncnn-*-16-gb2312 font2=*-courier-rrncnn-*-16-gb2312 font3=*-times-rrncnn-*-16-gb2312 font4=*-helvetica-rrncnn-*-16-gb2312 default=0 wchar_def=1 fixed=1 caption=2 menu=3 control=4 [rawbitmapfonts] font_number=2 name0=rbf-fixed-rrncnn-8-16-iso fontfile0=/usr/local/lib/minigui/res/font/8x16-iso bin name1=rbf-fixed-rrncnn gb fontfile1=/usr/local/lib/minigui/res/font/song-16-gb2312.bin [varbitmapfonts] font_number=3 name0=vbf-courier-rrncnn iso fontfile0=/usr/local/lib/minigui/res/font/courier-rr vbf name1=vbf-helvetica-rrncnn iso fontfile1=/usr/local/lib/minigui/res/font/helvetica-rr vbf name2=vbf-times-rrncnn iso fontfile2=/usr/local/lib/minigui/res/font/times-rr vbf [mouse] dblclicktime=300 [event] timeoutusec= repeatusec=50000 [cursorinfo] # Edit following line to specify cursor files path cursorpath=/usr/local/lib/minigui/res/cursor/ cursornumber=4 cursor0=d_arrow.cur 200
213 cursor1=d_beam.cur cursor2=d_pencil.cur cursor3=d_cross.cur [iconinfo] # Edit following line to specify icon files path iconpath=/usr/local/lib/minigui/res/icon/ # Note that max number defined in source code is 5. iconnumber=5 icon0=form.ico icon1=w95mbx01.ico icon2=w95mbx02.ico icon3=w95mbx03.ico icon4=w95mbx04.ico [bitmapinfo] # Edit following line to specify bitmap files path bitmappath=/usr/local/lib/minigui/res/bmp/ # Note that max number defined in source code is 7 bitmapnumber=2 bitmap0=capbtns.bmp # bitmap1=arrows.bmp # use large bitmap if your default font is 16 pixel height. bitmap1=arrows16.bmp bitmap2=none bitmap3=none bitmap4=none bitmap5=none # background picture, use your favirate photo bitmap6=none # bitmap used by BUTTON control button=button.bmp pushbutton=none pushedbutton=none # bitmap used by LISTBOX control checkmark=checkmark.bmp # bitmap used by COMBOBOX control downarrow=downarrow.bmp updownarrow=updownarrow.bmp leftrightarrow=leftrightarrow.bmp # bitmap used by IME window IMEctrlbtn=shurufa.bmp # bitmap used by About dialog box logo=minigui256.bmp # logo=minigui16.bmp [bgpicture] position=center # position=upleft # position=downleft # position=upright # position=downright # position=upcenter # position=downcenter # position=vcenterleft # position=vcenterright # position=none [mainwinmetrics] minwidth=50 minheight=50 border=2 thickframe=2 thinframe=1 captiony=+4 iconx=16 icony=16 menubary=+0 menubaroffx=8 menubaroffy=5 menuitemy=+0 intermenuitemx=12 intermenuitemy=2 menuitemoffx=18 menutopmargin=4 201
214 menubottommargin=4 menuleftmargin=4 menurightmargin=4 menuitemminx=64 menuseparatory=4 menuseparatorx=4 sb_height=14 sb_width=16 sb_interx=2 cxvscroll=16 cyvscroll=16 cxhscroll=16 cyhscroll=16 minbarlen=9 defbarlen=18 [windowelementcolors] bkc_caption_normal=0x fgc_caption_normal=0x00c0c0c0 bkc_caption_actived=0x fgc_caption_actived=0x00ffffff bkc_caption_disabled=0x fgc_caption_disabled=0x00c0c0c0 wec_frame_normal=0x wec_frame_actived=0x00ff0000 wec_frame_disabled=0x bkc_menubar_normal=0x00c0c0c0 fgc_menubar_normal=0x bkc_menubar_hilite=0x fgc_menubar_hilite=0x00ffffff fgc_menubar_disabled=0x bkc_menuitem_normal=0x00c0c0c0 fgc_menuitem_normal=0x bkc_menuitem_hilite=0x fgc_menuitem_hilite=0x00ffffff fgc_menuitem_disabled=0x bkc_pppmenutitle=0x00c0c0c0 fgc_pppmenutitle=0x00ff0000 fgc_menuitem_frame=0x00c66931 wec_3dbox_normal=0x00c0c0c0 wec_3dbox_reverse=0x wec_3dbox_light=0x00ffffff wec_3dbox_dark=0x wec_flat_border=0x bkc_control_def=0x00c0c0c0 fgc_control_normal=0x fgc_control_disabled=0x00c0c0c0 bkc_hilight_normal=0x00ff0000 bkc_hilight_lostfocus=0x00bda69c fgc_hilight_normal=0x00ffffff fgc_hilight_disabled=0x00c0c0c0 bkc_desktop=0x00ff0000 bkc_dialog=0x00c0c0c0 bkc_tip=0x00c8fcf8 [imeinfo] imetabpath=/usr/local/lib/minigui/res/imetab/ imenumber=1 ime0=pinyin [appinfo] apprespath=/usr/local/lib/shared/miniguiapps/ MiniGUI MiniGUI etc/minigui-pc3d.cfg /usr/local/etc/ MiniGUI.cfg MiniGUI MiniGUI.MiniGUI.cfg /usr/local/etc/minigui.cfg /etc/minigui.cfg.minigui.cfg /usr/local/etc/minigui.cfg MiniGUI 202
215 [section-name1] key-name1=key-value1 key-name2=key-value2 [section-name2] key-name3=key-value3 key-name4=key-value4 section key=value B.2.1 system system MiniGUI gal_engine ial_engine mdev mtype MiniGUI gal_engine ial_engine mdev mtype B.2.2 fbcon qvfb fbcon defaultmode FBCON qvfb defaultmode qvfb display qvfb X Window Display 0 B.2.3 systemfont systemfont MiniGUI font_number name<nr> <NR> <type>-<facename>-<style>-<width>-<height>-<charset1> MiniGUI rawbitmapfonts 203
216 varbitmapfonts qpf truetypefonts t1fonts CreateLogFontFromName MiniGUI type * facename Courier Times style width * height charset systemfont default=0 wchar_def=1 fixed=1 caption=2 menu=3 control= ISO systemfont MiniGUI 16 ISO GB [systemfont] font_number=2 name0=rbf-fixed-rrncnn-8-16-iso name1=rbf-fixed-rrncnn gb default=0 wchar_def=1 fixed=1 caption=1 204
217 menu=1 control=1 MiniGUI default wchar_def GetSysCharset GetSysCharWidth GetSysCCharWidth GetSysHeight default wchar_default RBF MiniGUI mainwinmetric B.2.4 rawbitmapfonts varbitmapfonts font_number name<nr> fontfile<nr> <NR> font_number 0 MiniGUI <type>-<facename>-<style>-<width>-<height>-<charset1[,charset2,...]> type rbf vbf qpf ttf t1f facename Courier Times style width 0 height 0 charset1 charset2 A.2.5 mouse event 205
218 B.2.6 cursorinfo iconinfo bitmapinfo MiniGUI rawbitmapfonts cursorpath iconpath bitmappath cursornumber iconnumber bitmapnumber cursor<nr> icon<nr> bitmap<nr> <NR> cursornumber iconnumber bitmapnumber MiniGUI MiniGUI MiniGUI --disable-cursor MiniGUI cursorinfo bitmap6 MiniGUI bitmap6 none bitmapinfo IMEctrlbtn logo About MiniGUI --disable-imegb disable-aboutdlg B.2.7 bgpicture center upleft downleft upright downright upcenter downcenter vcenterleft vcenterright none B.2.8 mainwinmetrics windowelementcolors mainwinmetrics captiony=+4 4 windowelementcolors 206
219 B.2.9 imeinfo GB2312 bitmapinfo pinyin wubi shuangpin ziranma MiniGU GB enable-imegb2312 imenumber imenumber 0 B.2.10 MiniGUI etc/minigui-min.cfg MiniGUI # MiniGUI Ver 1.6.x # This configuration file is for minimal configuration. # # Copyright (C) 2002~2004 Feynman Software. # Copyright (C) 1998~2002 Wei Yongming. # # Web: # Web: # # This configuration file must be installed in /etc, # /usr/local/etc or your home directory. When you install it in your # home directory, the name should be ".MiniGUI.cfg". # # The priority of above configruation files is ~/.MiniGUI.cfg, # /usr/local/etc/minigui.cfg, and then /etc/minigui.cfg. # # If you change the install path of MiniGUI resource, you should # modify this file to meet your configuration. # # NOTE: # The format of this configuration file has changed since last release. # Please DONT forget to provide the latest MiniGUI.cfg file for your MiniGUI. # [system] # GAL engine gal_engine=fbcon # IAL engine ial_engine=console mdev=/dev/mouse mtype=imps2 [fbcon] defaultmode=1024x768-16bpp [qvfb] defaultmode=640x480-16bpp display=0 # The system fonts must be raw bitmap fonts [systemfont] 207
220 font_number=1 font0=rbf-fixed-rrncnn-8-16-iso default=0 wchar_def=0 fixed=0 caption=0 menu=0 control=0 [rawbitmapfonts] font_number=1 name0=rbf-fixed-rrncnn-8-16-iso fontfile0=/usr/local/lib/minigui/res/font/8x16-iso bin [varbitmapfonts] font_number=0 [mouse] dblclicktime=300 [event] timeoutusec= repeatusec=50000 [cursorinfo] # Edit following line to specify cursor files path cursorpath=/usr/local/lib/minigui/res/cursor/ cursornumber=2 cursor0=d_arrow.cur cursor1=d_beam.cur /usr/local/etc/ MiniGUI.cfg ~/.MiniGUI.cfg [mainwinmetrics] [windowelementcolors] 208
221 209
222 C MiniGUI MiniGUI MiniGUI MDE MiniGUI mg-samples MiniGUI mgdemo GUN GPL MiniGUI MiniGUI 100% GPL 100% GPL MiniGUI LGPL MiniGUI LGPL MiniGUI GPL GNU MiniGUI V1.3.0 GNU General Public License GPL MiniGUI MiniGUI COPYING LGPL GNU Lesser General Public License GPL 210
223 100% GPL MiniGUI 1) 100% GPL MiniGUI GPL GPL MiniGUI GPL 2) MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI GPL MiniGUI / GPL 3) MiniGUI GPL MiniGUI 211
224 GPL uc/os-ii ThreadX VxWorks MiniGUI Linux/uClinux MiniGUI MiniGUI GPL MiniGUI MiniGUI MiniGUI GPL MiniGUI 4) MiniGUI GPL GPL MiniGUI GPL GPL MiniGUI 100% GPL 5) MiniGUI MiniGUI MiniGUI MiniGUI Linux uclinux VxWorks 212
225 MiniGUI LGPL LGPL LGPL LGPL LGPL MiniGUI MiniGUI LGPL GPL MiniGUI LGPL MiniGUI LGPL 6 LGPL MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI MiniGUI 213
226 MiniGUI LGPL MiniGUI 100% LGPL 100% LGPL LGPL MiniGUI MiniGUI / MiniGUI MiniGUI MiniGUI MiniGUI / MiniGUI MiniGUI MiniGUI MiniGUI GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to 214
227 using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. 215
228 b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 216
229 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 217
230 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. 218
231 219
232 Click below to find more Mipaper at Mipaper at
1
SDT Uclinux SDT.alf.c 44blib.alf 44blib.c jtag ADS.alf.c make menuconfig make dep make clean make lib_only make user_only make romfs make image make uclinux ext2 cash lcd frambuffer 1 armsys-c uclinux
Abstract arm linux tool-chain root NET-Start! 2
Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part
Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2
uclinux 1 Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2 Cygwin Cygwin GNU gccgdbxfree86bashtetexopengl perlpython Linux Windows Cygwin Linux GNU Windows 3 Cygwin Cygwin
<4D6963726F736F667420576F7264202D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>
嵌 入 式 linux 基 础 实 验 1 内 核 配 置 及 编 译 1. 进 入 内 核 所 在 目 录 /opt/ruiva/xscale/linux-2.6.26 #cd /opt/ruiva/xscale/linux-2.6.26 2. 键 入 make menuconfig, 根 据 需 要 适 当 配 置 内 核 #make menuconfig 这 里 先 使 用 默 认 的 配 置,
一个开放源码的嵌入式仿真环境 ― SkyEye
SkyEye SkyEye http://hpclab.cs.tsinghua.edu.cn/~skyeye/ I hear and I forget, I see and I remember, I do and I understand. SkyEye SkyEye SkyEye SkyEye SkyEye 1. SkyEye PC pervasive computing PC I O PDA
本文由筱驀釹贡献
本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux
Microsoft Word - PS2_linux_guide_cn.doc
Linux For $ONY PlayStatioin2 Unofficall General Guide Language: Simplified Chinese First Write By Beter Hans v0.1 Mail: [email protected] Version: 0.1 本 人 是 菜 鸟 + 小 白 欢 迎 指 正 错 误 之 处, 如 果 您 有 其 他 使 用 心 得
自由軟體教學平台
NCHC Opensource task force DRBL [email protected], [email protected] National Center for High-Performance Computing http://www.nchc.gov.tw Jan, 2003 1 2003/1/28 ( ) 09:00-10:30 10:40-12:00 Linux 13:00-14:30
Windows 2000 Server for T100
2 1 Windows 95/98 Windows 2000 3.5 Windows NT Server 4.0 2 Windows DOS 3.5 T200 2002 RAID RAID RAID 5.1 Windows 2000 Server T200 2002 Windows 2000 Server Windows 2000 Server Windows 2000 Server 3.5 for
Microsoft Word - linux命令及建议.doc
Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换
ARM JTAG实时仿真器安装使用指南
ARM JTAG Version 1.31 2003. 11. 12 ARM JTAG ARM JTAG.3 ARM 2.1.4 2.2.4 ARM JTAG 3.1 18 3.2 18 3.2.1 Multi-ICE Server.18 3.2.2 ADS..21 ARM JTAG 4.1 Multi-ICE Server 33 4.1.1 Multi-ICE Server..... 33 4.1.2
PowerPoint 演示文稿
Linux 操 作 系 统 基 础 介 绍 课 程 目 标 及 要 求 了 解 Linux 操 作 系 统 的 登 入 方 式 掌 握 常 用 命 令 的 基 本 用 法 能 够 熟 练 在 各 个 目 录 转 换 Outline 1. Linux 操 作 系 统 简 介 2. Linux 操 作 系 统 的 登 录 3. Linux 操 作 系 统 的 目 录 结 构 4. 常 用 命 令 5.
Symantec™ Sygate Enterprise Protection 防护代理安装使用指南
Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate
ebook140-8
8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4
ebook140-9
9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I
untitled
年度 路 IVI 劉 隆 年 597 598 IVI 錄... 601 行... 601... 601 1.... 601 2. 路... 602 3.... 603... 604 1.IPv4 to IPv6... 604 2.IPv6 to IPv4... 605 -... 606 ( )IVI Server... 606 ( )IVI Server... 610 ( )IVI DNS Server...
IP505SM_manual_cn.doc
IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP
Chapter 2
2 (Setup) ETAP PowerStation ETAP ETAP PowerStation PowerStation PowerPlot ODBC SQL Server Oracle SQL Server Oracle Windows SQL Server Oracle PowerStation PowerStation PowerStation PowerStation ETAP PowerStation
Microsoft PowerPoint - lect01.ppt
Linux 操 作 系 统 潘 建 瑜 华 东 师 范 大 学 数 学 系 [email protected] Linux 操 作 系 统 教 材 : 以 课 堂 讲 义 为 主 上 课 时 间 : 周 五 5 6 7 第 三 教 学 楼 231 上 机 时 间 : 周 五 5 6 7 数 学 楼 200B 机 房 ( 暂 定 于 第 3 7 10 13 16 18 周 ) 课 程 主 页
ebook62-1
1 Red Hat Linux R e d Hat Linux L i n u x X Wi n d o w Red Hat L i n u x 1.1 Red Hat Linux Red Hat 16 M 120 M 3. 5 Intel 386 C D - R O M C D - R O M We b / 1.1.1 L i n u x L i n u 4 Primary Partition Extended
EK-STM32F
STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2
资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用
TORQUE Maui [email protected] 2008 1 1 TORQUE 2 1.1 TORQUE........................... 2 1.2 TORQUE...................... 2 1.3 TORQUE.......................... 4 1.4 TORQUE........................... 4
Simulator By SunLingxi 2003
Simulator By SunLingxi [email protected] 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator
A Preliminary Implementation of Linux Kernel Virus and Process Hiding
邵 俊 儒 翁 健 吉 妍 年 月 日 学 号 学 号 学 号 摘 要 结 合 课 堂 知 识 我 们 设 计 了 一 个 内 核 病 毒 该 病 毒 同 时 具 有 木 马 的 自 动 性 的 隐 蔽 性 和 蠕 虫 的 感 染 能 力 该 病 毒 获 得 权 限 后 会 自 动 将 自 身 加 入 内 核 模 块 中 劫 持 的 系 统 调 用 并 通 过 简 单 的 方 法 实 现 自 身 的
2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM
Oracle Solaris Studio 12.2 DLight 2010 9 2 2 3 DLight 3 3 6 13 CPU 16 18 21 I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AMP Apache MySQL
1.ai
HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact
RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )
RAID RAID 0 RAID 1 RAID 5 RAID 10 2 2 3 4 * (-1)* (/2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( ) ( ) ( ) Windows USB 1 SATA A. SATASATAIntel SATA (SATA3
Guide to Install SATA Hard Disks
SATA RAID 1. SATA. 2 1.1 SATA. 2 1.2 SATA 2 2. RAID (RAID 0 / RAID 1 / JBOD).. 4 2.1 RAID. 4 2.2 RAID 5 2.3 RAID 0 6 2.4 RAID 1.. 10 2.5 JBOD.. 16 3. Windows 2000 / Windows XP 20 1. SATA 1.1 SATA Serial
Microsoft Word - 正文.doc
1 2 1 2 3 4 5 6 7 8 9 10 3 1 150 2 150 1 1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 CPU 1.4.2 I/O 1.4.3 I/O 1.5 1.5.1 CISC RISC 1.5.2 1.5.3 1.6 1.6.1 1.6.2 N 1.6.3 2 2.1 2.1.1 2.1.2 2.1.3
CC213
: (Ken-Yi Lee), E-mail: [email protected] 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++
ebook35-2
2 2.1 Linux login Login: < > Password: < > Linux r o o t l o g o u t 2.2 Linux X Window Linux Linux Bourne ( b s h ) C ( c s h ) Korn ( k s h ) Bourne Steven Bourne UNIX Bourne bash Bourne C Bill Joy Bourne
epub
3 Cisco 3.1 S e t u p C i s c o C i s c o Cisco IOS C i s c o 3.2 Te l n e t T F T P 3-1 3-1 configure terminal configure memory Configure network t e l n e t < C t r l - Z > conf t N V R A M T F T P I
Sun Fire V440 Server Administration Guide - zh_TW
Sun Fire V440 Server 管 理 指 南 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 650-960-1300 文 件 號 碼 :817-2818-10 2003 年 7 月, 修 訂 版 A 將 您 對 此 文 件 的 意 見 傳 送 到 :http://www.sun.com/hwdocs/feedback
Windows XP
Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs
LSI U320 SCSI卡用户手册.doc
V1.0 Ultra320 SCSI SCSI 2004 7 PentiumIntel MS-DOS Windows Novell Netware Novell Sco Unix Santa Cruz Operation LSI U320 SCSI SCSI SCSI Integrated Mirroring/Integrated Striping BIOS Firmware LSI U320 SCSI
K7VT2_QIG_v3
............ 1 2 3 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K
Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1
Red Flag Linux Desktop 4.0 68 6 Red Flag Software Co., Ltd. http://www.redflag-linux.com Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1 1 Red Flag Linux Desktop 4.0 1.1 Red Flag Linux Desktop
P4VM800_BIOS_CN.p65
1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Fri 02/25/2005] BIOS Version : P4VM800 BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor
自由軟體社群發展經驗與 Linux認證介紹
-- (http://linux.vbird.org) 2011/08/12 1 -- -- 不 理 便 了 來 連 ( ) ( ) 論 ~ ~ 2 復 理 3 4 復 數 量 復 離 來 ~ @_@ 5 - 年 Linux windows virtualbox 不 理 Linux Xen 立 4 4GB 了 30 xen 來 sudo xm 來 Linux I/O 例 yum 6 - 年 Windows
Ác Åé å Serial ATA ( Sil3132) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA (5) SATA (a) S A T A ( S A T A R A I D ) (b) (c) Windows XP
Serial ATA ( Sil3132)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 10 (5) S A T A... 12 Ác Åé å Serial ATA ( Sil3132) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS
epub83-1
C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C
IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I
2004 5 IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I Abstract The techniques of digital video processing, transferring
P4V88+_BIOS_CN.p65
1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Wed 12/22/2004] BIOS Version : P4V88+ BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor
RTX3.2.0标准版 - 技术白皮书
一 铭 操 作 系 统 技 术 白 皮 书 广 西 一 铭 软 件 股 份 有 限 公 司 版 权 声 明 本 书 版 权 归 广 西 一 铭 软 件 股 份 有 限 公 司 所 有, 并 保 留 对 本 文 档 及 声 明 的 最 终 解 释 权 和 修 改 权 本 文 件 中 出 现 的 任 何 文 字 叙 述 文 档 格 式 插 图 照 片 方 法 过 程 等 内 容, 除 另 有 特 别 说
Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.
Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New
简 介 本 白 皮 书 高 度 概 述 了 支 持 移 动 互 联 网 设 备 (Mobile Internet Device) 的 Intel C++ Software Development Tool Suite for Linux* OS, 目 标 读 者 主 要 是 技 术 决 策 制 订
白 皮 书 Robert Müller-Albrecht 开 发 人 员 产 品 部 门 支 持 移 动 互 联 网 设 备 的 Intel C++ Software Development Tool Suite for Linux* OS 文 档 编 号 :319332-001US 简 介 本 白 皮 书 高 度 概 述 了 支 持 移 动 互 联 网 设 备 (Mobile Internet Device)
網路安全:理論與實務 第二版
第 10 章 :Wireshark 封 包 分 析 軟 體 10-1 Wireshark 簡 介 10-2 Wireshark 的 安 裝 方 法 10-3 Wireshark 的 使 用 Wireshark 簡 介 - 發 展 歷 史 Wireshark (http://www.wireshark.org/) 是 一 個 開 放 原 始 碼 (open source software) 軟 體,
05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel
Linux sub bash test2.sh sub bash test.sh test2.sh sub bash var1 123 123 test.sh test2.sh var1 bash sub bash var1 bash 01 5-4 X Window X Window X Window Linux Server X Window CPU2006 Linux X Window benchmark
ebook8-30
3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis
CH01.indd
3D ios Android Windows 10 App Apple icloud Google Wi-Fi 4G 1 ( 3D ) 2 3 4 5 CPU / / 2 6 App UNIX OS X Windows Linux (ios Android Windows 8/8.1/10 BlackBerry OS) 7 ( ZigBee UWB) (IEEE 802.11/a/b/g/n/ad/ac
TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP
TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection
Bus Hound 5
Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus
ebook15-C
C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root
快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实
云 服 务 器 ECS 快 速 入 门 (Linux) 快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实 例, 有 时 候 也 被 称 为 阿 里 云
软件测试(TA07)第一学期考试
一 判 断 题 ( 每 题 1 分, 正 确 的, 错 误 的,20 道 ) 1. 软 件 测 试 按 照 测 试 过 程 分 类 为 黑 盒 白 盒 测 试 ( ) 2. 在 设 计 测 试 用 例 时, 应 包 括 合 理 的 输 入 条 件 和 不 合 理 的 输 入 条 件 ( ) 3. 集 成 测 试 计 划 在 需 求 分 析 阶 段 末 提 交 ( ) 4. 单 元 测 试 属 于 动
目 录
1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12
Data Server_new_.doc
0i B/C Data Server Windows 2000 Window XP Windows XP FTP FANUC Data Server FTP liwei@beijing-fanuc 1 06-10-8 Content 1. /...3 1.1...3 1.2...3 1.3 CNC...3 2....5 2.1 STORAGE...5 2.2 FTP...6 2.3 BUFFER...7
Total Internet Connectivity in a Single Chip
基 于 SX 微 处 理 器 的 嵌 入 式 Internet 技 术 乐 德 广 及 其 应 用 系 统 的 设 计 1 1, 郭 东 辉, 刘 瑞 堂 1, Gerard Parr 2 1. 厦 门 大 学 技 术 物 理 研 究 所 厦 门 361005 2. 英 国 Ulster 大 学 信 息 学 院 N.Ireland, BT52 1SA 摘 要 : SX 微 处 理 器 是 美 国 Scenix
TX-NR3030_BAS_Cs_ indd
TX-NR3030 http://www.onkyo.com/manual/txnr3030/adv/cs.html Cs 1 2 3 Speaker Cable 2 HDMI OUT HDMI IN HDMI OUT HDMI OUT HDMI OUT HDMI OUT 1 DIGITAL OPTICAL OUT AUDIO OUT TV 3 1 5 4 6 1 2 3 3 2 2 4 3 2 5
投影片 1
9 1 9-1 Windows XP Windows Server 2003 Mac OS Linux, 都 (OS, Operating System ) 2 3 , 來, 行 3 理 行 4 ,, (UI, User Interface), 滑, 令 列 (CLI, Command-Line Interface) (GUI, Graphical User Interface) 2 5 令 列,
Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P
Oracle Solaris Studio 12.3 IDE 2011 12 E26461-01 2 7 8 9 9 Oracle 10 12 14 21 26 27 29 31 32 33 Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "Project
(Guangzhou) AIT Co, Ltd V 110V [ ]! 2
(Guangzhou) AIT Co, Ltd 020-84106666 020-84106688 http://wwwlenxcn Xi III Zebra XI III 1 (Guangzhou) AIT Co, Ltd 020-84106666 020-84106688 http://wwwlenxcn 230V 110V [ ]! 2 (Guangzhou) AIT Co, Ltd 020-84106666
68369 (ppp quickstart guide)
Printed in USA 04/02 P/N 68369 rev. B PresencePLUS Pro PC PresencePLUS Pro PresencePLUS Pro CD Pass/Fails page 2 1 1. C-PPCAM 2. PPC.. PPCAMPPCTL 3. DB9D.. STPX.. STP.. 01 Trigger Ready Power 02 03 TRIGGER
Microsoft Word - 100118002.htm
100 年 度 11800 電 腦 軟 體 應 用 乙 級 技 術 士 技 能 檢 定 學 科 測 試 試 題 本 試 卷 有 選 擇 題 80 題, 每 題 1.25 分, 皆 為 單 選 選 擇 題, 測 試 時 間 為 100 分 鐘, 請 在 答 案 卡 上 作 答, 答 錯 不 倒 扣 ; 未 作 答 者, 不 予 計 分 准 考 證 號 碼 : 姓 名 : 選 擇 題 : 1. (3)
SA-DK2-U3Rユーザーズマニュアル
USB3.0 SA-DK2-U3R 2007.0 2 3 4 5 6 7 8 System Info. Manual Rebuild Delete RAID RAID Alarm Rebuild Rate Auto compare Temp Management Load Default Elapse time Event Log 0 2 3 4 2 3 4 ESC 5
AL-M200 Series
NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel
TCA Linux 相容性認證測試流程步驟
年 度 流 -Linux 行 北 年 錄...2 說...4 2.1...4 2.2...4 2.3...4 2.4 行...5...6 3.1...6 3.2...6 3.3...7 3.4 列...7 Linux...8 4.1...8 4.1.1 CD-ROM...8 4.1.2 滑...10 4.1.3...14 4.1.4 路...19 4.1.5 Linux...22 4.1.6...27
VIDEOJET connect 7000 VJC-7000-90 zh- CHS Operation Manual VIDEOJET connect 7000 zh-chs 3 目 录 1 浏 览 器 连 接 7 1.1 系 统 要 求 7 1.2 建 立 连 接 7 1.2.1 摄 像 机 中 的 密 码 保 护 7 1.3 受 保 护 的 网 络 7 2 系 统 概 述 8 2.1 实 况
(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor
1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4
Serial ATA ( Nvidia nforce430)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A (6) Microsoft Win
Serial ATA ( Nvidia nforce430)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A... 11 (6) Microsoft Windows 2000... 14 Ác Åé å Serial ATA ( Nvidia nforce430)
ebook70-5
5 / 5.1 L i n u x L i n u x X L i n u x 5.1.1 touch t o u c h t o u c h G N U t o u c h # touch newfile # ls -l newfile - r w - r - - r - - 1 bball users 0 Jan 5 12 : 40 n e w f i l e t o u c h 0 # > newfile2
Building Embedded Linux Systems 构建嵌入式 Linux 系统之根文件系统及其制作 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 /media/samsung/work/6 实验室相关 Outline 1 根文件系统的内容及其准备 2 根文件系统类型的选择根文件系统的类型及制作 3 根文件系统的制作阅读 µclinux 中的源代码,
untitled
Unix Ka-Lok Ng () Department of Biological Sciences and Biotechnology() Taichung Healthcare and Management University (O) 04-23323456 x1856 3408 Teach the student how to use Linux system using TEXT mode
ICD ICD ICD ICD ICD
MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4
投影片 1
FreeBSD A 95/10/11 19:00~21:00 95/10/11 FreeBSD 練 1 Services Setup SSH, lighttpd, PHP, MySQL, FTP, Postfix, phpmyadmin, Blog, Gallery 95/10/11 FreeBSD 練 2 1. 2. # FreeBSD # 3. vi ee joe nano etc 95/10/11
Panaboard Overlayer help
Panaboard Overlayer Image Capture Software for Electronic Whiteboard (Panaboard) ... 3... 5... 6... 13...14 Panaboard Overlayer 1. 2. 3. 4. 4-1. 4-2. [ / ] ( ) 4-3. 5. 6. 6-1. 6-2. [ / ] ( ) 7. Panaboard
