55
votes
Accepted
Why do we need a bootloader separate from our application program in microcontrollers?
A bootloader on a microcontroller is responsible for updating the main firmware over a communication channel other than the programming header. This is useful for updating firmware in the field over ...
43
votes
Accepted
MicroSD card performance deteriorates after long-term read-only usage
Hm, my usual suspicion would be that your read access goes through a file system and that updates something, e.g. a file access time, in the file system, but that doesn't seem to be the case here.
...
41
votes
What is the difference between Flash memory and EEPROM?
Spoiler: EEPROM is in fact Flash.
As supercat's answer brilliantly pointed out, EEPROM is an evolution of the older UV-eraseable EPROMs (EEPROM's "EE" stands for "Electrically Eraseable&...
35
votes
Accepted
Why isn't the BIOS' ROM chip made using CMOS technology?
You're mixing up implementation technology with colloquial terms for functionality.
CMOS - Complementary Metal Oxide Semiconductor - is a method of making logic and related circuitry using both N-...
35
votes
Accepted
What is the meaning of this line? "Memory-mapped, cached view of external QSPI flash. The cache is specified as 32 KB with 4-way associativity."
The confusion probably comes from the formulation: "memory-mapped, cached view" The fact it is memory-mapped has nothing to do with the fact it is cached. The size of the memory mapping is ...
31
votes
Accepted
STM32 & ST-LINK - Cannot connect to MCU after successful programming
I managed to solve that problem. If anybody encounters similar problem, here's what I've done:
I used ST-Link v2 and ST-Link Utility. In setting, I set "Connect under reset" and SWD ...
29
votes
Accepted
How to make 1 bit permanent memory circuit?
The original electronic nonvolatile memory is based on ferrite cores. While it's relatively easy to magnetize such a core in one direction or the other to store a one or a zero, it takes some fairly ...
27
votes
Accepted
Is firmware code or data?
As often with such definitions, we agree in most cases, but there is no really firm boundary between what is firmware and what isn't. Firmware is
stored permanently (except for some knowledgeable ...
26
votes
Why do we need a bootloader separate from our application program in microcontrollers?
So that the loading process can recover from errors.
Suppose there is a communication error or power disconnects during an upgrade. If the boot loader were part of the application you were upgrading ...
25
votes
Accepted
Flash and EEPROM
Nowadays, Flash memory is used to hold program code, and EEPROM (Electrically Erasable Read-only Memory) is used to hold persistent data. Back some 30 years ago, before Flash came along, EEPROMs were ...
24
votes
Why are NOR flashes still used when NAND flashes have a bigger size?
It's not so much that NAND is not reliable (although it is less reliable), it's the fact that they are different sorts of memory in how they are accessed and the differences in speed of read/write; ...
22
votes
Accepted
Inbuilt flash memory size not enough
You cannot extend the program memory (flash). TI produces the same chip with double the flash and RAM, but nothing else changed: TM4C1230D5PMI.
If you cannot use a chip with larger flash, you will ...
20
votes
Accepted
Why do most of the non-volatile memories have logical 1 as the default state?
I am going to discuss flash memory programming, but a lot of material will be similar to EEPROMs (Electrically Erasable Programmable ROM), since flash memory was derived from EEPROMs in the mid 1980's....
18
votes
EEPROM Fatigue - Does it affect only the cells being written excessively, or will it cause global failures?
EEPROMs don't wear out from writing, they wear out from erasing. If you look at the datasheet you'll notice that it states erase cycles.
Erase operations are block based. So an entire block of data ...
16
votes
Accepted
Why is data stored on a NAND chip irretrievable if cracked?
All I want to get are some awesome holiday pictures back.
Lets be frank. They are not worth $1M to you are they. For that sort of money you could go on that holiday again a few times and recapture ...
16
votes
Accepted
Flash memory: Does the entire page need to be erased before writing just a few bytes?
Yes, after any erase, you can use any number of separate operations to write data (changing bits from 1 to 0) before the next erase operation.
You can even rewrite a previously-written location, as ...
16
votes
Accepted
What is the difference between "normal read" and "fast read" in the flash A25L032
What makes fast mode fast?
The difference is certainly well-hidden :-) Look at the AC Characteristics table in the datasheet. It says that the normal READ command ...
14
votes
Accepted
Flash and RAM : Code Execution
This depends on the device.
RAM can be built faster than Flash; this starts to become important in about the 100MHz range.
Simple microcontrollers
Small slow microcontrollers execute directly out ...
14
votes
Is firmware code or data?
Firmware is program code that is stored in non-volatile memory, such as flash memory. The term is most often used in connection with embedded systems. It can be on the same chip as the processor, or ...
14
votes
Why isn't the BIOS' ROM chip made using CMOS technology?
Back when the PC was first invented, most of the logic on it was power-hungry NMOS and TTL chips. CMOS was very new and the only circuits in the PC that used it were associated with things that ...
13
votes
Accepted
Microcontroller memory limitations
Several reasons. First, microcontrollers are generally not built with the same bleeding edge processes as the DRAM and Flash for your computer, so they do not take advantage of technological advance ...
13
votes
Accepted
SPI data storage devices: (micro)SD card, DataFlash, or serial EEPROM?
Basically, the choice depends mainly on two criteria: whether the data to store is big or small, and whether it is rewritten often or not:
EEPROM is great for small data that changes often. The ...
13
votes
How to store persistent values in STM32F407VGT6 embedded microcontroller?
For parameter storage that is not done too often but needs to be reliable I recommend the following approach.
Use external memory component separate from the MCU. This scheme is more portable if you ...
12
votes
Accepted
Most reliable Flash memory for an embedded Linux system?
If you want to see what is done inside, you have already answered your question : you can't use managed flash, your only solution is raw NAND flash.
As you want reliability, you can't have 2 pages ...
12
votes
Accepted
How do NAND flash memory writes work?
The image below is the more detailed version of your NAND FLash memory array organization in the question. The NAND flash memory array is partitioned into blocks that are, in turn sub-divided into ...
12
votes
Accepted
Can the microcontroller program flash memory be used for storing user configuration?
Yes, you can. I have done this many times.
However, there are some drawbacks relative to using separate EEPROM:
The number of lifetime writes to program flash memory is significantly less than data ...
12
votes
LED blinking with capacitor and schottky diode?
I have seen this only a few times as a method to indicate the device (mcu, PLC, PC etc) is still running.
The LED being on (with out the circuit) means just that. But if the mcu has stopped the LED ...
12
votes
How come Misra C checker is such a prestigious tool?
A MISRA-C checker is much more than just a style checker; it enforces a set of software development guidelines for the C programming language developed by MISRA (Motor Industry Software Reliability ...
12
votes
Accepted
How to store persistent values in STM32F407VGT6 embedded microcontroller?
You can use so called EEPROM emulation, which uses a part of the Flash memory to be used as EEPROM.
You can read all about it for the STM40x/STM41x in the following ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
flash × 628microcontroller × 113
stm32 × 112
memory × 97
spi × 91
eeprom × 51
non-volatile-memory × 36
programming × 34
flash-memories × 33
embedded × 31
sd × 30
c × 29
ram × 29
pic × 27
nand-flash × 25
fpga × 21
atmega × 18
bootloader × 18
arm × 17
nand × 16
usb × 15
led × 13
avr × 13
firmware × 13
arduino × 11