SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内存,可以运行大型操作系统,其中Linux是最常见的选择,拥有庞大的社区支持和设备驱动。
嵌入式Linux开发相较于单片机开发需要更多的知识储备和学习时间。建议先从单片机开发入手,建立基础,然后再逐步学习嵌入式Linux。这是基于两方面的考虑。首先,高端SOC的手册非常庞大,需要扎实的计算机体系结构知识作为基础,推荐阅读相关书籍并参考名校的公开课程。其次,Linux本身非常复杂,需要先学习操作系统原理的基础知识,并深入研究针对Linux内核或应用的专业书籍。如果没有基础且学习能力一般,直接学习高端SOC和Linux可能会遇到困难,进展缓慢。因此,建议从简单的单片机开发开始学习,并逐步掌握外围电路知识,因为作为嵌入式开发人员,了解一定的硬件知识是必要的。