Questions tagged «flash»

闪存是一种可分页擦除的EEPROM。它通常用于微控制器程序存储器和代码存储。您可以使用该标签来查询有关这种类型的存储器的问题,以及有关“闪存”的问题,闪存是在对微控制器进行编程时更改Flash中数据的过程。

11
如何制作1位永久存储电路?
我想做一个简单的电路来存储或保存1位数据。即使电源与电路断开连接,电路也应能够记住LED的状态(亮或灭)。我需要它像手机的硬盘驱动器,闪存或SD存储卡一样工作。 我制作了一个如图所示的电路,输出是一个与470欧姆电阻串联的LED。我使用两个衬套按钮对电容器进行充电或放电,以便输出LED亮起或熄灭。 断开电源或关闭电源后,电路能够记住LED的状态几分钟。 2或3分钟后,电容器完全放电,电路丢失了数据。 如何停止电容器放电?或者如何降低放电速度,以使电路在一周或更长时间后丢失其数据? 在此电路中,我将555用作逆变器(而不是栅极),但我可以使用任何其他IC。我的目标只是制作一个简单的永久性存储器。

3
闪存和RAM:代码执行
我最近开始学习汇编,并开始了解链接器脚本和其他硬件编程的低级细节。我也在自学计算机体系结构,并且一直担心我的内存模型图可能一直是错误的。 根据我目前的了解,在将二进制文件“烧录”到处理器上之后,所有代码和数据都驻留在非易失性存储器中-易失性RAM复位后不包含任何内容。当程序开始“执行”时,它从地址0x0000开始执行,该地址几乎总是(AFAIK)Flash中的最低地址。因此,指令被锁存到将Flash连接到CPU内核的总线上,这就是实际执行的地方。但是,当我们谈论CPU从内存中检索或存储数据时,我们通常是在谈论RAM-我知道我们也可以从程序存储器中读取/写入数据(我已经在AVR上看到了这一点)但这不常见吗?是因为RAM比ROM快,所以我们更喜欢在那存储数据? 这个问题的公认答案是,大多数代码都是在RAM之外执行的。 这是否意味着启动运行时代码(其本身从Flash执行)必须将所有程序操作码从Flash复制到RAM,并以某种方式将Flash中的地址映射到RAM,以便CPU从那里获取操作码?它与启动时将.data节从ROM移到RAM的过程类似吗? 我可以想象这在程序和数据存储器共享总线的冯·诺依曼体系结构中会更简单,但是在哈佛体系结构中,这是否不意味着所有代码和数据都必须先通过CPU寄存器? 您可能会猜到,我对整个业务感到有些困惑。总是以更高的抽象级别进行编程,我很容易为这些细节所困扰。任何帮助表示赞赏。

7
STM32&ST-LINK-成功编程后无法连接到MCU
我已经用STM32F7-45VGT6构建了自己的开发板。我已经使用ST-LINK v2(不是原始版本)成功地对其进行了编程,现在我什至无法连接MCU。 我从ST和SWD界面使用ST-Link Utility。可能是我将SWD引脚用作输出,并在代码中将它们设置为GPIO输出的情况。可以吗? 但是,我将复位引脚连接到GND,并在ST-Link Utility中设置了“在复位下连接”选项,但是它不起作用...我该怎么办? 在Internet上,我发现了一些有关使用BOOT0引脚的信息,但我不完全知道...

