Install and debug Linux SkyEye open-source software

Source: Internet
Author: User
Tags builtin

The Linux SkyEye open-source software is still quite common. So I studied the Linux SkyEye open-source software and shared it with you here. I hope it will be useful to you. A Linux SkyEye Open-Source Software Project is a pure software simulated integrated development environment on Linux and Windows platforms to simulate common embedded systems. Linux SkyEye open source software can run Linux, uClinux, uC/OS-II and other embedded operating systems and a variety of system software.

Currently, the latest version of Linux SkyEye open source software is Linux skyeyeopen source software -1.2-rc6.tar.bz2. This version can be obtained from www. Linux SkyEye Open Source Software. org. Linux SkyEye open source software currently supports multiple embedded processors:

 
 
  1. ATMEL AT91X40  
  2. PHILIPS LPC2xxxx  
  3. Samsung s3c4510b  
  4. Samsung s3c44b0  
  5. Cirrus Logic EP7312  
  6. sharp LH79520  
  7. Cirrus Logic EP9312  
  8. cs89712  
  9. sa1100  
  10. xscale pxa250 lubbock developboard  
  11. xscale pxa270 mainstone developboard  
  12. at91RM9200  
  13. s3c2410x  
  14. s3c2440  
  15. sharp lh7a400 developbaord  
  16. NetSilicon ns9750  
  17. Philips LPC2210 

This project has completed support for Flash, LCD, Network Interface Card, touchsceen, and UART.

2. Installation of Linux SkyEye open source software

Next, I will install the Linux SkyEye open-source software 1.2.RC6 in the latest version. in my system configuration, enter the operating system: Fedora Core 2 Linux (2.4.x) GCC Version: 3.3.2arm-elf-gcc Version: 2.95.3 20010315 first download arm-elf-tools from www.uClinux.org, it contains tools such as arm-elf-gcc and arm-elf-ld. After downloading the SDK, you can install it as follows:
$ Su-c './arm-elf-tools-20030315.sh'
$ Password:

After installation, you can go to the directory where the Linux SkyEye open source software is stored. For example, you can put it in the/home/jelly/download/directory. Decompress the package.
$ Cd ~ /Download
$ Ls
Linux skyeyeopen source software -1.2-rc6.tar.bz2
$ Tar jxvf Linux skyeyeopen source software -1.2-rc6-tar.bz2

Then go to the unzipped Linux SkyEye Open Source Software Directory $ cd Linux SkyEye open source software-v1 and finally use the make command to install the software, after compilation, a Linux SkyEye Open Source Software executable file is generated in binary. This file is the Linux SkyEye open source software simulator. You can add some option parameters when using the make command, for example:

 
 
  1. DBCT not allowed
  2. $ MakeNO_DBCT=1 
  3. LCD is not supported
  4. $ MakeNO_ LCD=1 
  5. BFD library not supported
  6. $ MakeNO_BFD=1 
  7. Network devices are not supported
  8. $ MakeNO_NET=1 

If the Linux SkyEye Open Source Software file is generated under the binary directory, the installation is successful. Next I will use uClinux as an example to simulate it on the Linux SkyEye open-source software. You can use the-h parameter to get help $ Linux SkyEye open source software-hLinux SkyEye open source software-V1.2
Usage: Linux SkyEye open-source software [options]-e program [program args]
Default mode is STANDALONE mode
Options:
-E exec-file the (ELF executable format) kernel file name.
-D in GDB Server mode (can be connected by GDB ).
-C config-file the Linux SkyEye open source software configure file name.
-H This Help Display
-V This shows arch and cpu supported
-E specifies various elf kernel files
-D GDB debugging mode
-C: Specify the configuration file
-H for help
-V: The system structure and CPU support information are displayed. I don't know if this function is not available in this version. If you use the-v option, the following information is displayed: Unknown option '-V ')

3. Porting uClinux

Download and decompress the new kernel package from www.uclinux.org. $ Tar xvzf uClinux-dist-xxxxxxxx.tar.gz to enter the generated uClinux-dist directory can use make xconfig-graphics configuration mode, make menuconfig-menu mode configuration, way to configure uClinux. run $ make xconfig In the uClinux-dist directory.

On the Target Platform Selection tab, select: Vendor/Product: GDB/ARMulator Kernel Version: linux-2.4.x Libc Version: uC-libc and select save and exit

After the configuration is complete, you can use make dep to establish the kernel dependency, and then use make to compile the kernel and file system $ make dep; after a period of compilation, if no error occurs, the following files will be created in the images directory under the uClinux-dist Directory: image. bin linux. data linux. text. romfs. img the romfs. img is the file system image we need at the same time, in the uClinux-dist/linux-2.4.x/directory will generate linux, this file is a kernel file we need to simulate.

Next we can use the Linux SkyEye open-source software to simulate our compiled uClinux system. In the uClinux-dist directory, create a configuration file named Linux SkyEye Open Source Software. conf. The content is as follows:
Cpu: arm7tdmi
Mach: at91
Mem_bank: map = M, type = RW, addr = 0x00000000, size = 0x00004000
Mem_bank: map = M, type = RW, addr = 0x01000000, size = 0x00400000
Mem_bank: map = M, type = R, addr = 0x01400000, size = 0x00400000, file = images/romfs. img
Mem_bank: map = M, type = RW, addr = 0x02000000, size = 0x00400000
Mem_bank: map = M, type = RW, addr = 0x02400000, size = 0x00008000
Mem_bank: map = M, type = RW, addr = 0x04000000, size = 0x00400000
Mem_bank: map = I, type = RW, addr = 0xf0000000, size = 0x10000000
LCD: state = on

