Methods and apparatus to provide a handheld pointer-based user interface

Methods and apparatus to provide a handheld pointer-based user interface are described herein. An example apparatus includes a wireless pointer component and one or more base components. The wireless pointer component is configured to transmit one or more human-computer interaction (HCI) signals associated with an HCI event via a first communication link. One or more base components are operatively coupled to a screen of a display to receive the one or more HCI signals from the wireless pointer component via the first communication link. Further, the one or more base components are configured to generate at least one of operating information and position information of the wireless pointer component based on the one or more HCI signals, and to transmit the at least one of operating information and position information to a processor configured to generate screen information on the screen of the display via a second communication link.

TECHNICAL FIELD

The present disclosure relates generally to user interfaces for processor systems, and more particularly, to methods and apparatus to provide a handheld pointer-based user interface.

BACKGROUND

To provide greater convenience for individuals to use and interact with processor systems such as personal computers (PCs) (e.g., desktop computers, laptop computers, and tablet PCs) and handheld devices (e.g., personal digital assistants (PDAs) and pocket PCs), efforts have been made to improve human-computer interactions (HCI). On tablet PCs and pocket PCs, for example, a user may write, draw, and/or perform any other intuitive aspects of using pen and paper by using natural handwriting with a stylus or an electronic pen directly on the display screens. In fact, the user may use the stylus or the electronic pen instead a mouse and/or a keyboard to perform other computer functions such as inputting text, selecting and opening software applications, scrolling through documents, etc. The touch-sensitive screens allow users to interact with the tablet PCs and the pocket PCs as described above. To provide touch-sensitive screens, typically one or more layers are built into the display screens of the tablet PCs and the pocket PCs. However, most displays and monitors for desktop computers and laptop computers do not include the built-in layers to provide the touch-sensitive screen. As a result, most processor systems are not configured to provide individuals with a user interface using natural and intuitive hand motion such as writing, drawing, etc. Further, touch-sensitive screens are costly to manufacture and inaccurate for larger sized screens.

DETAILED DESCRIPTION

Although the following discloses example systems including, among other components, software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of the disclosed hardware, software, and/or firmware components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, software, and/or firmware.

In the example ofFIG. 1, the illustrated handheld PUI system100includes a handheld PUI device110, a processor120, and a display130. The handheld PUI device110includes a wireless pointer component140and one or more base components150. The wireless pointer component140is operatively coupled to the one or more base components150via a first communication link160(e.g., a wireless link such as an ultrasound-based link). The one or more base components150are operatively coupled to the processor120via a second communication link170(e.g., a wired link and/or a wireless link such as a radio frequency-based link). In general and as described in detail below, the handheld PUI device110, which may be implemented using a pen-type device, is responsive to human-computer interaction (HCI) events corresponding to hand motion of a user such as writing, drawing, selecting, scrolling, etc. For example, a user may initiate an HCI event by writing directly on the screen132of the display130with the wireless pointer component140. The wireless pointer component140may transmit one or more HCI signals to the one or more base components150via the first communication link160. Based on the one or more HCI signals, the one or more base components150generate and transmit position information to the processor120via the second communication link170. Accordingly, the processor120generates screen information corresponding to the HCI event on the screen132of the display130. Thus, the screen information appears on the screen132as if the screen information were handwritten directly on the screen132by the user. As a result, the handheld PUI device110provides an alternative user interface especially for individuals who may have difficulty manipulating a mouse and/or a keyboard to interact with the processor120. Further, the handheld PUI device110provides a user interface based on natural and intuitive hand motion of the user so that the screen132may operate touch screen-like but without integrating costly touch-screen technology into the display130.

The wireless pointer component140includes a detecting unit142and a transmitting unit144, which is operatively coupled to the detecting unit142. The detecting unit142is configured to detect an HCI event and to trigger the transmitting unit144. In one particular example, the detecting unit142may be a switch configured to detect when the wireless pointer component140has been placed on the screen132of the display130. As mentioned above, the HCI event is initiated by a user. For example, the HCI event may correspond to hand motion of a user such as writing, drawing, selecting, scrolling, etc. The transmitting unit144is configured to transmit one or more HCI signals such as ultrasonic signals via the first communication link160. While the one or more HCI signals of the handheld PUI device110shown inFIG. 1is particularly well suited for implementation with ultrasonic signals, persons of ordinary skill in the art will readily appreciate that the one or more HCI signals may be implemented with radio frequency (RF) signals including infrared, microwaves, and ultra-high-frequency (UHF).

As noted above, the base component150is configured to generate position information of the wireless pointer component140based on the one or more HCI signals from the wireless pointer component140. In one particular example, the base component150includes a receiving unit152, a processing unit154, and a transmitting unit156. The receiving unit152is configured to receive the one or more HCI signals from the transmitting unit144of the wireless pointer component140. In the example ofFIG. 2, the receiving unit152is generally shown as being implemented using a first sensor252and a second sensor254. For example, the first and second sensors252,254may be ultrasound sensors separated by a distance of2d. The transmitting unit144of the wireless pointer component140is located at Point 1210with coordinate (x1, y1), which is away from the first sensor452by a first distance L1and away from the second sensor454by a second distance L2.

When the wireless pointer component140is triggered (e.g., the tip642ofFIG. 6is pressed on the screen632of the display630), the transmitting unit144of the wireless pointer component140transmits one or more ultrasonic signals to the first and second sensors252,254of the base component150. The one or more ultrasonic signals from the transmitting unit144reaches the first and second sensors252,254at different times because the first and second distances L1, L2between the transmitting unit144and the first and second sensors252,254, respectively, are different. Persons of ordinary skill in the art will readily appreciate that the base component150detects the time difference between receiving the one or more ultrasonic signals from the transmitting unit144via the first and second distances L1, L2.

The processing unit154is operatively coupled to the receiving unit152. In response to the receiving unit152detecting the one or more ultrasonic signals, the processing unit154is configured to generate position information of the wireless pointer component140by converting to distance from time and speed of propagation of the one or more ultrasonic signals. In one particular example, the processing unit154calculates the first and second distances L1, L2for the processor120to calculate the coordinate (x, y) of the transmitting unit144as described in detail below.

The transmitting unit156is operatively coupled to the processing unit154. Further, the transmitting unit156is configured to transmit the position information generated by the processing unit154to the processor120via the second communication link170so that the processor120may generate screen information corresponding to the HCI event on the screen132of the display130.

As the wireless pointer component140moves from Point 1210at coordinate (x1, y1) to Point 2220at coordinate (x2, y2) and then to Point 3230at coordinate (x3, y3), the first and second sensors252,254receives the one or more ultrasonic signals from the transmitting unit144of the wireless pointer component140at different times. In the example ofFIG. 3, the transmitting unit144transmits a first HCI signal310at Point 1210from time t0until time t2. The first sensor252detects the first HCI signal310starting from time t1whereas the second sensor254detects the first HCI signal310starting from time t2, which is later than time t1, because the first sensor252is closer to Point 1210than the second sensor254(i.e., the first sensor252receives the first HCI signal310before the second sensor254). The transmitting unit144stops transmission from time t2to time t3, and then starts transmission again at time t3. When the transmitting unit144transmits a second HCI signal320at Point 2220from time t3until time5, both the first and second sensors252,254detect the second HCI signal320simultaneously at time t4because the first and second sensors252,254are equidistant from Point 2220. The transmitting unit144stops transmission from time t5to time t6, and then starts transmission again at time t6. When the transmitting unit144transmits a third HCI signal330at Point 3230from time t6until time t9, the second sensor254detects the third HCI signal330at time t7whereas the first sensor252detects the third HCI signal330at time t8, which is later than time t7, because the second sensor254is closer to Point 3230than the first sensor252(i.e., the second sensor254receives the HCI signal330before the first sensor252).

