US8701023B1 - Global parameter management graphical user interface (GUI) for embedded application design - Google Patents

Global parameter management graphical user interface (GUI) for embedded application design Download PDF

Info

Publication number
US8701023B1
US8701023B1 US11/707,202 US70720207A US8701023B1 US 8701023 B1 US8701023 B1 US 8701023B1 US 70720207 A US70720207 A US 70720207A US 8701023 B1 US8701023 B1 US 8701023B1
Authority
US
United States
Prior art keywords
driver
conflict
requested
values
global resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/707,202
Inventor
Marat M. Zhaksilikov
Kenneth Y. Ogami
Andrew Best
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Monterey Research LLC
Original Assignee
Cypress Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Priority to US11/707,202 priority Critical patent/US8701023B1/en
Assigned to CYPRESS SEMICONDUCTOR CORPORATION reassignment CYPRESS SEMICONDUCTOR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OGAMI, KENNETH Y., ZHAKSILIKOV, MARAT
Assigned to CYPRESS SEMICONDUCTOR CORPORATION reassignment CYPRESS SEMICONDUCTOR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEST, ANDREW
Application granted granted Critical
Publication of US8701023B1 publication Critical patent/US8701023B1/en
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CYPRESS SEMICONDUCTOR CORPORATION, SPANSION LLC
Assigned to MONTEREY RESEARCH, LLC reassignment MONTEREY RESEARCH, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CYPRESS SEMICONDUCTOR CORPORATION
Assigned to CYPRESS SEMICONDUCTOR CORPORATION, SPANSION LLC reassignment CYPRESS SEMICONDUCTOR CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Assignors: CYPRESS SEMICONDUCTOR CORPORATION, SPANSION LLC
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Definitions

  • Embodiments of the invention relate generally to embedded application development and more specifically, but not exclusively, to resolving conflicting global parameters using a graphical user interface during development of an embedded application.
  • a clock driver may be described at the system level in terms of clock frequency.
  • clock distribution is often described by clock divider ratios.
  • a user may need to hand code in assembly or C code to manually modify conflicting driver properties at a hardware level. Such an approach may be too low level for system designers. Thus, the conventional approach is inefficient and error prone.
  • FIG. 1 is a block diagram of one embodiment of a design module that facilitates global parameter conflict management.
  • FIG. 2 is a flow diagram of one embodiment of a method that facilitates the global parameter conflict management.
  • FIG. 3 illustrates an embodiment of operations for resolving conflicts in parameter settings of a global clock resource.
  • FIG. 4 illustrates an embodiment of conflict management graphical user interface (GUI).
  • GUI graphical user interface
  • FIG. 5 is a block diagram of one embodiment of a system enabling automated code generation of processing device firmware.
  • FIG. 6 illustrates a firmware stack in accordance with one embodiment of the present invention.
  • FIG. 7 illustrates a driver in accordance with one embodiment of the present invention.
  • FIG. 8 illustrates a base project in accordance with one embodiment of the present invention.
  • FIG. 9 is a block diagram of one embodiment of a processing device.
  • FIG. 10 is a block diagram of one embodiment of a computer system.
  • Global parameter conflict management resolves conflicting requests by drivers on a common global resource.
  • drivers are associated with a hardware component of a processing device for an embedded application. Details about the drivers are described later with reference to FIG. 6 .
  • Different drivers may request different values of a driver property supported by a global resource. These different property values may sometimes cause a conflict in the global resource.
  • a clock may be a global resource and the frequency of the clock may be the requested driver property.
  • Clock divider hardware may be used to divide a global clock into different clock frequencies. However, it is sometimes not possible to divide a global clock to match the exact clock frequencies requested by the drivers. When a global resource cannot satisfy the requests of the drivers, a conflict occurs. Conflicts may also arise when drivers requesting other global resources, e.g., voltage distributor and other types of global resources.
  • Embodiments of present invention provide a conflict management GUI to assist users in resolution of conflicts caused by different requested values of a driver property.
  • the driver property value referred to herein correspond to a parameter setting of the global resource.
  • the terms “driver property value” and “parameter setting” are used synonymously.
  • the conflict management GUI cooperates with a conflict manager that evaluates and resolves contentions among the global parameter settings requested by multiple drivers. Managing global parameter conflicts typically involves an intimate knowledge of the processing device and corresponding database elements. The introduction of a conflict management GUI greatly simplifies the design process and increases user's productivity.
  • FIG. 1 illustrates one embodiment of a design module 100 that performs global resource conflict management.
  • Design module 100 forms at least a portion of a design tool that facilitates a user to design an embedded system on a chip.
  • design module 100 includes a graphical user interface (GUI) application 11 that renders a conflict management GUI to assist a user in resolving conflicts on a global resource.
  • Design module 100 also includes a design tool engine 18 that configures a processing device into an embedded system according to a user's system-level specification.
  • GUI graphical user interface
  • Design module further includes one or more conflict managers 16 (only one is shown).
  • Conflict managers 16 operate in conjunction with the conflict management GUI to resolve conflicting requests on global resource settings.
  • Each conflict manager 16 manages conflicts for an associated global resource.
  • a clock source may be managed by a clock manager and a voltage source may be managed by a voltage manager.
  • Other types of conflict managers may exist for different global resources.
  • Conflict manager 16 includes an evaluation unit 125 , which evaluates driver requests to determine whether a conflict exists.
  • Conflict manager 16 also includes an update unit 127 , which calculates alternative values to resolve the conflict.
  • Conflict manager 16 may be part of a data module 15 that includes driver metadata 13 , channel metadata 14 , and base project metadata 17 .
  • Driver metadata 13 , channel metadata 14 , and base project metadata 17 may be managed and coordinated by design tool engine 18 .
  • conflict manager 16 may be implemented by a manager script in base project metadata 17 .
  • the manager script defines management rules, and may include a conflict resolution algorithm.
  • Each global resource may be associated with a conflict manger 16 that operates according to a set of management rules tailored to that global resource.
  • the manager script may be added or modified without any change to the design tool engine code. Examples of the manager script may include JavaScript and other suitable scripting languages.
  • management rules and the manager script may be specified at a system level, a Maker application level, or an individual design project level, as long as they define a consistent behavior in conflict resolution. More details on the levels of design module 100 are described later with reference to FIGS. 5-8 .
  • Driver metadata 13 may include an attribute indicating whether a driver property involves a global resource.
  • Driver metadata 13 may also include, but is not limited to, the name of an associated channel property, the property values requested by the respective driver, a script that translates a driver property value to a corresponding channel property value, and a script that translates a channel property value to a corresponding driver property value.
  • Channel metadata 14 defines the properties that can be associated with conflict managers 16 .
  • Channel metadata 14 may include a script, e.g., JavaScript or other scripting languages, to apply the results of the manager script.
  • Channel metadata 14 forms, at least in part, a channel that acts as a proxy for the associated driver with respect to global resource management, thus hiding hardware complexities from the drivers.
  • a channel may be associated with one or more conflict managers 16 .
  • the associated channel registers a request on behalf of the driver with the appropriate conflict manager 16 .
  • the associated channel removes the request on behalf of the driver from the appropriate conflict manager.
  • the associated channel updates the value request. More details about the drivers, channels, and base projects are described later with reference to FIGS. 6-8 .
  • a conflict may be resolved by an interactive process 200 as illustrated in the embodiment of FIG. 2 .
  • Interactive process 200 may be performed by processing logic of design module 100 .
  • Processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as run on a general purpose computer system or a dedicated machine), or a combination of both.
  • design module 100 receives a user design that includes a plurality of drivers, each requesting a different property value for a common global resource.
  • the drivers may be pulse width modulation (PWM) drivers that request different clock frequencies.
  • conflict manager 16 evaluates property values requested by the drivers to determine whether there is a conflict. If there is no conflict (block 23 ), process 200 ends. If a conflict exists (block 23 ), conflict manager 16 calculates, at block 24 , new property values that resolve the conflict and closely match the driver requests. The new property values may optimize an error metric, e.g., a total average error, a mean square error, or other suitable metrics.
  • GUI conflict management graphical user interface
  • the conflict management GUI presents the new values as well as the requested values.
  • the new values are proposed to the user as an alternative to the requested values. If the user accepts the new values (block 26 ), process 200 ends and the conflict is resolved. If the user does not accept the new values, at block 27 , the user may adjust the requested values and repeat process 200 at blocks 23 - 27 . Process 200 ends when the user accepts the new values proposed by conflict manager 16 or when the user adjustment to the requested values resolves the conflict.
  • FIG. 3 illustrates an operation flow 300 for resolving conflicts on a clock according to one embodiment of the invention.
  • Operation flow 300 may be performed by processing logic of design module 100 .
  • Processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as run on a general purpose computer system or a dedicated machine), or a combination of both.
  • a global clock resource is managed by a clock manager 31 .
  • Other global resources may also be used in place of the clock.
  • Operation flow 300 illustrates that a conflict management GUI 32 , as directed by a user, submits requests to set or modify the driver clock property to different values.
  • the driver clock property may represent a clock property at a system level meaningful to the user.
  • the driver clock property may represent the clock frequency.
  • Each driver converts the request to the corresponding channel clock property, and passes it on to its associated channel.
  • the corresponding channel clock property may be a lower-level description of the clock than the driver clock property.
  • Each channel converts the channel clock property to a hardware property of the clock, and requests clock manager 31 to set the hardware property of the clock to a different value.
  • the hardware property of the clock may be a clock divider that divides the clock to the requested clock frequency.
  • Clock manager 31 evaluates the different requests and configures the clock according to the requests if no conflict is identified. If a conflict is identified, clock manager 31 calculates alternative values that resolve the conflict, generates conflict metadata including the alternative values, and propagates the conflict metadata through channels and drivers to conflict management GUI 32 .
  • the alternative values may be proposed to the user as a guide in the resolution of the conflict.
  • UI user interface
  • HTML HyperText Markup Language
  • JavaScript JavaScript
  • FIG. 4 An example of a user interface (UI) will now be described with reference to FIG. 4 .
  • the exemplary UI may be generated in a variety of ways, such as using HyperText Markup Language (HTML), JavaScript, or the like. It will be understood that embodiments of the present invention are not limited to the UIs discussed herein.
  • FIG. 4 illustrates an embodiment of a conflict management GUI 400 .
  • GUI 400 displays a first list 422 of driver name elements to identify the drivers that cause the conflict.
  • First list 422 may also show the requested driver parameter (or equivalently, the requested driver property) in a parenthesis.
  • a second list 424 displays the requested values of the driver property, and
  • a third list 426 displays the calculated values (or equivalently, the proposed new values) of the driver property.
  • three drivers pse_pwm 1 , pse_pwm 2 , and pse_pwmbetween request different values (10, 24000, and 94000) of a driver clock frequency.
  • conflict manager 16 calculates new values 10, 24000, and 94118.
  • These new values resolve the conflict and closely match the requested values according to a predetermined optimization criterion.
  • the user may accept these new values by pressing an OK button 44 .
  • the user may adjust one or more of the requested values by first selecting a row including the value to be modified and enter an adjusted value into a box 410 .
  • the user may press a modify button 415 to replace the requested value being selected with the adjusted value.
  • the user may be reminded that the adjusted value should not exceed the range of valid values displayed in an allowable range element 418 .
  • the user may press a calculate button 43 to invoke conflict evaluation and, if necessary, conflict update.
  • Conflict manager 16 evaluates whether the adjustment resolves the conflict.
  • GUI 400 disappears if the conflict is resolved by the user's adjustment. If the conflict is not resolved, conflict manager 16 may calculate an update and propose the same or another set of new values to resolve the conflict. The user may further adjust the requested values or accepted the updated new values.
  • Conflict management GUI 400 may also include a cancel button 45 to cancel the current operation and a help button 46 to obtain information about the GUI operations.
  • the global resource conflict management GUI described herein notifies a user that the current configuration results in a conflict of a global resource and allows the user to make the best informed choices to resolve the conflict.
  • a user is given immediate feedback in terms of a system-level driver property as opposed to a hardware-level property.
  • the effect of the conflict is shown in a meaningful context to the user.
  • sufficient information is forwarded to a GUI so that a user can make informed decisions about driver property changes.
  • the global resource conflict management described herein may be used in a design tool for embedded applications, e.g., PSoC ExpressTM, available from Cypress Semiconductor, Inc., with headquarters in San Jose, Calif.
  • the global resource conflict management may be used in other design tools.
  • FIG. 5 illustrates an exemplary system 500 in which embodiments of the present invention may operate.
  • System 500 provides automated code generation of processing device firmware in accordance with one embodiment of the present invention.
  • System 500 includes a processing device maker GUI 504 that may be used by a user 502 to construct a user application 510 for implementation on a processing device 522 .
  • the processing device maker GUI 504 overlays a processing device maker 506 .
  • the conflict management GUI 400 discussed above in conjunction with FIG. 4 may represent a pop-up window in the processing devices maker GUI 504 .
  • design module 100 of FIG. 1 may be used as part of system 500 to generate processing device maker GUI 504 and facilitate its functionality during the design of the user application 510 .
  • User application 510 may be described in a user application description 508 .
  • user application description 508 is a text file that describes user's application 510 .
  • user 502 may perform a simulation of user application 510 .
  • the simulation capability enables hardware independence by verifying the transfer function behavior without requiring the user to compile and debug the firmware on the targeted processing device.
  • Simulation also includes the ability to create complex input files to exhaustively test the transfer function behavior with arbitrarily large combinations of input values. The simulation logs the outputs based on the transfer function behavior so that the results may be analyzed by the user.
  • user 502 may request via processing device maker GUI 504 that processing device code be automatically generated. User 502 does not have to perform any actual coding.
  • user application description 508 is handed-off to a processing device designer 512 for the generation of processing device code.
  • Processing device designer 512 may include an automatic code generator 514 that assembles the code for user's application 510 based on the user application description 508 .
  • Automatic code generator 514 generates processing device code 516 (e.g., high-level language code, such as C, low-level code, such as Assembly, or a combination thereof).
  • automatic code generator 514 references libraries 526 that include code blocks that may be combined to form code 516 .
  • Automatic code generator 516 may use at least a portion of user application description 508 as a guide in gathering together various code blocks. Some of the code blocks may be selected based at least in part on targeted processing device 522 .
  • a compiler 518 compiles code 516 to generate a binary 520 , also known as a binary image or a Read-Only Memory (ROM) image.
  • Binary 520 is loaded into a Non-Volatile Storage (NVS) 524 of the processing device 522 .
  • NVS 524 includes Flash memory.
  • Embodiments of processing device 522 may include one or more general-purpose processing devices, such as a microprocessor or central processing unit, a network processor, a microcontroller, an embedded Programmable Logic Device (PLD), or the like.
  • the processing device may include one or more special-purpose processing devices, such as a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), or the like.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the processing device may also include any combination of a general-purpose processing device and a special-purpose processing device.
  • code 516 is constructed from pre-built and pre-tested code libraries, time wasted on debugging, such as finding syntax errors, is eliminated. It will also be appreciated that user 502 has generated user application 510 without referencing a targeted processing device. Instead of choosing a processing device to implement a user application and then writing code for that processing device, embodiments of the present invention allow a user application to be created and then code automatically generated for a particular processing device. Moreover, a user may take a user application, make revisions to the user application, and quickly generate revised programming device code.
  • firmware stack 600 in accordance with one embodiment of the invention is shown.
  • Firmware stack 600 shows a logical structure of at least a portion of the processing device code 516 .
  • Data module 15 of FIG. 1 may include at least of portion of firmware stack 600 .
  • a portion of the stack is abstracted away from specific hardware. Such hardware independency provides the automatic code generator a consistent architecture for stitching together various code blocks.
  • Firmware stack 600 includes a system layer 602 , a hardware encapsulation layer 604 , and a base project layer 606 .
  • the functionality of the system layer 602 is independent of the targeted processing device.
  • interfaces, such as Application Program Interfaces (APIs) made between system layer 602 and the remaining layers of firmware stack 600 are standardized regardless of the targeted processing device.
  • APIs Application Program Interfaces
  • the term “standardized” refers to the hardware independence of the APIs. This abstraction away from specific hardware allows system layer 602 to function without regard to the particular hardware.
  • the low layers of firmware stack 600 have “knowledge” of the specific hardware and take care of the implementation details for system layer 602 .
  • Hardware encapsulation layer 604 and base project layer 606 are generated based at least in part on the targeted processing device.
  • Hardware encapsulation layer 604 represents the underlying hardware to system layer 602 .
  • Base project layer 606 includes a set of standard functions associated with the targeted processing device hardware.
  • Base project layer 606 may include functionality at the register level of the targeted processing device.
  • Base project metadata 17 discussed above in conjunction with FIG. 1 may be part of base project layer 606 .
  • System layer 602 may include transfer functions 608 and drivers 612 .
  • System layer 602 is targeted by an application level mapping function.
  • Transfer functions 608 invoke the transfer functions defined by the user 602 .
  • Drivers 612 are usually associated with a hardware component of the processing device.
  • drives 612 may include three types: input, output, or interface.
  • An output driver may be used with a device that is controlled by the user application, such as a fan or heater.
  • Input drivers may be used for sensors, such as temperature or voltage sensors.
  • Interface drivers may be used for devices that allow access to system variables and status, such as an Inter-Integrated Circuit (I2C) or a Serial Peripheral Interface (SPI).
  • Driver metadata 13 discussed above in conjunction with FIG. 1 may be part of drivers 612 .
  • Transfer functions 608 and drivers 612 may communicate with each other using APIs 622 .
  • Embodiments of an API include DriverName-Instantiate to initialize a device, DriverName_GetValue to return a value from an input device, and DriverName_SetValue to set an output of an output device to a specific value.
  • Such APIs are defined such that the may be invoked regardless of the particular hardware.
  • Channels 624 are hardware independent.
  • a channel may be further defined by a channel type, such as an input voltage channel, an output voltage channel, or the like.
  • channels 624 are implemented as APIs.
  • Channel metadata 14 discussed above in conjunction with FIG. 1 may be part of channels 624 .
  • Hardware encapsulation layer 604 may include low level drivers 614 and system initialization 610 .
  • Low level drivers 614 provide the implementation of channels 624 .
  • all drivers 612 use one or more channels 624 to communicate with low level drivers 614 .
  • a channel may have associated parameters assigned by a low level driver, and the associated driver must conform to those parameters.
  • the base project layer 606 includes User Modules (UMs) 616 and processing device hardware 618 .
  • User modules 616 are used with block arrays in processing device hardware 618 to form hardware components, such as an Analog-Digital Converter (ADC).
  • ADC Analog-Digital Converter
  • FIG. 6 also shows low level drivers 614 , user modules 616 , and Hardware 618 grouped into a Base Project 620 .
  • driver 700 includes several components for device selection and code generation. These components may be grouped into ControllerMaker Interface files 702 , Data files 704 , and Source Code files 706 .
  • Interface files 702 may include files to generate the visual interface in processing device maker GUI 504 .
  • Data files 704 are used for driver type selection, resource allocation, user parameter selection, and code generation.
  • Data files 704 may include a driver name file that includes information about channel type, resource requirements, association with image files, and user selectable parameters.
  • the driver name file may be a DriverName.cmx file.
  • Source code files 706 include the driver firmware.
  • Driver 700 may be written in C, Assembly, or a combination thereof.
  • base project 820 is built around the targeted processing device.
  • Automatic code generator 514 refers to user application description 508 and adds the appropriate code for the drivers and transfer functions.
  • the standardized calls to and from the drivers provide a consistent architecture for reliably connecting base project 820 to drivers.
  • Base project 820 may include any system design project using any of the processing device family of parts that support one or more driver channel types. In one embodiment, if a base project supports a given channel type, it must support it fully. The channel may support an external interface to the input or output signal as well as low level firmware to support the signal acquisition and signal conditioning required for reliable signal measurement. Processing device designer 512 adds drivers, such as driver 700 , to a base project to support the input/output devices selected by user 502 in user application 510 . A project summary file is included in a base project to define what channel types are supported and how many channels are available.
  • Base project 820 may include standard project and UM files 822 , resource files 824 , and low level driver files 826 .
  • Standard project and UM files 822 may include files that describe the specific user modules employed in the design project and their specific placement. The UM's and their placement determine the mapping of the channels to the external pins. With the UM configuration file, specific UM API files are included in so much as they are needed to control specific interrupt behavior required for successful signal acquisition and conditioning. By themselves these files create an empty project.
  • Low level driver files 826 provide the implementation of the channels supported by a given base project.
  • a variety of ways can be used to implement a given channel type. For example, a volts channel can be supported by a wide range of ADCs, multiplexers, and ADC resolutions, as long as the API for the specific channel is fully supported. Some base projects may offer more resolution than others for certain channel types. These differences may be specified in a project summary file, e.g, a CMXProjectSummary.xml file.
  • the CMX file prefix indicates that the file can be used by a CMX engine, which is one embodiment of design tool engine 18 of FIG. 1 . It is understood that other design tool engines and file formats may also be used.
  • Resource files may include the project summary file, which may be an eXtensible Markup Language (XML) file contains metadata that communicate a list of resources provided by the base project to design tool engine 18 .
  • the XML file indicates the types and count of each of the resource channels and interfaces supported. It also determines the channel assignment order and prioritization, in the case of channels competing for similar resources. It may also provide specifications of each of the channel types, where applicable.
  • XML eXtensible Markup Language
  • Processing device 900 includes a microcontroller.
  • Processing device 900 includes Input/Output (I/O) ports 902 .
  • I/O ports 902 are programmable.
  • I/O ports 902 are coupled to a Programmable Interconnect and Logic (PIL) 904 which is coupled to a digital block array 906 .
  • PIL Programmable Interconnect and Logic
  • digital block array 906 includes a UM 908 that has been configured as a Universal Asynchronous Receive/Transmitter (UART).
  • Digital block array 906 is coupled to a system bus 912 .
  • a Static Random Access Memory (SRAM) 910 and a processing core 914 are also coupled to system bus 912 .
  • Processing core 914 is coupled to NVS 916 which has stored a binary 917 .
  • binary 917 includes instructions generated as described herein.
  • binary 917 may include instructions executable by processing core 914 as well as instructions for configuring block arrays 916 and 918 .
  • Analog block array 918 is coupled to system bus 912 .
  • analog block array 918 includes a UM 920 configured as a filter and a UM 922 configured as an ADC.
  • Analog block array 918 is also coupled to an analog I/O unit 924 which is coupled to I/O ports 902 .
  • Processing device 900 may also include other components, not shown for clarity, including a clock generator, an interrupt controller, an I2C, or the like.
  • FIG. 10 illustrates an exemplary computer system 1000 on which embodiments of the present invention may be implemented.
  • Computer system 1000 includes a processor 1002 and a memory 1004 coupled to a chipset 1006 .
  • Storage 1012 Non-Volatile Storage (NVS) 1005 , network interface (I/F) 1014 , and Input/Output (I/O) ports 1018 may also be coupled to chipset 1006 .
  • Embodiments of computer system 1000 include, but are not limited to, a desktop computer, a notebook computer, a server, a personal digital assistant, a network workstation, or the like.
  • processor 1002 executes instructions stored in memory 1004 .
  • Memory 1004 may include, but is not limited to, Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Synchronized Dynamic Random Access Memory (SDRAM), or the like.
  • DRAM Dynamic Random Access Memory
  • SRAM Static Random Access Memory
  • SDRAM Synchronized Dynamic Random Access Memory
  • Chipset 1006 may include a memory controller and an input/output controller. Chipset 1006 may also include system clock support, power management support, audio support, graphics support, or the like. In one embodiment, chipset 1006 is coupled to a board that includes sockets for processor 1002 and memory 1004 .
  • Interconnects may include a Peripheral Component Interconnect (PCI), a System Management bus (SMBUS), a Low Pin Count (LPC) bus, a Serial Peripheral Interface (SPI) bus, an Accelerated Graphics Port (AGP) interface, or the like.
  • PCI Peripheral Component Interconnect
  • SMBUS System Management bus
  • LPC Low Pin Count
  • SPI Serial Peripheral Interface
  • AGP Accelerated Graphics Port
  • I/O ports 1016 may include ports for a keyboard, a mouse, a display, a printer, a scanner, or the like.
  • Embodiments of I/O ports 1016 include a Universal Serial Bus port, a Firewire port, a Video Graphics Array (VGA) port, a Personal System/2 (PS/2) port, or the like.
  • VGA Video Graphics Array
  • PS/2 Personal System/2
  • Processing device 522 may be coupled to computer system 1000 via I/O ports 1016 .
  • Computer system 1000 may have stored computer-readable instructions, in accordance with embodiments described herein, to allow a user to design application 510 using UIs described herein and automatically generate processing device code for processing device 522 using computer system 1000 .
  • This code may be compiled into a binary and loaded into NVS 524 .
  • Computer system 1000 may interface to external systems through network interface 1014 .
  • Network interface 1014 may include, but is not limited to, a modem, a Network Interface Card (NIC), or other interfaces for coupling a computer system to other computer systems.
  • a carrier wave signal 1023 may be received and transmitted by network interface 1014 .
  • carrier wave signal 1023 is used to interface computer system 1000 with a network 1024 , such as a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, or any combination thereof.
  • network 1024 is further coupled to a computer system 1025 such that computer system 1000 and computer system 1025 may communicate over network 1024 .
  • Computer system 1000 also includes non-volatile storage 1005 on which firmware and/or data may be stored.
  • Non-volatile storage devices include, but are not limited to, Read-Only Memory (ROM), Flash memory, Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM), Non-Volatile Random Access Memory (NVRAM), or the like.
  • Storage 1012 includes, but is not limited to, a magnetic disk drive, a magnetic tape drive, an optical disk drive, or the like. It is appreciated that instructions executable by processor 1002 may reside in storage 1012 , memory 1004 , non-volatile storage 1005 , or may be transmitted or received via network interface 1014 .
  • a machine-readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable or accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).
  • a machine-readable medium includes, but is not limited to, recordable/non-recordable media (e.g., Read-Only Memory (ROM), Random Access Memory (RAM), magnetic disk storage media, optical storage media, a flash memory device, etc.).

