Is it firmware or software? Is a spade a spade? - Page 1
Forum section: electronics / general

author: VK3DRB
author_rank: Super Contributor
timestamp: July 21, 2014, 02:21:26 pm
content: The terms firmware and software do not seem to have a defined barrier any more. The many definitions found on the web are quite ambiguous these days due to technological change.Consider a mobile phone with its operating system - is it firmware or software? Some phone makers call it firmware, others call it software. I think the definitions are becoming blurred and the word firmware will disappear in due course.It appears the Personal Computer is disappearing (like the Clone and the IBM Compatible) which looks like it is being replaced by the slang word "desktop". I though a desk top was the top of a desk. And why do we call portable computers laptops? I rarely see anyone use them on their lap. Maybe we should call mobile phones or cell phones PIMP's (Personal Information Management Processors). They certainly are a lot more than a roving telephone. I don't mind change, but reach my limit when I hear Australian graduates not even know our alphabet. "Zee"?I would like to know what others think. Is the term "firmware" becoming redundant? And what are examples do you know of about electronic devices that are called something they are no longer.

author: XOIIO
author_rank: Super Contributor
timestamp: July 21, 2014, 02:25:57 pm
content: I think firmware and software are still pretty distinguished things. Firmware would be the language your processor runs, and software would be the interface or operating system, which the user can easily change without any risk of bricking the device.

author: zapta
author_rank: Super Contributor
timestamp: July 21, 2014, 04:10:03 pm
content: According to Wikipedia firmware includes also the memory itself:"firmware is the combination of persistent memory and program code and data stored in it."Since the term 'software' does not include the memory, firmware and software are not the same.

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 04:36:44 pm
content: Quote from: VK3DRB on July 21, 2014, 02:21:26 pmI say desktop and I'm old enough to have worked in a time when the terms "green-screen", "X-term", "workstation", and "PC", were all used to describe different types of machine you would do your work at. I missed "mini"; I know what it means but I'm just too young to have used it in conversation with my peers. I reckon PC is gone too.Quote from: VK3DRB on July 21, 2014, 02:21:26 pmI saw an interview with a UK formula 1 racing driver at the weekend and he said "my bad" and I ask myself "your bad what?" then I figure out he's a weak minded fool who watches too much television and is lost to his own cultureI say that as someone that was taught descriptive linguistics so I really should get excited about his loaning the American term but I have my limits.Quote from: VK3DRB on July 21, 2014, 02:21:26 pmI've worked in embedded development in a non-English language environment since 1996 and never used the term firmware nor tried to make a direct translation of that word from English; the translation of software has been good enough. The word is a useless neologism in my book but I don't mind people using it. However, I consider microcode too be hardware even though it is executable and stored in a memory!

author: rob77
author_rank: Super Contributor
timestamp: July 21, 2014, 04:48:38 pm
content: firmware is the piece of code bringing the hardware to "life".software is ...well... software

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 04:50:21 pm
content: Quote from: rob77 on July 21, 2014, 04:48:38 pmHardware brings software to life. Hardware does and software is done. Software is used by hardware to self configure.

author: AlfBaz
author_rank: Super Contributor
timestamp: July 21, 2014, 04:56:20 pm
content: Quote from: VK3DRB on July 21, 2014, 02:21:26 pmI really thought you were heading for eartop

author: rob77
author_rank: Super Contributor
timestamp: July 21, 2014, 05:23:24 pm
content: Quote from: bwat on July 21, 2014, 04:50:21 pmfpga - useless piece of silicon without firmware

author: retrolefty
author_rank: Super Contributor
timestamp: July 21, 2014, 05:45:03 pm
content: Quote from: rob77 on July 21, 2014, 05:23:24 pmLOLmicroprocessor - useless piece of silicon without software.I think firmware and software are the same thing, in context of the device they run on. In both cases it's the part a human has to create.

author: rob77
author_rank: Super Contributor
timestamp: July 21, 2014, 06:14:54 pm
content: Quote from: retrolefty on July 21, 2014, 05:45:03 pmthat was a reaction to the "Hardware brings software to life. " abovei simply had to come up with that onebut otherwise agreebut still got the opinion that firmware and software is slightly different. actually it depends on the level of abstraction...for example: operating system and applications - that's clearly software . but an OS is not able to work without the firmware in the harddrive , which is in fact just a piece of software for the processor inside the HDD.

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 06:24:57 pm
content: Gentlemen, the major clue is the name of the second stage of the CPU's fetch-execute cycle. Also, the term "instruction set" is another clue to what's going on. Again, software does nothing; software is done.

author: rob77
author_rank: Super Contributor
timestamp: July 21, 2014, 06:41:07 pm
content: Quote from: bwat on July 21, 2014, 06:24:57 pmhmm.. let me think... your computer's software is doing nothing.... then how the hell did you posted that statement ?

