logoalt Hacker News

irdc • yesterday at 9:45 PM • 2 replies • view on HN

If it's running on MMU-less systems, I'd be interested in how it loads multiple programs into memory: does it need to relocate each program binary? If so, doesn't that preclude using execute-in-place (XIP)?


Replies

Arelius • yesterday at 10:41 PM

Generally, running in a MMU without static task config would require relocatable binaries. I'm not sure why it'd preclude execute-in-place. As a relocatable binary should be executable from generally any address space. However I suspect that hardware without an MMU is not super likely to be able to support XIP.

It is based on FreeRTOS, so it should be fairly well documented.

➕ show 1 reply
topspin • today at 1:55 AM

"COM" programs as seen in MS DOS and earlier CP/M systems contain only relative addresses, and can run from any "segment" of RAM, as the addresses are relative to the value of a segment register. This was used to load "background" services, typically servicing hardware devices.

MCUs with MMUs are starting to appear, such as the ESP32-S31.