IP Library Granted Patent US 8,069,436
Granted Patent B2
US 8,069,436 · App. 11/200,619 · Granted Nov 29, 2011

Providing hardware independence to automate code generation of processing device firmware

Assignee: Cypress Semiconductor Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,069,436
App. No.
11/200,619
Granted
Nov 29, 2011
Kind
B2
Abstract

A user application is generated in response to user input, wherein the user application is described in a user application description. Processing device code is generated for a targeted processing device based at least in part on the user application description without user intervention, wherein the processing device code includes a system layer, wherein functionality of the system layer is independent of the targeted processing device.

Claims (39)

1. A method, comprising:

generating a user application in response to user input, wherein the user application is described in a user application description; and

generating processing device code for a targeted processing device based at least in part on the user application description without user intervention, wherein the processing device code includes

a system layer, wherein functionality of the system layer is independent of the targeted processing device,

wherein the processing device code includes a hardware encapsulation layer to represent the targeted processing device to the system layer,

wherein the hardware encapsulation layer is generated based at least in part on the targeted processing device and wherein the hardware encapsulation layer comprises a low level driver configured to convert signals received from the targeted processing device to signals which the system layer can process.

2. The method of claim 1 wherein the system layer and the hardware encapsulation layer communicate using hardware independent interfaces.

3. The method of claim 1 wherein the processing device code includes a base project layer to support the hardware encapsulation layer, wherein the base project layer is generated based at least in part on the targeted processing device.

4. The method of claim 1 wherein generating the processing device code includes obtaining processing device code from libraries.

5. The method of claim 4 , further comprising updating the libraries with new processing device code.

6. The method of claim 1 , further comprising generating second processing device code for a second targeted processing device based at least in part on the user application description without user intervention, wherein the second targeted processing device is different than the targeted processing device, wherein the second processing device code includes a second system layer that is similar to the system layer.

7. The method of claim 1 , further comprising performing a simulation of the user application, wherein the simulation is performed independent of the targeted processing device.

8. An article of manufacture, comprising:

a machine-readable storage medium storing a plurality of instructions which when executed perform operations comprising:

presenting a processing device maker graphical user interface (GUI) to allow a user to construct a user application using a processing device maker, wherein the user application is described in a user application description; and

generating processing device code for a targeted processing device based at least in part on the user application description without user intervention, wherein the processing device code includes

a system layer, wherein functionality of the system layer is independent of the targeted processing device,

wherein the processing device code includes a hardware encapsulation layer to represent the targeted processing device to the system layer,

wherein the hardware encapsulation layer is generated based at least in part on the targeted processing device and wherein the hardware encapsulation layer comprises a low level driver configured to convert signals received from the targeted processing device to signals which the system layer can process.

9. The article of manufacture of claim 8 wherein the system layer includes:

a transfer function to describe behavior of an output device of the targeted processing device; and

a driver associated with the output device.

10. The article of manufacture of claim 9 wherein the transfer function and the driver communicate using hardware independent application program interfaces.

11. The article of manufacture of claim 8 wherein the system layer communicates with the hardware encapsulation layer using hardware independent channels.

12. The article of manufacture of claim 8 wherein the processing device code includes a base project layer to operate at a register level of the targeted processing device to support the hardware encapsulation layer, wherein the base project layer is generated based at least in part on the targeted processing device.

13. The article of manufacture of claim 12 wherein the base project layer includes a user module to configure a portion of a block array of the targeted processing device.

14. The article of manufacture of claim 8 wherein execution of the plurality of instructions further perform operations comprising:

generating second processing device code for a second targeted processing device based at least in part on the user application description without user intervention, wherein the second targeted processing device is different than the targeted processing device, wherein the second processing device code includes the system layer, a second hardware encapsulation layer, and a second base project layer, wherein the second hardware encapsulation layer and the second base project layer are generated for the second targeted processing device.

15. A system, comprising:

a targeted processing device including a non-volatile storage device; and

a computer system coupled to the targeted processing device, the computer system having stored a plurality of instructions which when executed by the computer system perform operations comprising:

presenting a processing device maker graphical user interface (GUI) to allow a user to construct a user application using a processing device maker, wherein the user application is described in a user application description; and

generating processing device code for the targeted processing device based at least in part on the user application description without user intervention, wherein the processing device code includes

a system layer, wherein functionality of the system layer is independent of the targeted processing device and

wherein the processing device code further includes a hardware encapsulation layer and a base project layer, wherein the hardware encapsulation layer and the base project layer are generated based on the targeted processing device and wherein the hardware encapsulation layer comprises a low level driver configured to convert signals received from the targeted processing device to signals which the system layer can process.

16. The system of claim 15 wherein the system layer communicates with the hardware encapsulation layer using hardware independent channels.

17. The system of claim 15 wherein execution of the plurality of instructions further perform operations comprising:

compiling the processing device code into a binary image; and

loading the binary image into the non-volatile storage of the targeted processing device.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: CYPRESS SEMICONDUCTOR CORPORATION
To: MONTEREY RESEARCH, LLC
Reel/Frame 040911/0238 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 11, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 039708/0001 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2005
From: SNYDER, WARREN; MAHESHWARI, DINESH; OGAMI, KENNETH; HASTINGS, MARK
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 016859/0579 →
Continuity (1)
Related Publication 20060037007A1 · Feb 16, 2006