学了c语言,再学什么可以给硬件编出程序?

2024年11月16日 12:53
有2个网友回答
网友(1):

你需要理清一个根本概念,语言本身是为了人与机器交互而产生的,所有语言最终生成的都是让硬件工作的“机器码”。从这个角度来说,你的每一条C语句本身就已经是在给“硬件编程序”了。
硬件并不关心,也不知道你的编程语言到底是什么。之所以在单片机、DSP等硬件设计领域C语言的使用率最高,一方面是因为C语言是它那个年代所出现的最优秀的面向结构语言,因此被习惯性地采用,各大厂商开发出了众多的面向具体芯片的C编译器(把C语言转换成相应芯片的机器码),一直延续到了今天;二是因为芯片面向的是底层应用,具体化程度高,抽象性低,采用面向对象语言的总体意义不大,所以目前还没有被面向对象语言代替的趋势(但是并非没有这方面的发展,比如谷歌的Go语言)。不过我相信随着IoT的迅速发展,嵌入式系统的语言和相应的编译器会很快发生巨大的变化。
如果延伸开来的话,除了具有处理器的这一类硬件以外(如51单片机、Arm,DSP等),还有一类硬件没有直接执行机器码的能力,如CPLD、FPGA,这类硬件的逻辑要由开发者设计,这种情形下,C语言就难以胜任了,因为硬件电路的逻辑与“冯诺伊曼”式计算机的根本原理是不同的。为了能够表达复杂的数字逻辑,产生了像Verilog、VHDL这样的硬件描述语言。所以如果你所指的“给硬件编程”是指这一类硬件的话,那么上述的两种语言之一,是必然要学习一下的。
希望能对你有所帮助。

网友(2):

给硬件编程当然是要熟悉、掌握该硬件的所有知识。