Simplifying generation of device drivers for different user systems to facilitate communication with a hardware device
First Claim
1. A method of generating a device driver for a hardware device for which there is no said device driver within a user system, said device driver comprising a plurality of instructions and enabling a user application executing in a user system to communicate with said hardware device, said user system supporting said user application and said device driver in a runtime environment, said method comprising:
- receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device;
receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment, wherein said second specification comprises an operating system specification, and said runtime environment comprises existing devices within said user system; and
generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said user application to communicate with said hardware device,wherein when said second specification is changed to correspond to a second user system with a second runtime environment, a second device driver is generated for said second user system based on said second runtime environment, andwherein said first specification further specifies a plurality of registers present in said hardware device also in said formal language, said generating further comprises generating a first subset of instructions providing an interface for said user application to access said plurality of registers, wherein said first subset of instructions are contained in said plurality of instructions.
1 Assignment
0 Petitions
Accused Products
Abstract
Generating device drivers for different user systems to facilitate communication with a hardware device. A device specification containing a program logic specifying the manner in, which external devices can communicate with the hardware device, is received as one input. A software specification specifying various characteristics of a runtime environment (e.g., operating system, processor, hardware components) is received as another input. A device driver generator then programmatically parses the input specifications and automatically generates the device driver code.
14 Citations
24 Claims
-
1. A method of generating a device driver for a hardware device for which there is no said device driver within a user system, said device driver comprising a plurality of instructions and enabling a user application executing in a user system to communicate with said hardware device, said user system supporting said user application and said device driver in a runtime environment, said method comprising:
-
receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device; receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment, wherein said second specification comprises an operating system specification, and said runtime environment comprises existing devices within said user system; and generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said user application to communicate with said hardware device, wherein when said second specification is changed to correspond to a second user system with a second runtime environment, a second device driver is generated for said second user system based on said second runtime environment, and wherein said first specification further specifies a plurality of registers present in said hardware device also in said formal language, said generating further comprises generating a first subset of instructions providing an interface for said user application to access said plurality of registers, wherein said first subset of instructions are contained in said plurality of instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method by which a developer generates a device driver for a hardware device of a user system, said method comprising:
-
receiving from a designer of said hardware device a first program logic according to a formal language, said first program logic specifying a manner in which external devices communicate with said hardware device; receiving a second program logic according to a formal language indicating a plurality of characteristics of a runtime environment; and providing the first and second program logic and a plurality of characteristics of said hardware device and said plurality of characteristics of a runtime environment to a device driver generator, wherein said device driver generator forms a plurality of instructions constituting said device driver, wherein when said plurality of characteristics of said runtime environment is changed to correspond to another user system with another runtime environment and said device driver is generated for said another user system; specifying a plurality of registers present in said hardware device also in said formal language; and generating a first subset of instructions providing an interface for a user application to access said plurality of registers, wherein said first subset of instructions are contained in said program logic.
-
-
13. A non-transitory program storage device readable by computer, and comprising a program of instructions executable by said computer to enable a user application executing in a user system to communicate with a hardware device and to perform a method of generating a device driver for said hardware device, said user system supporting said user application and said device driver in a runtime environment, said method comprising:
-
receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device; receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment; and generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said user application to communicate with said hardware device, wherein when said second specification is changed to correspond to a second user system with a second runtime environment and a second device driver is generated for said second user system, and wherein said first specification further specifies a plurality of registers present in said hardware device also in said formal language, said generating further comprises generating a first subset of instructions providing an interface for said user application to access said plurality of registers, wherein said first subset of instructions are contained in said plurality of instructions.
-
-
14. A non-transitory program storage device readable by computer, and comprising a program of instructions executable by said computer to perform a method of generating a device driver for a hardware device, said device driver being designed for a user system, said method comprising:
-
receiving from a designer of said hardware device a first program logic according to a formal language, said first program logic specifying a manner in which external devices communicate with said hardware device; receiving a second program logic according to a formal language indicating a plurality of characteristics of a runtime environment; and providing the first and second program logic and a plurality of characteristics of said hardware device and said plurality of characteristics of a runtime environment to a device driver generator, wherein said device driver generator forms a plurality of instructions constituting said device driver, and wherein when said plurality of characteristics of said runtime environment is changed to correspond to another user system with another runtime environment and said device driver is generated for said another user system; specifying a plurality of registers present in said hardware device also in said formal language; and generating a first subset of instructions providing an interface for a user application to access said plurality of registers, wherein said first subset of instructions are contained in said program logic.
-
-
15. An apparatus for generating a device driver for a hardware device, said device driver comprising a plurality of instructions and enabling a user application executing in a user system to communicate with said hardware device, said user system supporting said user application and said device driver in a runtime environment, said apparatus comprising:
-
means for receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device; means for receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment; and means for executing a set of instructions for generating said device driver for generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said user application to communicate with said hardware device, wherein when said second specification is changed to correspond to a second user system with a second runtime environment, a second device driver is generated for said second user system, wherein said first specification further specifies a plurality of registers present in said hardware device also in said formal language, said generating further comprises generating a first subset of instructions providing an interface for said user application to access said plurality of registers, wherein said first subset of instructions are contained in said plurality of instructions.
-
-
16. An apparatus by which a developer generates a device driver being designed to operate a hardware device of a user system, said apparatus comprising:
-
means for receiving from a designer of said hardware device a first program logic according to a formal language, said first program logic specifying a manner in which external devices communicate with said hardware device; receiving a second program logic according to a formal language indicating a plurality of characteristics of a runtime environment; means for executing a set of instructions for generating said device driver to form a plurality of instructions constituting said device driver; and means for providing the first and second program logic and a plurality of characteristics of said hardware device and said plurality of characteristics of a runtime environment to a device driver generator, wherein when said plurality of characteristics of said runtime environment is changed to correspond to another user system with another runtime environment and said device driver is generated for said another user system; means for specifying a plurality of registers present in said hardware device also in said formal language; and means for generating a first subset of instructions providing an interface for a user application to access said plurality of registers, wherein said first subset of instructions are contained in said program logic.
-
-
17. A method of generating a device driver for a hardware device, said device driver comprising a plurality of instructions and enabling a user application executing in a user system to communicate with said hardware device, said user system supporting said user application and said device driver in a runtime environment, said method comprising:
-
receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device; receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment, wherein said second specification comprises an operating system specification; and generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said user application to communicate with said hardware device, wherein when said second specification is changed to correspond to a second user system with a second runtime environment, a second device driver is generated for said second user system based on said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment, and wherein said first specification further specifies a plurality of registers present in said hardware device also in said formal language, said generating further comprises generating a first subset of instructions providing an interface for said user application to access said plurality of registers, wherein said first subset of instructions are contained in said plurality of instructions.
-
-
18. A method of generating a device driver for a hardware device, said device driver comprising a plurality of instructions that enable said hardware device to communicate with a user system, said plurality of instructions comprising an interrupt service routine (ISR), said user system supporting said device driver in a runtime environment, said method comprising:
-
receiving a first specification in a formal language indicating a plurality of characteristics of said hardware device, wherein said plurality of characteristics comprises interrupts; receiving a second specification in a formal language indicating a plurality of characteristics of said runtime environment, wherein said plurality of characteristics comprises any of a nature of an ISR function, a synchronization of communication between said device driver and said ISR, and an interrupt request (IRQ) number, wherein said second specification comprises an operating system specification; and generating said plurality of instructions according to said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment such that said plurality of instructions execute on said user system and enable said hardware device to communicate with said user system, wherein when said second specification is changed to correspond to a second user system with a second runtime environment, a second device driver comprising a second ISR is generated for said second user system based on said plurality of characteristics of said hardware device and said plurality of characteristics of said runtime environment. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification