问题标签 [flash-memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1908 浏览

c - FAT 文件系统和大量写入

我正在考虑将 FAT 文件系统用于嵌入式数据记录应用程序。记录器只会创建一个文件,每分钟不断地向该文件附加 40 字节的数据。经过几年的使用,这将超过一百万个写入周期。我的问题是:FAT 系统是否会在每次附加文件时更改文件分配表?它如何跟踪文件末尾的位置?它只是在末尾放置一个 EndOfFile 标记还是将长度存储在 FAT 表中?如果它确实在我每次写入时都会更改 FAT 表,那么我会在短短几年内将 FLASH 存储器耗尽。FAT 系统是否适合用于此应用程序?

我的另一个想法是,我可以将原始数据字节存储在存储卡中,并在每次写入时在数据末尾放置一个 EndOfFile 标记。虽然这不太理想,因为这意味着从记录器中获取数据的唯一方法是通过串行传输,而不是通过 PC 和读卡器。

0 投票
2 回答
3112 浏览

microcontroller - NAND闪存编程:写入粒度?

有人知道当今大型 NAND 闪存芯片的写访问吗?写入的最小粒度是多少?我这里有一个微控制器闪存,它需要至少 1 个和最多 4 个字(即 16 位字)一次馈送到写状态机。我认为出于写入性能的原因,大型(> 1 Gbit)闪存的行为在这里有所不同。

斯拉尔蒂

0 投票
1 回答
11820 浏览

arduino - ATmega328 + SPI 闪存

前言:这个问题是关于我正在与我大学的一位教授合作的一个项目。这不是为了成绩,但我在这位教授中的声誉确实很重要。因此,虽然我在这个项目上的成功对我来说很重要,但我并不认为向 Stack Overflow 寻求帮助是不公平的。

也就是说,这是我的项目的高级概述。我有一个 ATmega328 微控制器。我有一个 Microchip SST 64 Mbit 闪存卡。ATmega 具有 SPI 的硬件实现。闪存具有 SPI 的硬件实现。

我的目标是在 SPI 主模式下使用 ATmega 从闪存芯片读取数据并将数据写入闪存芯片。内存被组织在一个多重覆盖结构中,这很适合擦除,但就我的目的而言,它基本上只有 32,768 页,每页 256 字节。

写数据的基本思想是我发送一个指令字节,然后是起始地址,然后是数据。读取数据的基本思想是我发送一个指令字节,然后是起始地址,然后是一个虚拟字节,然后它开始向我发送数据。

以下是数据表:

微控制器:http: //www.atmel.com/dyn/resources/prod_documents/doc8271.pdf

闪存:http ://www.sst.com/dotAsset/40498.pdf

代码:

所以这应该是一个测试程序,它将 1 个字节编程到闪存上,然后将其读回并在我拥有的 LED 阵列上显示该字节。如果您对 LED 阵列感兴趣,可以在这里找到:http ://evilmadscience.com/tinykitlist/157

我相信我的读取功能有效,因为我第一次运行它时,所有 8 个 LED 都亮了。这将向我表明它在闪存处于全 1 的出厂状态时读取了闪存。现在显然我把写作搞砸了,因为点亮的字节与我试图编程的字节根本不对应。

我还应该注意我正在为 Arduinos 使用默认的 SPI 库,并且帧缓冲区功能正常工作。当我这样做frame1.WriteRow(toDisp)时,它工作正常并且已经过广泛测试。

如果有人有时间或耐心找出我做错了什么,那将是非常棒的。

编辑:帮助调试:
LED 由也使用 SPI 接口的驱动芯片驱动。我没有写那部分代码。在示波器上,我可以看到 SCK 线是由那部分代码驱动的。但是,我在 MOSI 引脚上也有一个探针,如果我不点亮任何灯,它似乎永远不会变高。对我来说,这意味着我没有正确发送信息。又名...也许我SPI.transfer()需要一个启用功能或什么?

0 投票
3 回答
2726 浏览

filesystems - NAND RAW 访问

我正在运行 Linux 的嵌入式系统中使用 C++ 应用程序。该设备接收消息(几个字节的小块)并且需要存储在非易失性存储器中以防断电。这适用于另一个平台,因为有一个静态 RAM 可用。

这个平台上的问题是我们只有一个 NAND 闪存来执行此操作,我们希望在同一个块中附加不同的消息,而不必在用新消息更新它之前擦除整个块!为每条消息编写一个文件不是一个好的解决方案,因为它们可能很多!此外,这必须是有效的,并且应该通过避免过多的擦除来节省闪存的生命!我想要做的是一个字节一个字节地写入闪存,而不用担心坏块。

我找到了“ Petit FAT 文件系统”,我想知道这是否适合我的需要......?

有人可以告诉我“Petit FAT 文件系统”是否可以做到这一点,或者就如何处理这个问题给我任何建议?

谢谢 !

0 投票
0 回答
347 浏览

ios - iPad Cookies - 可能烧坏闪存?

我目前正在为 iPad 编写一个全屏 Web 应用程序。此应用程序可能会以每秒一次的间隔将少量数据写入本地 cookie。用户一次将与应用程序交互大约 20 到 30 分钟。我想他们每周会使用此应用程序一到四次,因此每周最多 120 分钟或每周 7,200 次 cookie 写入。

我无法找到有关 iPad 内部闪存可以处理的写入周期数的信息。我担心我频繁写入 cookie 可能会缩短 iPad 内部闪存的使用寿命。这是一个有效的担忧吗?如果不是,为什么不,我应该关注多少写入?

我并不完全反对使用其他存储方法,例如 HTML5 本地存储,如果这样可以降低风险的话。但是,我更喜欢使用 cookie,因为此应用程序的一部分将在不支持 HTML5 本地存储的其他浏览器上提供。

0 投票
1 回答
486 浏览

filesystems - 关于简单 FAT16/FAT32 读/写实现的建议

乡亲

我正在使用MSP430 and M25P64(serial flash memory). 我需要有关可用于实现的通用文件系统的建议

谢谢 AK

0 投票
2 回答
1835 浏览

c - 8051F340 微控制器中的闪存被擦除

好吧,我希望这个问题适合 Stackoverflow(如果不是这样,我已经想道歉了)

我有来自 Silabs 的 C8051F340 微控制器。我写了一个小接口,它将信息存储在来自 uC 的非易失性闪存中。现在就像在描述的数据表中一样,我将所有数据保存在地址 0x0200 - 0x0300 之间。要在那里复制我的数据,我只需使用 memcpy。

好吧,复制本身运行良好(我查看了闪存,它正确保存了我的数据) - 如果我现在断开我的 uC 并在 5 秒内再次连接它,数据仍然存在。但是,如果我让它断开连接,我的数据或多或少会“重置” - 这意味着它每次都会获得几乎相同的“重置值”。那我做错了什么?我的意思是闪存数据不是非易失性的还是我做错了什么?

0 投票
1 回答
532 浏览

embedded - 在 MCB1700 评估板的片上存储器中存储图像

我使用 MCB1700 评估板。它具有 (320 x 240) TF LCD 显示屏。IDE:Keil uvision4 4.03q。我的任务是将图片从 PC 下载到 MCB1700,在 LCD 上显示
并下载到 USB 棒(连接到板)上。我需要 320*240*2 = 153600 字节的内存。MCB1700 只有 64kB SRAM,和 512kB 片上闪存。显然,我必须将图片存储在闪存中。

据我了解,我应该将指针直接绑定到内存地址。

这是对的吗?由于 Target 的选择,我有一个疑问。 在此处输入图像描述

Flash 存储器的区域定义为 Read/Only IROM1。这是否意味着我们只能从 Flash 中读取数据,并且必须更改 IROM 和 IRAM 字段中的 Memory area 才能执行写入操作?例如以这种方式: 在此处输入图像描述

0 投票
4 回答
1547 浏览

c - 以编程方式获取有关 Linux 上 ROM 内存类型和大小的信息

我需要来自我的 C 程序的有关嵌入式 Linux 上闪存总大小和闪存类型的信息。我可以在内核启动时看到这些信息,但找不到任何其他方法来获取它们。这可能吗?

0 投票
1 回答
590 浏览

android - 将文件从sdCard移动到android中的闪存?

我正在开发一个需要将文件从 sdcard 移动到闪存的应用程序。问题是闪存和 sdcard 都被检测到:

所以我无法检测是否插入了 sdcard 。有没有人遇到过同样的问题请帮忙?

我正在使用爱可视 7 家用平板电脑泡芙。我需要知道如何获取闪存和 SD 卡的路径。