Abstract

A design tool provides a conflict management graphical user interface (GUI). The conflict management GUI notifies a user that requested values of a global resource result in a conflict during development of an embedded application. The conflict management GUI further provides the user with a user interface element to adjust the requested values until the conflict is resolved.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/774,295, filed Feb. 16, 2006, and incorporated herein by reference in its entirety.
TECHNICAL FIELD
Embodiments of the invention relate generally to embedded application development and more specifically, but not exclusively, to resolving conflicting global parameters using a graphical user interface during development of an embedded application.
BACKGROUND
Shortened time to design and user error reduction are essential to the success of application development environments. Current application development environments are geared towards system engineers. Conventional design tools generally fail to produce deterministic outcomes when conflicting driver properties are set in a design. This is because conventional drivers are allowed to modify global resources without regard to conflicting values requested by other drivers. Thus, in a conventional embedded application design, conflicts are generally managed manually. As a result, a system engineer would often need to manually modify the conflicting driver properties when adding, deleting, or modifying drivers that request different parameter settings of a global resource.
Moreover, system engineers are typically accustomed to describing a design at a higher level than the hardware level. For example, a clock driver may be described at the system level in terms of clock frequency. However, at the hardware level, clock distribution is often described by clock divider ratios. Thus, with conventional design tools, a user may need to hand code in assembly or C code to manually modify conflicting driver properties at a hardware level. Such an approach may be too low level for system designers. Thus, the conventional approach is inefficient and error prone.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which:
FIG. 1 is a block diagram of one embodiment of a design module that facilitates global parameter conflict management.
FIG. 2 is a flow diagram of one embodiment of a method that facilitates the global parameter conflict management.
FIG. 3 illustrates an embodiment of operations for resolving conflicts in parameter settings of a global clock resource.
FIG. 4 illustrates an embodiment of conflict management graphical user interface (GUI).
FIG. 5 is a block diagram of one embodiment of a system enabling automated code generation of processing device firmware.
FIG. 6 illustrates a firmware stack in accordance with one embodiment of the present invention.
FIG. 7 illustrates a driver in accordance with one embodiment of the present invention.
FIG. 8 illustrates a base project in accordance with one embodiment of the present invention.
FIG. 9 is a block diagram of one embodiment of a processing device.
FIG. 10 is a block diagram of one embodiment of a computer system.
DETAILED DESCRIPTION
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques are not shown in detail or are shown in block diagram form in order to avoid unnecessarily obscuring an understanding of this description.
Reference in the description to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification do not necessarily all refer to the same embodiment.
Global parameter conflict management resolves conflicting requests by drivers on a common global resource. In the following descriptions, drivers are associated with a hardware component of a processing device for an embedded application. Details about the drivers are described later with reference to FIG. 6. Different drivers may request different values of a driver property supported by a global resource. These different property values may sometimes cause a conflict in the global resource. For example, a clock may be a global resource and the frequency of the clock may be the requested driver property. Clock divider hardware may be used to divide a global clock into different clock frequencies. However, it is sometimes not possible to divide a global clock to match the exact clock frequencies requested by the drivers. When a global resource cannot satisfy the requests of the drivers, a conflict occurs. Conflicts may also arise when drivers requesting other global resources, e.g., voltage distributor and other types of global resources.
Embodiments of present invention provide a conflict management GUI to assist users in resolution of conflicts caused by different requested values of a driver property. It is understood that the driver property value referred to herein correspond to a parameter setting of the global resource. Thus, in the following descriptions, the terms “driver property value” and “parameter setting” are used synonymously. The conflict management GUI cooperates with a conflict manager that evaluates and resolves contentions among the global parameter settings requested by multiple drivers. Managing global parameter conflicts typically involves an intimate knowledge of the processing device and corresponding database elements. The introduction of a conflict management GUI greatly simplifies the design process and increases user's productivity.
FIG. 1 illustrates one embodiment of a design module 100 that performs global resource conflict management. Design module 100 forms at least a portion of a design tool that facilitates a user to design an embedded system on a chip. In this embodiment, design module 100 includes a graphical user interface (GUI) application 11 that renders a conflict management GUI to assist a user in resolving conflicts on a global resource. Design module 100 also includes a design tool engine 18 that configures a processing device into an embedded system according to a user's system-level specification.
Design module further includes one or more conflict managers 16 (only one is shown). Conflict managers 16 operate in conjunction with the conflict management GUI to resolve conflicting requests on global resource settings. Each conflict manager 16 manages conflicts for an associated global resource. For example, a clock source may be managed by a clock manager and a voltage source may be managed by a voltage manager. Other types of conflict managers may exist for different global resources. Conflict manager 16 includes an evaluation unit 125, which evaluates driver requests to determine whether a conflict exists. Conflict manager 16 also includes an update unit 127, which calculates alternative values to resolve the conflict.
Conflict manager 16 may be part of a data module 15 that includes driver metadata 13, channel metadata 14, and base project metadata 17. Driver metadata 13, channel metadata 14, and base project metadata 17 may be managed and coordinated by design tool engine 18. In the embodiment as shown, conflict manager 16 may be implemented by a manager script in base project metadata 17. The manager script defines management rules, and may include a conflict resolution algorithm. Each global resource may be associated with a conflict manger 16 that operates according to a set of management rules tailored to that global resource. The manager script may be added or modified without any change to the design tool engine code. Examples of the manager script may include JavaScript and other suitable scripting languages. Alternatively, the management rules and the manager script may be specified at a system level, a Maker application level, or an individual design project level, as long as they define a consistent behavior in conflict resolution. More details on the levels of design module 100 are described later with reference to FIGS. 5-8.
Driver metadata 13 may include an attribute indicating whether a driver property involves a global resource. Driver metadata 13 may also include, but is not limited to, the name of an associated channel property, the property values requested by the respective driver, a script that translates a driver property value to a corresponding channel property value, and a script that translates a channel property value to a corresponding driver property value.
Channel metadata 14 defines the properties that can be associated with conflict managers 16. Channel metadata 14 may include a script, e.g., JavaScript or other scripting languages, to apply the results of the manager script. Channel metadata 14 forms, at least in part, a channel that acts as a proxy for the associated driver with respect to global resource management, thus hiding hardware complexities from the drivers. A channel may be associated with one or more conflict managers 16. When a driver is added, the associated channel registers a request on behalf of the driver with the appropriate conflict manager 16. When a driver is deleted, the associated channel removes the request on behalf of the driver from the appropriate conflict manager. When a driver modifies a property value, the associated channel updates the value request. More details about the drivers, channels, and base projects are described later with reference to FIGS. 6-8.
A conflict may be resolved by an interactive process 200 as illustrated in the embodiment of FIG. 2. Interactive process 200 may be performed by processing logic of design module 100. Processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as run on a general purpose computer system or a dedicated machine), or a combination of both.
At block 21, design module 100 receives a user design that includes a plurality of drivers, each requesting a different property value for a common global resource. For example, the drivers may be pulse width modulation (PWM) drivers that request different clock frequencies. At block 22, conflict manager 16 evaluates property values requested by the drivers to determine whether there is a conflict. If there is no conflict (block 23), process 200 ends. If a conflict exists (block 23), conflict manager 16 calculates, at block 24, new property values that resolve the conflict and closely match the driver requests. The new property values may optimize an error metric, e.g., a total average error, a mean square error, or other suitable metrics. At block 25, a conflict management graphical user interface (GUI) is presented to the user. The conflict management GUI presents the new values as well as the requested values. The new values are proposed to the user as an alternative to the requested values. If the user accepts the new values (block 26), process 200 ends and the conflict is resolved. If the user does not accept the new values, at block 27, the user may adjust the requested values and repeat process 200 at blocks 23-27. Process 200 ends when the user accepts the new values proposed by conflict manager 16 or when the user adjustment to the requested values resolves the conflict.
FIG. 3 illustrates an operation flow 300 for resolving conflicts on a clock according to one embodiment of the invention. Operation flow 300 may be performed by processing logic of design module 100. Processing logic may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as run on a general purpose computer system or a dedicated machine), or a combination of both.
In this embodiment, a global clock resource is managed by a clock manager 31. Other global resources may also be used in place of the clock. Operation flow 300 illustrates that a conflict management GUI 32, as directed by a user, submits requests to set or modify the driver clock property to different values. The driver clock property may represent a clock property at a system level meaningful to the user. For example, the driver clock property may represent the clock frequency. Each driver converts the request to the corresponding channel clock property, and passes it on to its associated channel. The corresponding channel clock property may be a lower-level description of the clock than the driver clock property. Each channel converts the channel clock property to a hardware property of the clock, and requests clock manager 31 to set the hardware property of the clock to a different value. For example, the hardware property of the clock may be a clock divider that divides the clock to the requested clock frequency. Clock manager 31 evaluates the different requests and configures the clock according to the requests if no conflict is identified. If a conflict is identified, clock manager 31 calculates alternative values that resolve the conflict, generates conflict metadata including the alternative values, and propagates the conflict metadata through channels and drivers to conflict management GUI 32. The alternative values may be proposed to the user as a guide in the resolution of the conflict.
An example of a user interface (UI) will now be described with reference to FIG. 4. The exemplary UI may be generated in a variety of ways, such as using HyperText Markup Language (HTML), JavaScript, or the like. It will be understood that embodiments of the present invention are not limited to the UIs discussed herein.
FIG. 4 illustrates an embodiment of a conflict management GUI 400. In this embodiment, GUI 400 displays a first list 422 of driver name elements to identify the drivers that cause the conflict. First list 422 may also show the requested driver parameter (or equivalently, the requested driver property) in a parenthesis. A second list 424 displays the requested values of the driver property, and a third list 426 displays the calculated values (or equivalently, the proposed new values) of the driver property. In this embodiment, three drivers pse_pwm1, pse_pwm2, and pse_pwmbetween request different values (10, 24000, and 94000) of a driver clock frequency. To resolve the conflicting requested values, conflict manager 16 calculates new values 10, 24000, and 94118. These new values resolve the conflict and closely match the requested values according to a predetermined optimization criterion. The user may accept these new values by pressing an OK button 44. Alternatively, the user may adjust one or more of the requested values by first selecting a row including the value to be modified and enter an adjusted value into a box 410. The user may press a modify button 415 to replace the requested value being selected with the adjusted value. The user may be reminded that the adjusted value should not exceed the range of valid values displayed in an allowable range element 418. Thereafter, the user may press a calculate button 43 to invoke conflict evaluation and, if necessary, conflict update. Conflict manager 16 evaluates whether the adjustment resolves the conflict. GUI 400 disappears if the conflict is resolved by the user's adjustment. If the conflict is not resolved, conflict manager 16 may calculate an update and propose the same or another set of new values to resolve the conflict. The user may further adjust the requested values or accepted the updated new values.
Conflict management GUI 400 may also include a cancel button 45 to cancel the current operation and a help button 46 to obtain information about the GUI operations.
The global resource conflict management GUI described herein notifies a user that the current configuration results in a conflict of a global resource and allows the user to make the best informed choices to resolve the conflict. A user is given immediate feedback in terms of a system-level driver property as opposed to a hardware-level property. Thus, the effect of the conflict is shown in a meaningful context to the user. Moreover, sufficient information is forwarded to a GUI so that a user can make informed decisions about driver property changes.
In one embodiment, the global resource conflict management described herein may be used in a design tool for embedded applications, e.g., PSoC Express™, available from Cypress Semiconductor, Inc., with headquarters in San Jose, Calif. Alternatively, the global resource conflict management may be used in other design tools.
FIG. 5 illustrates an exemplary system 500 in which embodiments of the present invention may operate. System 500 provides automated code generation of processing device firmware in accordance with one embodiment of the present invention.
System 500 includes a processing device maker GUI 504 that may be used by a user 502 to construct a user application 510 for implementation on a processing device 522. The processing device maker GUI 504 overlays a processing device maker 506. The conflict management GUI 400 discussed above in conjunction with FIG. 4 may represent a pop-up window in the processing devices maker GUI 504. In addition, design module 100 of FIG. 1 may be used as part of system 500 to generate processing device maker GUI 504 and facilitate its functionality during the design of the user application 510.
User application 510 may be described in a user application description 508. In one embodiment, user application description 508 is a text file that describes user's application 510.
After user 502 completes the design of application 510, user 502 may perform a simulation of user application 510. The simulation capability enables hardware independence by verifying the transfer function behavior without requiring the user to compile and debug the firmware on the targeted processing device. Simulation also includes the ability to create complex input files to exhaustively test the transfer function behavior with arbitrarily large combinations of input values. The simulation logs the outputs based on the transfer function behavior so that the results may be analyzed by the user.
Next, user 502 may request via processing device maker GUI 504 that processing device code be automatically generated. User 502 does not have to perform any actual coding. In one embodiment, after user 502 selects the targeted processing device, user application description 508 is handed-off to a processing device designer 512 for the generation of processing device code. Processing device designer 512 may include an automatic code generator 514 that assembles the code for user's application 510 based on the user application description 508. Automatic code generator 514 generates processing device code 516 (e.g., high-level language code, such as C, low-level code, such as Assembly, or a combination thereof).
In one embodiment, automatic code generator 514 references libraries 526 that include code blocks that may be combined to form code 516. Automatic code generator 516 may use at least a portion of user application description 508 as a guide in gathering together various code blocks. Some of the code blocks may be selected based at least in part on targeted processing device 522.
A compiler 518 compiles code 516 to generate a binary 520, also known as a binary image or a Read-Only Memory (ROM) image. Binary 520 is loaded into a Non-Volatile Storage (NVS) 524 of the processing device 522. In one embodiment, NVS 524 includes Flash memory.
Embodiments of processing device 522 may include one or more general-purpose processing devices, such as a microprocessor or central processing unit, a network processor, a microcontroller, an embedded Programmable Logic Device (PLD), or the like. Alternatively, the processing device may include one or more special-purpose processing devices, such as a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), or the like. The processing device may also include any combination of a general-purpose processing device and a special-purpose processing device.
It will be appreciated that because code 516 is constructed from pre-built and pre-tested code libraries, time wasted on debugging, such as finding syntax errors, is eliminated. It will also be appreciated that user 502 has generated user application 510 without referencing a targeted processing device. Instead of choosing a processing device to implement a user application and then writing code for that processing device, embodiments of the present invention allow a user application to be created and then code automatically generated for a particular processing device. Moreover, a user may take a user application, make revisions to the user application, and quickly generate revised programming device code.
Referring to FIG. 6, a firmware stack 600 in accordance with one embodiment of the invention is shown. Firmware stack 600 shows a logical structure of at least a portion of the processing device code 516. Data module 15 of FIG. 1 may include at least of portion of firmware stack 600. As discussed below, a portion of the stack is abstracted away from specific hardware. Such hardware independency provides the automatic code generator a consistent architecture for stitching together various code blocks.
Firmware stack 600 includes a system layer 602, a hardware encapsulation layer 604, and a base project layer 606. As will be described further below, the functionality of the system layer 602 is independent of the targeted processing device. Also, interfaces, such as Application Program Interfaces (APIs), made between system layer 602 and the remaining layers of firmware stack 600 are standardized regardless of the targeted processing device. The term “standardized” refers to the hardware independence of the APIs. This abstraction away from specific hardware allows system layer 602 to function without regard to the particular hardware. The low layers of firmware stack 600 have “knowledge” of the specific hardware and take care of the implementation details for system layer 602.
Hardware encapsulation layer 604 and base project layer 606 are generated based at least in part on the targeted processing device. Hardware encapsulation layer 604 represents the underlying hardware to system layer 602. Base project layer 606 includes a set of standard functions associated with the targeted processing device hardware. Base project layer 606 may include functionality at the register level of the targeted processing device. Base project metadata 17 discussed above in conjunction with FIG. 1 may be part of base project layer 606.
System layer 602 may include transfer functions 608 and drivers 612. System layer 602 is targeted by an application level mapping function. Transfer functions 608 invoke the transfer functions defined by the user 602.
Drivers 612 are usually associated with a hardware component of the processing device. In one embodiment, drives 612 may include three types: input, output, or interface. An output driver may be used with a device that is controlled by the user application, such as a fan or heater. Input drivers may be used for sensors, such as temperature or voltage sensors. Interface drivers may be used for devices that allow access to system variables and status, such as an Inter-Integrated Circuit (I2C) or a Serial Peripheral Interface (SPI). Driver metadata 13 discussed above in conjunction with FIG. 1 may be part of drivers 612.
Transfer functions 608 and drivers 612 may communicate with each other using APIs 622. Embodiments of an API include DriverName-Instantiate to initialize a device, DriverName_GetValue to return a value from an input device, and DriverName_SetValue to set an output of an output device to a specific value. Such APIs are defined such that the may be invoked regardless of the particular hardware.
Drivers 612 communicate with hardware encapsulation layer 604 using channels 624. Channels 624 are hardware independent. A channel may be further defined by a channel type, such as an input voltage channel, an output voltage channel, or the like. In one embodiment, channels 624 are implemented as APIs. Channel metadata 14 discussed above in conjunction with FIG. 1 may be part of channels 624.
Hardware encapsulation layer 604 may include low level drivers 614 and system initialization 610. Low level drivers 614 provide the implementation of channels 624. In one embodiment, all drivers 612 use one or more channels 624 to communicate with low level drivers 614. In one embodiment, a channel may have associated parameters assigned by a low level driver, and the associated driver must conform to those parameters.
In one embodiment, the base project layer 606 includes User Modules (UMs) 616 and processing device hardware 618. User modules 616 are used with block arrays in processing device hardware 618 to form hardware components, such as an Analog-Digital Converter (ADC).
FIG. 6 also shows low level drivers 614, user modules 616, and Hardware 618 grouped into a Base Project 620.
Turning to FIG. 7, an embodiment of driver 700 is shown. In one embodiment, driver 700 includes several components for device selection and code generation. These components may be grouped into ControllerMaker Interface files 702, Data files 704, and Source Code files 706. Interface files 702 may include files to generate the visual interface in processing device maker GUI 504. Data files 704 are used for driver type selection, resource allocation, user parameter selection, and code generation. Data files 704 may include a driver name file that includes information about channel type, resource requirements, association with image files, and user selectable parameters. In one particular embodiment, the driver name file may be a DriverName.cmx file. The .cmx file extension indicates that the file can be used by a CMX engine, which is a proprietary design tool engine from Cypress Semiconductor, Inc. It is understood that other design tool engines and file formats may also be used. Source code files 706 include the driver firmware. Driver 700 may be written in C, Assembly, or a combination thereof.
Turning to FIG. 8, an embodiment of a base project 820 is shown. In one embodiment, base project 820 is built around the targeted processing device. Automatic code generator 514 refers to user application description 508 and adds the appropriate code for the drivers and transfer functions. The standardized calls to and from the drivers provide a consistent architecture for reliably connecting base project 820 to drivers.
Base project 820 may include any system design project using any of the processing device family of parts that support one or more driver channel types. In one embodiment, if a base project supports a given channel type, it must support it fully. The channel may support an external interface to the input or output signal as well as low level firmware to support the signal acquisition and signal conditioning required for reliable signal measurement. Processing device designer 512 adds drivers, such as driver 700, to a base project to support the input/output devices selected by user 502 in user application 510. A project summary file is included in a base project to define what channel types are supported and how many channels are available.
Base project 820 may include standard project and UM files 822, resource files 824, and low level driver files 826. Standard project and UM files 822 may include files that describe the specific user modules employed in the design project and their specific placement. The UM's and their placement determine the mapping of the channels to the external pins. With the UM configuration file, specific UM API files are included in so much as they are needed to control specific interrupt behavior required for successful signal acquisition and conditioning. By themselves these files create an empty project.
Low level driver files 826 provide the implementation of the channels supported by a given base project. A variety of ways can be used to implement a given channel type. For example, a volts channel can be supported by a wide range of ADCs, multiplexers, and ADC resolutions, as long as the API for the specific channel is fully supported. Some base projects may offer more resolution than others for certain channel types. These differences may be specified in a project summary file, e.g, a CMXProjectSummary.xml file. The CMX file prefix indicates that the file can be used by a CMX engine, which is one embodiment of design tool engine 18 of FIG. 1. It is understood that other design tool engines and file formats may also be used.
Resource files may include the project summary file, which may be an eXtensible Markup Language (XML) file contains metadata that communicate a list of resources provided by the base project to design tool engine 18. The XML file indicates the types and count of each of the resource channels and interfaces supported. It also determines the channel assignment order and prioritization, in the case of channels competing for similar resources. It may also provide specifications of each of the channel types, where applicable.
Turning to FIG. 9, an embodiment of a processing device 900 is shown. Processing device 900 includes a microcontroller. Processing device 900 includes Input/Output (I/O) ports 902. In one embodiment, I/O ports 902 are programmable. I/O ports 902 are coupled to a Programmable Interconnect and Logic (PIL) 904 which is coupled to a digital block array 906. In FIG. 9, digital block array 906 includes a UM 908 that has been configured as a Universal Asynchronous Receive/Transmitter (UART). Digital block array 906 is coupled to a system bus 912.
A Static Random Access Memory (SRAM) 910 and a processing core 914 are also coupled to system bus 912. Processing core 914 is coupled to NVS 916 which has stored a binary 917. In one embodiment, binary 917 includes instructions generated as described herein. In another embodiment, binary 917 may include instructions executable by processing core 914 as well as instructions for configuring block arrays 916 and 918.
Analog block array 918 is coupled to system bus 912. In the embodiment of FIG. 9, analog block array 918 includes a UM 920 configured as a filter and a UM 922 configured as an ADC. Analog block array 918 is also coupled to an analog I/O unit 924 which is coupled to I/O ports 902. Processing device 900 may also include other components, not shown for clarity, including a clock generator, an interrupt controller, an I2C, or the like.
FIG. 10 illustrates an exemplary computer system 1000 on which embodiments of the present invention may be implemented. Computer system 1000 includes a processor 1002 and a memory 1004 coupled to a chipset 1006. Storage 1012, Non-Volatile Storage (NVS) 1005, network interface (I/F) 1014, and Input/Output (I/O) ports 1018 may also be coupled to chipset 1006. Embodiments of computer system 1000 include, but are not limited to, a desktop computer, a notebook computer, a server, a personal digital assistant, a network workstation, or the like. In one embodiment, processor 1002 executes instructions stored in memory 1004.
Memory 1004 may include, but is not limited to, Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Synchronized Dynamic Random Access Memory (SDRAM), or the like.
Chipset 1006 may include a memory controller and an input/output controller. Chipset 1006 may also include system clock support, power management support, audio support, graphics support, or the like. In one embodiment, chipset 1006 is coupled to a board that includes sockets for processor 1002 and memory 1004.
Components of computer system 1000 may be connected by various interconnects. Such interconnects may include a Peripheral Component Interconnect (PCI), a System Management bus (SMBUS), a Low Pin Count (LPC) bus, a Serial Peripheral Interface (SPI) bus, an Accelerated Graphics Port (AGP) interface, or the like.
I/O ports 1016 may include ports for a keyboard, a mouse, a display, a printer, a scanner, or the like. Embodiments of I/O ports 1016 include a Universal Serial Bus port, a Firewire port, a Video Graphics Array (VGA) port, a Personal System/2 (PS/2) port, or the like.
Processing device 522 may be coupled to computer system 1000 via I/O ports 1016. Computer system 1000 may have stored computer-readable instructions, in accordance with embodiments described herein, to allow a user to design application 510 using UIs described herein and automatically generate processing device code for processing device 522 using computer system 1000. This code may be compiled into a binary and loaded into NVS 524.
Computer system 1000 may interface to external systems through network interface 1014. Network interface 1014 may include, but is not limited to, a modem, a Network Interface Card (NIC), or other interfaces for coupling a computer system to other computer systems. A carrier wave signal 1023 may be received and transmitted by network interface 1014. In the embodiment illustrated in FIG. 10, carrier wave signal 1023 is used to interface computer system 1000 with a network 1024, such as a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, or any combination thereof. In one embodiment, network 1024 is further coupled to a computer system 1025 such that computer system 1000 and computer system 1025 may communicate over network 1024.
Computer system 1000 also includes non-volatile storage 1005 on which firmware and/or data may be stored. Non-volatile storage devices include, but are not limited to, Read-Only Memory (ROM), Flash memory, Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM), Non-Volatile Random Access Memory (NVRAM), or the like. Storage 1012 includes, but is not limited to, a magnetic disk drive, a magnetic tape drive, an optical disk drive, or the like. It is appreciated that instructions executable by processor 1002 may reside in storage 1012, memory 1004, non-volatile storage 1005, or may be transmitted or received via network interface 1014.
For the purposes of the specification, a machine-readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable or accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.). For example, a machine-readable medium includes, but is not limited to, recordable/non-recordable media (e.g., Read-Only Memory (ROM), Random Access Memory (RAM), magnetic disk storage media, optical storage media, a flash memory device, etc.).
Various operations of embodiments of the present invention are described herein. These operations may be implemented by a machine using a processor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), or the like. In one embodiment, one or more of the operations described may constitute instructions stored on a machine-readable medium, that when executed by a machine will cause the machine to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment of the invention.

