fpga语言(开发单片机学什么语言好)

精英怪
广告

fpga语言,开发单片机学什么语言好?

单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂。目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求。单片机的编程可以通过汇编语言和C语言来实现。

fpga语言(开发单片机学什么语言好)

1汇编编程的特点

汇编是一种更接近于硬件底层的低级语言。硬件在编程时总线和地址非常重要,在汇编语言中,一般用助记符来替代机器指令的操作码,用标号代表操作数的地址,所以汇编语言和机器指令之间存在着唯一对应的关系,这就导致了不通系列的单片机其汇编指令集是完全不通的。这样做是比较麻烦的,因为更改了单片机或者升级老产品之后,原有的汇编代码难以跨平台移植,只能再重新编写。所以,汇编的移植性非常差,由于是直接操作机器指令,所以在可读性上也非常差。这是汇编语言的两个最大的缺点,但是其优点就是执行效率非常高。从方便的角度上来说,汇编方便了硬件,但对工程师却不友好。

2C语言编程的特点

在前几年使用汇编编程的人还是挺多的,现在使用汇编的人原来越少,即使是写驱动的人也不完全使用汇编而是使用汇编和C语言结合的方式。单片机的C语言编程具有两个最大的优点。

第一个优点:易于移植

有过单片机C语言编程的同行都有这样的经历,在编程时,首先要在初始化中配置单片机的寄存器,配置完之后的代码不再频繁的和寄存器打交道,所以使得C语言的层次非常清晰,在移植代码时,只需要根据新的平台修改一下寄存器的配置部分就可以了,功能主体部分几乎不用修改。这也就是很多优秀程序员所倡导的当文档层次化编程的原因,每个功能块都对应一个C文件和H头文件,在移植时只需要把这两个文件拷走即可,方便了移植。

从这个方面来讲,完全可以抛开单片机的寄存器配置来实现编程,这方面做的比较好的如STM32的官方库编程和CMSIS等。

第二个优点:易于阅读

由于C语言通过寄存器和硬件驱动/接口建立关系,编程者不用再去记忆枯燥的指令,而且C语言编程的层次化、模块化编程也大大提高了代码的可读性。相比于汇编,C语言可以用更少的代码实现更复杂的功能,而且还更易于理解。这也是C语言越来越受欢迎的原因。

3C语言对比汇编的优势

通过前面的描述可以看得出来,C语言占有更多得优势,C语言易于跨平台移植、C语言易于理解、C语言易于延续。总之,从编程得角度C语言更受程序员们得欢迎。

以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。

请问学习ARM嵌入式开发应该准备些什么开发工具和要求?

感谢邀请。

这个问题相信是困扰所有嵌入式初学者的难题,下面课内容是嵌入式学习必学的: C语言; C++;操作系统;计算机组成原理; Linux编程; 51单片机; arm;硬件编程语言(FPGA);模拟电路&数字电路。

1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装 turbo c编译器为开发环境,联系C语言编程; 安装vc++6.0学习C++编程。

