自学嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较大的。 嵌入式的应用主要是几个方向, 一是系统开发:侧重开发环境搭建、内核原理、交叉编译等; 二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用; 三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。 不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。 一.linux理论知识 1.计算机基本理论;2.CPU体系结构;3.内存管理;4.文件系统;5.进程调度;6.Linux常用操作。 二.linux驱动知识 1.i2c驱动添加使用; 2.spi驱动添加和读写 3.io驱动 4.dma驱动 5.中断源 6.竞争,并发,阻塞,异步,线程,内存,io,调试 7.usb 8.flash,文件系统 9.网卡驱动 10. LCD驱动 三.linux编程知识(指令) 1.输入输出,文件,文件夹 2.字符串,数据结构,堆栈,链表,(查找)算法,二叉树 3.线程: 线程属性,线程同步(锁,信号量, 条件变量) 4.进程:守候进程,进程通信-管道,信号,SystemV(消息,共享内存,信号灯),读 写锁,套接字 5.网络:socket,ftp客户端,tftp客户端,http server,snmp命令 6.环境变量,库默认搜索路径,arm-linux-gcc库路径,设置搜索路径,编译流程,lds文件,内联汇编 7.gcc ,ld, ar, ranlib, objdump, readelf, objcopy工具 8.make makefile 9.shell,perl 10.设备编程v4l,lcd和overlayer2,串口,并口, mixer, dsp, adc, ts ,mouse 等等 上面这个嵌入式课程信息是从东方赛富3G嵌入式学院网站COPY下来的,仅供参考; 若感兴趣想进一步了解的话,只有去网上咨询或实地考察了。