Thursday, September 25, 2008

Life without Walls Wallpapers for your PC

In light of tonight's new ad "Life without Walls" seen in newspapers today along with the new "Real PC" TV ads (see Chris's post); I've decided to make wallpapers for folks so they can add "Life without Walls" as wallpaper on their PC.



1920×1200

1650×1050

1600×1200

1280×1024

1280×800


Just click on the above thumbnails for which ever screen resolution you need and in Flickr - choose "All sizes" and then "Original". Right-click and download away!

These wallpapers were uploaded to Flickr using Windows Live Photo Gallery Beta - available at download.live.com.


Thursday, September 18, 2008

About JTAG basics..

JTAG (Joint Test Action Group) is an international standard test protocol (IEEE 1149.1-compatible), the main chip for internal testing. Now most of the senior JTAG devices are in support of the agreement, such as the DSP, FPGA devices, and so on. JTAG interface is the standard 4-wire: TMS, TCK, TDI, TDO, respectively, for model selection, clock, data input and output data line.

JTAG was first used to test the chip, the basic principle is that the device within the definition of a TAP (Test Access Port test visit I) through a dedicated JTAG test tools to conduct an internal node for testing. JTAG test allows multiple devices through the JTAG interface tandem together to form a JTAG chain, to achieve the various components were tested. Now, JTAG interface is also commonly used in the realization of ISP (In-System rogrammable online programming), FLASH programming and other devices.
JTAG programming through online programming, the traditional production process in the first of the chips are pre-programmed to be loaded to change the board and simplify the process for the first device fixed to the board, and then JTAG programming, thus greatly Speed up the progress of the project. JTAG interface chips within the PSD all parts of the program


JTAG some note

Usually by the JTAG roughly two categories for testing of the electrical characteristics of chips, chip testing whether there is a problem for a class Debug; JTAG general support within the CPU include the two modules.
A JTAG Debug interface module containing the CPU, the clock as long as normal, you can access through the JTAG interface CPU's internal register and linked to the CPU bus equipment, such as FLASH, RAM, SOC (such as the 4510 B, 44Box, AT91M series) - Module register, as UART, Timers, GPIO, and so on the register.

Above that the only JTAG interface has the ability to use these features, the software also need to meet the specific realization of the specific features from the software decision.
For example, download RAM to function. SOC understand the know, to use an external RAM, SOC DataSheet reference to the need to register that set up the base address RAM, bus width, access speed, and so on. Some SOC will also need to Remap, in order to work correctly. Firmware run, these settings Firmware from the initial process is complete.However, if the use of JTAG interface, the relevant register may be still in power values, even when the wrong values, RAM does not work, so downloading is bound to fail. To normal use, must be to find ways to set up RAM. In ADW, in the Console window can be ordered through the Let set in AXD in the Console window can be ordered through the Set set.
Below is a set AT91M40800 the command sequence, closing interruption, set CS0-CS3, and Remap, applicable to AXD (ADS with the Debug)
setmem 0xfffff124,0xFFFFFFFF,32  --- close all interrupted
setmem 0xffe00000,0x0100253d,32  --- set CS0
setmem 0xffe00004,0x02002021,32  --- set CS1
setmem 0xffe00008,0x0300253d,32  --- set CS2
setmem 0xffe0000C,0x0400253d,32  --- set CS3
setmem 0xffe00020,1,32  --- Remap
If the ADW (SDT with the DEBUG) in use, would read as follows:
let 0xfffff124=0xFFFFFFFF --- close all interrupted
let 0xffe00000=0x0100253d  --- set CS0
let 0xffe00004=0x02002021  --- set CS1
let 0xffe00008=0x0300253d  --- set CS2
let 0xffe0000C=0x0400253d  --- set CS3
let 0xffe00020=1  --- Remap
To facilitate the use, the order can be saved as a file config.ini, in the Console window to enter ob config.ini implementation.
The use of other debug, roughly similar, but orders and orders in different formats.


