我会说你在做梦。主要问题将是有限的RAM。
2004年,埃里克·贝德曼(Eric Beiderman)设法用2.5MB的RAM启动了内核,并删除了许多功能。
但是,那是在x86上,您正在谈论ARM。因此,我尝试为“多功能”平台(最简单的平台)构建最小的ARM内核。我关闭了所有可配置的选项,包括您要寻找的选项(USB,WiFi,SPI,I2C),以查看它会变得多么小。现在,我只在这里指内核,它不包括任何用户空间组件。
好消息:它将适合您的闪光灯。生成的zImage为383204字节。
坏消息:拥有256kB的RAM,它将无法启动:
$ size obj/vmlinux
text data bss dec hex filename
734580 51360 14944 800884 c3874 obj/vmlinux
.text段大于可用的RAM,因此内核无法解压缩,更不用说分配内存来引导了,更不用说运行任何有用的东西了。
一种解决方法是,如果您的系统支持,则使用就地执行支持(CONFIG_XIP)(即,它可以直接从Flash中获取指令)。但是,这意味着您的内核需要适合未压缩的Flash,并且734kB> 700kB。此外,.data和.bss部分总计为66kB,其他所有内容(即,内核中所有动态分配的数据结构)均接近190kB。
那只是内核。没有您需要的驱动程序或任何用户空间。
因此,是的,您将需要更多的RAM。