5
飞思卡尔Kinetis KE-写闪存
多年来,我一直在使用各种微控制器和微处理器,但Kinetis KE系列(特别是S9KEAZN64AMLC)似乎使我感到困惑。 2015年1月17日,TL; DR: 飞思卡尔确认其Kinetis Design Studio软件v2.0.0不适用于该设备(包括其自己的TRK-KEA64评估板)。他们建议暂时使用CodeWarrior MCU V10.6。 Segger已发布v4.96a(“ a”很重要,我使用的是v4.96),此问题已得到纠正,并允许您将Segger J-Link Lite CortexM调试器板与KDS一起使用,并具有完整的程序/调试功能。 之前发布的套件含有Segger我v4.96a管理,以能够通过重刷OpenSDA重新编程飞思卡尔的便宜($ 15)FRDM-KL25Z评估板的OpenSDA调试器闪存芯片固件谈到与USBDM(使用v4.10.6.240)。然后,我使用了USBDM的独立“ ARM编程器”软件。我没有花太多时间尝试调试工作,因为我足够精通“老式”调试,因此不需要调试。请确保将“良性”程序刷新到板载目标KL25中,否则可能会干扰编程,因为即使通过J11剪切,板载目标KL25的复位线仍仍连接到OpenSDA调试器(请参见Keith Wakeham的博客文章) ,在下面链接)。 非常感谢Erich Styger非常慷慨地帮助我确定问题并通过电子邮件确认我的发现。 现在回到我们定期安排的问题: 我建立了一个愚蠢的简单3.3V接线板。PTA上有一些LED,PTC上有UART连接,而SWD线在其专用线上。字面上没有什么幻想或有趣的董事会。 我正在使用针对Cortex-M的J-Link Lite(J-Link LITE CortexM-9,请参阅https://www.segger.com/jlink-lite-cortexm.html),在OSX和Windows下我都可以同样的结果:J-Link Commander实用程序可以识别芯片,我可以读写SRAM,并通过手动读写正确的内存映射I / O地址来处理外设。但是,当我尝试刷新设备时,它会失败。 $ JLinkExe SEGGER J-Link Commander V4.94c ('?' for help) Compiled Oct 31 2014 20:08:55 DLL version V4.94c, compiled Oct 31 …

2
内置闪存容量不足
我在我的项目之一中使用了德州仪器的TM4C1230C3PMI控制器。它具有32KB的内部闪存,不足以满足我的应用程序的需要。市场上有更高闪存大小的微控制器可以使用,但我只想使用该微控制器。据我所知,可以使用外部EEPROM来增加总闪存大小(程序存储器)。 我的想法是正确的吗? 如果不是,请建议如何增加控制器的总闪存容量?

2
为什么NA​​ND仅在块级而不在页级擦除?
以下是我对NAND闪存的组织方式的理解,通过这种设计,应该可以只擦除单个页面并对其进行编程,而不是擦除整个块。我的问题是,为什么不以更细致的页面级别擦除NAND实现?直观地,所有要做的就是呈现代表要擦除页面的字线,并施加高电压以将电子从浮栅上去除,同时保持其他字线不变。对此原因的任何解释均应得到赞赏。
11 flash 

4
AVR闪存损坏
这个问题与AVR的解码本身有关。 项目信息: 我们有一个使用ATMEGA644P的电池供电产品。该应用程序永久以睡眠模式运行,并且仅每秒唤醒一次(RTC)或触发两个外部中断线之一。 该器件具有一个非常简单的引导加载程序,该引导加载程序通过UART(使用RS232接口IC)进行通信。它只是一种方便的方法来更新固件,因此不需要硬件ISP编程器。(引导加载程序需要校验和安全的电报) 该设备设计为具有内部掉电禁用功能,因为它使功耗加倍,并且必须延长电池寿命(我猜应该使用外部掉电检测-重新设计正在进行中)。 问题: 每隔一个月设备就会停止工作,这些设备上不会执行固件更新。但是,在进一步检查之后,这些设备的闪存内容似乎已损坏。此外,其中一些设备的电池仍然不错,但我不想排除某些欠压情况。 这是原始闪存内容(左)与损坏的内容(右)的比较: 一些观察: 损坏的块始终至少包含一个闪存页面(256字节),并且是页面对齐的。换句话说:仅影响整个页面,不影响单个字节。 损坏的内容大部分时间读为0xFF,但也可能包含其他值或完全是“随机”的。 图像左侧的小条显示了所有受影响的区域。对于此设备,它大约占闪存总内容的十分之一。 我们有一台只影响单个页面的设备。 完全有理由认为,在写入闪存时出现欠压情况会损坏闪存内容。但是,这意味着必须执行一些闪存敏感指令。 可能是由于欠压导致控制器随机重启,并且引导加载程序代码在此期间的行为完全不可预测。引用另一个论坛中有关欠电压的消息: “不仅会执行闪存中的随机指令,而且还会执行随机的指令周期(不能保证闪存中的代码会正确读取和解释)。与此同时,单片机的其他部分可能无法按设计运行,包括保护机制。” 问题: 您是否认为“电压不足并执行某些指令以更改闪存页面中的数据期间的随机行为” -解释是否合理?如果真是这样,为什么我们一直没有看到这种错误,只是一些软件问题(堆栈溢出,无效的指针)的原因。 您还有其他想法会导致这种腐败吗?这可能是由EMI / ESD引起的吗?



7
如果破解,为什么存储在NAND芯片上的数据为何无法找回?
所有数据恢复公司,无论其技能如何,都一致认为,如果设备的存储芯片仅有一条细线,则无法进行数据恢复。并非没有,也不昂贵,但不可能。一家公司甚至表示,甚至FBI也无法检索数据。这是真的? 为什么是这样?我很难相信,如果一个非常普通的芯片中只有一小部分有很小的裂缝,那么所有数据都将全部消失。 我本以为某个地方的一些有才华的人将能够修补芯片的区域并取回一些数据... 与收费有关吗?我知道闪存使用晶体管以电荷形式存储其一和零。如果芯片破裂,晶体管会“短路”,将它们全部归零吗?数据消失了而不是无法挽回吗? 我想要得到的只是一些很棒的假期视频。以为它们已经一去不复返了,然后我学习了数据检索,以为我有很大的机会将它们取回,然后我意识到如果内存芯片破裂了,那根本没有机会。 取多少钱?几百个?还是数千?一百万,就像RedGrittyBrick说的那样?如果要握住存储卡,您认为几年后这种高级检索的价格可能会下降吗?还是这只是不现实? 我们在这里谈论的是256mb的SD卡。 我想技术正在从SD卡和更多的东西转移到集成内存,然后天知道其他什么……原子内存,DNA内存。今天您不会看到有人提出有关盒式磁带的新高级程序,对吗?我应该咬一口子放弃吗? 而且,我什至不是这个领域的业余爱好者,但是我对总体上的工作方式很感兴趣,因此如果有人可以简单地解释这个问题,我将不胜感激。
10 flash  sd 

3
为什么必须以页/块的形式写入/擦除闪存?
标题说明了一切。 我试图从晶体管的角度了解闪存技术的工作原理。经过大量研究,我对浮栅晶体管以及如何注入电子或将其从电池中移除有了很好的直觉。我来自CS领域,因此我对诸如隧穿或热电子注入之类的物理现象的理解可能有些不稳定,但我仍然对此感到满意。我也对如何从NOR或NAND存储器布局中读取数据有一个了解。 但是我到处都读到闪存只能以块为单位擦除,并且只能以页为单位写入。但是,我发现此限制没有任何道理,并且我想对为什么要这样做有一个直觉。

3
读取Micron 29F32G08QAA NAND闪存IC
如果这是一个购物问题,那就太好了-但它有99%+可能是电子构造问题:-(。 我希望找到最快/最简单/最便宜的方式来读取损坏的USB记忆棒中的4GB NAND闪存IC。板载控制器IC失效了,闪存IC也可能失效了,但我认为直到发现其他情况时才失效。 阅读可能涉及 (1)制作自定义阅读器, 由于与Flash的连接很少(8个数据和少量控件),因此可能不是一个完全愚蠢的主意。 如果执行此操作(我尚不知道),那么可以轻松访问数据的可能性有多大。获得一点图像是最糟糕的情况,但是我宁愿有一个可以“照看”文件系统和文件的东西。当然。 (2)焊接新的控制器IC 我尚不知道这些设备是否在其他设备中普遍使用。到目前为止,已检查的1个样本具有100%不匹配。可能有一个行业标准,无论部件号如何,我都还不知道。 SK6211。QFP48。大纲的描述在这里和 数据表在这里。 要么 (3)卸下Micron 29F32G08QAA 32兆位NAND闪存IC。 数据表尚未找到。 标记非常暗淡。这是“标记的增强照片图像”。 所以 有人对我如何最好以原始格式或完全读取该内存有任何建议吗? 关于6211来源的任何想法,与其他零件的通用性,使用“任何旧的” NAND Flash读取IC的能力等。 任何提示。 背景: 一个曾经警告过需要数据备份的好朋友,由于“丢失了对存储在USB记忆棒中的一组极其有价值的文件的访问权限”,因此没有注意这些警告。她正在学习成为一名老师,并且这些文件是课程计划和很长一段时间内创建的其他材料。 USB记忆棒在插入USB端口时被侧面敲打而受到了严重的物理损坏。显然试图通过将其推到一起来阅读它。当我想到PCB和连接器之间的4个连接中的3个断开时。我已重新焊接了这些焊条,并期望有很大的恢复操作的机会。 当插入USB端口时,记忆棒会消耗大电流(可能是端口受限),并且控制器会变得非常非常热-我首先在IC上烧得很烂,从而发现了这一点。实际的存储器IC在PCB的另一侧。但是似乎也很热,但这可能是由于进入控制器IC的功率很大。将会发生拆焊。 零件编号更正为29F32G08 Q AA

4
磁性会影响SD卡吗?
强力磁铁对拇指驱动器(我假设不是)或SD卡有什么影响吗?这似乎不太可能,但是我希望有人能给我一个明确的答案,因为我宁愿不知道它实际上可以做到的艰难方法。假设磁体是强大的工业磁体,如果这对答案有重大影响。
10 flash  sd  magnetics  damage 

3
什么是闪存等待状态?
我正在使用飞思卡尔PowerPC微控制器。在数据表的闪存模块中,“闪存访问的等待状态”的数量是可配置的。 以下是数据表中提出我问题的部分,它取自PFlash模块寄存器的寄存器描述: 该字段必须设置为与PFlash的工作频率和PFlash的实际读取访问时间相对应的值。较高的工作频率要求对此字段进行非零设置才能使Flash正常运行。 0 MHz,<23 MHz,所需等待状态= 0 --- 23 MHz,<45 MHz,所需等待状态= 1 --- 45 MHz,<68 MHz,所需等待状态= 2 --- 68 MHz,<90 MHz,需要的等待状态= 3- (PFlash是平台Flash控制器模块) 我知道处理器比闪存快,这就是为什么引入等待状态的原因。我不明白的是:如果处理器比闪存快,那么处理器就是需要降速的处理器而不是闪存,但是上面的段落说的相反(或者我不明白吗?),说,如果Pflash以高频率运行,那么我们需要通过增加其他等待状态来降低它的速度! 我的理解有什么问题? 谢谢

4
为什么BIOS的ROM芯片不使用CMOS技术制成?
阅读有关BIOS / CMOS的计算机硬件课程后,我仍然无法确定为什么不使用CMOS技术构建BIOS的ROM芯片的原因,以及为什么将其连接到名为“ CMOS”的单独芯片上以存储BIOS的原因。配置信息。 这来自讲义: 程序存储在系统BIOS芯片上,而可变数据存储在CMOS芯片上 CMOS硬件组:通用,必要但可能会更改的硬件– RAM,硬盘驱动器,软盘驱动器,串行和并行端口 我知道BIOS存储在闪存中,并且与其他实现相比,CMOS MOSFET技术的功耗更低。 为什么只有像其他存储设备一样不使用CMOS的BIOS ROM才有优势?为什么不能将BIOS配置信息存储在其自己的ROM芯片中而不是“ CMOS芯片”中?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.