Hot answers tagged

68

The first ROM devices had to have information placed in them via some mechanical, photolithographic, or other means (before integrated circuits, it was common to use a grid where diodes could be selectively installed or omitted). The first major improvement was a "fuse-PROM"--a chip containing a grid of fused diodes, and row-drive transistors that were ...


55

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 BLE, UART, I2C, SD cards, USB, etc. It would be extremely inconvenient to require customers to purchase programmers just to update the firmware on their ...


34

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 independant of the size of the cache. So, I'll break it down for you: Memory-mapped Means you can access the contents of the external memory directly by reading/...


33

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-Channel and P-Channel field effect transistors. One of its defining characteristics is extremely low static power consumption - power is almost only used when ...


29

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"). However, despite it being an improvement to its old pal, today's EEPROM's way of holding information is the exact same of the flash memory. The ONLY major difference ...


29

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 sophisticated circuitry to read it back reliably. Modern nonvolatile chips rely on charge storage, but in order to make this work, you need to be able to create ...


27

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 person who can change it ...) not intended to be changed (except ...) operates on the processor without the help of other software (except ... you get it?) As to ...


26

To be pedantic, FLASH memory is merely a form of EEPROM: There is a marketing / branding aspect here. Typically, the distinction used today is that EEPROMS are single-byte (or storage word) erasable / rewritable, while FLASH is block-based for erase/write operations. Relevant to the question: EEPROMs continue to be popular due to maximum erase/write ...


26

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 then the user wouldn't be able to try again without using special hardware to reflash to boot loader. Some microcontrollers can't execute code from RAM. If the ...


24

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; they are therefore useful for different applications. NOR's main advantage is that it is random access, which makes it possible to use it to run code. It has a ...


22

Flash is a type of EEPROM (Electrically Erasable Programmable Read-Only Memory). "Flash" is more of a marketing term than a specific technology. However, this terms has sortof converged to mean a type of EEPROM that is optimized for large size and density, usually at the expense of large erase and write blocks and lower endurance.


22

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 have to reduce your code size: Disable debugging, such as the expensive printf function. A printf that supports floating point output will typically set you ...


21

I can't speak about FRAM (ferroelectric memory), but any technology that uses floating gates to store charge — any form of EPROM, including EEPROM and Flash — relies on electrons "tunneling" through a very thin insulating silicon oxide barrier to change the amount of charge on the gate. The problem is that the oxide barrier is not perfect —...


20

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. As described below, from a physical standpoint, the default state is 1's. But more importantly, I'm going to explain why there is a default state -- you can'...


19

A multi I/O SPI device is capable of supporting increased bandwidth or throughput from a single device. A dual I/O (two-bit data bus) interface enables transfer rates to double compared to the standard serial Flash memory devices. A quad I/O (four-bit data bus) interface improves throughput four times.


19

The number of write cycles most EEPROMs can handle generally far exceeds the number of write cycles most flash memory can handle. EEPROMS can generally handle ~100,000-1,000,000 writes per cell. Flash is generally rated to ~1,000-100,000 writes (it varies heavily depending on the type of flash). Another advantage EEPROM has over flash is that flash ...


19

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 used to hold program code. Actually ROM (Read-Only Memory) came first, then PROM (Programmable ROM, once only), EPROM (PROM Erasable with UV light), EEPROM, ...


18

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 interface (I'm not sure about frequency). Then I press the reset button on my board and clicked "Target" -> "Erase chip" and just after clicking I released the button - It ...


14

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 the same photos or something equally awesome. I would have thought some talented person somewhere would be able to patch up the area of the chip The ...


14

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 on a separate device.


13

I've tested many card with my 1.5Kg rare earth magnet, so I can bet that magnets have no effects on flash cards or USB pen drives :-)


13

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 long as you are only clearing more bits. This can be handy for maintaining things like allocation bitmaps.


12

The short answer is to declare your variable with the const keyword. If your MCU actually remembers the value of your const variable (i.e. your sine computation actually works), it pretty much has to be stored in flash memory, otherwise it would be lost at the first reboot after programming. The long answer has to do with linker script. These scripts are ...


12

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 of Flash. These systems usually have more Flash than SRAM too. Midrange systems Once your device gets faster then the situation is a little different. Midrange ...


12

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 EEPROM. The processor will go out to lunch during the erase and write times. Program flash is erased in blocks. You can't just update a single byte. I ...


12

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 would still be on... not a great "it's alive" indicator. However with the circuit in place the LED blinks only if it's being driven high and low all the time. ...


12

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 to the same extent. These bleeding edge processes do have disadvantages, including I/O pin voltage tolerance (the upper limit for bleeding edge processes might ...


12

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 (03h) has a maximum clock frequency of 65 MHz. Whereas all other commands, therefore including the FAST_READ command (0Bh), have a maximum clock frequency of 100 MHz: This is why FAST_READ can ...


12

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 needed to run on battery when the power was off, such as configuration RAM and the real-time clock. Nowadays, nearly all of the logic is CMOS, including the power-...


Only top voted, non community-wiki answers of a minimum length are eligible