4
\$\begingroup\$

I've been playing around with writing operating system-like software, mostly as a self learning experience. I've been doing this on the Atmel AVR processor, since it's simple enough for me to understand and get a program going quickly. I now want to move into an architecture in which the user stores programs that are run in RAM. I know that some Cortex-M chips can run from RAM, but I've heard that this is not universal. I've checked out the datasheets for a number of them from a few different manufacturers, but I can't find any reference to execution from RAM. For what it's worth, I have one of these: http://www.nxp.com/assets/documents/data/en/data-sheets/KL27P64M48SF2.pdf I also have an Atmel SAMD-10, but I hate the ASF like rats so I'd rather avoid using it.

Can the chips I have execute from RAM? Is there anything I should be looking for in a datasheet that indicates whether or not this is possible?

\$\endgroup\$
1
  • \$\begingroup\$ On STM32, Flash/RAM configuration is set up externally with the BOOT0 and BOOT1 pins. \$\endgroup\$ – Ronan Paixão Dec 9 '16 at 16:38
7
\$\begingroup\$

I know that some Cortex-M chips can run from RAM, but I've heard that this is not universal.

You heard wrong. All Cortex-M chips can execute code from RAM addresses and from off-chip external ram should they support an external memory controller.

Only the interrupt vector table has a few more restrictions, which require you to put that table into on-chip ram or flash - see VTOR register description.

Note: Memory maps which describe where code is executable can be found in the coresponding ARM Architexture Reference Manual.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.