RAM settings, set up the register and register and the value must be set up to run the program in line.The general objective of compiling documents are generated ELF format, or a similar format, including a targeted operation code address, address of the running time to determine Link. Debug download files in accordance with the ELF in the address information to download the address specified. If the RAM in the base address is set to 0 x10000000, compiled in the time specified address in the beginning of Firmware 0 x02000000, the download time, the target code will be downloaded to 0 x02000000, apparently downloaded will fail.

Through JTAG download all should be closed before the interruption, which closed at initialization and Firmware disruption of the same reasons. JTAG interface in the use of the time, the interruption can be unknown, especially FLASH executable code, there are circumstances, there may be some that can be interrupted. End the use of JTAG download code, to be implemented, it may have on the completion of the initial disruption, leading to abnormal procedures. Therefore, the need to close interruption, the general disruption by setting the SOC control register completed.

The use of JTAG write Flash. In theory, through the JTAG bus on the CPU can access all the equipment, so should be able to write FLASH, but FLASH RAM into the ways and very different from those in need of special orders, and different FLASH erase, programming different order, And block the size, number of different, it is difficult to provide this function. Therefore, the general Debug does not provide written Flash function, or only a small amount of support of several Flash.

At present I know, for ARM, this software provides only FlashPGM write FLASH functions, but also the use of trouble. AXD,ADW都不提供写FLASH功能。 AXD, ADW not provide written FLASH functions.  Flash the way I wrote when he wrote a simple procedure, devoted to write the target board FLASH, using JTAG interface, downloaded to the target board, then to the goal of programming code with a BIN format, but also to target under Board (address and the process of burning FLASH address different), then run the burning FLASH have downloaded the program.This approach is used, rather than the written FlashPGM Flash, speed seems to be faster.

On the simple JTAG cable.
At present, there are all sorts simple JTAG cable, in fact, only a level conversion circuit, also play a protective effect. JTAG logic running on a PC by the software, so in theory, any simple JTAG cables, can support a variety of applications software, such as Debug, and so on. I had to use the same JTAG cable write Xilinx CPLD, AXD / ADW debugger. Key to the support of the software, most software settings are not functional and thus can only support a JTAG cable.

On the simple JTAG cable speed.
JTAG is a serial interface, I use a simple print JTAG cable, I use the print output with the characteristics of latches, the use of software through the I / O have a JTAG timing. JTAG standard by the decision, through JTAG write / read a series of bytes to the operation, according to my analysis, using a simple JTAG cable, I use print, through a JTAG output bytes to the target board, an average of 43 LPT I / O, in my machine (P4 1.7G), per second can be carried out about 660 K, I / O operations, so download speeds about 660 K/43, equivalent to about 15 K Byte / S. For other machines, I / O speed of roughly The same, usually in the 600 K ~ 800K.

On how to improve the JTAG download speed.
Obviously, using a simple JTAG cable can not increase speed. To improve the speed, there are generally two approaches,
1. The use of embedded systems to provide JTAG interface between the computer and embedded systems through USB / Ethernet connected, which requires the use of MCU.
2. The use of CPLD / FPGA to provide JTAG interface, CPLD / FPGA and computer interface between the use of EPP (General Computer LPT support EPP mode), EPP interface computer and CPLD / FPGA data transfer between, CPLD / FPGA completed JTAG timing.

Sunday, September 14, 2008

MS released Ebook of Windows Embedded CE 6.0 Fundamentals

MS has released a free ebook  of windows embedded ce6 fundamentals book.
All u need a hotmail account to download this.


Windows Embedded CE 6.0 Fundamentals
Authors:       Stanislav Pavlov and Pavel Belevsky
Published:    07/30/2008
ISBN:           9780735626256
Publisher:     Microsoft Press



Contents at a Glance
1 Introduction
2 Operating System and Application Development Tools
3 Operating System Architecture
4 Build System
5 Board Support Package (BSP)
6 Driver Architecture
7 Starting the Operating System
8 Building Devices
9 Application Development
10 Testing Operating System Images
Glossary


link to download


  

Saturday, September 13, 2008

Free Embedded Linux Training for Students in India

Title : Open “Embedded Linux” Software Development with Beagleboard.org
Date : 20th September 2008 (Saturday)
Venue : IISc, CEDT Seminar Hall, Bangalore


Registration : Free for First 100 members


Time Topic
09:30 What, why, who, and how of open source
10:30 Quick overview of the Beagle Board
11:00 How does Beagleboard.org help students & startups in India
11:30 Break
12:00 Q &A and Discuss lab setup to boot Linux on beagleboard
01:00 Lab #1 (Build and Boot Linux)
01:45 Lunch
02:30 Validation Procedure for Peripherals on Beagle Board
03:00 Participating and Contributing to Open Community
04:00 Open discussion

Agenda:

  • Enable Students in India to develop s/w on embedded devices with Open Community.
  • Training students in using the embedded platform for s/w development
  • Give a big picture of what’s going on in the industry with Open Platforms.
  • Benefits of working with Open Community and beagleboard.org in particular.

Audience & expertise:

  • Students (2nd / 3rd year preferable) with very minimal knowledge of Linux,
  • Students who are passionate about Open Source Linux kernel and s/w development for embedded platforms.

Registration:

  • Through mail (khasim@beagleboard.org) with subject as “[OSDB] Attendee OSD Beagleboard at IISc 20-Sept-08”.
  • Please mention College and Course undergoing.

Please NOTE this event is organized for “Students ONLY


Source : http://code.google.com/p/beagleboard/wiki/Trainings

Friday, September 12, 2008

How to add a 3rd Party driver..

There are two methods of adding a 3rd party driver in a workspace to be used on a specific platform.

a. Using a .cab file.
b. Manually modifying workspace files to include the driver into a platform build.

For our examples, we will assume that a fundamental knowledge of building a standard image is already known and that we are working with an existing workspace.

*Using a .cab file:

· Often times the 3rd party vender will provide the driver files and registry entries in the form of a .cab file. This allows the user to double click the .cab file to install all necessary drivers, resource files, and registry entries into their appropriate location.

a. Key Notes about .cab files:

i. Usually disappear upon implementation (make a copy!)

ii. Created using Visual Studio

iii.To use in your platform, CAB File Installer/Uninstaller must be added to the workspace in Platform builder.

*Manually adding in a 3rd party driver:

1) 3rd party vendor will provide the necessary driver .dll file, .reg file, and .bib file to be added to your workspace.

2) Once you have the necessary files from the vendor, open the workspace that will have the 3rd party driver added to it.

3) You will need to add the driver file in question into the workspace release folder (In this example we will use a touch screen driver):

Ex:\WINCE600\OSdesign\ABC\RelDir\ABC_ARMV4I_Release

(Our touch screen driver in this case will called “touch_ce.dll”)

4) Open the platform.bib file and add the following entry provided by the vendor:

touch_ce.dll $(_FLATRELEASEDIR)\touch_ce.dll NK SH

Save and exit text editor

5) Open the platform.reg file and add the following entry provided by the vendor:

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH] "DriverName"="Touch_CE.dll"
"CalibrationData"="2161,2497 701,1418 693,3573 3542,3545 3516,1399"
"MaxCalError"=dword:10

Save and exit text editor

6) Go back to workspace that will have the 3rd party driver added and select “Make Run-Time Image" from the Build OS drop down menu.


  

Thursday, September 4, 2008

How to Auto Run an application after bootup

1) In our example we will get Platform Settings (MyConfigurator.exe) to Auto Run as soon as our system boots
2) There are two ways to get the application to run depending on at what point you want the application to run.
a. Before anything else runs (ie. explorer)
b. After system has settled at the desktop.

*Before Anything else runs:
· Open platform.reg and add the following line:


[HKEY_LOCAL_MACHINE\init]
"Launch50"="MyConfigurator.exe"
"Depend50"=hex:14,00,1E,