Alternatively, the transmitting unit144may encode the one or more HCI signals before transmission. In the example ofFIG. 4, the transmitting unit144encodes a first HCI signal410and transmits the first HCI signal410from Point 1210at time t0. The first sensor252detects the first HCI signal410at time t1whereas the second sensor254detects the first HCI signal410at time t2because the first sensor252is closer to Point 1210than the second sensor254. As the wireless pointer component140moves toward Point 2220, the transmitting unit144encodes a second HCI signal420with a code different than that of the first HCI signal410so that the first and second sensors252,254may identify the second HCI signal420as a different signal to detect the time of receipt to calculate the coordinate of Point 2220. At time t3, the transmitting unit144transmits the second HCI signal420, and both the first and second sensors252,254detect the second HCI signal420at the same time (i.e., time t4) because the first and second sensors252,254are equidistant from Point 2220. At time t5, the transmitting unit144transmits a third HCI signal430from Point 3230. Likewise, the transmitting unit144encodes the third HCI signal430with a code different than that of the first and second HCI signals410,420. The second sensor254detects the third HCI signal430at time t6whereas the first sensor252detects the third HCI signal430at time t7because the second sensor254is closer to Point 3230.

Further, the handheld PUI device110may be operate in a hover mode. In particular, the transmitting unit144of the wireless pointer component140may continuously transmit one or more HCI signals without being triggered by the detecting unit142(e.g., without the tip642ofFIG. 6being pressed on the screen632of the display630). The base component150may receive the HCI signal, generate position information based on the HCI signal, and transmit the position information to the processor120as described above. In addition to operating in a write mode as described in detail above, the handheld PUI device110may also operate in other modes such as an erase mode, select mode, scroll mode, etc. by pressing a button (e.g., the buttons644and744shown inFIGS. 6 and 7, respectively) on the wireless pointer component140to toggle between the different operating modes. Persons of ordinary skill in the art will readily appreciate that other methods in addition to a button-based system may be implemented on the handheld PUI device110to switch from different operating modes such as a level-based system, a knob-based system, a voice recognition-based system, etc.

While components shown inFIG. 1are depicted as separate blocks within the handheld PUI device110, the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. For example, although the receiving unit152and the transmitting unit156are depicted as separate blocks within the base component150, persons of ordinary skill in the art will readily appreciate that the receiving unit152and the transmitting unit156may be integrated within a single semiconductor circuit.

In the example ofFIG. 5, the illustrated architectural hierarchy500of the handheld PUI system100includes hardware510, one or more drivers520, and one or more applications530. The PUI firmware512of the hardware510(i.e., the wireless pointer component140and/or the base component150) transmits position information to the processor120through a universal serial bus (USB) port via the second communication link170. To generate screen information (e.g., writing and/or drawing) on the display130, the drivers520and applications530of the processor120process the position information from the firmware510. The USB drivers522map the physical bus transactions to USB transfers. The human input device (HID) mini-driver524uses the USB transfers to access configuration and data information from the USB drivers522(e.g., USB device descriptor, report descriptor, input and output report, etc.). To construct the HID collection (i.e., a USB logic device), the HID mini-driver524passes the configuration and data information to the HID drivers526. Typically, the HID drivers.526are configured to provide an interface between a bus driver (e.g., the USB drivers522) and an interactive input device (e.g., the hardware510). As described in detail below, the system driver528is configured as a filter and/or an adaptor to convert data of the USB logic device to the required format of PUI-based applications532. For example, the system driver528may be a Tablet PC driver configured to convert data of the USB logic device to the required format of Microsoft® Windows® XP Tablet PC Edition. The PUI-based applications532receive the data from the PUI firmware512and responds accordingly. Thus, the system driver528configures the handheld PUI device140to provide a non-application specific user interface to any applications of the processor120.

In the example ofFIG. 6, the illustrate Tablet PC driver610converts PUI device information620from the HID drivers526to PUI-based application information630for the PUI-based applications532. The HID drivers526may provide PUI device information620such as trigger information, position information, temperature information, error code, and/or a package identifier to the Tablet PC driver610. The trigger information indicates the status of the tip, button(s), etc. on the wireless pointer component140. For example, the trigger information may be a 3-bit field indicating status of the tip742, the button744, and a user-defined button (not shown) on the wireless pointer component740shown inFIG. 7. The position information indicates distances L1and L2(i.e., the traveling time of the one or more HCI signals from the transmitting unit144of the wireless pointer component140to the first and second sensors252,254of the one or more base components150). The temperature information is used to compensate sound speed in calculating the screen information as described below. The error code indicates potential error of the one or more HCI signals. The packet identifier indicates a sequence of the frame of the one or more HCI signals.

