一、作linux嵌入式开发,要学些什么东西??
第一步:linux平台上的开发,包括vi,gcc,gdb,make, linux基本操作
第二步:加厚c语言功底《c专家编程》《c缺陷和陷阱》
第三步:学习unix环境高级编程《unix环境高级编程》
第四步:arm体系结构
第五步:arm应用程序开发
以后:驱动开发
二、linux软件工程师应具备
想做底层 搞驱动?那主要是还是用C语言 和少量 汇编
你是学电子的话?那你 在操作系统方面的知识可能比较薄弱,
操作系统是个难点,
至于算法这东西 在实际工作里完全就是次要的,绝大多数情况稳定、易维护调试的程序才是真正需要的。
还有计算体系结构知识,学电子的该学过微机原理吧,这方面你应该是有基础的。这点也是一难点。
说到 驱动,一般来说 只会到 字符设备的驱动就止步了,
其他更高级的驱动,都是牛人中的牛人来搞的,
一般公司的话 就是写一些字符设备驱动。
2L就一外行,LZ想往底层发展,当然是用C和 汇编(这个实际用的少),
什么时候 中高级 语言能对 CPU进行管理了?
中高级语言是做应用层用的。
三、嵌入式linux开发需要学哪些东西?
这是一份来自【北航嵌入式培训中心】的嵌入式linux工程师的课程表,楼主看完之后应该能知道嵌入式linux培训该学习哪些东西,先学什么,后学什么,基本上会有一个框架。
第一阶段 合格Linux C程序员阶段 课程名称 课程内容 课时 C语言 基本C语言语法,变量,过程控制 C语言简单参数传递,数组和指针概念 基本C语言程序设计实践初级 专题(1)C和指针 专题(2)C语言的Bug和笔试真题分析 56 (选学) Linux系统与C语言编程(初、中、高级) Linux基本操作 Linux下的基本编程方法binutils工具集介绍 Linux下的c语言程序设计和编程习惯 shell程序设计;文件与I/O操作;进程与信号;进程间通信;网络编程 136 数据结构C语言描述 线性表;栈和队列 数组和广义表;树和二叉树 图的概念和应用;动态存储管理 排序和查找的讨论 32 C++程序设计 C++程序设计基本概念,类和数据抽象构造和析构函数,函数的二义性讨论;函数重载 16 QT程序设计 QT的介绍和开发环境;QT的类和控件,信号和槽;QT应用实例应用 24 项目实战:划艇收费系、数码相框(PC机) 第二阶段 嵌入式Linux C程序员阶段 课程名称 课程内容 课时 ARM体系结构与编程 ARM概述及指令分类、寻址方式 ARM指令集精讲和汇编语言程序设计ARM存储系统和中断、异常处理 基于ARM的接口编程 32 嵌入式Linux系统移植 嵌入式系统概念和开发环境搭建 Boot loader概念和启动过程分析 U-Boot移植和代码分析 嵌入式Linux系统移植和编译 嵌入式Linux系统接口驱动移植 文件系统的概念和根文件系统的制作 48 QT移植 QT编译和应用库的制作 QT移植和应用程序编程 16 第三阶段 嵌入式Linux C驱动工程师阶段 课程名称 课程内容 课时 嵌入式Linux系统设备驱动程序开发(初级) Linux设备驱动的概念和开发过程 Linux设备驱动中的机制和策略 Linux设备驱动模型和高级同步机制 嵌入式Linux接口驱动工程实践 48 项目实战:视频监控系统 第四阶段 嵌入式Linux工程师阶段 课程名称 课程内容 课时 嵌入式Linux系统设备驱动程序开发(高级) 触摸屏驱动研究与开发实践 MTD设备驱动研究与开发实践 Frame Buffer和LCD驱动研究与实践 网络设备驱动研究与开发实践 SD卡驱动研究与开发实践 USB设备驱动与开发实践 48 工程实践项目(根据课程进度安排项目): GPRS远程网络视频监控系统/数码相框(开发板) 智能家居系统 简易POS机系统 车载娱乐终端
四、嵌入式linux开发与防火墙系统开发的选择
既然已经研二了 就不应该专注于学习和提高 应该搞应用开发了
所以如果pos终端能做 自然应该去pos终端
如果做防火墙系统你完全不知道是做什么 就不要去了。 新学是很浪费时间的。
而且如果是软件防火墙 那完全不是嵌入式开发。。。做硬件防护墙虽然比软件防火墙容易 但也不是短期课程
我真心劝楼主 不要再想着学东西了。 先发自己学到发挥出来 再考虑学什么。
这个世上的知识是无尽的,而嵌入式的覆盖面又非常广。