Save the changes and exit. The LaunchXX key (where XX is a numeric value) simply points at the executable to launch and gives it it’s order (50 is usually explorer.exe). In the above case, the registry launches three processes, Shell, Device, and GWES. Device.exe (Launch20) has a dependency on Hex:0a (10 decimal). This equates to Launch10, or shell.exe, so the Shell process needs to signal the operating system that it's up and running so that any dependencies (in this case device.exe) can then be started. The same is also true of gwes.exe (launch30), device.exe depends on hex:14 (20 decimal), so GWES can't run until device.exe calls SignalStarted.
You can have multiple dependencies; for our case the dependencies will be on hex:14,00,1e,00 (Launch20 and Launch30), so both Device and GWES need to be up and running before the shell starts.
Go back to workspace that will have the Auto Run application added and select “Make Run-Time Image from the Build OS drop down menu.
* After system has settled at the desktop
· You simply need to change the code previously added in the platform.reg file to the following:


[HKEY_LOCAL_MACHINE\init]
"Launch79"="MyConfigurator.exe"
"Depend79"=hex:14,00,1E,00



· The above entry will no longer override the launch number that is originally used by explorer.exe and launch the application with the same dependencies as our example seen in “Before anything else runs”.

Monday, September 1, 2008

Porting Drivers to Windows CE 6.0

This session has been presented by Juggs Ravalia and Travis Hobrla at various Windows CE events such as MEDC.  It walks you through getting drivers from CE 5.0 (or previous versions) to work in CE 6.0.  Using the WaveAPI driver as a example, we look at the code necessary to move a driver with complex memory management forward into CE 6.0.  This presentation covers everything you need to know to port your driver to CE6.0 including access checking, marshalling, thread permissions, and security.

Download Video

Microsoft unveils Windows CE Driver Databases

Microsoft has announced two new online databases that list Windows CE drivers and BSPs (board support packages). The "regularly updated" databases are easily searchable by product category, manufacturer, processor family, and other relevant parameters, according to the company.

Microsoft describes the online driver database as "an extensive list of device drivers supported on Windows Embedded CE from Microsoft, Windows Embedded Partners, and third-party manufacturers." According to the company, the drivers listed are divided into three types:
  • PQD -- These "product quality developed" drivers were developed and distributed by Microsoft, and are incorporated into Microsoft's IDE (integrated development environment)

  • Microsoft-validated -- These are third-party drivers that were submitted to Microsoft via its Windows Embedded CE validation program, and passed standard quality performance tests

  • Non-validated-- These are third-party drivers that were not submitted to Microsoft for validation, but which are posted on the list "to generate product awareness"
Pull-down menus, as shown on the screenshot below, allow searching the driver database by validation status, Windows CE version, product category, and manufacturer. A "description" field describes each driver, and links to supplemental manufacturer information, if available.



Meanwhile, Microsoft's BSP (board support package) database provides "an extensive list of BSPs supported on Windows Embedded CE," according to the company. Pull-down menus allow searching the BSP database by Windows CE version, CPU name, processor family (such as MIPS, Xscale, or x86), and certification status, says Microsoft.

In addition, check boxes allow users of the database to narrow down their search by one or more target device categories. Device categories in the database are listed in the following order:
  • GPS
  • Medical systems
  • VoIP
  • Thin client
  • Kiosk
  • Printer
  • Gaming
  • Handheld terminal
  • Datacom
  • Digital media player
  • Digital TV
  • Projector
  • DVD player
  • Test and measurement
  • STB (set-top box)
  • POS terminal
  • Digital camera
  • Digital video player/recorder
  • Industrial and building automation
  • Other
The browser-based list of results, used by both the drivers and BSP databases, can be sorted any way a user wishes, simply by clicking on any column heading. Another useful feature is the ability to subscribe to an RSS feed that provides notification of new drivers or BSPs, according to Microsoft.

Driver database link