嵌入式开发概述

什么是嵌入式
传统开发软件直接控制硬件,比如51单片机开发,在开发软件的时候还要兼顾硬件知识,这样的开发模式主要有两点缺点.
1:软件与硬件耦合性高,造成移植性差.
2:软件开发者还需了解硬件基本原理,对培养该类人才造成困难.
嵌入式开发在原有硬件上移植操作系统,通过软件控制操作系统,操作系统控制硬件。从而移植性高,软件开发可不必了解底层原理。
ARM芯片与嵌入式
嵌入式CPU与通用型的最大不同之处在于嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,与网络的耦合也越来越紧密。
而ARM芯片是低功率处理器,能够运行操作系统(linux,还有一些专门的嵌入式操作系统如vxworks,RT-Thread,ucosii,sylixos等)除linux之外的嵌入式操作系统通常具有实时性.
实时性:在规定时间内完成规定动作。在一些对控制要求高的场合基本上要求操作系统实时性要高。
正是因为ARM芯片的低功耗,可用于移动便携设备,直接促进了嵌入式的发展.
嵌入式开发方向
先解释一下操作系统(OS):
操作系统是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。操作系统主要由内核、驱动程序、接口库、外围组成。
根据前面所述,嵌入式是在已有硬件上移植操作系统,也就是 “软件-操作系统-硬件” 体系结构,所以嵌入式开发方向可大致分为两类:嵌入式应用开发和嵌入式底层开发。
应用开发是用c/c++语言编写应用软件。底层开发设计到硬件层和操作系统层,开发也包括驱动开发,系统移植,操作系统开发.
嵌入式学习路线
根据上面所述,读者大致了解了嵌入式,所以嵌入式学习路线大致如下,读者可参考。
1:linux系统使用
这一阶段主要了解一些常用命令,开发工具。linux是一款开源操作系统,主要以终端输入命令控制系统。开发工具如gcc编译器,vim文本编辑器,gdb调试器,makefile工程管理器等
2:linux c编程
linux操作系统是类unix系统,而unix系统是由c语言之父丹尼斯里奇开发的操作系统
所以在linux环境下学习c语言的开发,是比较合适的。
3:嵌入式linux c++编程
这阶段主要学习一些图形化界面设计,增加交互性。图形化界面设计,工具:QT。图像处理opencv,人工智能tensorflow,网络库libevent,音视频ffmpeg等
接下来要开始接触底层,从事底层开发需要了解
4:嵌入式ARM裸机开发
裸机开发就是不带操作系统的开发学习ARM裸机,需要具体了解arm结构工作原理等。
5:嵌入式操作系统移植
将操作系统移植到硬件上需要学习内核,引导加载程序等。
6:嵌入式驱动开发
底层硬件与操作系统之间的联系,需要开发驱动程序来控制硬件,也就需要了解更加底层的知识
7:嵌入式操作系统开发
开发出一个嵌入式操作系统,典型的如鸿蒙系统等。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值