Save and exit, and then execute ~ In the uClinux-dist directory ~ /Download/Linux SkyEye open source software-v1/binary/Linux SkyEye open source software-e linux-2.4.x/linux to see if uclinux is running up? Below is my output
Arch: arm
Cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
Mach info: name at91, mach_init addr 0x80727e0
Can't find device module: (null)
Linux SkyEye open-source software: use arm7100 mmu ops
Loaded ROM images/romfs. img
Exec file "linux-2.4.x/linux"'s format is elf32-little.
Load section. init: addr = 0x01000000 size = 0x0000a000.
Load section. text: addr = 0x0100a000 size = 0x000c5ca0.
Load section. data: addr = 0x010d0000 size = 0x00008320.
Not load section. bss: addr = 0x010d8320 size = 0x00022198.
Not load section. debug_abbrev: addr = 0x00000000 size = 0x00039846.
Not load section. debug_info: addr = 0x00000000 size = 0x016b812f.
Not load section. debug_line: addr = 0x00000000 size = 0x000000ef3.
Not load section. debug_pubnames: addr = 0x00000000 size = 0x0000b40d.
Not load section. debug_aranges: addr = 0x00000000 size = 0x000022e0.
Start addr is set to 0x01000000 by exec file.
Linux version 2.4.19-uc1 (jelly@localhost.localdomain) (gcc version 2.95.3 20010315 (release) (ColdFire patches-20010318 from http://fiddes.net/coldfire/) (uClinux ∞ XIP and shared lib patches from http://www.snapgear.com/) ∞) #2006 4 #23:41:40 CST
Processor: Atmel AT91M40xxx revision 0
Architecture: EB01
On node 0 totalpages: 1024
Zone (0): 0 pages.
Zone (1): 1024 pages.
Zone (2): 0 pages.
Kernel command line: root =/dev/rom0
Calibrating delay loop... 12.97 BogoMIPS
Memory: 4 MB = 4 MB total
Memory: 3036KB available (791 K code, 170 K data, 40 K init)
Dentry cache hash table entries: 512 (order: 0, 4096 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 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: 1024 (order: 0, 4096 bytes)
POSIX conformance testing by uniix
Linux NET4.0 in Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Atmel USART driver version 0.99
TtyS0 at 0xfffd0000 (irq = 2) is a builtin Atmel APB USART
TtyS1 at 0xfffcc000 (irq = 3) is a builtin Atmel APB USART
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 kenth Albanowski
Blkmem 1 disk images:
0: 1400000-145DBFF [VIRTUAL 1400000-145DBFF] (RO)
RAMDISK driver initialized: 16 RAM disks of 4096 K size 1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4 Kbytes
TCP: Hash tables configured (established 512 bind 512)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (romfs filesystem) readonly.
Shell invoked to run file:/etc/rc
Command: hostname GDB-ARMulator
Command:/bin/expand/etc/ramfs. img/dev/ram0
Command: mount-t 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


GDB/ARMulator support by <davidm@snapgear.com>
For further information check:
Http://www.uclinux.org/∞
Execution Finished, Exiting
Sash command shell (version 1.1.1)
/>

For Linux SkyEye open-source software. A note in the conf file indicates that memmap is used for the Linux SkyEye open source software earlier than v0.2.5. conf file, but later use the Linux SkyEye open source software. conf file cpu: Specifies the cpu type, such as arm7tdmi and arm720t. mach: Development Board type, such as at91 and ep7312mem_bank: memory block
Map = M is specified as rom/ram, map = I is specified as IO Space
Type = RW read/write, type = R read-only
Addr = 0x00000000 memory block start address
Size = 0x10000000 memory block size
Files = romfs. img File System Image File
Net: Network Configuration
State = on simulate NIC, equal to off, do not simulate
Mac = 0: 4: 3: 2: 1: f specify the MAC address
Ethmod = tuntap/vnet virtual driver
Hostip = specified IP Address
For example: net: state = on, mac = 0: 4: 3: 2: 1: f, ethmod = tuntap, hostip = 10.0.0.1uart: Serial Port support
Fd_in = specifies the input file
Fd_out = Specify the output file
Example: uart: fd_in =/dev/ttyS0, fd_out =/dev/ttyS1
Then you can use minicon to monitor the COM1 port for data exchange LCD: LCD analog state = on/off to enable or disable LCD Simulation

4. Linux SkyEye Open-Source Software Debugging
To use the SkeyEye debugging function, you can add the-d parameter during execution, for example:
$ Linux SkyEye open-source software-e linux-d
In this case, the gdb service is enabled on port 12345 of the local machine.

Then re-open a terminal program
$ Arm-elf-gdb linux
(Gdb) target remote 127.0.0.1: 12345
In this case, you can debug uClinux on the server just like using local gdb.

  1. Install cross compiler in Linux SkyEye
  2. Linux wingrub introduction to System Boot manager
  3. Start the service during Linux operating system configuration
  4. Start the Quagga daemon in Linux
  5. Linux initrd startup is related to system hardware

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.