Claims (16)

What is claimed is:
1. A computer implemented method, comprising:
receiving instructions for a design of an embedded application, the design comprising a first driver and a second driver of a plurality of drivers, wherein the first driver and the second driver each request a different value of a global resource shared by the first driver and the second driver, and wherein the global resource comprises a common resource shared by the plurality of drivers to support the embedded application;
determining whether there is a conflict between the values of the global resource requested by the first driver and the second driver of the plurality of drivers, wherein determining whether there is a conflict comprises determining whether a first value of the global resource requested by the first driver of the plurality of drivers is different than a second value of the global resource requested by the second driver of the plurality of drivers;
notifying a user, with a graphical user interface (GUI), that the first value of the global resource requested by the first driver of the plurality of drivers results in a conflict with the second value of the global resource requested by the second driver of the plurality of drivers, during development of the embedded application;
receiving a first set of new values for the global resource input by the user, the first set of new values to resolve the conflict;
if the first set of new values does not resolve the conflict, calculating a second set of new values for the global resource, the second set of new values approximating the first and second values requested by the first and second drivers while resolving the conflict and optimizing an error metric for the global resource, the error metric comprising at least one of a total average error or a mean square error;
presenting, in the GUI, the second set of new values as a feedback to the first and second requested values; and
providing the user with a user interface element to adjust the requested values until the conflict is resolved.
2. The method of claim 1, further comprising:
presenting the requested values as a system-level property, which corresponds to, but is different from, a hardware-level property of the global resource.
3. The method of claim 1, further comprising:
providing an indicator for the user to accept the new values.
4. The method of claim 1 further comprising:
presenting, in the GUI, an allowable range for the requested values.
5. The method of claim 1, further comprising:
sending the adjusted values to a conflict manager; and
rendering the GUI only if the conflict manager is unable to resolve the conflict.
6. A user interface, implemented by a computing device having a processor, the user interface comprising:
a message to notify a user of a conflict between the values of the global resource requested by a first driver and a second driver of a plurality of drivers, wherein the conflict results when a first value of the global resource requested by the first driver of the plurality of drivers is different than the second value of the global resource requested by the second driver of the plurality of drivers, wherein the computing device receives instructions for a design of an embedded application, the design comprising the plurality of drivers, each requesting a different value of the global resource, wherein the global resource is shared by the first driver and the second driver, and wherein the global resource comprises a common resource shared by the plurality of drivers to support the embedded application;
a first user interface element to display the requested values and to receive a first set of new values for the global resource input by the user, the first set of new values to resolve the conflict; and
a second user interface element to display a second set of new values of the global resource as a feedback to the requested values if the first set of new values does not resolve the conflict, the second set of new values approximating the first and second values requested by the first and second drivers while resolving the conflict and optimizing an error metric for the global resource, the error metric comprising at least one of a total average error or a mean square error.
7. The user interface of claim 6, wherein the requested values are presented as a system-level property, which corresponds to, but is different from, a hardware-level property of the global resource.
8. The user interface of claim 4, further comprising:
an indicator for the user to accept the new values.
9. The user interface of claim 6, wherein the new values are displayed adjacent to the requested values in a corresponding order.
10. The user interface of claim 6, further comprising:
a driver name element, adjacent to each of the requested values, to indicate a driver of the embedded application.
11. The user interface of claim 6, further comprising:
an allowable range element to indicate an allowable range of the requested values.
12. A non-transitory machine-readable storage medium including a plurality of instructions which when executed, cause a processing device to perform a method comprising:
receiving instructions for a design of an embedded application, the design comprising a first driver and a second driver of a plurality of drivers, wherein the first driver and the second driver each request a different value of a global resource shared by the first driver and the second driver, and wherein the global resource comprises a common resource shared by the plurality of drivers to support the embedded application;
determining whether there is a conflict between the values of the global resource requested by the first driver and the second driver of the plurality of drivers, wherein determining whether there is a conflict comprises determining whether a first value of the global resource requested by the first driver of the plurality of drivers is different than a second value of the global resource requested by the second driver of the plurality of drivers;
notifying a user, with a graphical user interface (GUI), that the first value of the global resource requested by the first driver of the plurality of drivers results in a conflict with the second value of the global resource requested by the second driver of the plurality of drivers, during development of the embedded application;
receiving a first set of new values for the global resource input by the user, the first set of new values to resolve the conflict;
if the first set of new values does not resolve the conflict, calculating a second set of new values for the global resource, the second set of new values approximating the first and second values requested by the first and second drivers while resolving the conflict and optimizing an error metric for the global resource the error metric comprising at least one of a total average error or a mean square error;
presenting, in the GUI, the second set of new values as a feedback to the first and second requested values; and
providing the user with a user interface element to adjust the requested values until the conflict is resolved.
13. The article of manufacture of claim 12, wherein the method further comprises:
presenting the requested values as a system-level property, which corresponds to, but is different from, a hardware-level property of the global resource.
14. The article of manufacture of claim 12, wherein the method further comprises:
providing an indicator for the user to accept the new values.
15. The article of manufacture of claim 12, wherein the method further comprises:
presenting, in the GUI, an allowable range for the requested values.
16. A computer implemented method, comprising:
receiving instructions for a design of an embedded application, the design comprising a first driver and a second driver of a plurality of drivers, wherein the first driver and the second driver each request a different value of a global resource shared by the first driver and the second driver, and wherein the global resource comprises a common resource shared by the plurality of drivers to support the embedded application;
determining whether there is a conflict between the values of the global resource requested by the first driver and the second driver of the plurality of drivers, wherein determining whether there is a conflict comprises determining whether a first value of the global resource requested by the first driver of the plurality of drivers is different than a second value of the global resource requested by the second driver of the plurality of drivers;
notifying a user, with a graphical user interface (GUI), that the first value of the global resource requested by the first driver of the plurality of drivers results in a conflict with the second value of the global resource requested by the second driver of the plurality of drivers, during development of the embedded application; and
receiving a first set of new values for the global resource input by the user, the first set of new values to resolve the conflict;
if the first set of new values does not resolve the conflict, calculating a second set of new values for the global resource, the second set of new values approximating the first and second values requested by the first and second drivers while resolving the conflict and optimizing an error metric for the global resource, resource the error metric comprising at least one of a total average error or a mean square error;
presenting, in the GUI, the second set of new values as a feedback to the first and second requested values.
US11/707,202 2006-02-16 2007-02-14 Global parameter management graphical user interface (GUI) for embedded application design Active 2028-11-19 US8701023B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/707,202 US8701023B1 (en) 2006-02-16 2007-02-14 Global parameter management graphical user interface (GUI) for embedded application design

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US77429506P 2006-02-16 2006-02-16
US11/707,202 US8701023B1 (en) 2006-02-16 2007-02-14 Global parameter management graphical user interface (GUI) for embedded application design

