Use of placeable channels in the construction of embedded applications

Information

  • Patent Application
  • 20070165765
  • Publication Number
    20070165765
  • Date Filed
    September 05, 2006
    18 years ago
  • Date Published
    July 19, 2007
    17 years ago
Abstract
In one embodiment, a method for constructing an application includes identifying one or more channel types for a design of the application. Each of the identified channel types specifies resource needs of a hardware function pertaining to the design. The method further includes creating channel instances of the identified channel types for an application project having sufficient hardware resources for hardware functions pertaining to the design, where each of the created channel instances is customized for the design.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.



FIG. 1 illustrates an exemplary system in which embodiments of the present invention may operate.



FIG. 2 illustrates a firmware stack model in accordance with one embodiment of the invention.



FIG. 3 is a block diagram of one embodiment of a processing device maker.



FIG. 4 illustrates an exemplary design composition user interface.



FIG. 5 illustrates an exemplary device selection user interface.



FIG. 6 is a flow diagram of one embodiment of a method for constructing a custom application.



FIG. 7 is a flow diagram of one embodiment of a method for instantiating channels for a specific base project.



FIG. 8A illustrates an exemplary pin assignment user interface.



FIG. 8B illustrates data components of a placeable channel.



FIG. 9 is a flow diagram of one embodiment of a base project synthesis method.



FIG. 10 is a block diagram of one embodiment of a processing device.



FIG. 11 is a block diagram of one embodiment of a computer system.


Claims
  • 1. A method, comprising: identifying one or more channel types for a design of an application, each of the identified channel types specifying resource needs of a hardware function pertaining to the design; andcreating channel instances of the identified channel types for an application project having sufficient hardware resources for hardware functions pertaining to the design, each of the created channel instances being customized for the design.
  • 2. The method of claim 1 wherein the application is an embedded application for a processing device.
  • 3. The method of claim 1 wherein the design comprises a plurality of drivers that specify the one or more channel types.
  • 4. The method of claim 1 wherein each of the channel types is associated with one or more user modules.
  • 5. The method of claim 4 wherein each of the channel types comprises channel metadata and channel source code, the channel metadata comprising at least one of identifiers of the user modules, data describing placement of the user modules on a processing device, a list of hardware resources to be used for a corresponding channel instance, a pin priority list to be used for the corresponding channel instance, a set of channel properties, and a template file list identifying pieces of the channel source code that are to be included in the channel instance.
  • 6. The method of claim 5 wherein one or more hardware resources in the list are marked assignable to allow for automatic selection of any hardware resource of a specific type.
  • 7. The method of claim 5 wherein the channel properties are set by a corresponding driver.
  • 8. The method of claim 7 wherein creating channel instances comprises: setting parameters of the user modules based on the channel properties to customize the channel instance for the corresponding driver.
  • 9. The method of claim 7 wherein creating channel instances comprises: making substitutions in the channel source code to customize the channel instance for the corresponding driver.
  • 10. The method of claim 5 wherein: the channel source code comprises placeholders for substitution with customized data; andthe customized data comprises at least one of user module instance identifiers, an address of the channel instance, and channel property settings.
  • 11. The method of claim 5 wherein: one of the channel types is designated as a shared channel; andmetadata of the shared channel specifies a maximum number of channel instances that can share resources associated with the shared channel.
  • 12. The method of claim 5 wherein: one of the channel types is designated as a part specific channel; andmetadata of the part specific channel identifies processing devices associated with different implementations of the part specific channels.
  • 13. An article of manufacture comprising: a machine-readable medium including a plurality of instructions which when executed perform a method comprising:identifying one or more channel types for a design of an application, each of the identified channel types specifying resource needs of a hardware function pertaining to the design; andcreating channel instances of the identified channel types for an application project having sufficient hardware resources for hardware functions pertaining to the design, each of the created channel instances being customized for the design.
  • 14. The article of manufacture of claim 13 wherein the design comprises a plurality of drivers that specify the one or more channel types.
  • 15. The article of manufacture of claim 13: wherein each of the channel types is associated with one or more user modules; andeach of the channel types comprises channel metadata and channel source code, the channel metadata comprising at least one of identifiers of the user modules, data describing placement of the user modules on a processing device, a list of hardware resources to be used for a corresponding channel instance, a pin priority list to be used for the corresponding channel instance, a set of channel properties, and a template file list identifying pieces of the channel source code that are to be included in the channel instance.
  • 16. The article of manufacture of claim 15 wherein one or more hardware resources in the list are marked assignable to allow for automatic selection of any hardware resource of a specific type.
  • 17. An apparatus comprising: a design evaluator to identify one or more channel types for a design of an application, each of the identified channel types specifying resource needs of a hardware function pertaining to the design; andan application composer to create channel instances of the identified channel types for an application project having sufficient hardware resources for hardware functions pertaining to the design, each of the created channel instances being customized for the design.
  • 18. The apparatus of claim 17 wherein the application is an embedded application for a processing device.
  • 19. The apparatus of claim 17 wherein: the design comprises a plurality of drivers that specify the one or more channel types; andeach of the channel types is associated with one or more user modules, each of the channel types comprising channel metadata and channel source code, the channel metadata comprising at least one of identifiers of the user modules, data describing placement of the user modules on a processing device, a list of hardware resources to be used for a corresponding channel instance, a pin priority list to be used for the corresponding channel instance, a set of channel properties, and a template file list identifying pieces of the channel source code that are to be included in the channel instance.
  • 20. The apparatus of claim 19 wherein: one or more hardware resources in the list are marked assignable to allow for automatic selection of any hardware resource of a specific type; andthe channel properties are set by a corresponding driver.
Provisional Applications (2)
Number Date Country
60741727 Dec 2005 US
60741650 Dec 2005 US