Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Do hardware designer consider software(Firmware or drivers) while designing hardware?

Status
Not open for further replies.

rezaeee

Junior Member level 1
Joined
Oct 3, 2015
Messages
19
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
265
I like to know what's the procedure of building a new device? Foe example a hardware designer decides to make a new laptop that can run Windows or Linux, or someone wants to build a new Android device, he choose a proper CPU and other parts like RAM, graphic card, sound card, Wi-Fi, Bluetooth, Storage, LCD, etc.

But what about firmware and drivers?

Totally I like to know what software consideration should a hardware designer has to build a new device?

Simply, in Desktop computer, we buy the parts separately(mother board, graphic card, sound card, LCD, CD/DVD ROM, etc) and do not have huge concern and special consideration to choose(maybe only thinking about they communication protocol SATA, IDE, PCI ports, etc).

But what when we like to make a laptop or Android tablet? Should we write any low-level code for these or we only put the parts beside each other and build a new device?
 

In the design phases of the system , the Hardware designer alone is not responsible.
There will be a team who decide the overall architecture and separate them into HW and SW design specs.

So the firmware is under the Sw team.

Finally it will be integrated.
 

It is about understanding the requirements first and then deciding on how to process the requirements. Teams will be allocated for the respective devices. For example for Desktop computer hardware design team will be setup and will take care of hardware related activities like mother board, graphic card, sound card, LCD, CD/DVD ROM, etc and even if there is any special consideration. Software team will take care of the firmware & mechanical team for designing the chassis and preparing the drawing for all the things.

Before proceeding on their respective works everyone has to sit and discuss and start understand the requirements and then only can able to proceed further. So it is of mainly all team work and not about individual team.
 

For example, when DELL company wants to build a new laptop, it chooses the intel HQ6700 processor and Geforce m960 for graphic part and etc. so should DELL write any low level code when doing it's laptop?

Or when Samsung wants to build a new tablet or smartphone, and wants to use Qualcomm snapdragon chipset, and other parts like bluetooth and wi-fi IC's, should Samsung write any low level code for building it's new device? If yes, in which part and for what reason?
 

Forget about how these high end devices are built.

But what about firmware and drivers?
Totally I like to know what software consideration should a hardware designer has to build a new device?

1. I would recommend you to take an embedded systems design course/tutorial first.
2. After that build a simple micro-controller based system (you will get to know about boot-code, programmable memory, input devices, output devices; most important is to understand how these things are related to each other as a system).
3. If 2 is successfully done, you'll get answers to most of your questions.
 

Thanks dpaul,
But I have passed many courses about them in university, and worked with microcontrollest and their registers. But my question is about those microcontrollers (or chipsets) that can have OS. I like to know how will the OS works on them!
 

For a PC, it starts with the firmware on the motherboard which tries to get the CPU up and running. It then loads up the BIOS which is like a mini operating system that gets the other hardware up and running. Once that is done it looks for a boot device (disk, CD, etc -- this is where the OS is stored) and, once found, it locates the MBR (master boot record) and loads it into memory and executes it. It's this little piece of code that then knows how to initialize and start the operating system (or other boot loaders as things have gotten more complicated). It's at this point that things like the kernel would be loaded and start running.
It's pretty incredible that it works at all!

In a nutshell, its a multi-stage process that keeps building up the system a little bit at a time until it can finally start the OS processes.
What you are asking are generic questions and would be difficult for elaborate in a forum. You can google and therez a lot of info to be read about. There are books of course!
http://duartes.org/gustavo/blog/post/how-computers-boot-up/
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top