关于嵌入式

2023-05-16

学习方向
首先要学习下基础课程单片机,汇编和C语言等等,然后再学习嵌入式,如果说你要想水平高的话,最好学习下操作系统,数据结构,算法及一些硬件方面的知识等等。看你是想在什么方面发展,在硬件方面还是软件方面。假如是软件方面,当然对编程要侧重,反之在硬件方面,那么就要对单片机,电子电路,数电,模电等等要多加学习才是。
做嵌入式的大概有这样几个方向:  
 
驱动/BSP/内核移植类:这一类要求你了解硬件芯片和电路原理图多一些,需要多学习大学这类基础课,然后看一些基本的CPU芯片外围芯片手册,知道什么是CPU内部总线、外设控制器和寄存器。这类人在产品项目中人数需要不大,但是工资不低。(内核移植和内核开发暂且不提)
(辅助知识:通信:串口,usb口,网口,RS232,RS285,LINE2.0,CANBUS,RF,蓝牙,红外数模:ADC,DAC,放大器应用电路电源,存储器,时钟,传感器等应用)
嵌入式操作系统类:这一类要求你能根据产品需要设计出能多任务处理并控制一些外设或者与外设通讯的程序。需要你有很好的C语言基础,单片机基础,然后是嵌入式操作系统基础,知道各种多任务处理的模型,然后还需要一些数据结构知识。你要知道程序是如何烧写到芯片里变成能控制设备的东西的。
嵌入式系统应用类:这一类要求更加偏向软件一些,有时甚至只是知道内存限制就可以了,其它硬件都不必考虑太多,比如做嵌入式GUI的(miniGUI, Qt)、嵌入式数据库的、嵌入式webserver程序等,这一类归根结底是软件开发,需要有强大的阅读源码能力和程序设计基础。高级嵌入式相关应用程序开发类:如手机开发的,特别是iphone android的应用开发,这一类实际上是纯软件开发,要求有很好的程序设计基础、面向对象概念、结构化开发概念等,UI相关的现在还需要有一些UX用户体验理念。    
大概就这几类,如果你是学生建议自己买一个三星的ARM9开发板,很便宜的,从读芯片手册、学习移植ucosII,写写ucosII应用程序,深入的可以学习嵌入式linux下应用程序开发等,总之一年之内学透一个开发板,那么你就可以合格胜任前两类工作了。总体来说第一类:模拟电子 数字电子 微机控制等技术很好,对嵌入式各个模块很熟悉,单片机应用的炉火纯清,能独来开发(软件,硬件,PCB)测试,控制等项目(能力很强,适合独立开发项目)
第二类:能把操作系统移植到嵌入式,并且能编写驱动程序(适合团队开发,和应用软件工程师配合)
第三类:熟悉BS/CS架构和设计,操作系统原理和内核有相当的认识,有美工经验,熟悉嵌入式应用软件的开发(适合开发上位机,或与第二者协作开发嵌入式) 
在此建议   统筹全部 专于一个方面
硬件介绍
DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
ARM 即Advanced RISC Machines的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
SoC:片上系统 (SoC:System on a Chip) 片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。 SoC是与其它技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。由于空前绝后的高效集成性能,片上系统是替代集成电路的主要解决方案。SoC 已经成为当前微电子芯片发展的必然趋势
FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
硬件比较
FPGA: 
时序控制能力强。(时序能力强,没有指令周期,速度快)
控制能力较强(由于没有指令集,不如ARM和单片机)。
数字信号处理及算法弱(这里讲的弱是指内部不集成DSP的前提下)
DSP:
时序控制能力较弱。(没办法。有了指令集,就有指令周期。而且受到时钟约束)
控制能力较强(有指令集。但是不是专业搞控制的)
数字信号处理及算法强(专业特长嘛)
DSP和FPGA开发的概述:
DSP,专用电路(内部结构已经固定)通过对RAM内部的指令和数据工作(这个是CPU和ARM等等的工作方式)所以开发遵循嵌入式软件的设计原则。调试应更注重于算法的实现。
FPGA,ASIC一种,经典FPGA的内部结构是寄存器+组合逻辑(查找表)。最后是按照逻辑电路进行设计。所以是属于硬件设计原则。调试除了需要关心功能以外,还需要关心电路
方面的特性。比如说延迟,整体功率等等。
开发工具:
DSP仿真器,开发板。仿真器比较多,网上查吧,DSP仿真器,网上大堆的,嫌不够正规,TI网站自己找教程和datasheet。
FPGA:开发工具比较多,他分成综合工具,仿真工具和开发板,综合工具altera的Quartus和xilinx的ISE以及synplicity的synplify用的比较多。仿真么,modelsim,时序仿真利器。也是网上去找吧。多滴很~~
技术支持你不用担心~TI和Xilinx和Altera的支持非常非常地道。就一个问题。英文要好。至少你能静下心来看。上了他们的网站。你就知道什么叫专业。fpga还好,因为就几家大公司才有能力出。dsp么,具体问题具体分析咯。
选择策略方面。这个是经验谈啊:不能绝对的说。DSP么,专业性比较强。而且的确能做别的IC做不了的事情(人家里面乘法器资源没话说稳定性和效率在数字信号处理这块基本无人能出其右)FPGA呢相对来说可以运用的面比较广泛(不过也是近期的事情。其实FPGA很早就有。只是当初设计领域都是通信方面的。现在有集成CPU和DSP以及公司提供的软核的强力支持,设计面越来越广)
FPGA,ARM,DSP那个更加有前途
三种技术目前看,都有各自的特点,没有任何一个能完全替代另一个。
论市场需求,ARM是现在最火的技术,低端芯片正在替代51单片机,中端芯片做工控,高端的作为便携设备的主控制器,可以跑系统,我感觉主要是I PHONE和I PAD一下子把市场激活,ARM立刻火爆了。ARM跟DSP和FPGA比,主要优势是外设丰富,有USB接口,LCD屏接口,NAND接口甚至触摸屏接口等,你要用DSP和FPGA开发这些外围设备,可累死了。
论运算速度,DSP最快,但现在主要用在手机测试示波器这些高频信号测试的地方,控制部分已经完全输给ARM了。FPGA特点是并行处理,主要做一些相对简单的逻辑功能和高速信号采样和显卡等,功能也很强大。
如果非要选一样说最有前途,我建议还是ARM吧,学会ARM有些东西你可以单干,比如手机、平板电脑、各种测试仪器。精通DSP和FPGA的话,最好是在大公司里打工。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于嵌入式 的相关文章

  • 【es】基本概念理解

    一 xff0c 初识es 1 是什么 xff1f ElasticSearch 简称es 开源的分布式的全文搜索引擎 xff0c 可以近乎实时的存储检索数据 xff0c es使用java开发 xff0c 并且使用Lucene作为核心实现搜索功
  • 无法安装net framework 3.5 的解决方法

    电脑刚重装了Windows8 1系统 xff0c 然后安装数据库的时候 xff0c 却出现了这样的问题 xff1a 您的电脑上的应用需要使用以下windows功能 问题原因是 xff1a 在安装系统的时候 xff0c NET Framewo
  • 【计算机网络原理】第四章 数据链路层

    今天主要梳理了一下数据链路层的内容 xff0c 如下 一 宏观规划 综合数据链路层的整体 xff0c 分为两大部分 xff0c 第一部分讲解数据链路层的功能 xff0c 第二部分讲解数据链路层的功能 这些协议 xff0c 其实还是为了实现数
  • 【redis】关系型数据库 VS 非关系型数据库

    一 关系型数据库 xff1f 1 概念 关系型数据库是指采用了关系模型来组织数据的数据库 简单来说 xff0c 关系模式就是二维表格模型 主要代表 xff1a SQL Server xff0c Oracle Mysql PostgreSQL
  • resultful风格接口

    一 产生背景 网络应用程序 xff0c 越来越流行前端和后端的分离设计 当前的发展趋势是前端的设计层出不穷 比如 xff1a 各种型号的手机 平板灯其他设计 因为必须要一种统一的机制方便不同的前端和后端进行通信 这就导致了API结构的流行
  • 【kafka】Exception thrown when sending a message with key='null' and payload='lizhenjuan;99' to topic

    今天碰到一个奇怪的问题 xff0c 如下图 xff1a 一 问题 1 问题截图 上午还可以发送消息成功的 xff0c 下午突然就发送不了消息了 我就检查我代码的问题 xff0c 是传递的格式不对 xff0c 还是数据要求不对 网上的资料显示
  • 【mysql】order by多个字段排序

    今天遇到了两个字段排序的问题 xff0c 感觉不是很清晰 xff0c 所有又按照规则查询了下 xff0c 总结下 count都是306的有三个 现在需要同时按照age和count排序 xff0c 测试最后的排序结果 默认都是按照age和co
  • PCB Layout软件分析对比(AD、Pads、Allegro)

    PCB Layout软件分析对比 xff08 AD Pads Allegro xff09 国内的EDA软件市场几乎被三家瓜分 xff0c 分别是Altium Cadence Mentor xff0c 也是我们这次主要分析和比较的软件 除此之
  • 【leetcode学习笔记】leecode是什么?

    在csdn上看到leecode是第二次了 xff0c 之前一直不知道是什么 xff1f 今天在学习linux系统如何将文本登录界面转换为图像登录界面的时候 xff08 出现了运行startx后 xff0c ubuntu密码正确也进不去系统的
  • 相机内参详解

    相机内参详解 以下是一些个人在工作中对相机内参的学习和理解 首先要了解一下数码相机的大致成像原理 1 光聚焦在CCD或CMOS上 2 CCD或CMOS完成光 电转换 3 A D将模拟信号转换成数字信号 4 最后由DSP将数字信号转换成数码图
  • java8使用积累

    1 将List lt T gt 数组转换为String并用逗号隔开 String join 34 34 List 2 idea自动补全代码教程 xff1a https www cnblogs com HF Made p 11417225 h
  • 【java】手动分页工具类

    最近小编遇到一个很绕的问题 xff0c 无法使用mybatis自带的分页插件对符合条件的数据进行分页 xff0c 故收集了一个自动分页的工具类 xff1a public static lt T gt List lt T gt getPage
  • redis 使用bitMap实现统计系统在线用户数量

    BitMap xff0c 简单来说 xff0c 其实也就是 byte 数组 xff0c 用二进制表示 xff0c 一个bit的值 xff0c 或者是0 xff0c 或者是1 xff1b 也就是说一个bit能存储的最多信息是2 它用一个bit
  • xml与实体之间的转换

    在对接一些第三方接口的时候往往需要涉及到一些对xml文件的处理 xff0c 小编今天主要总结一下JavaBean与xml文件之间互相转换的探索与实例 使用JAXB技术实现xml与实体之间的转换 1 是什么 xff1a JAXB xff08
  • SVN中trunk、branch、tag区别

    虽然一直都在用svn作项目管理 xff0c 但是一直都是傻傻的分不清主干 分支 今天小编就来详细介绍一下 xff1a branch 分支 xff1a 版本控制系统的一个特性就是能够把各种修改分离出来放在开发品的一个分割线上 这条线就被称为分
  • win10下如何解决VC++MSDEV.EXE的0xc0000142错误

    最近小编在学习时用到了vC 43 43 这个软件 xff0c 但是一直无法正常启动 小编的电脑是从win10家庭版升级到了win10企业版的 xff0c 之前并没有出现过什么异样 xff0c 直到最近软件无法正常打开 xff0c 从网上搜得
  • windows下获取文件上传路径报错:java.io.FileNotFoundException: (文件名、目录名或卷标语法不正确。)

    小编今天在java编程中使用fastdfs实现文件上传功能的时候 xff0c 获取windows文件路径时报错 xff1a java io FileNotFoundException 文件名 目录名或卷标语法不正确 原因分析 xff1a 出
  • qrcode(一)

    1 二维码概念 二维码又称QR Code xff0c QR全称Quick Response xff0c 是一个近几年来移动设备上超流行的一种编码方式 是用某种特定的几何图形按一定规律在平面 xff08 二维方向上 xff09 分布的黑白相间
  • zk服务启动报错:Unexpected exception exiting abnormally java.io.eofexception

    解决方案 xff1a 找到zoo conf中配置的dataDir和dataLogDir路径 然后删除两个文件夹下的version 2文件夹 重启服务 xff0c 问题解决
  • mybatis中useGeneratedKeys和keyProperty的作用

    背景 xff1a 最近在看队友的代码 xff0c 发现个问题 xff0c 后觉是自己out了 在做关联表插入操作时 xff0c 需要根据主表的 主键id作详情表的属性值 xff0c 最笨的方法就是 xff0c 先插入主表 xff0c 然后通

随机推荐