How to make design
I want to understand more how to make design of my own hardware device that will use linux. Are there any tutorials/good books? What rules must I follow? How BIOS must be written? Etc.
I found many sources how to write linux embeded software but very few sources how to design hardware that runs with linux. Thanks |
Hi,
Welcome to LQ! For one you could look at Data Sheets from manufactures to understand particular chipsets. Or select a embed design/developer kit to see how it is done. Without taking classes you would need to read loads of white papers or data sheets. Kits are the easy way to get into the hardware end of embeds. You will get tool chain and other support. Unless your into re-inventing the wheel then that would be the best bet. Look at Microcontroller.com - Embedded Systems Supersite & Online Tutorials (cool!) EDIT: I suggest that you use descriptive titles. FYI: I suggest that you look at 'How to Ask Questions the Smart Way' so in the future your queries provide information that will aid us in diagnosis of the problem or query. HTH! |
Arm microprocessors are well supported with linux toolsets including ROM based kernel versions.
Have look at one of the various stand alone systems. These also have a JTAG interface which allows you to flash the whole system from scratch. A full linux kernel requires a variant with an MMU an MMU. |
The way to make a design is this:
1. Find a marketable product idea & design that. 2. Failing 1 above, master technologies that will make you a marketable commodity when you graduate, and build something to make your knowledge of them manifest. That may get you a job. You are studying electronics? Having designed it, & packaged it, you have the mountains of approvals, conformance, & marketing to climb. The Days of guys like Clive Sinclair are over, and it's big business in the main. |
There is a huge gap between packaging and marketing a design, and the simple act of creating the circuitry (my interpretation of 'design') that runs the system. If we assume that the OP knows generally what style of system he/she wants to design (relative CPU power, what application emphasis to use, etc), then choosing a CPU early on, along with choices about peripheral chips would define the design at a block-diagram level. Many CPU vendors publish open reference designs for their CPUs and peripheral chips. Choosing silicon that has these reference designs available would certainly make the initial design iterations easier. Choosing peripheral devices that have some existing Linux driver support would also simplify bringing the design to life.
The Linux kernel architecture is generally a core of software modules that have little interaction with external entities, and as long as there is a memory manager and a source of interrupts to drive the scheduler, this part is probably highly portable. Much of the rest is driver code that allows the kernel to control hardware. Again, the choice of silicon with existing software support would make life easier. It is hard to say what, if any, special requirements are imposed by Linux (as compared to other OS's). As with all embedded systems design, bringing up the initial version can be tedious, as there is concurrent development of software and hardware. Making sure there is adequate support for testing and debugging is a big aid. A serial console is something I would call a must-have, at least for the early testing stages. The use of FPGAs for peripheral support is a big aid as well, as this allows the design to be flexible and also permits incremental design and testing, as well as soft-soldering to fix bugs and add features. --- rod. |
I think you've taken the OP a little beyond year 1 syllabus ;-).
|
I didn't know this question had any academic, business, or particular other basis. The question does seem a bit naive, but that shouldn't necessarily be a reason not to provide a frank reply.
--- rod. |
I know little about the topic, but...
Quote:
? |
Quote:
|
All times are GMT -5. The time now is 06:19 AM. |