Publications (1)

Publication Number Publication Date
US8701023B1 true US8701023B1 (en) 2014-04-15

Family

ID=50441617

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/707,202 Active 2028-11-19 US8701023B1 (en) 2006-02-16 2007-02-14 Global parameter management graphical user interface (GUI) for embedded application design
US11/707,201 Expired - Fee Related US8813021B1 (en) 2006-02-16 2007-02-14 Global resource conflict management for an embedded application design

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/707,201 Expired - Fee Related US8813021B1 (en) 2006-02-16 2007-02-14 Global resource conflict management for an embedded application design

Country Status (1)

Country Link
US (2) US8701023B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149850A1 (en) * 2011-07-27 2014-05-29 Qualcomm Incorporated Web Browsing Enhanced by Cloud Computing
US9766789B1 (en) 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
US10282278B2 (en) * 2016-08-03 2019-05-07 Sap Se Visualization of dependency check outcomes and error resolution

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10484551B2 (en) * 2015-03-18 2019-11-19 Ricoh Company, Limited Information processing apparatus configured to detect settings in a conflicting relation, information processing method, and information processing system

Citations (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4837676A (en) 1984-11-05 1989-06-06 Hughes Aircraft Company MIMD instruction flow computer architecture
US4837682A (en) 1987-04-07 1989-06-06 Glen Culler & Associates Bus arbitration system and method
US4975865A (en) 1989-05-31 1990-12-04 Mitech Corporation Method and apparatus for real-time control
US5179660A (en) 1989-05-15 1993-01-12 International Business Machines Incorporated System for reducing communications overhead in distributed database transactions by serializing in order related requests into single transmission message and receiving transmission response
US5193187A (en) 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5210750A (en) 1989-03-23 1993-05-11 International Business Machines Corporation Method and apparatus for distributed queue multiple access in a communication system
US5243529A (en) 1991-08-29 1993-09-07 Pioneer Electronic Corporation Navigation apparatus
US5260611A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5262943A (en) 1991-10-15 1993-11-16 National Computer Systems, Inc. System and process for information management and reporting
US5289535A (en) 1991-10-31 1994-02-22 At&T Bell Laboratories Context-dependent call-feature selection
US5298805A (en) 1991-08-29 1994-03-29 National Semiconductor Corporation Versatile and efficient cell-to-local bus interface in a configurable logic array
US5313620A (en) 1989-04-06 1994-05-17 Bell Communications Research, Inc. Selective receiver for each processor in a multiple processor system
US5317209A (en) 1991-08-29 1994-05-31 National Semiconductor Corporation Dynamic three-state bussing capability in a configurable logic array
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5345380A (en) 1990-12-18 1994-09-06 Bell Communications Research, Inc. System and processes specifying customized customer telecommunication services using a graphical interface
US5369742A (en) 1990-06-20 1994-11-29 Hitachi, Ltd. Image file and retrieving apparatus and method
US5371684A (en) 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
US5436575A (en) 1991-09-03 1995-07-25 Altera Corporation Programmable logic array integrated circuits
US5442763A (en) 1991-09-11 1995-08-15 International Business Machines Corporation System and method for preventing deadlock in multiprocessor multiple resource instructions
US5504899A (en) 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5506963A (en) 1991-10-03 1996-04-09 Sextant Avionique Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation
US5546595A (en) 1993-12-21 1996-08-13 Taligent, Inc. Object-oriented system using objects representing hardware devices, physical connectors and connections between the physical connectors for configuring a computer
US5574655A (en) 1991-10-30 1996-11-12 Xilinx, Inc. Method of allocating logic using general function components
US5590342A (en) 1994-11-29 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using virtual device drivers
US5598545A (en) 1989-10-13 1997-01-28 Texas Instruments Incorporated Circuitry and method for performing two operating instructions during a single clock in a processing device
US5615389A (en) * 1995-08-04 1997-03-25 International Business Machines Corporation Method and system for device resource resolution in a data processing system
US5619456A (en) 1996-01-19 1997-04-08 Sgs-Thomson Microelectronics, Inc. Synchronous output circuit
US5628025A (en) 1989-10-13 1997-05-06 Texas Instruments Incorporated Timing and control circuit and method for a synchronous vector processor
US5634004A (en) 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
US5648795A (en) 1993-02-26 1997-07-15 Binar Graphics, Inc. Method of resetting a computer video display mode
US5745904A (en) 1996-01-12 1998-04-28 Microsoft Corporation Buffered table user index
US5745750A (en) 1995-12-15 1998-04-28 International Business Machines Corporation Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems
US5761138A (en) 1995-11-22 1998-06-02 Samsung Electronics Co., Ltd. Memory devices having a flexible redundant block architecture
US5764089A (en) 1995-09-11 1998-06-09 Altera Corporation Dynamic latching device
US5764984A (en) 1993-02-26 1998-06-09 International Business Machines Corporation System for multiple co-existing operating system personalities on a microkernel
US5774005A (en) 1995-09-11 1998-06-30 Advanced Micro Devices, Inc. Latching methodology
US5781720A (en) * 1992-11-19 1998-07-14 Segue Software, Inc. Automated GUI interface testing
US5801967A (en) 1996-03-29 1998-09-01 Caterpillar Inc. Method for determining the volume between previous and current site surfaces
US5832211A (en) 1995-11-13 1998-11-03 International Business Machines Corporation Propagating plain-text passwords from a main registry to a plurality of foreign registries
US5930336A (en) 1996-09-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Voice dialing server for branch exchange telephone systems
US5966729A (en) 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6014036A (en) 1997-11-20 2000-01-11 International Business Machines Corporation Bidirectional data transfer path having increased bandwidth
US6034541A (en) 1997-04-07 2000-03-07 Lattice Semiconductor Corporation In-system programmable interconnect circuit
US6072431A (en) 1997-11-13 2000-06-06 Trimble Navigation Limited Extensible GPS receiver system
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6104251A (en) 1998-08-31 2000-08-15 Compaq Computer Corporation Method and apparatus for providing transient suppression in a central processor unit (CPU) phase locked loop clock (PLL) clock signal synthesis circuit
US6137466A (en) 1997-11-03 2000-10-24 Motorola, Inc. LCD driver module and method thereof
USH1920H (en) 1998-01-12 2000-11-07 Dsc/Celcore, Inc. System and method for processing wireless voice and data/fax telecommunications data
US6161151A (en) 1998-01-30 2000-12-12 Object Technology Licensing Corporation Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function
US6188262B1 (en) 1998-09-04 2001-02-13 Sun Microsystems, Inc. Synchronous polyphase clock distribution system
US6252544B1 (en) 1998-01-27 2001-06-26 Steven M. Hoffberg Mobile communication device
US6266041B1 (en) 1997-04-04 2001-07-24 Sharp Kabushiki Kaisha Active matrix drive circuit
US6275920B1 (en) * 1998-04-09 2001-08-14 Teranex, Inc. Mesh connected computed
US6285966B1 (en) 1998-06-25 2001-09-04 Fisher Controls International, Inc. Function block apparatus for viewing data in a process control system
US6292830B1 (en) 1997-08-08 2001-09-18 Iterations Llc System for optimizing interaction among agents acting on multiple levels
US6332160B1 (en) 1997-06-27 2001-12-18 Nec Corporation Method for matching distributed transactions and machine-readable recording medium with method programs
US6366653B1 (en) 1996-09-19 2002-04-02 Acer Incorporated System for integrating a telephone to a computer
US6374369B1 (en) 1999-05-21 2002-04-16 Philips Electronics North America Corporation Stochastic performance analysis method and apparatus therefor
US6434447B1 (en) * 1998-10-02 2002-08-13 Koninklijke Philips Electronics N.V. Control property is mapped modally compatible GUI element
US20020157043A1 (en) 2001-04-18 2002-10-24 Cheryl Hite Method and system for concurrent error identification in resource scheduling
US20020169804A1 (en) 2001-02-21 2002-11-14 Fridolin Faist System and method for storage space optimized memorization and generation of web pages
US20030014381A1 (en) * 1998-11-11 2003-01-16 John J. Mcmillan Method and system for identifying and resolving software conflicts and computer-readable storage medium having a program for executing the method
US20030023772A1 (en) * 1993-10-21 2003-01-30 Slivka Benjamin W. Method and computer system for integrating a compression system with an operating system
US6540674B2 (en) 2000-12-29 2003-04-01 Ibm Corporation System and method for supervising people with mental disorders
US6559861B1 (en) 1999-03-09 2003-05-06 Nortel Networks Limited Displaying computer interfaces in multiple languages
US20030167454A1 (en) 2001-03-30 2003-09-04 Vassil Iordanov Method of and system for providing metacognitive processing for simulating cognitive tasks
US6636901B2 (en) * 1998-01-30 2003-10-21 Object Technology Licensing Corp. Object-oriented resource lock and entry register
US20040103434A1 (en) 2002-11-25 2004-05-27 United Video Properties, Inc. Interactive television systems with conflict management capabilities
US20040153830A1 (en) * 2002-09-30 2004-08-05 Ensco, Inc. Method and system for object level software testing
US6781991B1 (en) 1999-02-26 2004-08-24 Lucent Technologies Inc. Method and apparatus for monitoring and selectively discouraging non-elected transport service over a packetized network
US6809736B1 (en) 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
US20050015639A1 (en) * 2003-07-14 2005-01-20 Microsoft Corporation Dynamic contextual helper user interface
US20050060723A1 (en) * 2003-09-12 2005-03-17 Avigdor Eldar Synchronizing use of a device by multiple software components in accordance with information stored at the device
US20050097168A1 (en) 2003-10-31 2005-05-05 Debargha Mukherjee Communications methods, communications session organizers, communications session participants, articles of manufacture, and communications systems
US6917812B2 (en) 2001-12-03 2005-07-12 Telefonaktiebolaget Lm Ericsson (Publ) Air interface scheduler for wireless communication networks
US20050177632A1 (en) 2004-02-10 2005-08-11 Yach David P. Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US6941477B2 (en) 2001-07-11 2005-09-06 O'keefe Kevin Trusted content server
US20050256907A1 (en) 2003-08-21 2005-11-17 Microsoft Corporation Systems and methods for the utilization of metadata for synchronization optimization
US7047521B2 (en) * 2001-06-07 2006-05-16 Lynoxworks, Inc. Dynamic instrumentation event trace system and methods
US20060103867A1 (en) * 2004-11-15 2006-05-18 Canon Kabushiki Kaisha Data processing apparatus, print setting adjusting method, recording medium storing computer-readable program therein, and program
US7053863B2 (en) * 2001-08-06 2006-05-30 Ati International Srl Wireless device method and apparatus with drawing command throttling control
US7058626B1 (en) 1999-07-28 2006-06-06 International Business Machines Corporation Method and system for providing native language query service
US20060168586A1 (en) 2000-08-09 2006-07-27 Stone Glen D System and method for interactively utilizing a user interface to manage device resources
US7085752B2 (en) 2003-03-12 2006-08-01 Microsoft Corporation Customization of metadata describing objects in a computing environment
US20060212330A1 (en) 2005-03-16 2006-09-21 Erkki Savilampi Network based processing of calendar meeting requests
US20060259885A1 (en) 2004-08-09 2006-11-16 Mortensen Michael P System and method for analyzing a circuit
US20060271537A1 (en) 2005-05-12 2006-11-30 Sivakumar Chandrasekharan Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service
US7145362B1 (en) 2004-09-10 2006-12-05 Xilinx, Inc. Clock signal-distribution network for an integrated circuit
US7171686B1 (en) * 1998-12-28 2007-01-30 Nortel Networks Corporation Operating system extension to provide security for web-based public access services
US7174548B2 (en) * 2001-10-15 2007-02-06 Intel Corporation Managing firmware download
US7184359B1 (en) * 2003-12-23 2007-02-27 Cypress Semiconductor Corp. System and method for staging concurrent accesses to a memory address location via a single port using a high speed sampling clock
US20070050710A1 (en) 2005-08-31 2007-03-01 Redekop Christopher K Graphical user interface for a web application
US20070094673A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Configuration of Isolated Extensions and Device Drivers
US7212999B2 (en) 1999-04-09 2007-05-01 Trading Technologies International, Inc. User interface for an electronic trading system
US20070130548A1 (en) * 2005-12-01 2007-06-07 Marat Zhaksilikov Point and click expression builder
US20070156512A1 (en) 2005-09-26 2007-07-05 Lockheed Martin Corporation System and method for modeling an asset portfolio and predicting performance thereof
US7246193B2 (en) 2003-01-30 2007-07-17 Rosemount, Inc. Interface module for use with a Modbus device network and a Fieldbus device network
US7275096B2 (en) * 2001-09-20 2007-09-25 Telelogic North America Inc. Computerized system and method for web enabling and/or web management of embedded applications
US7281040B1 (en) * 2000-03-07 2007-10-09 Cisco Technology, Inc. Diagnostic/remote monitoring by email
US7284157B1 (en) * 2002-03-22 2007-10-16 Microsoft Corporation Faulty driver protection comparing list of driver faults
US7346705B2 (en) 2002-08-28 2008-03-18 Apple Inc. Method of synchronising three or more electronic devices and a computer system for implementing that method
US20080133598A1 (en) * 2006-11-30 2008-06-05 Clark Williams Development tool for footprint reduction
US20080140677A1 (en) 2006-12-11 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method of providing web based personalized service
US7461358B2 (en) * 2004-07-23 2008-12-02 Sap Ag User interface for conflict resolution management
US7464370B2 (en) 2003-12-04 2008-12-09 International Business Machines Corporation Creating a method from a block of code
US20090013270A1 (en) 2007-07-05 2009-01-08 Oracle International Corporation Linking graphical elements of data visualizations
US7502031B1 (en) * 2004-01-20 2009-03-10 The Mathworks, Inc. Automatic component interface creator
US7506274B2 (en) 2005-05-18 2009-03-17 Microsoft Corporation System and method for interactively displaying multi-dimensional data
US20090089039A1 (en) 2007-10-01 2009-04-02 Ilan Shufer System and method of emulating functionality of a web service
US7546611B2 (en) * 2003-12-13 2009-06-09 Elecronics And Telecommunications Research Institute Driver agent device for supporting remote device driver development environment in embedded system and operation method thereof
US7551832B2 (en) 2001-12-05 2009-06-23 Scientific-Atlanta, Inc. Application management and interface for cluster control of time shift buffer
US7643417B2 (en) 2002-07-18 2010-01-05 British Telecommunications Plc Data rate control
US7685105B2 (en) 2001-04-05 2010-03-23 Envirospectives, Inc. System and method for indexing, organizing, storing and retrieving environmental information
US7683872B2 (en) * 2006-05-10 2010-03-23 Novatek Microelectronics Corp. Display driving apparatus and multi-line inversion driving method thereof
US7715339B2 (en) 2002-04-03 2010-05-11 Nokia Corporation PDP context error handling method
US7730167B2 (en) 2004-04-30 2010-06-01 Microsoft Corporation Methods and systems for halting synchronization loops in a distributed system
US7779046B2 (en) 2006-07-04 2010-08-17 Samsung Electronics Co., Ltd Web server and method to provide web-pages to manage devices
US20100251233A1 (en) * 2009-03-25 2010-09-30 Honeywell International Inc. Embedded computing system user interface emulated on a separate computing device
US7856422B2 (en) 2003-02-06 2010-12-21 Research In Motion Limited Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US7861273B2 (en) 2002-04-26 2010-12-28 Microsoft Corporation TV control resource management
US20110202918A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Virtualization apparatus for providing a transactional input/output interface
US8028258B1 (en) * 2006-02-16 2011-09-27 Cypress Semiconductor Corporation Interactive graphical pin assignment
US8051381B2 (en) * 2008-12-22 2011-11-01 Whirlpool Corporation Appliance with a graphical user interface for configuring an accessory

Patent Citations (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4837676A (en) 1984-11-05 1989-06-06 Hughes Aircraft Company MIMD instruction flow computer architecture
US4837682A (en) 1987-04-07 1989-06-06 Glen Culler & Associates Bus arbitration system and method
US5210750A (en) 1989-03-23 1993-05-11 International Business Machines Corporation Method and apparatus for distributed queue multiple access in a communication system
US5313620A (en) 1989-04-06 1994-05-17 Bell Communications Research, Inc. Selective receiver for each processor in a multiple processor system
US5179660A (en) 1989-05-15 1993-01-12 International Business Machines Incorporated System for reducing communications overhead in distributed database transactions by serializing in order related requests into single transmission message and receiving transmission response
US4975865A (en) 1989-05-31 1990-12-04 Mitech Corporation Method and apparatus for real-time control
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5628025A (en) 1989-10-13 1997-05-06 Texas Instruments Incorporated Timing and control circuit and method for a synchronous vector processor
US5598545A (en) 1989-10-13 1997-01-28 Texas Instruments Incorporated Circuitry and method for performing two operating instructions during a single clock in a processing device
US5193187A (en) 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5369742A (en) 1990-06-20 1994-11-29 Hitachi, Ltd. Image file and retrieving apparatus and method
US5345380A (en) 1990-12-18 1994-09-06 Bell Communications Research, Inc. System and processes specifying customized customer telecommunication services using a graphical interface
US5243529A (en) 1991-08-29 1993-09-07 Pioneer Electronic Corporation Navigation apparatus
US5298805A (en) 1991-08-29 1994-03-29 National Semiconductor Corporation Versatile and efficient cell-to-local bus interface in a configurable logic array
US5317209A (en) 1991-08-29 1994-05-31 National Semiconductor Corporation Dynamic three-state bussing capability in a configurable logic array
US5323069A (en) 1991-08-29 1994-06-21 National Semiconductor Corporation Direct I/O access to express bussing in a configurable logic array
US5338984A (en) 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5436575A (en) 1991-09-03 1995-07-25 Altera Corporation Programmable logic array integrated circuits
US5260611A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5442763A (en) 1991-09-11 1995-08-15 International Business Machines Corporation System and method for preventing deadlock in multiprocessor multiple resource instructions
US5506963A (en) 1991-10-03 1996-04-09 Sextant Avionique Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation
US5262943A (en) 1991-10-15 1993-11-16 National Computer Systems, Inc. System and process for information management and reporting
US5504899A (en) 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5574655A (en) 1991-10-30 1996-11-12 Xilinx, Inc. Method of allocating logic using general function components
US5289535A (en) 1991-10-31 1994-02-22 At&T Bell Laboratories Context-dependent call-feature selection
US5371684A (en) 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
US5781720A (en) * 1992-11-19 1998-07-14 Segue Software, Inc. Automated GUI interface testing
US5764984A (en) 1993-02-26 1998-06-09 International Business Machines Corporation System for multiple co-existing operating system personalities on a microkernel
US5648795A (en) 1993-02-26 1997-07-15 Binar Graphics, Inc. Method of resetting a computer video display mode
US20030023772A1 (en) * 1993-10-21 2003-01-30 Slivka Benjamin W. Method and computer system for integrating a compression system with an operating system
US5546595A (en) 1993-12-21 1996-08-13 Taligent, Inc. Object-oriented system using objects representing hardware devices, physical connectors and connections between the physical connectors for configuring a computer
US5634004A (en) 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
USRE39284E1 (en) 1994-11-29 2006-09-12 Intel Corporation Method and apparatus for reducing power consumption in a system using power management software capable of placing multiple configurable system devices in a reduced power consumption state
US5590342A (en) 1994-11-29 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using virtual device drivers
USRE39837E1 (en) 1994-11-29 2007-09-11 Intel Corporation Method and apparatus for adjusting a power consumption level based on the amount of time a processor clock is stopped
US5615389A (en) * 1995-08-04 1997-03-25 International Business Machines Corporation Method and system for device resource resolution in a data processing system
US5764089A (en) 1995-09-11 1998-06-09 Altera Corporation Dynamic latching device
US5774005A (en) 1995-09-11 1998-06-30 Advanced Micro Devices, Inc. Latching methodology
US5990717A (en) 1995-09-11 1999-11-23 Advanced Micro Devices, Inc. Latching method
US5832211A (en) 1995-11-13 1998-11-03 International Business Machines Corporation Propagating plain-text passwords from a main registry to a plurality of foreign registries
US5761138A (en) 1995-11-22 1998-06-02 Samsung Electronics Co., Ltd. Memory devices having a flexible redundant block architecture
US5745750A (en) 1995-12-15 1998-04-28 International Business Machines Corporation Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems
US5745904A (en) 1996-01-12 1998-04-28 Microsoft Corporation Buffered table user index
US5619456A (en) 1996-01-19 1997-04-08 Sgs-Thomson Microelectronics, Inc. Synchronous output circuit
US5801967A (en) 1996-03-29 1998-09-01 Caterpillar Inc. Method for determining the volume between previous and current site surfaces
US6366653B1 (en) 1996-09-19 2002-04-02 Acer Incorporated System for integrating a telephone to a computer
US5930336A (en) 1996-09-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Voice dialing server for branch exchange telephone systems
US6266041B1 (en) 1997-04-04 2001-07-24 Sharp Kabushiki Kaisha Active matrix drive circuit
US6219785B1 (en) 1997-04-04 2001-04-17 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6034541A (en) 1997-04-07 2000-03-07 Lattice Semiconductor Corporation In-system programmable interconnect circuit
US6332160B1 (en) 1997-06-27 2001-12-18 Nec Corporation Method for matching distributed transactions and machine-readable recording medium with method programs
US5966729A (en) 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6292830B1 (en) 1997-08-08 2001-09-18 Iterations Llc System for optimizing interaction among agents acting on multiple levels
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6137466A (en) 1997-11-03 2000-10-24 Motorola, Inc. LCD driver module and method thereof
US6072431A (en) 1997-11-13 2000-06-06 Trimble Navigation Limited Extensible GPS receiver system
US6242950B1 (en) 1997-11-20 2001-06-05 International Business Machines Corporation Bidirectional data transfer path having increased bandwidth
US6014036A (en) 1997-11-20 2000-01-11 International Business Machines Corporation Bidirectional data transfer path having increased bandwidth
USH1920H (en) 1998-01-12 2000-11-07 Dsc/Celcore, Inc. System and method for processing wireless voice and data/fax telecommunications data
US6252544B1 (en) 1998-01-27 2001-06-26 Steven M. Hoffberg Mobile communication device
US6429812B1 (en) 1998-01-27 2002-08-06 Steven M. Hoffberg Mobile communication device
US6161151A (en) 1998-01-30 2000-12-12 Object Technology Licensing Corporation Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function
US6636901B2 (en) * 1998-01-30 2003-10-21 Object Technology Licensing Corp. Object-oriented resource lock and entry register
US6275920B1 (en) * 1998-04-09 2001-08-14 Teranex, Inc. Mesh connected computed
US6285966B1 (en) 1998-06-25 2001-09-04 Fisher Controls International, Inc. Function block apparatus for viewing data in a process control system
US6104251A (en) 1998-08-31 2000-08-15 Compaq Computer Corporation Method and apparatus for providing transient suppression in a central processor unit (CPU) phase locked loop clock (PLL) clock signal synthesis circuit
US6188262B1 (en) 1998-09-04 2001-02-13 Sun Microsystems, Inc. Synchronous polyphase clock distribution system
US6434447B1 (en) * 1998-10-02 2002-08-13 Koninklijke Philips Electronics N.V. Control property is mapped modally compatible GUI element
US20030014381A1 (en) * 1998-11-11 2003-01-16 John J. Mcmillan Method and system for identifying and resolving software conflicts and computer-readable storage medium having a program for executing the method
US7028019B2 (en) * 1998-11-11 2006-04-11 Wise Solutions, Inc. Method and system of managing software conflicts in computer system that receive, processing change information to determine which files and shared resources conflict with one another
US7171686B1 (en) * 1998-12-28 2007-01-30 Nortel Networks Corporation Operating system extension to provide security for web-based public access services
US6781991B1 (en) 1999-02-26 2004-08-24 Lucent Technologies Inc. Method and apparatus for monitoring and selectively discouraging non-elected transport service over a packetized network
US6559861B1 (en) 1999-03-09 2003-05-06 Nortel Networks Limited Displaying computer interfaces in multiple languages
US7212999B2 (en) 1999-04-09 2007-05-01 Trading Technologies International, Inc. User interface for an electronic trading system
US6374369B1 (en) 1999-05-21 2002-04-16 Philips Electronics North America Corporation Stochastic performance analysis method and apparatus therefor
US7058626B1 (en) 1999-07-28 2006-06-06 International Business Machines Corporation Method and system for providing native language query service
US7281040B1 (en) * 2000-03-07 2007-10-09 Cisco Technology, Inc. Diagnostic/remote monitoring by email
US20060168586A1 (en) 2000-08-09 2006-07-27 Stone Glen D System and method for interactively utilizing a user interface to manage device resources
US6540674B2 (en) 2000-12-29 2003-04-01 Ibm Corporation System and method for supervising people with mental disorders
US20020169804A1 (en) 2001-02-21 2002-11-14 Fridolin Faist System and method for storage space optimized memorization and generation of web pages
US20030167454A1 (en) 2001-03-30 2003-09-04 Vassil Iordanov Method of and system for providing metacognitive processing for simulating cognitive tasks
US7685105B2 (en) 2001-04-05 2010-03-23 Envirospectives, Inc. System and method for indexing, organizing, storing and retrieving environmental information
US20020157043A1 (en) 2001-04-18 2002-10-24 Cheryl Hite Method and system for concurrent error identification in resource scheduling
US7047521B2 (en) * 2001-06-07 2006-05-16 Lynoxworks, Inc. Dynamic instrumentation event trace system and methods
US6941477B2 (en) 2001-07-11 2005-09-06 O'keefe Kevin Trusted content server
US7053863B2 (en) * 2001-08-06 2006-05-30 Ati International Srl Wireless device method and apparatus with drawing command throttling control
US7522125B2 (en) * 2001-08-06 2009-04-21 Ati International Srl Wireless device method and apparatus with drawing command throttling control
US7275096B2 (en) * 2001-09-20 2007-09-25 Telelogic North America Inc. Computerized system and method for web enabling and/or web management of embedded applications
US7174548B2 (en) * 2001-10-15 2007-02-06 Intel Corporation Managing firmware download
US6917812B2 (en) 2001-12-03 2005-07-12 Telefonaktiebolaget Lm Ericsson (Publ) Air interface scheduler for wireless communication networks
US7551832B2 (en) 2001-12-05 2009-06-23 Scientific-Atlanta, Inc. Application management and interface for cluster control of time shift buffer
US6809736B1 (en) 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
US7834882B2 (en) 2002-01-08 2010-11-16 Apple Inc. Virtualization of graphics resources
US7284157B1 (en) * 2002-03-22 2007-10-16 Microsoft Corporation Faulty driver protection comparing list of driver faults
US7715339B2 (en) 2002-04-03 2010-05-11 Nokia Corporation PDP context error handling method
US7861273B2 (en) 2002-04-26 2010-12-28 Microsoft Corporation TV control resource management
US7643417B2 (en) 2002-07-18 2010-01-05 British Telecommunications Plc Data rate control
US7346705B2 (en) 2002-08-28 2008-03-18 Apple Inc. Method of synchronising three or more electronic devices and a computer system for implementing that method
US20040153830A1 (en) * 2002-09-30 2004-08-05 Ensco, Inc. Method and system for object level software testing
US20040103434A1 (en) 2002-11-25 2004-05-27 United Video Properties, Inc. Interactive television systems with conflict management capabilities
US7246193B2 (en) 2003-01-30 2007-07-17 Rosemount, Inc. Interface module for use with a Modbus device network and a Fieldbus device network
US7856422B2 (en) 2003-02-06 2010-12-21 Research In Motion Limited Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US7085752B2 (en) 2003-03-12 2006-08-01 Microsoft Corporation Customization of metadata describing objects in a computing environment
US20050015639A1 (en) * 2003-07-14 2005-01-20 Microsoft Corporation Dynamic contextual helper user interface
US7506305B2 (en) 2003-07-14 2009-03-17 Microsoft Corporation Dynamic contextual helper user interface
US20050256907A1 (en) 2003-08-21 2005-11-17 Microsoft Corporation Systems and methods for the utilization of metadata for synchronization optimization
US20050060723A1 (en) * 2003-09-12 2005-03-17 Avigdor Eldar Synchronizing use of a device by multiple software components in accordance with information stored at the device
US20050097168A1 (en) 2003-10-31 2005-05-05 Debargha Mukherjee Communications methods, communications session organizers, communications session participants, articles of manufacture, and communications systems
US7464370B2 (en) 2003-12-04 2008-12-09 International Business Machines Corporation Creating a method from a block of code
US7546611B2 (en) * 2003-12-13 2009-06-09 Elecronics And Telecommunications Research Institute Driver agent device for supporting remote device driver development environment in embedded system and operation method thereof
US7184359B1 (en) * 2003-12-23 2007-02-27 Cypress Semiconductor Corp. System and method for staging concurrent accesses to a memory address location via a single port using a high speed sampling clock
US7502031B1 (en) * 2004-01-20 2009-03-10 The Mathworks, Inc. Automatic component interface creator
US20050177632A1 (en) 2004-02-10 2005-08-11 Yach David P. Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US7730167B2 (en) 2004-04-30 2010-06-01 Microsoft Corporation Methods and systems for halting synchronization loops in a distributed system
US7461358B2 (en) * 2004-07-23 2008-12-02 Sap Ag User interface for conflict resolution management
US7487471B2 (en) * 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
US20060259885A1 (en) 2004-08-09 2006-11-16 Mortensen Michael P System and method for analyzing a circuit
US7145362B1 (en) 2004-09-10 2006-12-05 Xilinx, Inc. Clock signal-distribution network for an integrated circuit
US20060103867A1 (en) * 2004-11-15 2006-05-18 Canon Kabushiki Kaisha Data processing apparatus, print setting adjusting method, recording medium storing computer-readable program therein, and program
US20060212330A1 (en) 2005-03-16 2006-09-21 Erkki Savilampi Network based processing of calendar meeting requests
US20060271537A1 (en) 2005-05-12 2006-11-30 Sivakumar Chandrasekharan Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service
US7506274B2 (en) 2005-05-18 2009-03-17 Microsoft Corporation System and method for interactively displaying multi-dimensional data
US20070050710A1 (en) 2005-08-31 2007-03-01 Redekop Christopher K Graphical user interface for a web application
US20070156512A1 (en) 2005-09-26 2007-07-05 Lockheed Martin Corporation System and method for modeling an asset portfolio and predicting performance thereof
US20070094673A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Configuration of Isolated Extensions and Device Drivers
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US20070130548A1 (en) * 2005-12-01 2007-06-07 Marat Zhaksilikov Point and click expression builder
US8028258B1 (en) * 2006-02-16 2011-09-27 Cypress Semiconductor Corporation Interactive graphical pin assignment
US7683872B2 (en) * 2006-05-10 2010-03-23 Novatek Microelectronics Corp. Display driving apparatus and multi-line inversion driving method thereof
US7779046B2 (en) 2006-07-04 2010-08-17 Samsung Electronics Co., Ltd Web server and method to provide web-pages to manage devices
US20080133598A1 (en) * 2006-11-30 2008-06-05 Clark Williams Development tool for footprint reduction
US20080140677A1 (en) 2006-12-11 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method of providing web based personalized service
US20090013270A1 (en) 2007-07-05 2009-01-08 Oracle International Corporation Linking graphical elements of data visualizations
US20090089039A1 (en) 2007-10-01 2009-04-02 Ilan Shufer System and method of emulating functionality of a web service
US8051381B2 (en) * 2008-12-22 2011-11-01 Whirlpool Corporation Appliance with a graphical user interface for configuring an accessory
US20100251233A1 (en) * 2009-03-25 2010-09-30 Honeywell International Inc. Embedded computing system user interface emulated on a separate computing device
US20110202918A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Virtualization apparatus for providing a transactional input/output interface

Non-Patent Citations (19)

* Cited by examiner, † Cited by third party
Title
Cypress Micorsystems, Application Note, "Global Resources in PSoC TM Designer," AN2221, Revision A, Oct. 15, 2004, 7 pages.
Cypress Perform, PSoC Designer TM, IDE User Guide, Document #38-12002 Rev. B, 2002-2005, 193 pages.
Cypress, Application Note, "PSoC Express TM Primer: First Introduction," AN2261, Revision A, Mar. 15, 2005, pp. 1-19.
David Stepner et all., Embedded Application Design Using a Real-Time OS. ACM, 1999. pp. 1-6. *
Oleg Sokolsky, "Resource Modeling for Embedded Systems Design," IEEE, 2004, 6 pages.
Person et al., Special Edition Using Windows 95, Second Edition, 1997, pp. 194-196. *
Stepner et al., "Embedded Application Design Using a Real-Time OS," ACM, 1999, 6 pages.
Tech Support, Apr. 2003, vol. 4, Issue 4, 1 Page Image. *
Tech Support, Apr. 2003, vol. 4, Issue 4, 6 Pages. *
U.S. Appl. No. 11/707/201: "Global Resource Conflict Management for an Embedded Application Design" Kenneth Y. Ogami et al., filed on Feb. 14, 2007; 37 pages.
USPTO Advisory Action for U.S. Appl. No. 11/707,201 dated May 9, 2011; 3 pages.
USPTO Advisory Action for U.S. Appl. No. 11/707,201 dated Sep. 6, 2012; 3 pages.
USPTO Final Rejection for U.S. Appl. No. 11/707,201 dated Jul. 3, 2012; 21 pages.
USPTO Final Rejection for U.S. Appl. No. 11/707,201 dated Mar. 2, 2011; 20 pages.
USPTO Non Final Rejection for U.S. Appl. No. 11/707,201 dated Jan. 31, 2012; 21 pages.
USPTO Non-Final Rejection for U.S. Appl. No. 11/512,545 May 13, 2008; 7 pages.
USPTO Non-Final Rejection for U.S. Appl. No. 11/707,201 dated Sep. 14, 2010; 20 pages.
USPTO Non-Final Rejection for U.S. Appl. No. 11/707,201 dated Sep. 25, 2013; 12 pages.
USPTO Notice of Allowance for U.S. Appl. No. 11/512,545 Oct. 7, 2008; 7 pages.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149850A1 (en) * 2011-07-27 2014-05-29 Qualcomm Incorporated Web Browsing Enhanced by Cloud Computing
US9766789B1 (en) 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
US10936169B2 (en) 2014-07-07 2021-03-02 Cloneless Media, LLC Media effects system
US10282278B2 (en) * 2016-08-03 2019-05-07 Sap Se Visualization of dependency check outcomes and error resolution

Also Published As

Publication number Publication date
US8813021B1 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
US8069436B2 (en) Providing hardware independence to automate code generation of processing device firmware
US8661401B1 (en) Interactive graphical pin assignment
US8286125B2 (en) Model for a hardware device-independent method of defining embedded firmware for programmable systems
US9536023B2 (en) Code generation for using an element in a first model to call a portion of a second model
US9608893B2 (en) Methods and systems for parsing data objects
US20160170719A1 (en) Software database system and process of building and operating the same
US9459842B1 (en) Multivariable transfer functions
US20070234316A1 (en) Methods and systems for development of software for complex systems
US20070006188A1 (en) Modular code generation
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
US7526764B2 (en) System and method for deployment plan
US8683358B2 (en) Application element group operations allowing duplication while preserving interdependent logic
US20120227028A1 (en) Graphical programming object population user interface autogeneration
CN112534436A (en) Integrated circuit as a service
US8701023B1 (en) Global parameter management graphical user interface (GUI) for embedded application design
US8112739B2 (en) Data driven transfer functions
US8387019B1 (en) Graphical user assignable register map
US20070157150A1 (en) Base project resource management and application synthesis
Tomasek et al. On web services ui in user interface generation in standalone applications
US7503019B2 (en) Point and click expression builder
US9710582B1 (en) Delivering circuit designs for programmable integrated circuits
US20230222275A1 (en) Systems And Methods For Correcting Errors in Code For Circuit Designs
EP4235437A1 (en) A test system and method for testing of apis
US20070165765A1 (en) Use of placeable channels in the construction of embedded applications
Perez DICE simulation tools-Intermediate version

Legal Events

Date Code Title Description
AS Assignment

Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZHAKSILIKOV, MARAT;OGAMI, KENNETH Y.;REEL/FRAME:018966/0450

Effective date: 20070213

AS Assignment

Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEST, ANDREW;REEL/FRAME:031955/0096

Effective date: 20111220

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK

Free format text: SECURITY INTEREST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:035240/0429

Effective date: 20150312

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

AS Assignment

Owner name: MONTEREY RESEARCH, LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYPRESS SEMICONDUCTOR CORPORATION;REEL/FRAME:044938/0360

Effective date: 20171218

AS Assignment

Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC;REEL/FRAME:044949/0962

Effective date: 20171218

Owner name: SPANSION LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC;REEL/FRAME:044949/0962

Effective date: 20171218

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:058002/0470

Effective date: 20150312

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8