如何在更少的内存中执行大代码?

Vir*_*mar 1 ram microcontroller avr atmel atmega16

我怀疑,在所有微控制器中,闪存更多是ram(例如:atmega16它是16k,但RAM只有1 Kb)..

那么,如何执行代码,CPU是否直接从Flash本身执行,如果是,那么是否使用了给出的那个小RAM.

Hei*_*nzi 5

闪存用于存储要执行的程序.它们很少改变,因此闪存是合适的.

RAM用于执行程序期间所需的内存:堆栈(本地变量),堆(malloc)等.

  • 你很简单,不能有一个10k阵列,最好的情况下,你将覆盖你的堆栈指针,程序将消失自己的****.编译器会警告你,你使用的内存太多了.1k非常适合Mega16类型的应用程序.如果你确实需要更多RAM,请使用类似ARM的东西. (2认同)