2、操作系统,先在电脑上安装一个vmware work station,然后在vmware work station里安装一个linux(redhat 企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。

3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。

4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。

5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。

6、arm,现在流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧

7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了

8、模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel ,自己做个硬件pcb板试试。

计算机这行都是偏向于实践的课程,所以要注重动手能力,学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:

1:C语言、计算机组成原理、模拟电路&数字电路

2:汇编语言、单片机、操作系统、C++

3:硬件编程语言、arm

嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前常见的是

嵌入式linux+ARM方向,关于这个方向,大概分3个阶段:

1、嵌入式linux上层应用,包括QT的GUI开发

2、嵌入式linux系统开发

3、嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等 Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

自学的话你可以尝试以下路线:

(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。 推荐书籍:谭浩强的很不错,《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。

(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。

(3) Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。 推荐书籍:《UNIX环境高级编程》(第2版)

(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是起码的要求是能够看懂arm汇编。

(5) 系统移植的时候,就需要你从下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

(6) 驱动开发 linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。 linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

给大家把一个嵌入式开发学习大方面的学习框架搭出来了。

最后呢祝大家能够在学习的路上马到成功。

百度是否会被踢出局?

阿里巴巴的电商、腾讯的社交、百度的搜索,是这三家公司的核心业务,现在还没有遇到什么挑战者。三家公司里腾讯是收入最高的,阿里是利润最多的。而百度……员工人数是最多的。

BAT的B掉队,挖来陆奇救火。

BAT三大巨头里面,阿里巴巴支付一统江山,腾讯社交惊才绝艳,对比之下,百度搜索虽然依旧傲视群雄,发展的步速却显得有点慢。

1,在BAT巨头中,B已经掉队太多!腾讯今天市值突破3000亿美金,阿里巴巴市值2534亿美金,百度市值600亿。

目前,全球市值最高的公司为苹果,市值7706亿美元,谷歌母公司Alphabet第二,微软第三,亚马逊第五,Facebook第六。

2,互联网是个开放的行业,但百度似乎骨子里面缺少了这方面的基因,一直做得很内敛,也许这个本身跟李彦宏的性格有直接关系,信封“技术至上”的李彦宏,是偏内向的。

3,市值的低迷,业务的低迷,让外界流传的“BAT掉队论”逐渐坐实,为了自我拯救,李彦宏挖来了曾在微软大刀阔斧进行改革的陆奇。

他之前的光辉业绩足够让业界人士闪瞎双眼:前雅虎副总裁,前微软四大业务部门总裁,直接向微软CEO汇报,外国互联网巨头里职位最高的华人。

4,根据百度发布的2016财年Q4及全年财报数据显示,移除“去哪儿”交易的影响,百度全年总营收为人民币705.49亿元增长11.9%。净利润为100.49亿元。

数据显示,阿里巴巴2016年的营收达到1438.78亿元(209.17亿美元)。腾讯 2016 年全年总收入为人民币 1519.38 亿元(219.03 亿美元),比上年同期增长 48%,净利润为 414.5 亿元,同比增 42%。

5资金储备:腾讯握有156.9亿美元,阿里134.54亿美元,百度114.07亿美元。百度排名BAT最后。

如何使用labview开发自己的fpga?

Labview是美国国家仪器公司(NI)开发的编程软件,主要应用在开发测量与仪器控制领域上应用程序的,不是专门用来开发fpga的,当然现在的Labview也有FPGA开发模块,不过貌似只能开发他们本公司生产的FPGA产品,不好用,而且貌似没什么人用 quartus是专业的FPGA开发软件,Altera公司,支持VHDL,VerlogHDL等语言,也支持原理图输入的开发形式,由于是Altera的软件所以也会支持他自己的AHDL语言,你要是用的Altera公司的FPGA可以用Quartus开发,要是Xilinx公司的FPGA,可以用Ise来开发,就是这样

关于FPGA初学者问题?

很多不了解FPGA不知道从何下手,很多人不知道FPGA知识也只是停留在编程语言,没硬件平台实践,就算语言学会了,平台也有了,又不知道该做什么。

本人总结了FPGA新手应该重点掌握以下几点:

一、FPGA编程语言

FPGA编程语言主要有verilog、VHDL、systemverilog。其中systemverilog是对verilog的扩展。对于FPGA初学者来说掌握其中一种编程语言即可,本人推荐verilog,原因语法简单,类似C语言,有C基础的朋友可以很快上手。

二、熟练掌握FPGA常用的开发工具

1、FPGA常用的开发工具

主要包括:xilinx 的ISE,vivado,altera的quartus,仿真工具modelsim等

2、verilog参考书

推荐数字电路,verilog语法参考手册,Verilong HDL入门(第3版),夏宇闻的Verilog数字系统设计教程(第2版),verilog高级数字设计等。

三、了解与FPGA相关的其他硬件平台

1、常见的DSP与FPGA搭建硬件平台

2、MCU与FPGA搭建硬件平台

以上是在FPGA开发过程中常见的组合,了解硬件平台结构,芯片外围器件,是由必要的。多数是功能上的相互配合,FPGA侧重逻辑控制,数据高速传输,DSP侧重算法实现,MCU辅助测试,芯片配置。

四、FPGA的设计开发流程

做为FPGA的初学者,了解FPGA的开发流程是必要的,自顶向下设计是FPGA的核心。

1、功能设计分析:FPGA新手往往不知道自己要做什么,如何去做,在做任何开发设计之前都要的需求分析,明确我要实现什么

2、软件任务划分:由哪些模块组成

3、代码编写

4、代码功能仿真,直到逻辑正确,符合模块实现的功能

5、综合布局布线,主要由软件工具实现

6、时序分析

7、FPGA内部逻辑分析仪,在分析仪内添加要查看的信号,触发抓信号。

五、给自己定位,结合自己本身的专业,走适合自己的路。要想提升较快,只能多做项目,拜个好师傅,重要的还是自己要努力。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,200人围观)

还没有评论,来说两句吧...