DevKit8600 AM3359 Evaluation Kit User Manual Version 1.
Copyright Statement DevKit8600 and its related intellectual property are owned by Shenzhen Embest Technology Co., Ltd. Shenzhen Embest Technology has the copyright of this document and reserves all rights. No part of the document should not be modified, distributed or duplicated in any approach and form without written permission issued by Embest Technology Co., Ltd. The use of Microsoft, MS-DOS, Windows, Windows95, Windows98, Windows2000 and Windows embedded CE 6.0 are authorized by Microsoft.
1 Product Overview 1.1 Introduction The DevKit8600 evaluation kit is a compact, low-cost yet high-performance evaluation board based on the Texas instruments (TI) AM3359 processor. This microprocessor brings together a 720MHz ARM Cortex-A8 low-power application processor with 176K-Byte On-chip boot ROM, and provides ample peripheral interfaces.
1.2 Kit Contents The DevKit8600 evaluation kit is available in several different configurations with the following items: DevKit8600 Evaluation Board 2GB TF Card Serial Cable (DB9-DB9) 12V, 1.25A Power Cable USB Cable (Type A Male to Type Mini-B Male) USB Cable (Type A Female to Type Mini-A Male) Ethernet Crossover Cable WiFi Antenna DVD (Including user manual, PDF schematics, Datasheets, Linux 3.1.0 BSP, Android 2.3 BSP and WinCE 7 BSP) Optional 4.
1.
1.
1.
2 Hardware Features 2.1 Processor 720-MHz ARM Cortex™-A8 32-Bit RISC Microprocessor NEON™ SIMD Coprocessor 32KB/32KB of L1 Instruction/Data Cache with Single-Error Detection (parity) 256KB of L2 Cache with Error Correcting Code (ECC) SGX530 Graphics Engine Programmable Real-Time Unit Subsystem 2.2 On-Board Memory 512MB NAND Flash 512MB DDR3 SDRAM 2.
UART2 interface (J6 connector) UART3 interface (J5 connector, compatible with WiFi/Bluetooth) I2C0 (J6 connector) SPI0 interface (J8 connector) Four ADC interfaces (J10 connector) GPMC bus interface(J14 connector) 2.4 Others Three user buttons (HOME, MENU, BACK) Reset button Power indicator Two user configurable LEDs 2.5 Operational Parameters Working temperature: 0°C ~ 70°C Humidity Range: 20% ~ 90% Dimensions: 130x86mm Power Consumption:12V, 0.
3 Interface Pinouts 3.
3.
9 GND GND 10 G0 GND 11 G1 GND 12 G2 LCD Pixel data bit 5 13 G3 LCD Pixel data bit 6 14 G4 LCD Pixel data bit 7 15 G5 LCD Pixel data bit 8 16 G6 LCD Pixel data bit 9 17 G7 LCD Pixel data bit 10 18 GND1 GND 19 R0 GND 20 R1 GND 21 R2 GND 22 R3 LCD Pixel data bit 11 23 R4 LCD Pixel data bit 12 24 R5 LCD Pixel data bit 13 25 R6 LCD Pixel data bit 14 26 R7 LCD Pixel data bit 15 27 GND GND 28 DEN 29 HSYNC LCD Horizontal Synchronization 30 VSYNC LCD Ve
34 X+ X+ Position Input 35 X- X- Position Input 36 Y+ Y+ Position Input 37 Y- Y- Position Input 38 NC NC 39 NC NC 40 NC NC 41 NC NC 42 IIC_CLK IIC master serial clock 43 IIC_DAT IIC serial bidirectional data 44 GND5 GND 45 VDD1 3.3V 46 VDD2 3.
3.
3.
3.
3.
3.
3.
J1 Pin Signal Function 13 YELC Linked LED 14 YELA +2.5V 3.
3.
3.11 JTAG Interface Figure 14: JTAG Interface Location J7 Pin Signal Function 1 TMS Test mode select 2 NTRST Test system reset 3 TDI Test data input 4 GND GND 5 VIO 3.
3.
3.13 SPI interface Figure 16: SPI Interface Location J8 Pin Signal Function 1 SPI_CLK SPI clock 2 SPI_CLK SPI clock 3 SPI_D0 SPI DATA0 4 SPI_D0 SPI DATA0 5 SPI_D1 SPI data1 6 SPI_D1 SPI data1 7 SPI_CS0 SPI chip select 0 8 SPI_CS1 SPI chip select 1 9 GND GND 10 VIO_3V3 +3.
3.14 GPMC interface Figure 17: GPMC Interface Location J14 Pin Signal Function 1 GND GND 2 VDD3V3_GPMC 3.
J14 Pin Signal Function 16 GPMC_A6 GPMC Address 17 GPMC_A5 GPMC Address 18 GPMC_A4 GPMC Address 19 GPMC_A3 GPMC Address 20 GPMC_A2 GPMC Address 21 GPMC_A1 GPMC Address 22 GPMC_A0 GPMC Address 23 GPMC_AD7 GPMC Address & Data 24 24 GPMC_AD6 GPMC Address & Data 25 GPMC_AD5 GPMC Address & Data 26 GPMC_AD4 GPMC Address & Data 27 GPMC_AD3 GPMC Address & Data 28 GPMC_AD2 GPMC Address & Data 29 GPMC_AD1 GPMC Address & Data 30 GPMC_AD0 GPMC Address & Data Page | 24
3.15 Expansion Interfaces 3.15.1 Expansion Interface J5 Figure 18: Expansion Interface Location J5 Pin Signal Function 1 VIO_3V3 +3.3V 2 VIO_3V3 +3.3V 3 UART1_TX_3V3 UART1 Transit data 3.3V level 4 UART3_TX_3V3 UART3 Transit data 3.3V level 5 UART1_RX_3V3 UART1 receive data 3.3V level 6 UART3_RX_3V3 UART3 receive data 3.
3.15.2 Expansion Interface J6 Figure 19: Expansion Interface Location J6 Pin Signal Function 1 VIO_3V3 +3.3V 2 VIO_3V3 +3.3V 3 I2C0_SCL_3V3 IIC0 master serial clock 3.3V level 4 UART2_TX_3V3 UART2 transit data 3.3V level 5 I2C0_SDA_3V3 I2C0 master serial data 3.3V level 6 UART2_RX_3V3 UART2 receive data 3.
3.
3.
4 Software Features The DevKit8600 Evaluation board is provided with a Windows CE 7.net BSP, a Linux 3.1.0 BSP and an Android 2.3 Demo, with reliable drivers, many of which are in the source code. Please refer to below table for more information.
OS Android Demo (no source code Item Content Kernel Linux-3.1.0 Driver Debug serial port, RTC, Ethernet, NAND Flash, Touch screen, provided) Gingerbread TF card, USB Device, USB host, Audio input/output, LED, Keypad, 2D/3D Linux BIOS SPL NAND (First Boot Loader) MMC/SD FAT u-boot NAND (Second Boot Loader) MMC/SD FAT NET Kernel Linux-3.1.
5 Linux Operating System 5.1 Introduction This section is intended to provide detailed instruction on Operating System Software development for the DevKit8600 board. The following topics are covered: The Software Resources provided by the DevKit8600. The software features. The software Development process including how to set up the development environment, building guidance for the boot loader, kernel and file system, and the development of device drivers.
5.1.1 Software Resources This chapter provides an overview of the software related system components of the DevKit8600. A basic software system consists of four parts: spl, u-boot, kernel and rootfs. Figure 22 shows the structure of the system: spl u-boot kernel rootfs user area Figure 22: Software System Structure The features and functions of each part of the system are given below: 1. spl is a first level bootstrap program.
5.1.2 Software Features Items Notes NAND spl MMC/SD FAT BIOS NAND MMC/SD u-boot FAT NET Kernel Linux-3.1.0 Supports ROM/CRAM/EXT2/EXT3/FAT/NFS/ JFFS2/UBIFS and various file systems serial Series driver rtc Hardware clock driver net 10/100M Ethernet driver can CAN bus driver flash NAND flash driver (supports NAND boot) LCD TFT LCD driver Touch screen Touch screen controller driver MMC/SD MMC/SD controller driver USB OTG USB OTG 2.
5.2 System Development 5.2.1 Establishing Operating System Development Environment Before beginning software development on the DevKit8600, the user first has to install a Linux cross development environment in their computer. The process for this will be introduced below, using the Ubuntu operating system as an example. 5.2.2 Installation of Cross Compilation Tools Installation of cross compilation tools is done by using the software CD provided along with this kit.
Note: The user can add this to the .bashrc file under the user directory, such that the addition of environment variables will be finished automatically when the system is booted. The command echo $PATH can be used to check the path. 5.2.4 Building an Android Development Environment In addition to the installation of cross compilation tools and environment variables, there are some software packages and configurations that need to be handled before you can begin compilation of Android source code.
5.3.2 Bootstrap Program Generation The DevKit8600 supports TF Card boot or NAND boot. The system will initially attempt to boot from MMC or SD. If this fails it will then attempt to start from NAND Flash. Below is a sample bootstrap program. cd u-boot-2011.09-psp04.06.00.03 make distclean make devkit8600_config make When the above code is executed, the current directory will generate the files MLO and u-boot.img. 5.3.
Select the correct screen size under “PANEL_TYPE”: After determining the screen size, return to the parent directory. Select Exit to exit, until the following dialog box appears, then select Yes: make uImage After above operations are executed, the required uImage file will be generated in the directory arch/arm/boot. 5.3.4 Generation of the File System 1. RAMdisk file creation RAMdisk creation instructions can be found at: http://www.elinux.org/DevKit8600_FAQ 2.
cd $HOME/work sudo $HOME/tools/mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 812 -o ubifs.img sudo $HOME/tools/ubinize -o ubi.img -m 2048 -p 128KiB -s 512 -O 2048 $HOME/tools/ubinize.cfg After the above operations have completed, the required ubi.img file will be generated under the current directory. 5.3.5 Building an Android File System 1.
5.4.1 Modification of Kernel Configuration A default configuration file is provided in the factory kernel source codes: linux-3.1.0-psp04.06.00.03.sdk/arch/arm/configs/devkit8600_defconfig A user can carry out system customization on this basis: cd linux-3.1.0-psp04.06.00.03.sdk cp arch/arm/configs/devkit8600_defconfig .
Select “File-backed Storage Gadget” as , exit, and finally select Save to recompile the kernel. 5.4.2 Compilation Save the configuration and run the following commands to recompile the kernel: make uImage make modules After the above operations are executed, a new kernel image, uImage, will be generated under the directory arch/arm/boot, and a module file g_file_storage.ko will be generated under the directory drivers/usb/gadget.
5.5 Introduction to drivers 5.5.1 NAND App,System call User VFS MTD user module JFFS2 JFFS Char device Block device Memory technology device Kern Generic NAND driver el MTD chip driver CFI flash NAND flash chip driver driver GPMC RAM,ROM Chips etc NAND Flash Hardware module Figure 23: Modular Structure of NAND The solid-state memory used in embedded systems is mainly flash; this system in particular uses NAND Flash.
User System Call VFS Block Device Driver MTD NAND Flash Driver NAND Flash. Kernel Driver reference paths: linux-3.1.0-psp04.06.00.03.sdk/drivers/mtd/nand/ linux-3.1.0-psp04.06.00.03.sdk/drivers/mtd/nand/omap2.c 5.5.
The SD/MMC card drivers under Linux mainly include SD/MMC core, mmc_block, mmc_queue and SD/MMC driver: SD/MMC core: controls core codes unrelated to structure in the SD/MMC card operation. mmc_block: controls driver structure when SD/MMC card is used as a block device. mmc_queue: manages the request queue. SD/MMC driver: manages specific controller drivers. Kernel Driver reference paths: linux-3.1.0-psp04.06.00.03.sdk/drivers/mmc/ linux-3.1.0-psp04.06.00.03.
5.5.4 Audio in/out Native ALSA application User ALSA LIBRARY PCM ALSA KERNEL API CONTRO L Kern ALSA SOC CORE el CODEC MACHINE PLATFORM DRIVER DRIVER DRIVER HARDWARE Hardwar e Figure 25: Modular Structure for Audio ASoC basically splits an embedded audio system into three components: Codec driver: The codec driver is platform independent and contains audio controls, audio interface capabilities, codec dapm definition and codec IO functions.
Kernel Driver reference paths: linux-3.1.0-psp04.06.00.03.sdk/sound/soc/ linux-3.1.0-psp04.06.00.03.sdk/sound/soc/davinci/davinci-evm.c linux-3.1.0-psp04.06.00.03.sdk/sound/soc/codecs/sgtl5000.c 5.6 Driver Development 5.6.1 gpio_keys Driver Device Definition linux-3.1.0-psp04.06.00.03.sdk/arch/arm/mach-omap2/board-am335xevm.c Setup GPIO 1.30 as a “menu” key, with a return value of “KEY_F1”, triggered by a low level, and GPIO 1.
.type // = EV_KEY, .wakeup = 1, }, static struct gpio_keys_platform_data gpio_key_info = { .buttons = gpio_key_buttons, .nbuttons = ARRAY_SIZE(gpio_key_buttons), }; static struct platform_device gpio_keys = { .name = "gpio-keys", .id = -1, .dev = { .platform_data = &gpio_key_info, }, }; GPIO pinmux Configuration Setup GPIO 1.30, GPIO1.31 and GPIO0.22 as M7(GPIO mode) and IEM (Input enable). linux-3.1.0-psp04.06.00.03.sdk/arch/arm/mach-omap2/board-am335xev m.
.owner = THIS_MODULE, .pm = &gpio_keys_pm_ops, .of_match_table = gpio_keys_of_match, } }; static int __init gpio_keys_init(void) { return platform_driver_register(&gpio_keys_device_driver); } static void __exit gpio_keys_exit(void) { platform_driver_unregister(&gpio_keys_device_driver); } late_initcall(gpio_keys_init); module_exit(gpio_keys_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Phil Blundell
wakeup = 1; input_set_capability(input, type, button->code); } error = sysfs_create_group(&pdev->dev.kobj, &gpio_keys_attr_group); if (error) { dev_err(dev, "Unable to export keys/switches, error: %d\n", error); goto fail2; } error = input_register_device(input); if (error) { dev_err(dev, "Unable to register input device, error: %d\n", error); goto fail3; } … Apply GPIO and setup the GPIO as the input, register GPIO interrupt.
button->gpio, error); goto fail3; } if (button->debounce_interval) { error = gpio_set_debounce(button->gpio, button->debounce_interval * 1000); /* use timer if gpiolib doesn't provide debounce */ if (error < 0) bdata->timer_debounce = button->debounce_interval; } irq = gpio_to_irq(button->gpio); if (irq < 0) { error = irq; dev_err(dev, "Unable to get irq number for GPIO %d, error %d\n", button->gpio, error); goto fail3; } irqflags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING; /* * If platform has specified
Interrupt Handling, Button is pressed and an interrupt is generated: static irqreturn_t gpio_keys_isr(int irq, void *dev_id) { … schedule_work(&bdata->work); … } static void gpio_keys_work_func(struct work_struct *work) { … gpio_keys_report_event(bdata); … } static void gpio_keys_report_event(struct gpio_button_data *bdata) { struct gpio_keys_button *button = bdata->button; struct input_dev *input = bdata->input; unsigned int type = button->type ?: EV_KEY; int state = (gpio_get_value(button->gpio) ? 1 : 0)
5.6.2 Driver for the GPIO_Leds Device Definition linux-3.1.0-psp04.06.00.03.sdk/arch/arm/mach-omap2/board-am335xevm.c The kernel configurations are: sys_led (GPIO1.26) and usr_led (GPIO1.27), where a low level enables: static struct gpio_led gpio_leds[] = { { .name = "sys_led", .default_trigger = "heartbeat", .gpio = GPIO_TO_PIN(1, 26), .name = "user_led", .gpio = GPIO_TO_PIN(1, 27), }, { }, }; static struct gpio_led_platform_data gpio_led_info = { .leds = gpio_leds, .
{"gpmc_a11.gpio1_27", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, {NULL, 0}, }; Driver design: linux-3.1.0-psp04.06.00.03.sdk/drivers/leds/leds-gpio.c Structure for platform_driver_register to register gpio_leds. static struct platform_driver gpio_led_driver = { .probe = gpio_led_probe, .remove = __devexit_p(gpio_led_remove), .driver = { .name = "leds-gpio", .owner = THIS_MODULE, .
{ … if (pdata && pdata->num_leds) { priv = kzalloc(sizeof_gpio_leds_priv(pdata->num_leds), GFP_KERNEL); if (!priv) return -ENOMEM; priv->num_leds = pdata->num_leds; for (i = 0; i < priv->num_leds; i++) { ret = create_gpio_led(&pdata->leds[i], &priv->leds[i], &pdev->dev, pdata->gpio_blink_set); if (ret < 0) { /* On failure: unwind the led creations */ for (i = i - 1; i >= 0; i--) delete_gpio_led(&priv->leds[i]); kfree(priv); return ret; } } } … } static int __devinit create_gpio_led(const struct gpio_led *te
… gpio_set_value(led_dat->gpio, level); } 5.7 Updating the System 5.7.1 Update of the TF Card System Image When formatting the MMC/SD card it is highly recommended that the HP USB Disk Storage Format Tool is used. The software is available from: http://www.embest-tech.com/resource/download/HP-USB-Disk-St orage-Format-Tool.rar. 1. Insert the TF card into the card reader of a PC. 2.
4. Click Start. 5. When formatting is completed, click OK. Note: The HP USB Disk Storage Format Tool will clear partitions of the TF card. Use other format tool may cause the failure of the TF card booting Updating Images Copy all files from the directory linux/image to the TF card, and rename uImage_xx substituting the xx according to the display device to be used e.g. 4.3, 7, LVDS or VGA.
SD/MMC found on device 0 reading uEnv.txt ** Unable to read "uEnv.txt" from mmc 0:1 ** reading uImage 2993120 bytes read reading ramdisk.gz 12132646 bytes read ## Booting kernel from Legacy Image at 80007fc0 ... Image Name: Linux-3.1.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2993056 Bytes = 2.9 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK XIP Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Linux version 3.
udhcpc: sendto: Network is down Sending discover... udhcpc: sendto: Network is down No lease, failing done. Tue Jan 27 08:47:00 UTC 2009 INIT: Entering runlevel: 5 Starting syslogd/klogd: done .-------. | | | | | | |-----.-----.-----.| | | | .-. | __ | | | | .----..-----.-----. ---'| '--.| .-'| |--- || | | --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution DevKit8600 ttyO0 Angstrom 2008.
U-Boot SPL 2011.09-svn (Mar 02 2012 - 17:15:32) Texas Instruments Revision detection unimplemented Booting from MMC... OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img U-Boot 2011.
232456 bytes written: OK reading uImage 2984304 bytes read HW ECC BCH8 Selected NAND write: device 0 offset 0x280000, size 0x2d8970 2984304 bytes written: OK reading ubi.img 20447232 bytes read HW ECC BCH8 Selected NAND write: device 0 offset 0x780000, size 0x1380000 20447232 bytes written: OK 4. At this time, a flickering of the LED on the board indicates that the update has been finished; you just need to remove the TF card and reboot the board. 5.8 Various Test Scenarios 5.8.
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 Input device name: "gpio-keys" Supported events: Event type 0 (Sync) Event type 1 (Key) Event code 1 (Esc) Event code 59 (F1) Event code 102 (Home) Testing ... (interrupt to exit) Event: time 1233046035.953970, type 1 (Key), code 102 (Home), value 1 Event: time 1233046035.953975, -------------- Report Sync -----------Event: time 1233046036.095752, type 1 (Key), code 102 (Home), value 0 Event: time 1233046036.
Backlight brightness setting range from 0~100, where a value of 100 is the brightest and a value of 0 turns off the backlight. 1. View the backlight brightness at the default level. root@DevKit8600:~# cat /sys/class/backlight/pwm-backlight/brightness 50 2. Set the backlight brightness to 0 root@DevKit8600:~# echo 0 > /sys/class/backlight/pwm-backlight/brightness root@DevKit8600:~# cat /sys/class/backlight/pwm-backlight/brightness 0 At this time the backlight is turned off, the screen goes black. 3.
root@DevKit8600: # date Thu Mar 22 20:01:30 2012 0.000000 seconds We can see the system time is now set as hardware time. Note: RTC will halt up after turn off, this is a bug for the CPU, and TI had release the corrigendum, please refer to the http://www.ti.com/lit/er/sprz360b/sprz360b.pdf The DevKit8600 Development board RTC requires a CR1220 battery. The user must provide this themselves. 5.8.6 TF Card Testing 1.
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:26 errors:0 dropped:0 overruns:0 frame:0 TX packets:26 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2316 (2.2 KiB) TX bytes:2316 (2.2 KiB) usb0 Link encap:Ethernet HWaddr 5E:C5:F6:D4:2B:91 inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.
Figure 27: IP Settings 5. Use the ping command in the HyperTerminal window to test whether the settings of the development board are correct: root@DevKit8600:~# ping 192.168.1.15 PING 192.168.1.15 (192.168.1.15): 56 data bytes 64 bytes from 192.168.1.15: seq=0 ttl=128 time=0.885 ms 64 bytes from 192.168.1.15: seq=1 ttl=128 time=0.550 ms 6. The above information indicates that the testing was successful.
root@DevKit8600:~# cd /media/ root@ DevKit8600:/media# ls card hdd mmcblk0p1 ram sda1 cf mmc1 net union realroot 2. The contents of the USB flash disk will be seen after the following instruction is input: root@DevKit8600:/media# ls sda1/ flash-uboot.bin u-boot.bin mlo x-load.bin.ift_for_NAND uImage ramdisk.gz ubi.img 5.8.
boundary : 1445199872 appl_ptr : 0 hw_ptr : 0 2. Playback Testing: Plug in headphones to hear what you have just recorded.
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:13792 (13.4 KiB) TX bytes:0 (0.0 B) Interrupt:40 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) [root@DevKit8600 /]# ping 192.192.192.170 PING 192.192.192.170 (192.192.192.
1. Both DevKit8600 and another CAN device have their baud rate set to 125KBPS, and their CAN devices enabled. root@DevKit8600:~# canconfig can0 bitrate 125000 ctrlmode triple-sampling on root@DevKit8600:~# canconfig can0 start 2.
Using the above baud rates, the CAN device can communicate normally. Other baud rates may be chosen by the user if desired. Note: The baud rates of the two CAN devices need to be the same. 5.8.12 RS485 Testing The DevKit8600 can be used as an RS485 device. The following figure shows the connection principle and can be used to find the corresponding pins to connect the DevKit8600 CAN interface to another CAN device. Figure 29: RS485 Connections Note: RS485 only supports half-duplex communication, i.e.
Select 1 : Send a message Select 2 : Receive messages > On one end to send information: Select 1 : Send a message Select 2 : Receive messages >1 Please enter the information to be sent off! --------gpio0_13 set to 0 115200 message = 115200 len = 6 Information is sent......
/dev/ttyO2 SEND: 1234567890 /dev/ttyO2 RECV 10 total /dev/ttyO2 RECV: 1234567890 /dev/ttyO2 SEND: 1234567890 /dev/ttyO2 RECV 10 total /dev/ttyO2 RECV: 1234567890 /dev/ttyO2 SEND: 1234567890 /dev/ttyO2 RECV 10 total /dev/ttyO2 RECV: 1234567890 /dev/ttyO2 SEND: 1234567890 /dev/ttyO2 RECV 10 total /dev/ttyO2 RECV: 1234567890 /dev/ttyO2 SEND: 1234567890 /dev/ttyO2 RECV 10 total /dev/ttyO2 RECV: 1234567890 5.8.14 WiFi Testing To test the connection to a non-encrypted wireless router: 1.
Association completed. 4. Testing: root@DevKit8600:~# ifconfig wlan0 192.192.192.215 root@DevKit8600:~# ping 192.192.192.90 PING 192.192.192.90 (192.192.192.90): 56 data bytes 64 bytes from 192.192.192.90: seq=0 ttl=64 time=32.260 ms 64 bytes from 192.192.192.90: seq=1 ttl=64 time=20.662 ms 64 bytes from 192.192.192.90: seq=2 ttl=64 time=20.419 ms To test the connection to a WEP encrypted wireless router: 1. Enable WiFi: root@DevKit8600:~# ifconfig wlan0 up wl1271: firmware booted (Rev 6.1.5.50.74) 2.
Note: The iwconfig wlan0 essid TIOP key s:abcde command indicates that the connected wireless router name is TIOP, the KEY format is ASCII characters and the KEY is “abcede”.
Scanning ... 00:12:FE:B7:75:A0 Lenovo-TD80t 5.8.16 CDMA8000-U module If you have a CDMA8000-U camera module from Embest then you can download the module material from the below link: http://www.timll.com/chinese/uploadFile/cdma8000.rar 5.8.17 WCDMA8000-U module If you have a WCDMA8000-U camera module from Embest then you can download the module material from the below link: http://www.timll.com/chinese/uploadFile/WCDMA8000-110113.zip 5.9 Demo 5.9.
Did not find a recognized configuration, assuming General purpose EVM in Profile 0 with Daughter board NAND: HW ECC Hamming Code selected 512 MiB MMC: OMAP SD/MMC: 0 *** Warning - bad CRC, using default environment NAND erase.chip: device 0 whole chip Skipping bad block at 0x03620000 Erasing at 0x1ffe0000 -- 100% complete. OK reading MLO 38167 bytes read HW ECC BCH8 Selected NAND write: device 0 offset 0x0, size 0x9517 38167 bytes written: OK reading flash-uboot.
4. Power the system on again and boot the Android operating system. 5.9.2 Demonstration of the TISDK System 1. Format a TF card into two partitions (please refer to Appendix 3: Linux Boot Disk Format for detailed instructions) 2. Insert the CD and the TF card into the PC, then enter the following commands in the terminal window of Ubuntu (use the commands appropriate for the LCD screen size). For 4.3” LCD cp /media/cdrom/linux/demo/tisdk/image/MLO /media/LABEL1 cp /media/cdrom/linux/demo/tisdk/image/u-boot.
umount /media/LABEL1 umount /media/LABEL2 3. After the above commands are executed, power on the board and then hit any key on your keyboard when you see the prompt "Hit any key to stop autoboot:", to enter u-boot mode as shown below: CCCCCCCC U-Boot SPL 2011.09-svn (May 03 2012 - 10:49:04) Texas Instruments Revision detection unimplemented Booting from MMC... OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img U-Boot 2011.
reading uImage 2949384 bytes read ## Booting kernel from Legacy Image at 80300000 ... Image Name: Linux-3.1.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2949320 Bytes = 2.8 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... …… Arago Project http://arago-project.org am335x-evm ttyO0 Arago 2011.09 am335x-evm ttyO0 am335x-evm login: root 5.
#define LED1 "/sys/class/leds/sys_led/brightness" #define LED2 "/sys/class/leds/user_led/brightness" int main(int argc, char *argv[]) { int f_led1, f_led2; unsigned char i = 0; unsigned char dat1, dat2; if((f_led1 = open(LED1, O_RDWR)) < 0){ printf("error in open %s",LED1); return -1; } if((f_led2 = open(LED2, O_RDWR)) < 0){ printf("error in open %s",LED2); return -1; } for(;;){ i++; dat1 = i&0x1 ? '1':'0'; dat2 = (i&0x2)>>1 ? '1':'0'; write(f_led1, &dat1, sizeof(dat1)); write(f_led2, &dat2, sizeof(dat2));
6 Windows CE 7 Operating System 6.1 Introduction This section mainly introduces the Devkit8600 system and application development for Windows Embedded Compact 7, as well as software resources on the included CD, software features, establishment of development environment, and how to sysgen and build a BSP (board support package) and so on. 6.1.1 Software Resources BSP (Board Support Package) CD\WINCE700\BSP\AM33x_BSP.rar CD\WINCE700\BSP\COMMON_TI_V1.rar CD\WINCE700\BSP\3rdParty.
Nk.bin WinCE runtime image 6.
SDK TOUCH driver Source SD/MMC/SDIO driver Source EMAC driver Source USB OTG driver Source GPIO keyboard driver Source DMA driver Source Backlight driver Source Battery driver Source RPU driver Source powerVR DDK & SDK Binary & Source 6.3 System Development 6.3.
1. Extract [CD\WINCE700\BSP\AM33x_BSP.rar] to [C:\WINCE700\PLATFORM] directory. 2. Extract [CD\WINCE700\BSP\ COMMON_TI_V1.rar] to [C:\WINCE700\PLATFORM\COMMON\SRC\SOC]. 3. Extract [CD\WINCE700\BSP\3rdParty.rar] to [C:\WINCE700]. 4. Extract [CD\WINCE700\BSP\powerVR.rar] to [C:\WINCE700\public]. 5. Copy directory [CD\WINCE700\project\AM335X_OS] to [C:\WINCE700\OSDesigns] directory. Note: The default installation path of the Windows Embedded Compact 7 is [C:\WINCE700].
Driver NLED driver Source Code Location BSP\AM33X_BSP\SRC\DRIVERS\NLED BSP\AM33X_BSP\SRC\DRIVERS\GPIO GPIO BSP\COMMON_TI_V1\COMMON_TI_AMXX\GPIO I2C BSP\COMMON_TI_V1\COMMON_TI_AMXX\OAL\OALI2C BSP\COMMON_TI_V1\COMMON_TI_AMXX\SPI SPI BSP\AM33X_BSP\SRC\DRIVERS\MCSPI MCASP driver BSP\COMMON_TI_V1\COMMON_TI_AMXX\MCASP BSP\COMMON_TI_V1\COMMON_TI_AMXX\SERIAL Serial port driver BSP\AM33X_BSP\SRC\DRIVERS\UART Audio driver BSP\AM33X_BSP\SRC\DRIVERS\WAVEDEV2 BSP\AM33X_BSP\SRC\DRIVERS\BLOCK NAND driver BSP\COMMO
Driver Source Code Location BSP\COMMON_TI_V1\AM33X\PRU PRU driver BSP\ AM33X_BSP\SRC\DRIVERS\PRU BSP\ AM33X_BSP\SRC\DRIVERS\EDMA DMA driver BSP\COMMON_TI_V1\COMMON_TI_AMXX\EDMA If you wish to refer to more Windows Embedded Compact 7 driver development material, the specific reference document of PB7.0 is available from: Start All programs Microsoft Visual Studio 2008 Microsoft Visual Studio 2008 Document Content(C) Windows Embedded Compact 7 Device Driver. 6.
2) Open the HP USB Disk Storage Format Tool, the following steps will be shown in detail. Figure 30: USB Disk Storage Format Tool 1. Select “FAT32”. 2. Click “Start”. 3. When formatting is completed, click “OK”. Note: HP USB Disk Storage Format Tool will clear partitions of the TF card. Use other format tool may cause the failure of the TF card booting Copy runtime image Copy the MLO, EBOOTSD.nb0 and NK.bin image files located in CD\WINCE700\image to the TF card.
Insert a TF card and reboot the system. And then, the system will boot from the TF card. Press the space button and enter EBOOT menu. To select boot device and LCD module display output, follow these steps: 1) Enter EBOOT menu CCCCCCCC Texas Instruments Windows CE SD X-Loader33X Built Jul 27 2012 at 11:25:59 Version BSP_WINCE_ARM_A8 02.30.00.03 open ebootsd.
>>> Forcing cold boot (non-persistent registry and other data will be wiped) <<< e0311800 56e4 -> 0 18 31 e0 e4 56 e0311800 57e4 -> 0 18 31 e0 e4 57 Hit space to enter configuration menu [56] 5...(Press the space key to enter EBOOT menu) 4.
Main Menu ------------------------------------------------------------------------------[1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [b] Select OPP Mode [0] Exit and Continue Selection: a ------------------------------------------------------------------------------Select Display Resolution ------------------
[6] Set Device ID [7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [b] Select OPP Mode [0] Exit and Continue Selection: 0 mode = 3 LcdPdd_LCD_GetMode:3 mode = 3 LcdPdd_LCD_Initialize:3 OEMPreDownload: Filename nk.
CPU CP15 Auxiliary Control Register = 0x42 I2C EEPROM returned wrong magic value 0xffffffff +OALTimerInit(1, 24000, 200) --- High Performance Frequecy is 24 MHz--- 6.4.2 Update NAND Flash image Format TF card Please refer to p85. Copy runtime image Copy MLO, EBOOTND.nb0, NK.bin, XLDRNAND.nb0 and EBOOTSD.nb0 image files located in CD\WINCE700\image to the TF card. flashing image file Insert the TF card and reboot the system. The system will then boot from the TF card.
Figure 4-1 1. Click [Build-> Build Solution] in VS2008 menu, after sysgen and build BSP have finished, replace the nk.bin located in the TF card with the newly generated nk.bin 2. Copy C:\WINCE700\PUBLIC\PowerVR\oak\target\Rev125\ARMV4I\reta il\*.exe to the Devkit8600 windows embedded compact 7 system. And double click each demo to test. 6.6 Application Development This chapter introduces how to develop Windows Embedded Compact 7 application programs in Devkit8600. 6.6.
IOCTL Code Description IOCTL_GPIO_SETBIT Set GPIO pin as 1 IOCTL_GPIO_CLRBIT Set GPIO pin as 0 IOCTL_GPIO_GETBIT Read GPIO pin IOCTL_GPIO_SETMODE Set the working mode of GPIO pin IOCTL_GPIO_GETMODE Read the working mode of GPIO pin IOCTL_GPIO_GETIRQ Read the corresponding IRQ of GPIO pin An example is shown below: 1) Open the GPIO device HANDLE hFile = CreateFile (_T ("GIO1:"), (GENERIC_READ|GENERIC_WRITE), (FILE_SHARE_READ|FILE_SHARE_WRITE), 0, OPEN_EXISTING, 0, 0); 1.
GPIO_INT_LOW_HIGH Rising edge trigger mode GPIO_INT_HIGH_LOW Falling edge trigger mode GPIO_INT_LOW low level trigger mode GPIO_INT_HIGH high level trigger mode GPIO_DEBOUNCE_ENABLE Jumping trigger enable 1) The operation of GPIO Pin: DWORD id = 48, pinState = 0; Output high level: DeviceIoControl (hFile, IOCTL_GPIO_SETBIT, &id, sizeof (DWORD), NULL, 0, NULL, NULL); Output low level: DeviceIoControl (hFile, IOCTL_GPIO_CLRBIT, &id, sizeof (DWORD), NULL, 0, NULL, NULL); Read the pin state DeviceI
GPIO pin 0~127 has to be configured as a GPIO under AM33X_BSP/SRC/inc/bsp_padcfg.h when refered to as a GPIO pin. Appendix 1: Installing an Ubuntu Linux System An appropriate development environment is required for software development. The CD included with the product contains a development environment which needs to be installed under a Linux environment. If you are working on a PC running Windows, you have to create a Linux system first, and then you can install the environment.
2. Click Next to create a new virtual machine. 3. Enter a name for the new virtual machine and select the operating system type as shown below: 4. Enter a name in the Name field, e.g. Ubuntu, and select Linux in the Operating System drop-down menu, and then click Next. 5.
Note: If your PC has 1GB of RAM or lower, keep the default setting; If your PC has more than 1GB of RAM, you can allocate up to 1/4 to the virtual machine, for example, 512MB out of 2GB memory could be allocated to virtual machine. 6. If this is the first time you have installed VirtualBox, you need to select Create new hard disk in the following window, and then click Next 7.
8. Select Fixed-size storage in the following window and click Next 9. Define where the hard disk data is stored and the default space of the virtual disk (8GB at least), and then click Next 10.
11. Your PC will then create a new virtual disk 12. A window with summary of the newly created virtual machine will be shown as below when the creation process is done. Please click Finish to complete the whole process.
1.2 Installing the Ubuntu Linux System After VirtualBox is installed, we can install the Ubuntu Linux system. Visit: http://www.Ubuntu.com/download/Ubuntu/download to download the ISO image file of Ubuntu and then follow the steps below: 1. Start VirtualBox from the Start menu and click Settings on the VirtualBox window. A Settings window will be shown as below 2.
3. Select the ISO file you downloaded and click OK as shown below 4.
5. Some prompt windows will pop up during the initiation process. You need only click OK all the way to the end of the process. 6. Click Install Ubuntu to start installation when the following window appears 7.
8. Select Erase disk and install Ubuntu and click Forward Note: Selecting this option will only affect the virtual hard drive you created earlier and will not lead to any content loss on your physical hard drive. 9.
10. Some simple questions need to be answered during the installation process. Please enter appropriate information and click Forward. The following window is the last question that will appear during the process: 11. After all the required information is properly entered in to the fields, select Log in automatically and click Forward. 12. The installation of Ubuntu may take between 15 minutes to an hour depending on your PC. A prompt window will be shown as below after installation is done.
Note: The Normally the ISO file shown below will be ejected automatically by VirtualBox after restarting Ubuntu. If it is not, you can eject the ISO file manually in the Settings window of VirtualBox. The following window shows the settings window after the ISO file is ejected. 13. Once the restart is complete, the Ubuntu system is ready for use.
Appendix 2: Driver Installation Of Linux USB Ethernet/RNDIS Gadget 1. If you don’t install drivers for the Linux USB Ethernet/RNDIS Gadget, the PC will find the new hardware and give you a hint on the screen, please select “From list or designated location”, then click “Next” 2.
3. When the following appears, select “Continue” 4.
Page | 108
Appendix 3: Linux Boot Disk Format Instructions for creation of a dual-partition card to allow the DevKit8500D/A to boot Linux from the first partition and have root file system in the second partition. 6.1 Introduction This guide is meant for those looking to create a dual-partition card, booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Linux/Windows, and then utilizing an ext3 partition for the Linux root file system. Note: Text marked with [] shows user input. 6.1.
1) Check to see if the automounter has mounted the SD Card Note: There may be more than one partition (only one shown in the example below). $ [df -h] Filesystem Size Used Avail Use% Mounted on ... /dev/sdc1 400M 94M 307M 24% /media/disk ... Note: the "Mounted on" field in the above and use that name in the umount commands below. 1. If so, unmount it $ [umount /media/disk] 2. Start fdisk Be sure to choose the whole device (/dev/sdc), not a single partition (/dev/sdc1).
Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sdc1 Start * 1 End 246 Blocks 1974240+ Id System c W95 FAT32 (LBA) Partition 1 has different physical/logical endings: phys=(244, 254, 63) logical=(245, 200, 19) 4. Delete any partitions that are there already Command (m for help): [d] Selected partition 1 5. Set the Geometry of the TF Card If the print out above does not show 255 heads, 63 sectors/track, then do the following expert mode steps to redo the TF Card: 6.
Expert Command (m for help): [c] Number of cylinders (1-256, default xxx): [enter the number you calculated] 11. Return to Normal mode. Expert Command (m for help): [r] 12. Print the partition record to check your work Command (m for help): [p] Disk /dev/sdc: 2021 MB, 2021654528 bytes 255 heads, 63 sectors/track, 245 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System 13.
Command (m for help): [n] Command action e extended p primary partition (1-4) [p] Partition number (1-4): [2] First cylinder (7-61, default 7): [(press Enter)] Using default value 52 Last cylinder or +size or +sizeM or +sizeK (7-61, default 61): [(press Enter)] Using default value 245 16.
18. Format the partitions The two partitions are given the volume names LABEL1 and LABEL2 by these commands. You can substitute your own volume labels. $ [sudo mkfs.msdos -F 32 /dev/sdc1 -n LABEL1] mkfs.msdos 2.11 (12 Mar 2005) $ [sudo mkfs.ext3 -L LABEL2 /dev/sdc2] mke2fs 1.40-WIP (14-Nov-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 195072 inodes, 389576 blocks 19478 blocks (5.
Appendix 4: The Setup Of TFTP Server 1) Install client $>sudo apt-get install tftp-hpa $>sudo apt-get install tftpd-hpa 1. Install inet $>sudo apt-get install xinetd $>sudo apt-get install netkit-inetd 2. Configure the server First, create tftpboot under the root directory, and set the properties as “a random user can write and read” $>cd / $>sudo mkdir tftpboot $>sudo chmod 777 tftpboot Secondly, add in /etc/inetd.conf: $>sudo vi /etc/inetd.
disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 } 3. Reboot the server: $>sudo /etc/init.d/xinetd restart $>sudo in.tftpd -l /tftpboot 4. Test the server Conduct a test; create a file under folder /tftpboot $>touch abc Enter into another folder $>tftp 192.168.1.15 (192.168.1.15was the server IP) $>tftp> get abc If the download is successful the server has been installed.
Appendix 5: FAQ Please access http://www.elinux.org/DevKit8600_FAQ.
Appendix 6: ESD Precautions & Handling Procedures Please note that the board is supplied outside of an enclosure and some or all components are exposed. Therefore, extra attention must be paid to ESD (electrostatic discharge) precautions. To effectively prevent electrostatic damage, please follow the steps below: Avoid carpets in cool, dry areas. Leave development kits in their anti-static packaging until ready to be installed.
Appendix 7: Technical support & Warranty Embest Technology Co., Ltd. established in March of 2000, is a global provider of embedded hardware and software. Embest aims to help customers reduce time to market with improved quality by providing the most effective total solutions for the embedded industry.
Issues occur when users compile/run the embedded OS which has been modified by themselves. Customers encounter issues related to their own applications. Customers experience problems caused by unauthorised alteration of our software source code 7.2 Maintenance service clause 1. Product warranty will commence on the day of sale and last 12 months provided the product is used under normal conditions 2.
Embest Technology takes no responsibility for fulfilling any warranty (verbal or written) that is not made by Embest Technology and not included in the scope of our warranty. 3. Within the period of warranty, the cost for sending products to Embest should be paid by the customer. The cost for returning the product to the customer will be paid by Embest. Any returns in either direction occurring after the warranty period has expired should be paid for by the customer. 4.
7.4 Value Added Services We will provide following value added services: Driver development based on Embest embedded platforms for devices such as: serial ports, USB interface devices, and LCD screens. Control system transplantation, BSP driver development, API software development. Other value added services including supply of power adapters and LCD parts. Other OEM/ODM services. Technical training. Please contact Embest with any technical support queries: http://www.embest-tech.