你说的很到位,OS内核,linux基础,C语言正好是嵌入式开发的基础的基础。
建议你选个嵌入式培训班,采用ARM学习板的那种,把所有的联系都自己先独立完成一遍,再看看书梳理一遍。
需要看的基础书籍:
C/C++入门/数据结构
Linux内核编程基础/操作系统原理
ARM入门
第一阶段 Linux基础
Linux入门
LINUX 基础
文件和目录
Linux调试
第二阶段 Linux下C语言的强化
C基础
模块化程序设计
字符串与数组
指针
文件IO
C语言考核和实训
第三阶段 C++
C++基础
类
构造函数
继承与派生
C++的多态性
C++实训和考核
第四阶段 数据结构
线性表
树
图
动态存储管理
查找和排序
文件
数据结构实训和考核
第五阶段 嵌入式系统基础
嵌入式系统基础
ADS开发与调试环境使用
ARM体系结构
S3C2440微处理器
Arm编程和调试
Arm接口与实验
嵌入式Linux开发环境构建
嵌入式linux内核移植
Linux核心的平台相关层代码分析
复习和阶段考核
第六阶段 Linux高级编程
IO口编程, 文件编程
多线程编程
IPC高级编程
网络编程
客户端/服务器编程
socket网络高级编程
UPNP实现
复习与阶段考核
第七阶段 Linux内核
内核基本结构
内存管理
中断和异常
第八阶段 QT图形界面
第九阶段 Linux驱动程序设计
Bootloader编程
字符驱动
块设备驱动程序开发
LCD Framebuffer设备驱动程序开发
网络设备驱动程序开发
USB设备原理
1、单片机学习是一定能好好把握CPU运行机制,编译机制;
2、若把CPU运行机制、编译都搞懂了,马上开始在PC上学习linxu怎么使用;
3、学会linux使用后,马上了解操作系统原理,结合linux进行实战,网上有很多例程可以参考;
4、在找块高级的嵌入式CPU如ARM11,A8等裸机上编编程序,有单片机基础应该很快,这时注意下单片机机制与ARM机制的不同,实地址与虚地址的区别,CPU运行模式的区别等。
5、在A8上开始跑linux,引导程序boot,应用程序,系统调用,驱动等等对操作系统二次运用;
6、研究Linux内核,结合3中提到的操作系统原理,看看linxu高手是如何编写程序的,达到理论、实践的最高升华,
7、其他CPU、os大同小异,此时又一个专业的嵌入式高手诞生