chain1983 发表于 2012-11-16 19:51

本帖最后由 chain1983 于 2012-11-16 20:00 编辑

不同的芯片,其IDE不同,相对的很多驱动库函数还有接口指令也不同,但功能的实现基本还是建立在C程序上,现在用汇编写代码的不多了吧?如果lz本身就有软件研发的经验那么编程逻辑这一部分就不需要花费太多功夫。我个人觉得学习硬件开发关键在于熟悉相应的IDE,芯片和外部连接的逻辑器件(移位寄存器啊 多功能LCD啊等等)本身的构造,引脚和相应的功能。
芯片的引脚就那么些但扩展的功能有很多,可以通过IDE写代码配合相应的烧录器分别写入芯片内不同的寄存器来达到设置其不同功能的目的,比如定时器啊触发器啊串口输出啊PWM信号啊AD转换啊网络通信啊等等,这个就完全是靠实际操作来熟悉了,不知道lz上学期间玩过单片机没有……初学者一般都是弄块开发板自己写写代码实现一定的功能,慢慢摸索出来的。高手级别那就是自己买芯片设计PCB开发板,有时还涉及到芯片内置memory和外置储存器比如SD卡之类的,需要比较专业的读写储存格式的硬件知识。

本人没有软件编程的经验,因为不是学IT的,只是电子专业,就是做过PIC8位机和AVR32位机的嵌入式编程,玩过几个开发板,lz随便看看我说的就行了,不要太当回事。

另外ls说的对,HDL或者VHDL都是硬件描述语言,和嵌入式编程不一样。

Casablanca 发表于 2012-11-16 19:57

估计lz指的硬件编程就是嵌入式开发吧。。如果不用设计外围电路的话感觉没太大难度吧

sunnight 发表于 2012-11-16 20:18

mark一下,看看高人

chinapope 发表于 2012-11-17 06:54

chain1983 发表于 2012-11-16 19:51 static/image/common/back.gif
不同的芯片,其IDE不同,相对的很多驱动库函数还有接口指令也不同,但功能的实现基本还是建立在C程序上,现 ...

"数电有数电的难点,模电有模电的难点,高频有高频的难点。不存在哪个比哪个难的,想做好都不容易。"

要这么说,想每天都睡个好觉也不容易呀,因为白天可能发生任何事情。

电子,Info里面所学专业就考试,实践上手,入门求职而言,是明显有难易之分。

adrenalin 发表于 2012-11-17 11:34

这有几个概念我一直没搞太清楚
个人理解
硬件开发/设计                  就是指用HDL或者画schematic的方法对硬件进行实现 (asic standard cell ,
                                     fpga)
嵌入式开发(硬件编程?) 就是指用汇编或者C给已有的硬件(mikrocontroller)进行编程
软件开发                         比上面两个抽象级更高一些,完全脱离硬件方面的考虑

这三者抽象级递增

其中 硬件编程 这个概念好像有点mehrdeutig,如果是说的用硬件描述语言进行编程,那应该归为第一个,如果说的是对硬件(mikrocontroller)进行编程,那应该归为第二个

另外 fpga的开发,好像是介于第一和第二个之间。有些fpga好像也可以用c语言进行开发,实际上用的是第二个的方法,做第一个的事情

不知道我理解的有什么错误的地方,请各位指正

sbtree 发表于 2012-11-17 11:41

仙林小童 发表于 2012-11-16 19:42 static/image/common/back.gif
HDL叫做硬件描述语言,和软件编程是两回事。没搞清这个的话,还是不懂硬件。

HDL个人理解主要应用于硬件设计的逻辑开发,比如某些固件上的程序,楼主没有深入学习VHDL,理解尚浅。这里主要想讨论的是Hardwarenah编程,比如实时系统中的应用,嵌入式系统上的应用,这些应该跟硬件设计是两回事。至于需不需要HDL只是想作为一个问题来讨论的,楼主的第一个问题主要是想给出一个基础知识框架,哪些必须学,哪些可能用到

sbtree 发表于 2012-11-17 11:47

adrenalin 发表于 2012-11-17 11:34 static/image/common/back.gif
这有几个概念我一直没搞太清楚
个人理解
硬件开发/设计                  就是指用HDL或者画schematic的方 ...

您的总结和我的想法差不多,我现在要做的就是从第三层向第二层迈进,而不是直接进入第一层。对于第一层,我个人理解为物理层上的开发,应属纯硬件的开发,可能还涉及Layout设计。

sbtree 发表于 2012-11-17 12:57

chain1983 发表于 2012-11-16 19:51 static/image/common/back.gif
不同的芯片,其IDE不同,相对的很多驱动库函数还有接口指令也不同,但功能的实现基本还是建立在C程序上,现 ...

我要做的实际上是偏硬件的软件开发,正如您说的是嵌入式系统下的软件开发。嵌入式系统种类比较多,似乎没有统一的开发环境,但是常用的还是有那么几个,比如汽车电子领域的VDX/OSEK,ARM下的OMAP。因为缺少实践,感觉还是无从下手。
目前来看,c语言基本上是最常用的编程语言了,因为开发环境不同,相应的编译器也各不相同,Linux下的gcc好像应用还是很广泛的。另外一些仿真环境对于代码的调试很管用,不知道都有哪些?
个人理解,一般编写代码大家因该都是在PC上吧,然后在仿真环境中编译调试,通过以后再下载到真正的运行环境中,或则烧录到硬件存储器上,这应该是一个典型的接近硬件的开发过程吧。

Casablanca 发表于 2012-11-17 13:23

adrenalin 发表于 2012-11-17 11:34 static/image/common/back.gif
这有几个概念我一直没搞太清楚
个人理解
硬件开发/设计                  就是指用HDL或者画schematic的方 ...

硬件开发设计, 一般来说分板级开发(PCB design&Layout)和芯片开发(chip design&Layout)甚至包括半导体元件设计。ASIC是一个软硬结合的东西,也算是芯片开发吧,至于用fpga快速实现的基本算是偏软了

Casablanca 发表于 2012-11-17 13:33

sbtree 发表于 2012-11-17 12:57 static/image/common/back.gif
我要做的实际上是偏硬件的软件开发,正如您说的是嵌入式系统下的软件开发。嵌入式系统种类比较多,似乎没 ...

开发环境,编译器什么的都无所谓,万法皆通。像你这么直接从应用软件转过去的一般都是weiter Entwicklung,总体框架,结构差不多都定好了,你在这些基础上添加修改模块就好了。慢慢地接口指令什么的就都熟悉了
页: 1 [2] 3 4 5
查看完整版本: 从PC应用编程到偏硬件编程的转变