The Tablet PC driver610includes configuration information612and a data filter614. The configuration information612may include information such as size information of the screen132, base component position information of the one or more base components150(e.g., mounting location of the one or more base components150), and/or optimizing algorithms to improve consistency of incoming data. The screen size information indicates the size of the screen132such as 15-inch, 17-inch, 19-inch, or any other suitable size of a display. The base component position information indicates the mounting location of the one or more base components150on or proximate to the display130. For example, the base component position information may indicate which side(s) of the display130and offset(s) in x- and/or y-direction(s).

Based on the configuration information, the data filter614generates PUI-based application information630. The PUI-based application information630is in a format recognized by the OS640such as Microsoft® Windows® XP Tablet PC Edition (i.e., the PUI device information620is not detected and/or recognized by the OS640). For example, the PUI-based application630may include trigger information, screen information, pressure information, and/or tilt information. The trigger information indicates the status of the wireless pointer component140. For example, the trigger information may indicate the status of the tip742, a barrel button (e.g., a secondary button corresponding to “right-click”), write/erase mode (i.e., whether the wireless pointer component140is operating to write or to erase), calibration (i.e., whether the wireless pointer component140is upside-down or right-side up for the erase mode), and range (i.e., whether the wireless pointer component140is in range of the one or more base components150). The screen information includes x-y coordinate(s) of the wireless pointer component140relative to one or more locations of the screen132such as the upper-left corner, upper-right corner, lower-left corner, lower-right corner, and/or center of the screen132. For example, the data filter614may calculate the coordinate (x, y) of the transmitting unit144in the wireless pointer component140based on the following:
x=(L12−L22)/4d, and
y=√(L22−((L12−L22−4d2)/4d)2).
The pressure information indicates the weight of the HID event. For example, a line drawn by a user may be light than another drawn line if the pressure information indicates a greater weight for the latter. The tilt information indicates the angle of the HID event. As a result, the Tablet PC driver610configures the handheld PUI device140to operate in any applications managed by the OS640.

For example, the handheld PUI device110may be implemented on a desktop computer using a device such as a stylus or a pen. In the example ofFIG. 7, the illustrated desktop computer700includes a processor720and a display730(i.e., a monitor), which are separate components operatively coupled together as persons of ordinary skill in the art will readily recognize. The display730may be a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light-emitting diode (LED) display, a plasma display, and/or any other suitable image projection display. As described in detail below, the wireless pointer component740may be a stylus or an electronic pen configured to transmit one or more HCI signals (e.g., ultrasonic signals) based on an HCI event initiated by a user on the screen732of the display730to one or more base components750via the first communication link760. For example, the user may use the wireless pointer component740to write “Hello World”780directly on the screen732of the display730. Accordingly, the wireless pointer component740transmits one or more HCI signals while the user is writing “Hello World”780. One or more base components750are disposed in fixed positions relative to the screen732of the display730to receive the one or more HCI signals from the wireless pointer component740. For example, one or more base components750may be disposed on or proximate to the screen732of the display730. Based on the one or more HCI signals, the one or more base components750are configured to generate and transmit position information of the wireless pointer component740to the processor720via the second communication link770. Accordingly, the processor720generates screen information corresponding to the HCI event on the screen732of the display730. For example, the processor720converts the position information from the one or more base components750into pixels. Thus, the processor720generates “Hello World”780as one or more pixels on the screen732of the display730to appear as if the user had wrote “Hello World” directly on the screen732.

While components shown inFIG. 7are depicted as separate blocks within the desktop computer700, the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. For example, although the processor720and the display730are depicted as separate blocks within the desktop computer700, persons of ordinary skill in the art will readily appreciate that the processor720and the display730may be integrated within a single unit such as a tablet PC and/or a laptop (e.g., the laptop800ofFIG. 8).

