So you're a Noob? Post your questions here until you graduate! Don't be shy.
User avatar
By Renier Delport
#73104 Good day all

I might be nitpicking, but I'm in search of some correct terminology/definitions when referring to flashing the ESP8266 chip. Hope you can help.

1) Flashing
2) Firmware

This is how I see it. Please correct me if I'm wrong.
1) The process of uploading software to the chip's flash memory. This is irrespective what software is uploaded. Old software is replaced completely by the new.
2) The software. Any permanent software that is currently in the chip's flash memory (e.g. AT command set firmware, LUA interpreter, Arduino/C interpreter).

Things I'm also not sure about is:

When you for example flashed an Arduino or LUA piece of programming, is the 'sketch' together with the interpreter also referred to as the firmware? Can the interpreter be compared to a little "operating system"?

Is the word 'programming' suitable when, for example, referring to developing a custom sketch to be uploaded? I.e. when referring to programming the ESP8266, what exactly does it mean?

Is the word 'software' appropriate when referring to firmware?

Thank you
User avatar
By schufti
#73109 I would say that "hardware", "firmware" and "software" are terms from the early days of computing.
firmware: program that is firmly part of the hardware, from the view of the user
software: program that can be loaded by the user (utilizing the firmware on the hardware) for the actual task.

operating system: can be implemented as firmware: e,g, TRS80, C64, Atari ST (yes, even the C64 basic is some kind of "operating system") or software: CP/M machines, IBM-PC (different versions of CP/M or MS-DOS can be loaded via the firmware (BIOS, bootloder) from floppy disk).

With the dawn of PC system architecture, firmware commonly refers to µC systems where it is the only software part, on computers they use bios (allthough it is still firmware).

just as I understand it ;)
User avatar
By btidey
#73112 In the case of LUA the firmware is the interpreter and a library of built in functions and you then have scripts which you load and are executed by the interpeter to do what you want.

In the case of Arduino / c++ this is a compiled solution. There is no interpreter. The development program (IDE) takes your sketch and compiles it, includes any library functions and produces a complete standalone piece of firmware in the form of a binary file. This can be uploaded to the device and completely replaces any previous firmware.

In general, interpreters give flexibility in changing the functionality by adjusting the script used, whereas compilers will produce faster code.