Questions tagged «flash»

4
如果闪存或SRAM用完了怎么办?
根据Arduino文档,ATmega328具有用于引导程序+上传的草图的32KB闪存,以及用于运行时数据的2KB SRAM。ATmega2560具有更多功能,分别为256KB和8KB。 无论哪种情况,这些限制似乎都很小,尤其是与类似大小的消费设备(例如智能手机)相比时。 如果用尽了怎么办?例如,如果草图太大,或者需要在运行时处理大量数据(例如字符串)?有什么方法可以扩展Flash或SRAM?

6
如何擦除Arduino Uno的内存?
我只是和儿子一起学习Arduino的修补匠,当我将USB线重新插入Arduino时,程序仍在运行,我感到很惊讶,我对自己说:“这是一件好事,我不仅吹了什么东西起来。” 那么,人们每天用这些东西称呼它的正常方式是什么?您通常会加载裸机,什么都不做,还是只是拔掉所有插头?

3
PROGMEM:是否必须将数据从闪存复制到RAM才能读取?
我在理解内存管理时遇到了一些困难。 Arduino文档说,可以在程序存储器中将常量(如字符串)或任何我不想更改的常量保留在程序存储器中。我认为它嵌入在代码段中的某个位置,这在von-Neumann体系结构内必须是完全可能的。我想以此来使我的UI菜单显示在LCD上。 但是,我对于那些仅从程序存储器中读取和打印数据的指令感到困惑: strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i]))); // Necessary casts and dereferencing, just copy. Serial.println( buffer ); 为什么在访问前我必须将该死的内容复制到RAM?如果这是真的,那么所有代码​​会怎样?它在执行之前也已加载到RAM吗?那么仅使用2kiB RAM时如何处理代码(32kiB)?那些拿着软盘的小妖精在哪里? 更有趣的是:像这样的表达式中的文字常量会发生什么: a = 5*(10+7) 在将5、10和7加载到寄存器之前,它们真的被复制到RAM了吗?我简直不敢相信。
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.