In the example ofFIG. 8, the illustrated laptop computer800includes a processor820and a display830. The processor820is operatively coupled to the display830as persons of ordinary skill in the art will readily recognize. The wireless pointer component840may be a stylus or an electronic pen configured to transmit one or more HCI signals based on an HCI event initiated by a user on the screen832of the display830to one or more base components850via the first communication link860. The one or more base components850are disposed relative to the screen832of the display830to receive the one or more HCI signals from the wireless pointer component840. Based on the one or more HCI signals, the one or more base components850are configured to generate and transmit position information to the processor820via the second communication link870. For example, the second communication link870may be a wireless link operating in accordance with an 802.11 communication protocol developed by the Institute of Electrical and Electronics Engineers (i.e., the IEEE 802.11 standard, IEEE std. 802.11-1997, published 1997), a Bluetooth communication protocol, and/or an infrared communication protocol developed by the Infrared Data Association. Accordingly, the processor820generates screen information corresponding to the HCI event on the screen832of the display830. Thus, the processor820generates “Hello World”880as one or more pixels on the screen832of the display830to appear as if the user had wrote “Hello World” directly on the screen832.

A flow diagram900representing machine readable instructions that may be executed by a processor to provide a handheld pointer-based user interface is illustrated inFIG. 9. Persons of ordinary skill in the art will appreciate that the instructions may be implemented in any of many different ways utilizing any of many different programming codes stored on any of many computer-readable mediums such as a volatile or nonvolatile memory or other mass storage device (e.g., a floppy disk, a CD, and a DVD). For example, the machine readable instructions may be embodied in a machine-readable medium such as an erasable programmable read only memory (EPROM), a read only memory (ROM), a random access memory (RAM), a magnetic media, an optical media, and/or any other suitable type of medium. Alternatively, the machine readable instructions may be embodied in a programmable gate array and/or an application specific integrated circuit (ASIC). Further, although a particular order of actions is illustrated inFIG. 9, persons of ordinary skill in the art will appreciate that these actions can be performed in other temporal sequences. Again, the flow diagram900is merely provided as an example of one way to provide a handheld pointer-based user interface.

The flow diagram900includes a wireless pointer component block910, a base component block920, and a processor block930. In particular, the flow diagram800begins with the wireless pointer component block910of the wireless pointer component140to detect an HCI event initiated by a user on the screen132of the display130. In one particular example as shown inFIG. 10, the wireless pointer component140may determine whether the detecting unit142is switched on (block912). For example, the user may press the tip742of the wireless pointer component740to write and/or draw directly on the screen732of the display730. If the detecting unit142is switched on then the transmitting unit144transmits an HCI signal corresponding to the location of the wireless pointer component140to the one or more base component150via the first communication link160(block914). For example, the wireless pointer component140may transmit an ultrasonic signal based on hand motion of the user on the screen132of the display130. After a time period, transmitting unit144then stops the transmission (block916), and controls return to block912. Otherwise, if the detecting unit142is switched off (i.e., the tip742is not depressed onto the screen732of the display730), controls proceed to determine whether the user may switch between different operating modes via the button244(block918). Thus, the user may also use the wireless pointer component240, for example, to select and/or scroll through a document displayed on the screen232of the display230. If the wireless pointer component140is used to other operating modes then the transmitting unit144transmits the HCI signal (block914) and stops the transmission after a time period (block916), and then controls return to block912. If the wireless pointer component140is not used for other operating modes then controls directly return to block912.

Each of the one or more base components150is configured to execute the base component block920. In the example ofFIG. 11, each of the one or more base components150determines whether the first and second sensors252,254of the receiving unit152received an HCI signal (block922). If the first and second sensors252,254received the HCI signal, the processing unit154determines the time difference between receipt of the HCI signal by the first and second sensors252,254(block924). Based on the time difference, the processing unit154generates position information associated with the wireless pointer component140(block926). For example, the processing unit154may calculate one or more coordinates of the wireless pointer component140relative to the screen132of the display130. The transmitting unit156of the one or more base components150then exports the position information to the processor120via the second communication link170(block928). Otherwise, if the first and second sensors252,254did not receive the HCI signal, controls directly return to block922.

