4 ms·
Linux can already run on MMU-less systems (CONFIG_NOMMU). GCC already supports AVRs, though you may have to tweak the backend a bit so ints are 32-bit wide etc.
by poizan42 10y ago
Linux can already run on MMU-less systems (CONFIG_NOMMU). GCC already supports AVRs, though you may have to tweak the backend a bit so ints are 32-bit wide etc.
These are not the big issues in porting the Linux kernel to an AVR. The major problem is that AVR is Harvard architecture and there's probably tons of assumptions in the kernel that code and data resides in the same memory space.
- deleted 10y ago[deleted]
- poizan42 10y ago- also ATmega1284P and ATmega644A mentioned in the article doesn't support external code memory nor changing the code memory after boot. However they do support a boot loader that can load code initially. So you would have to implement some sort of paging by resetting the cpu to give control to the bootloader to load the new code. Sound like fun. Also the kernel itself is far too large to fit in code memory, so it would constantly have to page parts in and out through this mechanism.