Install skyeye in Ubuntu

Source: Internet
Author: User
Tags builtin
I used to learn the embedded qt development and porting process on the development board. After returning the lab to the school, you need to build a simulation environment yourself. In QMemu and skyeye, I chose skyeye, which is easy to configure and can simulate multiple arm systems, such as uCLinux, Linux, uC/OS-II and other embedded operating systems. 1. download and install the skyeye dependency package

I used to learn the embedded qt development and porting process on the development board. After returning the lab to the school, you need to build a simulation environment yourself. In QMemu and skyeye, I chose skyeye, which is easy to configure and can simulate multiple arm systems, such as uCLinux, Linux, uC/OS-II and other embedded operating systems.
1. download and install the skyeye dependency package

Run the following command:

Sudo apt-get install libgtk2.0-dev pkg-config libatk1.0-dev libpango1.0-dev libfreetype6-dev libglib2.0-dev libx11-dev binutils-dev libncurses5-dev libxpm-dev

2. install skyeye

You can use either of the following methods.

(1) use commands

Sudo apt-get install skyey

Run skeye after installation, as shown below:

* *************************** WARNING *********** ***********************
If you want to run ELF image, you should use-e option to indicate
Your elf-format image filename. Or you only want to run binary image,
You need to set the filename of the image and its entry in skyeye. conf.
**************************************** *******************************
Your elf file is little endian.
Failed to open skyeye config file skyeye. conf in the same directory
Error: No such file or directory
SkyEye 1.2.5
Bug report: skyeye-developer@lists.gro.clinux.org
Usage: skyeye [options]-e program [program args]
Default mode is STANDALONE mode
------------------------------------------------------------------
Options:
-E exec-file the (ELF executable format) kernel file name.
-L load_address, load_address_mask
Load ELF file to another address, not its entry.
-B specify the data type is big endian when non "-e" option.
-D in GDB Server mode (can be connected by GDB ).
-C config-file the skyeye configure file name.
-H The SkyEye command options, and ARCHs and CPUs simulated.
------------------------------------------------------------------
----------- Ubuntures and CPUs simulated by SkyEye -------------
-------- ARM ubuntures ---------
At91
Lpc
Initi4510b
Jx44b0x
Jx44b0
CloudFront
Ep7312
Lh79520
Ep9312
Cs89712
Sa1100
Pxa_lubbock
Pxa_mainstone
At91rm92
S3c2410x
S3c2440
Sharp_l1_a400
Ns9750
-------- BlackFin ubuntures ----
Bf533
Bf537

This interface indicates that the installation is successful.

(2) Download and compile the latest installation package

Step 1: Go to the official skyeye website.

Step 1: decompress the original file, tar-xvf skyeye-1.3.4_rc1.tar.gz.

Step 2: Enter the decompressed file.

Step 3: Install.

Sudo./configure
Sudo make lib
Sudo make
Sudo make install
Sudo make install_lib

Step 4: installation problems and solutions.

Error 1: various errors occurred during the installation process mainly because some software packages are not installed. I will list the additional required software packages:
Termcap library file: execute sudo apt-get install libncurses5-dev installation in the terminal.
"XCreatePixmapFromData" Error: sudo aptitude install libxpm-dev.
"Makeinfo" Error: sudo apt-get install texinfo.
Before installing skyeye, you can install the above three libraries in advance to reduce inexplicable errors.

Error 2,

Utils/uart_console/uart_console.c: 58: Error: expected identifier or '('before numeric constant
Utils/uart_console/uart_console.c: 59: Error: expected identifier or '('before numeric constant
Utils/uart_console/uart_console.c: 62: Error: expected identifier or '('before numeric constant
Utils/uart_console/uart_console.c: 63: Error: expected identifier or '('before numeric constant

Error: expected identifier or '('before numeric constant
It is because the definitions of POLLRDNORM have been defined in other header files.
Solution: comment 58 to 63 lines
// Const uint32_t POLLRDNORM = 0x040;
// Const uint32_t POLLRDBAND = 0x080;
// Const uint32_t POLLPRI = 0x002;
// Const uint32_t POLLOUT = 0x004;
// Const uint32_t POLLWRNORM = 0x100;
// Const uint32_t POLLWRBAND = 0x200;

3. installation successful test

Enter skyeye on the terminal, and the following error occurs:

Sudo cd/usr/bin
Sudo ln-s/opt/skyeye/bin/skyeye (skyeye points to/opt/skyeye/bin/skyeye)

After installation, the LCD and touch screen may not exist. you need to modify skyeye. conf.

LCD: state = on
Uart: mod = term

Test testsuit

Unzip testsuit and go to the skyeye-testsuite-1.3.0_rc1/uClinux/at91/uclinux_cs8900a

Enter sudo skyeye-e linux

Test complete

4. run the SkyEye command line application

There is a test program "arm_hello" in the/opt/skyeye/testsuite/directory.

1). go to/opt/skyeye/testsuite /;

2) enter the sudo skyeye-e arm_hello command to go to the skyeye command line interface;

3) run the "start" command to load the configuration and initialize the target machine. an xterm window is displayed on the host. the window title is "uart_instance ";

4). then we can enter the "run" command to start the helloworld test case;

5) run the "stop" command to stop the target board;

6) enter "info regitsters" to view the value of the current register;

7) enter the "disassemble" command to decompile 0x00004c, for example, "disassemble 0x00004c ";

7. The skyeye terminal uses the term (Ubuntu is xterm), which is particularly difficult to display. we can modify the display features of xterm.

Modify ~ /. Xresources (create one if you don't have one)

Example

Xterm * locale: true

Xterm. utf8: true

Xterm * utf8Title: true

Xterm * faceName: Monaco: pixelsize = 14

Xterm * faceNameDoublesize: WenQuanYi Zen Hei: pixelsize = 15

Run the following command:

Xrdb-load ~ /. Xresources

Restart or import the settings.

5. start skyeye

Enter the following command on the terminal:

Sudo skyeye-e linux

Appears:

[Sudo] password for rock:

Enter the user password.

Start:

Your elf file is little endian.
Arch: arm
Cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
Mach info: name at91, mach_init addr 0x8060680
Ethmod num = 1, mac addr = 0: 0: 0: 0: 0: 0, hostip = 10.0.0.1
Uart_mod: 0, desc_in:, desc_out:, converter:
SKYEYE: use arm7100 mmu ops
Loaded ROM./romfs. img
Exec file "linux"'s format is elf32-little.
Load section. init: addr = 0x01000000 size = 0x0000a000.
Load section. text: addr = 0x0100a000 size = 0x000e1cd0.
Load section. data: addr = 0x010ec000 size = 0x0000a434.
Not load section. bss: addr = 0x010f6440 size = 0x000222c0.
Call ARMul_InitSymTable, kernel filename is linux.
Start addr is set to 0x01000000 by exec file.
Linux version 2.4.27-uc1 (skyeyeuser @ debian) (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 /)) #3 Tue Aug 9 18:57:29 CST 2005
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... 15.82 BogoMIPS
Memory: 4 MB = 4 MB total
Memory: 2916KB available (903 K code, 178 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-1512BFF [VIRTUAL 1400000-1512BFF] (RO)
RAMDISK driver initialized: 16 RAM disks of 4096 K size 1024 blocksize
Cirrus Logic CS8900A driver for Linux (V0.02)
Eth0: CS8900A rev D detected
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
Mount:/etc/mtab: Read-only file system
Command: mount-t ext2/dev/ram0/var
Mount:/etc/mtab: Read-only file system
Command: mkdir/var/tmp
Command: mkdir/var/log
Command: mkdir/var/run
Command: mkdir/var/lock
Command: mkdir/var/empty
Command: cat/etc/motd
Welcome
______
/__ | _ |
_ | _________
| _ \ | | \\//
| _ | |__ | _ | /\
| ___ \____ | _ | \____ | \_/\_/
|
| _ |
GDB/ARMulator support
For further information check:
Http://www.uclinux.org/
Command:/bin/ifconfig eth0 up 10.0.0.2
Execution Finished, Exiting
Sash command shell (version 1.1.1)
/>
Build a cross-compilation environment in ubuntu

After the hardware simulation environment is installed, you need to install the cross-compilation tool. I downloaded the file at http://opensrc.sec.samsung.com/download.html. Fast network speed.

After the download is complete, you must first modify the content of the file at once, otherwise the compilation fails:

Vim, arm-uclinux-tools-base-gcc3.4.0-20040713.sh,

Tail + $ {SKIP }$ {SCRIPT} | bunzip2 | tar xvf-
To:
Tail-n + $ {SKIP }$ {SCRIPT} | bunzip2 | tar xvf-

Then run:

Sudo sh./arm-uclinux-tools-base-gcc3.4.0-20040713.sh

Note:

The default installation path is/root/bin/arm-uclinux-tool. the system cannot directly find the path, and even if the environment variable is added to/etc/environment, this command can be searched only when it is converted to the root identity.

Therefore, after the installation is complete, you need to copy it from the/root/bin directory as root to the target directory. I copied it to/opt, that is: /opt/arm-uclinux-tool, and then add ":/opt/arm-uclinux-tool/bin" after the PATH environment variable in vim/etc/environment ", restart the computer. after the computer is turned on, enter arm-elf (press the tab key). it will be automatically supplemented by arm-elf-g ++ through bash.

Related Article

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.