文章摘要:嵌入式开发要学什么基础
嵌入式是当今IT领域最热门、最有发展前途的工作之一,想要学习这门技术,要掌握哪些知识呢?下面小编给大家介绍嵌入 […]
嵌入式是当今IT领域最热门、最有发展前途的工作之一,想要学习这门技术,要掌握哪些知识呢?下面小编给大家介绍嵌入式开发要学什么,一起来看看吧。
嵌入式开发要学的知识
1、C语言。嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
2、Linux基础。Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
3、Linux系统编程。重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
4、Linux网络编程。计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
5、数据结构与算法。在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
嵌入式学习方法
学好C语言。对于学习嵌入式来说,C语言就是基础部分,它就像你的双脚,你想要跑起来,你对C语言的掌握就一定要达到精通。C语言是可以跟汇编结合对硬件进行操作,嵌入式开发基本用的都是C语言。所以你必须努力将C语言学好。
学习嵌入式LINUX。我们知道ARM嵌入式都是带系统,也就是ARM+WinCE、ARM+LINUX或者ARM+VXWORKS。从事嵌入式的工程师至少要掌握一个嵌入式操作系统,这是所以项目中的关键。
学习arm体系结构。即使大家觉得汇编设计较枯燥乏味,学汇编可以让你掌握处理器的运行机制,让你写出比较优秀、高效率的C语言代码。
深入学习内核驱动。学习驱动,你就必须看得懂各个内核函数代码,所以你的C语言要过关,刚开始学习的时候,可以模仿驱动的源代码,尽管是很简单的驱动。
嵌入式的学习建议
(1)嵌入式系统软件硬件密切相关,一定要打好软件硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统。
(2)选择一个芯片及硬件评估板,找一位好老师。硬件评估板的价格一定要在1000元以下,不要太贵,比较好能有自己动手的空间。不花一分硬件钱,要想学好嵌入式系统不实际。因为,这是实践性很强的学科。好书,可以使你少走弯路,不会被误导,要知道有的书是会使人进入学习误区的。好老师也可以是做过一些实际项目的学长,有教师指导,学习进程会加快。
(3)许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解MCU的硬件最小系统,对I/O口、串行通信、键盘、LED、LCD、SPI、I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践。再通过自己做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。
(4)至于嵌入式实时操作系统RTOS,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学习就感到容易理解。实际上,众多嵌入式应用,并不一定需要操作系统。也可以根据实际项目需要再学习特定的RTOS。一定不要被一些嵌入式实时操作系统培训班宣传所误导,而忽视实际嵌入式系统软件硬件基础知识的学习。