In the example ofFIG. 12, the processor120executes the processor block930by processing the position information exported from the one or more base components150. The processor120converts the position information into screen information (block932) and generates the screen information on the screen132of the display130(block934). For example, the one or more drivers520convert each coordinate of the wireless pointer component140into one or more pixels and notify the operating system (OS) of the processor120(e.g., Microsoft® Windows® XP Tablet PC Edition) of the corresponding display format. The OS provides a notification of the corresponding display format to the one or more applications530and waits for a response to the notification from the one or more applications530. Thus, the handheld PUI device110provides an alternative user interface to the mouse and/or the keyboard that is based on natural and intuitive hand motion of the user without integrating costly touch-screen technology into the display130.

FIG. 13is a block diagram of an example processor system1000adapted to implement the methods and apparatus disclosed herein. The processor system1000may be a desktop computer, a laptop computer, a notebook computer, a personal digital assistant (PDA), a server, an Internet appliance or any other type of computing device.

The processor system1000illustrated inFIG. 13includes a chipset1010, which includes a memory controller1012and an input/output (I/O) controller1014. As is well known, a chipset typically provides memory and I/O management functions, as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by a processor1020. The processor1020is implemented using one or more processors. For example, the processor1020may be implemented using one or more of the Intel® Pentium® family of microprocessors, the Intel® Itanium® family of microprocessors, Intel® Centrino® family of microprocessors, and/or the Intel XScale® family of processors. In the alternative, other processors or families of processors may be used to implement the processor1020. The processor1020includes a cache1022, which may be implemented using a first-level unified cache (L1), a second-level unified cache (L2), a third-level unified cache (L3), and/or any other suitable structures to store data as persons of ordinary skill in the art will readily recognize.

As is conventional, the memory controller1012performs functions that enable the processor1020to access and communicate with a main memory1030including a volatile memory1032and a non-volatile memory1034via a bus1040. The volatile memory132may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), and/or any other type of random access memory device. The non-volatile memory1034may be implemented using flash memory, Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), and/or any other desired type of memory device.

The processor system1000also includes an interface circuit1050that is coupled to the bus1040. The interface circuit1050may be implemented using any type of well known interface standard such as an Ethernet interface, a universal serial bus (USB), a third generation input/output interface (3GIO) interface, and/or any other suitable type of interface.

One or more input devices1060are connected to the interface circuit1050. The input device(s)1060permit a user to enter data and commands into the processor1020. For example, the input device(s)1060may be implemented by a keyboard, a mouse, a touch-sensitive display, a track pad, a track ball, an isopoint, and/or a voice recognition system.

One or more output devices1070are also connected to the interface circuit1050. For example, the output device(s)1070may be implemented by display devices (e.g., a light emitting display (LED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, a printer and/or speakers). The interface circuit1050, thus, typically includes, among other things, a graphics driver card.

The processor system1000also includes one or more mass storage devices1080configured to store software and data. Examples of such mass storage device(s)1080include floppy disks and drives, hard disk drives, compact disks and drives, and digital versatile disks (DVD) and drives.

The interface circuit1050also includes a communication device such as a modem or a network interface card to facilitate exchange of data with external computers via a network. The communication link between the processor system1000and the network may be any type of network connection such as an Ethernet connection, a digital subscriber line (DSL), a telephone line, a cellular telephone system, a coaxial cable, etc.

Access to the input device(s)1060, the output device(s)1070, the mass storage device(s)1080and/or the network is typically controlled by the I/O controller1014in a conventional manner. In particular, the I/O controller1014performs functions that enable the processor1020to communicate with the input device(s)1060, the output device(s)1070, the mass storage device(s)1080and/or the network via the bus1040and the interface circuit1050.

While the components shown inFIG. 13are depicted as separate blocks within the processor system1000, the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. For example, although the memory controller1012and the I/O controller1014are depicted as separate blocks within the chipset1010, persons of ordinary skill in the art will readily appreciate that the memory controller1012and the I/O controller1014may be integrated within a single semiconductor circuit.

The methods and apparatus disclosed herein are well suited for desktop computers, laptop computers, tablet PCs, etc. However, persons of ordinary skill in the art will appreciate that the teachings of the disclosure may be applied to other processor systems such as portable and/or handheld devices including personal digital assistants, pocket PCs, cellular telephones, etc: