uClinux NEEK BSP User Guide NEEK BSP Version: 2.0.0.0 Document Version: 1.5 Date: September 2008 System Level Solutions, Inc, (USA) 14100 Murphy Avenue, San Martin, CA 95046 (408) 852 - 0067 System Level Solutions, (India) Pvt, Ltd. Plot # 32, Zone - D/4, Phase 1, G.I.D.C. Estate, V.U. Nagar - 388 121 Gujarat, India 91-2692-229280 http://www.slscorp.
Copyright © 2008, System Level Solutions, Inc. (SLS) All rights reserved. SLS, an embedded systems company, the stylized SLS logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of SLS in India and other countries. All other products or service names are the property of their respective holders. SLS products are protected under numerous U.S.
About This Document uClinux NEEK BSP About This Document This document describes the usage of the uClinux NEEK board support package. With the help of the bsp you can develop embedded applications using NEEK kit and uClinux. Table below shows the revision history of the document Version Date Description 1.0 July 2008 First release 1.1 July 2008 Added uClinux demo images and SLS Player images. 1.2 August 2008 Remove Chapter 7.0 – Root File System Added section 8.
Typographic Conventions iv uClinux NEEK BSP System Level Solutions
uClinux NEEK BSP uClinux NEEK BSP Development Environment Typographic Conventions This document uses the typographic conventions shown as below. Visual Cue Meaning Bold type with initial capital letters All headings, subheadings titles in a document are displayed in bold type with initial capital letters. E.g. Configuring and Compiling. Bold Project names, Menu commands, disk drive names, filenames, filename extensions, and software utility names are shown in bold type.
Table of Contents 1. Introduction....................................................................................................... 1 1.1 Software ................................................................................................................................. 1 1.2 Hardware................................................................................................................................ 1 1.2.1 Target processor...............................................................
uClinux NEEK BSP uClinux NEEK BSP Development Environment 5.1.2 Accessing Flash and JFFS2 Applications .................................................................. 26 5.1.3 Configuring Flash Partition ....................................................................................... 27 5.2 VGA, LCD and SD Card Application.................................................................................. 27 5.2.1 Viewing the SD Card Images on the VGA and LCD ......................................
1. Introduction uClinux NEEK Board support package (BSP) provides developers with the easiest and fastest way to create embedded applications on the NEEK kit (target) using the uClinux operating system. This combination of hardware, firmware, and software form a complete package for building, downloading, and testing applications developed on a host machine: • Install the uClinux board support package (BSP) on the host machine.
Introduction uClinux NEEK BSP 16-Mbytes Intel P30/P33 flash and LCD multimedia card. To get the details of NEEK kit, please read NEEK user guide located at /DOCS. 1.3 Supported Devices The NEEK board devices that are currently supported in the uClinux kernel with the uClinux NEEK BSP include: • Flash • SD Card IP • 10/100 Ethernet IP • VGA/LCD Controller IP • PS/2 IP • Touch Panel IP • I2S IP • Audio Codec Configuration IP • Serial UART 1.
uClinux NEEK BSP uClinux NEEK BSP Development Environment 4. Apply power to the NEEK board. 5. Connect VGA connector of the monitor to the VGA port of NEEK board if you want to see the images on both the VGA screen and LCD.
2. uClinux NEEK BSP Development Environment This chapter provides information to help setup the development environment for the NEEK board. 2.1 NEEK BSP SOPC System The Figure 1 below shows the block diagram of NEEK BSP SOPC system. Figure 1 : NEEK BSP SOPC System NEEK Development Board LCD Controller VGA Controller PS2 Controller DDR SDRAM 32MB Nios II / F Processor I2S controller Flash 16MB SSRAM 1MB SD card controller(1-bit) UART 10/100 Ethernet MAC Developed by SLS 2.
uClinux NEEK BSP Development Environment uClinux NEEK BSP Figure 2 : Development Environment Applications uClinux BSP Ethernet RED HAT uClinux Serial Host NEEK BSP SOPC System Nios II IP Cores Target NEEK Board 2.2.1 NEEK BSP Components Table below lists the components included in the uClinux NEEK BSP. Component 6 Description kernel v2.6.27 gcc v3.4.
uClinux NEEK BSP uClinux NEEK BSP Development Environment 2.2.2 IP Address Used The table below lists the IP address and port used throughout this document. It may be different for your system. Please check your network settings before applying any IP address. IP Address Description 192.168.0.14 Development Target IP address 192.168.0.26 Development Host and NFS server IP address 192.168.0.205 Getway IP Address 255.255.255.0 Getway Mask 9999 TCP port 2.
uClinux NEEK BSP Development Environment uClinux NEEK BSP #cd Bintools #tar jxfv nios2gcc-20080203.tar.bz2 6. Return to uClinux #cd.. 7. Issue command #ls Here you will see nios2-linux Bintools System-files. 2.3.2 Directory Contents You have now successfully unpacked the BSP package. You will see following directory structure: Directory Description uClinux Contains uClinux-dist, Bintool (binary tool chain) and system-files.
uClinux NEEK BSP uClinux NEEK BSP Development Environment 1. Open the Linux terminal. 2. On the terminal, change into the $home/uClinux/uClinux-dist directory and change the environment path. Use one of the four main kernel configuration methods to start the configuration menu. #cd /home/uClinux/nios2-linux/uClinux-dist #PATH=$PATH:/home/uClinux/Bintools/opt/nios2/bin 6. Configure the kernel #make clean #make menuconfig You will see the Kernel configuration main menu as shown in Figure 3.
uClinux NEEK BSP Development Environment uClinux NEEK BSP Figure 4 : Vendor/Product Configuration Window 2. Select the following options: • Vendor: Vendor (Altera) • Target Product: Altera Products (nios2) ----> 3. Select . You will return to Kernel configuration menu Figure 3. Configuring Kernel/Library/Defaults Settings 1. Select the option Kernel/Library/Defaults Selection ---> from the Kernel Configuration Menu Figure 3.
uClinux NEEK BSP uClinux NEEK BSP Development Environment Figure 6 Libc Version Settings 3. Press Enter to select None. 4. Select 5. Select 6. You will be asked to save the kernel configuration. See Figure 7 Figure 7 : Save Option 7. Select and press Enter. You have now finished Kernel/Library/Defaults settings. DO NOT change any other settings until first successful boot. 8. You will be backed to Linux Terminal. 2.4.2 Set System.
uClinux NEEK BSP Development Environment uClinux NEEK BSP Figure 8 : CPU Selection 2. Enter the choice (1). It will ask to select a device to execute kernel from: See Figure 9 Figure 9 : Select a Device to Execute Kernel From 7. To select DDR SDRAM, enter: Selection:7 8. Now create romfs directory by issuing following command.
uClinux NEEK BSP uClinux NEEK BSP Development Environment You may get error. Ignore it. 2.4.3 Customization of Kernel Settings 1. To customize the Kernel Settings, type on the terminal: #make menuconfig Figure 10 : Linux Kernel Configuration Window 2. Select Kernel/Library/Defaults Selection and press Enter. You will see the more kernel configuration settings as shown in Figure 11. Figure 11 : Customize Kernel/Library/Defaults Selection Window 3. Select Default all settings by pressing “Y” : 4.
uClinux NEEK BSP Development Environment uClinux NEEK BSP 5. Select 6. Select for saving all changed settings. Save all the settings and exit. 2.4.4 Building uClinux zImage Once you configured the kernel, build uClinux Image by issuing following commands.
3. Downloading and Running zImage zImage is one type of elf file which contains compress kernel image and romfs image. Given below are the steps for downloading a running zImage in to the NEEK hardware platform. 3.1 Running zImage on Linux 3.1.1 Using JTAG UART Console To run zImage on Linux, you should have Nios2 EDS installed on your pc with properly set environmental variables. We will use utilities from Nios2 EDS. This description is for JTAG UART console only. First configure .
Downloading and Running zImage uClinux NEEK BSP Figure 12 Minicom Configuration Window1 2. Select the Serial Device, baud rate and other parameters as shown in Figure 13. Here, we have selected Serial device as /dev/ttyS0 but it may differ as per your development machine.
uClinux NEEK BSP uClinux NEEK BSP Development Environment 3. Set the baud rate 115200, 8 bit, no parity and one stop bit. See the Figure 14 Figure 14 : Minicom Configuration Window3 4. You may set this configuration as default by selecting Save Setup as dfl option after all configurations. 5. Now, download .sof and zImage from other terminal and you will see booting on Minicom. 3.2 Running zImage on windows 3.2.
Downloading and Running zImage uClinux NEEK BSP 3.2.2 Using Serial UART Console You can build zImage on Linux and run it on windows. This is the description for serial UART console. Go to the "/home/uClinux/uClinux-dist/images" directory. Copy the file named "zImage" and paste it in to your windows PC (make sure your zImage absolute path doesn’t contain a white character i.e. space).also copy sls_neek_bsp_hw.sof from /home/uClinux/System-files into windows directory. 1.
4. Configuring Device Drivers and File Systems If more functions need to be supported on kernel, then before the kernel rebuild, it needs to do the selected kernel configuration, the following sessions describe the procedures to do configurations. To know more about peripherals and hardware available on the NEEK kit, refer the NEEK Kit Getting Started User Guide located at /Docs. 4.1 Board Selection From the kernel settings, select the following options.
Configuring Device Drivers and File Systems uClinux NEEK BSP 4.
uClinux NEEK BSP Configuring Device Drivers and File Systems File systems ---> Miscellaneous File systems ---> [*] Journaling Flash File System v2 (JFFS2) support (0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy) [*] JFFS2 write-buffering support 4.
Configuring Device Drivers and File Systems uClinux NEEK BSP File systems ---> DOS/FAT/NT File systems ---> [*] MSDOS fs support [*] VFAT (Windows-95) fs support (850) Default codepage for FAT (Iso8859-1) Default iocharset for FAT Native Language Support --- Base native language support (iso8859-1) Default NLS Option [*] Codepage 437 (United States, Canada) [*] Codepage 850 (Europe) [*] NLS ISO 8859-1 (Latin 1; Western European Languages) [*] NLS UTF-8 4.
uClinux NEEK BSP Configuring Device Drivers and File Systems 4.4.1 NFS NFS is a network file system protocol originally developed by Sun Microsystems in 1984, allowing a user on a client computer to access files over a network as easily as if the network devices were attached to its local disks. If you want to use NFS file system on Ethernet then you have to configure both the Ethernet IP driver (as described above) and NFS file system.
Configuring Device Drivers and File Systems uClinux NEEK BSP 4.7 SLS Touch Panel Controller (TPC) IP Driver To include the SLS TPC IP Driver in compilation, the following options should be enabled: Device Drivers ---> Character devices ---> [*] SLS TPC support 4.8 SLS I2S IP Driver To include the SLS I2S IP driver in compilation, the following options should be enabled: Device Drivers ---> Character devices ---> [*] SLS I2S support 4.
uClinux NEEK BSP Configuring Device Drivers and File Systems Device Drivers ---> Character devices ---> Serial support ---> [*] Altera UART support (4) Maximum number of Altera uart ports (115200) Default baudrate for Altera UART ports 4.
5. User Applications Using the User Applications you can access the drivers, file systems and peripherals available on the board. This chapter describes the following user applications. 5.1 Flash and JFFS2 Application To access Flash and JFFS2 application, include its driver and file system as described in the section Flash Memory (MTD) Driver and JFFS2 File System Configuration. 5.1.1 Flash Tools Select Customize Application/Library Settings>Flash tools. Select the options as shown below.
uClinux NEEK BSP flash_erase device offset number_of_blocks Network Utility Erases number of blocks of a device starting from the given address. e.g. : flash_erase /dev/mtd0 0x00000 5 .This command would erase 5 blocks of mtdblock0 starting from the offset address 0x00000. flash_eraseall /dev/mtdx Erases all the contents of mtd device. e.g. : flash_eraseall /dev/mtd0. This would erases all the content from mtd device 0. Note: here mtd0 means mtd device0 and not mtdblock0.
Network Utilities uClinux NEEK BSP Before going further, copy .jpg images from your PC in the SD Card and make the following selection. Miscellaneous Applications ---> ---video tools [*] jpegview 5.2.1 Viewing the SD Card Images on the VGA and LCD 1. To mount the SD Card on mnt directory, Issue the following command on the target when the system is up and running.
uClinux NEEK BSP Network Utility 10176026.jpg dho13v.jpg 4. View the images contained in the SD card on VGA monitor connected to VGA port of NEEK board and NEEK board LCD screen by issuing the following command. /mnt>jpegview -S1 –f 10036828.jpg 10176026.jpg The console displays: SLS_VGA Driver is opened 800 480 800 480 0 0 16 0 -1 -1 framebase = 0x5000000 err=0 ImageWidth=732 ImageHeight=480 read 10036828.jpg OK ImageWidth=719 ImageHeight=480 read 10176026.jpg OK 5.
Network Utilities uClinux NEEK BSP miscellenieous application --> --- Audio tools [*] mp3play Build the zImage with these options. To test this application, copy the MP3 songs in SD card and run the zImage, when it is up and running. Mount the SD card as explained in Viewing the SD Card Images on the VGA and LCD. Issue following command: /> cd mnt mnt> ls sample.mp3 ……. …….. mnt>mp3play sample.mp3 Connect the headphone with the board and you will hear an mp3 song now.
uClinux NEEK BSP Network Utility [*] NanoX --- Demos [*] NanoXDemo --- Applications [*] NanoWM --- Settings Screeen PixType (Packed-16bit-5/6/5) ---> [*] Have File IO [*] Have BMP Support [*] Have GIF Support [*] Have PNM Support [*] Have JPEG Support [*] Have PNG Support --- Display Config [*] Frame Buffer Display --- Mouse/Touch Screen [*] SLS TPC support --- Keyboard [*] No Keyboard --- Install These Applications [*] Nano-X [*] NanoWM [*] NXclock Type following to run the nano-X server, /> nano-X & />
Network Utilities uClinux NEEK BSP 5.6 Adding New User Application This section explains you of adding a user application named hello in uClinux. Follow the steps below to add a new user application. 1. Create hello directory in the /home/uClinux/uClinux-dist/user directory. 2. Copy source file (C file) to the hello directory 3. Add the configuration variable hello to the user/Kconfig file: config USER_HELLO bool "hello" help help_words_here.....
uClinux NEEK BSP Network Utility 5.7 Build New User Application Using SLS IP Drivers To build a new user application using SLS IP drivers refer DRIVERSAPI.txt located at /Docs. 5.8 Shell Commands Using Shell commands you can perform operations on the uClinux on the NEEK board. Shell is the basic application on the Linux system, default shell provided in BSP is “sh”. “sh” uses the current directory as the prompting string. Commands can be executed under shell. (It works the same way as PC Linux).
Network Utilities 34 uClinux NEEK BSP In ln –s file1 file2 Creates a link to the specified TARGET Is ls [options] List information about the FILES mkdir mkdir dirname Creates the DIRECTORY mknod mknod type major minor Creates device file more more filename File perusal filter mount mount –t type device dir Mount file system mv mv source dest Rename SOURCE to DEST,or move SOURCE(S) to DIRECTORY printenv printenv Print environment variables pid pid Shows current process ps ps S
6. Configuring Network utilities and NFS (Client) This chapter introduces you about the network utilities ftp, dhcpcd, telnet, boa, and inetd. First of all follow all steps for Ethernet driver mentioned in the section SLS Ethernet IP Driver. 6.1 Configuring DHCP Client 1. Select Customize Application/Library Settings. Do the following settings for Network Application and Busybox. Network Applications ----> [*] dhcpcd-new (2.0/2.
Root File Systems uClinux NEEK BSP 6.2 Static IP Allocation To configure the Static IP, do the following settings: BusyBox ----> [*] ifconfig [*] Enable status reporting output (+7k) To allocate static IP to the board, issue following command on the target. />ifconfig eth0 192.168.0.14 6.3 Mounting NFS on NEEK Before mounting NFS on NEEK, select the options as mentioned in SLS Ethernet IP Driver and NFS. Then go to the user application and select the following.
uClinux NEEK BSP Root File Systems 3. Edit the file named exports under /etc directory and add the following line: /home/nfs 192.168.0.0/255.255.255.0(sync,no_root_squash,rw) This setting may differ as per your network 5. Restart NFS server. #service nfs restart 6. Verify it by issuing the following command. #showmount –e 6.3.2 NFS Client (NEEK) Setup When the zImage is up and running, issue the following command: />portmap & />mount -t nfs -n -o nolock,rsize=1024,wsize=1024 192.168.0.
Root File Systems uClinux NEEK BSP #ftp 192.168.0.14 You will see following on the host terminal. Enter the ftp user name and password Connected to 192.168.0.14 220- Welcome to the uClinux ftpd! 220 uClinux FTP server (GNU inetutils 1.4.1)ready User (192.168.0.14 :( none)): ftp 331 Guest login ok, type your name as password. Password: 230 Guest login ok, access restrictions apply. ftp> 4. Now connect Telnet client on HOST to the server running on the Board. Here Board IP is configured as 192.168.0.
7. Debugging Kernel and User Application To debug the user application you will require following software and hardware: • Cross/Straight Network cable • JTAG cable • Eclipse IDE for C/C++ developers. You can download Eclipse IDE from the http://www.eclipse.org/downloads/download.php?file=/technology/epp/do wnloads/release/20071103/eclipse-cpp-europa-fall2-linux-gtk.tar.gz 7.
Debugging Kernel and User Application uClinux NEEK BSP break *main to break *start_kernel 5. Issue the command: #nios2-debug home/uClinux/uClinux-dist/linux 2.6.x/vmlinux.elf Wait for few seconds and following window will get opened. Figure 17 : main.C Now you can debug easily with aid of GUI. You can set the break point, check the content of registers and see the assembly code also. When you want to perform kernel debugging then only use the modified script otherwise use the default script.
uClinux NEEK BSP Debugging Kernel and User Applications 7.2 Debugging User Application using gdbserver over Ethernet Insight is the GUI of gdb debugger. Often it’s not easy to remember the debug Command. Therefore insight provides the graphical interface so user can debug easily. The aim of the document is to explain how to debug user space application. Steps are mentioned below: For debugging user application over Ethernet you should have proper zImage .
Debugging Kernel and User Application uClinux NEEK BSP #nios2-linux-uclibc-insight Helloworld.gdb 9. A source window will open and display the source Helloworld.c. 10. The open a gdb console, with View>Console, enter gdb command in this window. gdb>target remote 192.168.0.14:9999 (board_ip:9999) 11. Then it will report the target address of the program. Now you can set break points and debug.
uClinux NEEK BSP Debugging Kernel and User Applications 8. Project types, executable, Hello world ANSI C Project, (or empty project and add your source).Finish. 9. Now, setup for nios2 tool chain in Eclipse IDE on the host by following the steps below: a) Select the project Helloworld under Project Explorer. b) Right click on Helloworld and select Properties. Project properties dialog box opens. • Select Settings>GCC C Compiler under C/C++ build.
Debugging Kernel and User Application uClinux NEEK BSP • Select workspace>Helloworld>Debug>Helloworld and copy the file into /uclinux-dist/romfs/bin. e) Build the zImage as explained in early section. f) Click OK. 10. Now, select Project-->Build project to compile your project. 11. Copy from your workspace/Helloworld/Debug/Helloworld to romfs/bin in uClinux-dist and build the zImage as explained earlier. 12. Configure the SOF on your board and download the zImage. 13. The kernel starts booting.
8. Demonstrations & Quick Reference Download Demonstrations and Quick Reference from http://slscorp.com/pages/bspdownload.php. This demo package contains two types of applications: • Applications supported to NEEK Application Selector o SLS uClinux demo o SLS_Player These demonstrations are not the final product but are for demo purpose only It demonstrates how to develop real time application using the uClinux and nios2. 8.1 Demonstrations 8.1.
Demonstrations uClinux NEEK BSP Figure 18 : Application Selector 2. In the application selector main menu, touch the SLS_Player to select it. 3. Touch the Load button located on the bottom left corner of the Touch Screen to load the SLS Player application. You will see Figure 19 Figure 19 : Loading SLS Player 4. The SLS Player information dialog box displays as shown in Figure 20 below.
uClinux NEEK BSP Debugging Kernel and User Applications Figure 20 : Running the SLS Player - Main Menu 5. Change the SD Card mode as mentioned in dialog box and click OK. The SLS Player main menu displays. 6. Select MPEG to play MPEG clips. See Figure 21 below.
Demonstrations uClinux NEEK BSP 7. Select Welcome.mpg and click Play. The MPEG clip will get played on the screen. 8. Repeat steps 6 to 7 to play JPEG and MP3 files SLS uClinux Demo The SLS uClinux demo is designed to run multiple applications on uClinux platform. The application uses SLS GUI library and various SLS IP cores including Ethernet Mac 10/100, TPC and VGA /LCD Controller. To know how to run this demo, refer HowToRun.txt located at Demo/ NEEK_Application_Selector_Demos/Multiple_Processing.
uClinux NEEK BSP Debugging Kernel and User Applications Figure 23 : Running the SLS uClinux Demo - Main Menu 5. Select Start Experiment option. You will see a blank graph window as shown in Figure 24.
Demonstrations uClinux NEEK BSP Figure 24 : SLS Player Main Menu 6. Select Start button to start logging the dummy data. The graph will be drawn as shown in Figure 25 below. Figure 25 : Data Logger - Graph Display 7. To view the logged data in table view, select Table option. See Figure 26 below.
uClinux NEEK BSP Debugging Kernel and User Applications Figure 26 : Logged Data in Table View 8. To change sampling frequency click on Settings button. Enter the desired frequency. See Figure 27 below.
Demonstrations uClinux NEEK BSP 8.2 Quick Reference Quick Reference gives you quick overview of the applications explained in chapter 5 and 6. When you extract Quick Reference, you will find following directories: • Prebuilt_zImage • Framebuffer_console 8.2.1 Prebuilt_zImage Prebuilt_zImage directory contains files to format the SD Card and other ready to use applications: • zImage • sls_neek_bsp_hw.sof • readme.txt Before going further, please refer the readme.txt.
uClinux NEEK BSP Debugging Kernel and User Applications Booting uClinux on NEEK LCD Download .sof and zImgae, you will see booting uClinux on NEEK LCD. When the zImage is already up and running, plug PS/2 keyboard in PS/2 port. Now execute the shell command as usual. You can execute all shell commands offered by shell and can run various programs and utilities available in the zImage. After successfully running the zImage, you will see the booting of uClinux on the NEEK LCD. See Figure 28 and Figure 29.
Demonstrations uClinux NEEK BSP Figure 29 : Framebuffer Console View 2 54 System Level Solutions