author: free_electron
author_rank: Super Contributor
timestamp: July 21, 2014, 06:44:05 pm
content: technically firmware cannot be altered. it is stored in a non volatile , non rewritable medium like a mask rom , eprom or prom.these days Flash memory is used.the bios of a computer is firmware.android for example is NOT firmware. the bootloader for android is firmware.i know lines are getting fuzzy...

author: Richard Crowley
author_rank: Super Contributor
timestamp: July 21, 2014, 06:46:03 pm
content: Quote from: bwat on July 21, 2014, 06:24:57 pmWithout firmware, you couldn't have used your mouse or your keyboard (or touch-screen).Without software, you couldn't have opened a browser, come to the EEV blog forum, and posted that comment.

author: rob77
author_rank: Super Contributor
timestamp: July 21, 2014, 06:56:19 pm
content: Quote from: bwat on July 21, 2014, 06:24:57 pmand let's dig deeperconsider a CPU emulator - following your logic... the target software is "done" by the emulated CPU... but wait ! that emulated CPU can't exist because it should have been done by software which is DONE by the host CPU, and as we know software is doing nothing....and we don't even have to consider emulation.... there is something called microcode - many cpus are translating the instructions to their more native form - a sequence of micro-instructions (in fact executing your instruction in software) - transmeta crusoe is a good example of such a CPU.

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 07:00:19 pm
content: Quote from: Richard Crowley on July 21, 2014, 06:46:03 pmI'm not disagreeing with you, I just see no connection between your statement and mine. I'm going to assume you've misunderstood my statement so I'll use different words.Software is executed by a CPU; software does not execute, in fact software does nothing. Software is, in most CPUs, a vector of bit patterns which are interpreted by the instruction decode circuits which are found in the control unit of the CPU. This interpretation takes the form of configuration signals fed into the ALU and back into the control unit.For an example see this16-bit CPU design

author: Richard Crowley
author_rank: Super Contributor
timestamp: July 21, 2014, 07:07:16 pm
content: Quote from: bwat on July 21, 2014, 07:00:19 pmYou are correct, I am completely misunderstanding your statements.I work in the place where the CPU in 90% of the worlds computers was developed. I don't need a lecture on how computers work.I also write software for a living, and if "software does nothing" I would be unemployed.

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 07:08:36 pm
content: Quote from: rob77 on July 21, 2014, 06:56:19 pmNo. There is only one CPU, and emulated CPU does not execute, it emulates execution. The model is not reality.Quote from: rob77 on July 21, 2014, 06:56:19 pmBut the microcode is executed! See the16-bit CPU designfor a microcoded control unit. Look for the microsequencer and the CAR (Control Address Register).

author: bwat
author_rank: Frequent Contributor
timestamp: July 21, 2014, 07:19:41 pm
content: Quote from: Richard Crowley on July 21, 2014, 07:07:16 pmYou have shocked me.

author: Richard Crowley
author_rank: Super Contributor
timestamp: July 21, 2014, 08:44:19 pm
content: All "firmware" starts out as "software" during the development and test process at the beginning of its life-cycle. It becomes "firmware" by being embedded into a system either by mask-programming (as the microcode bwat is alluding to) or by NVRAM storage (as in an FPGA, etc). More modern chip and system design has somewhat blurred the lines between "software" and "firmware" as you can see from review of this thread.

author: AlfBaz
author_rank: Super Contributor
timestamp: July 22, 2014, 02:23:48 am
content: I've always thought it was pretty straight forward, firmware loads and runs software

author: WarSim
author_rank: Frequent Contributor
timestamp: July 22, 2014, 02:40:05 am
content: Isn't it silly how language migrates mostly due to laziness and marketing. Which changes to words definitions and the the people who messed up the terms complain how they are ambiguous. The definitions if still used would still clearly define the line. Every single term mentioned suffered from migration which caused the blur.If you entered the fray between 1989 and now this is your doing. Deal with it.Sent from my iPad using Tapatalk

author: VK3DRB
author_rank: Super Contributor
timestamp: July 22, 2014, 01:15:09 pm
content: Reading the responses, I could argue against every comment that clearly defines software and firmware, based on real life technology used today.There is another practical reason I call it all software:Our design documents are extensive in number and volume. Our products include third party Software Of Unknown Provenance - SOUP. It is often "firmware" on a third party device or even Windows, and our own embedded code. No regulator calls it Firmware of Unknown Provenance. The regulators call all this stuff software. So to avoid the evil of ambiguity and to avoid confusion, I just call it all software. Even if it is just a small micro just doing simple things - it is still software.

author: AlfBaz
author_rank: Super Contributor
timestamp: July 22, 2014, 04:30:07 pm
content: Quote from: VK3DRB on July 22, 2014, 01:15:09 pmhmm, by that definition modern programing constructs/languages mandate that broth should flow from ears, nose and other sundry orificesedit: never let fact get in the way of a good acronym, especially where regulatory committees are involved