学习啦 > 学习方法 > 通用学习方法 > 学习经验 > 如何学习arm嵌入式

如何学习arm嵌入式

时间: 威敏1027 分享

如何学习arm嵌入式

  嵌入式从2002年之后就成为很热门的职业,这其中以ARM的商用分不开,下面学习啦小编收集了一些关于学习arm嵌入式的方法,希望对你有帮助

  学习arm嵌入式方法

学习啦在线学习网   基础部分:基础打不牢的工程师必然是走不远的。

  汇编语言、C语言,数据结构和算法、操作系统都是必须要懂得的。当然了,如果能用开发板把机械手臂和智能小车这样的项目自己动手开发一下,效果就更好了,一方面是降低了学习的枯燥,另一方面自己动了手也会增加实际经验。

学习啦在线学习网   嵌入式应用层开发:

  Linux系统编程、网络编程、UcOS、通信协议及编程技术、GUI-Qt、图形化界面开发等等。这部分技术所对应的工程师是目前国内相当缺乏的,也是嵌入式开发者就业最多的地方。虽然工资没有做底层得高,但个把万还是能够轻松实现的。

  嵌入式底层开发:

  linuxkernel(linux内核)、rootfile(根文件系统),系统移植,linux驱动程序这些技术最好都懂一些。你在这里需要用到一个运行计算能力更强的arm开发板来做辅助,测试你的底层代码是否能够运行,像尚观提供给学员的就是cortex—a9的三星 exnoys 4412四核平台。

  学习嵌入式系统之基础知识

  1、Linux 基础

  安装Linux操作系统:Linux文件系统 ,Linux常用命令,Linux启动过程详解,熟悉Linux服务能够独立安装Linux操作系统,能够熟练使用Linux系统的基本命令,认识Linux系统的常用服务安装Linux操作系统,Linux基本命令实践,设置Linux环境变量,定制Linux的服务,Shell 编程基础使用vi编辑文件,使用Emacs编辑文件,使用其他编辑器。

学习啦在线学习网   2、Shell 编程基础

  Shell简介:认识后台程序Bash编程熟悉Linux系统下的编辑环境,熟悉Linux下的各种Shell,熟练进行shell编程熟悉vi基本操作,熟悉Emacs的基本操作,比较不同shell的区别,编写一个测试服务器是否连通的shell脚本程序,编写一个查看进程是否存在的shell脚本程序,编写一个带有循环语句的shell脚本程序。

  3、Linux下的 C 编程基础

学习啦在线学习网   linux C语言环境概述:Gcc使用方法:Gdb调试技术,Autoconf Automake Makefile,代码优化,熟悉Linux系统下的开发环境,熟悉Gcc编译器,熟悉Makefile规则编写Hello,World程序,使用make命令编译程序,编写带有一个循环的程序,调试一个有问题的程序。

学习啦在线学习网   4、嵌入式系统开发基础

学习啦在线学习网   嵌入式系统概述:交叉编译配置TFTP服务,配置NFS服务,下载Bootloader和内核,嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程,建立嵌入式系统开发环境制作cross_gcc工具链,编译并下载U-boot 编译并下载Linux内核编译并下载Linux应用程序。

学习啦在线学习网   5、嵌入式系统移植

学习啦在线学习网   Linux内核代码:平台相关代码分析,ARM平台介绍,平台移植的关键技术,移植Linux内核到ARM平台,了解移植的概念,能够移植Linux内核移植Linux2.6内核到arm9开发板。

  6、嵌入式 Linux 下串口通信

  串行I/O的基本概念:嵌入式Linux应用软件开发流程,Linux系统的文件和设备,与文件相关的系统调用,配置超级终端和MiniCOM能够熟悉进行串口通信,熟悉文件I/O,编写串口通信程序,编写多串口通信程序。

  7、嵌入式系统中多进程程序设计

  Linux系统进程概述:嵌入式系统的进程特点,进程操作,守护进程,相关的系统调用了解Linux系统中进程的概念,能够编写多进程程序编写多进程程序,编写一个守护进程程序,sleep系统调用任务管理、同步与通信Linux任务概述任务调度管道、信号共享内存,任务管理 API,了解Linux系统任务管理机制,熟悉进程间通信的几种方式,熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输,编写一个使用共享内存的程序。

  嵌入式系统的分层与专业的分类

  1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。

学习啦在线学习网   硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。

学习啦在线学习网   2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。

  驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。

  3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。

  4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
猜你感兴趣:

1.如何开始学习嵌入式

2.嵌入式学习心得体会演讲稿

3.嵌入式系统基本知识

4.嵌入式培训心得体会

5.嵌入式实训心得体会3篇

3216602