0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

献给那些刚刚踏上硬件之路的同学们:硬件开发经验

h1654155971.7688 来源:未知 作者:李倩 2018-03-12 14:18 次阅读

我虽然有几年的硬件开发经验,然而在这条路上依然是一个还没有踏上社会的学生。项目经验和社会阅历也恐怕一点不算丰富,所以凡想在此文中获取高深的人生哲理与职业箴言者,那我恳请您赶紧不要看下去,如若不然,我恐怕要受到您的讥笑——此文仅献给那些刚刚踏上硬件之路和还在徘徊的同学们,在此我简要的记录了我的学习经历和其间自己所获的一些心得,以帮助初学者少走弯路。

我深知对于一个初学者来说,身边有一个能手把手相授的老师该是多么幸福的事情,老师一句不经意的话可能我们初学者要花上几天甚至是几个月的时间去思考和验证。遗憾的是,我们身边并非总有这么一位老师。所幸的是而今网络发达,这致使我们不得不经常求助于网络,网络上丰富的个人经验是非常值得借鉴的,我们能从一些文章中悟出一些东西,为我所用,或者从中感受精神动力。

借此机会我想介绍一下我曾经的工作团队,因为他们对我影响极大。团队有四个人,其一是拥有11年工作经验且已拥有自己专利的高级工程师(我习惯叫他二导,他是我为什么在团队的原因),一个是拥有5年经验、热心肠的工程师,还有两个分别是电源视频方面的专家和元老级人物。耳濡目染,自己渐渐的对硬件发生了浓厚的兴趣。从单片机FPGA、SOPC硬件的搭建以及软件编程,以及现在正在努力研究的ARM,我是凭着无限的热情来做的。

但热情不是唯一的原因,另一个原因是试验室提供了便捷的学习环境。这里有现成的winbond 51单片机、有伟福仿真器advanced labtool 48uxp万能编程器,一台12万的示波器,自己买了个万能板。学习阶段时,找本书就能在上边进行试验了。从简单的led闪烁、数码管显示、pwm到中断、串口通信(单片机与单片机通信,单片机与pc通信)、I2Ceeprom读写、A/D转换、温度的测量等。当时令我神魂颠倒的是每一个试验经过资料的查找、程序的编写以及调试、再到后来问题的解决,那份成就感与喜悦之情,相信只有经历过的人才能够体会。正是有这份热情和爱好,我常常在实验室呆上十二、三小时,通常是晚饭在食堂吃了后直接到验室,晚上9点半回宿舍。虽说那时候没有做过什么大项目,但是这每一个小小的实验都是我知识积累过程中的点滴,有了这积累,之后我才能涉足更大的项目。

刚进实验室的时候,二导就给了我一块开发版,是Altera公司的nios ep1c20 cyclone系列开发板,当时是以大学计划的名义买的,5000元人民币。于是就开始了我的FPGA学习之路。之前学习过verilog,只停留在纯粹的理论阶段,编几个小小的程序,用quartus-ii自带的仿真软件进行一下仿真就ok了。

用仿真软件进行仿真,往往能够得出你所想要的结果,但是一旦下载芯片里边运行,问题就会接踵而至。万事开头难,我做的第一个实验是点亮led,自己编写程序(几行而已)、编译、引脚分配、仿真、然后就用jtag下载线连接开发板和pc,将sof文件下载到芯片。现在想起来这是多么简单的几个步骤,但是对于当时的我来说,花费了相当的时间和精力来查找资料和埋头反复实验。特别是引脚的分配,文档上只说需要这么做,那为什么要这么做呢?当时没有过多的想法,只想看到实验的结果,有了结果我就有了无限的成就感和高涨的热情,所以当经过努力,第一个FPGA实验里的led终于按照意图动作的时候,那种激动与当初学习单片机时得以实现led闪烁的情形如出一辙。

我做实验的一个惯例同时也是一个经验就是边做实验边看书,在实验中发现问题,遇到不懂的问题或者原理在查找相关的文档。我习惯动手,如果让我坐在实验室看上1天的纯理论书籍,而不让动手试验,我想我的脑袋肯定会爆炸,正因为没有这样看过书,所以这脑袋也一直健在。到后来学习ucos嵌入式操作系统我也采用了这个方法,我把它叫做“阶梯成就感”(实在是写这篇文章的时候突然觉得这个词语非常贴切,临时杜撰的)。抱着这种热情,后来一点一点地深入学习FPGA,一些常规逻辑电路的设计,包括逻辑门电路、数据选择器、编译码器、加减乘除运算器、移位器,到后来的稍微复杂的电路设计,如FIFO、数字跑表、频率计、状态机、交通等的控制、卡式电话计费系统以及UART等。

这些试验当时我都是采用的verilog语言实现的。初接触FPGA时本想学VHDL,那时的同学都用verilog,为了与他们讨论问题的方便,就改学verilog了。一学不打紧,慢慢发现自己深深地爱上了verilog,对于我来说,它无疑更适合我。这也是我要推荐的一个经验,那就是多看看你周围的人用的是什么工具,他们用的工具往往不是你最喜欢的或者不是当前最广泛最流行的,但你若要和他们交流讨论问题,那还是迁就一下,和别人所用工具一样,交流起来也会顺畅方便。到实验室后,因为实验室的员工都用伟福的仿真器,所以软件当然还是用伟福提供的。伟福的软件我认为不怎么好,只支持汇编,比起大名鼎鼎的keil c51逊了一大截,但除非你想等到自己有问题不会的时候周边竟没有人帮助你,不然在前期还是选择伟福的软件方便沟通。再后来,经过自己的摸索和向身边的工程师们请教,伟福用很熟悉了,汇编也有了自己的一套,这时候我开始在伟福里边嵌入keil,用c语言来写程序,但调试的时候用伟福软件还是有缺陷,比如不能够单步执行等。所以再后来我就下载了keil c51软件,从此以后便正式地在keil的开发界面下写程序了。当然仿真的时候也可以在keil环境下用伟福仿真器,我想伟福在制造自己产品的时候就已经考虑到这点了,他们的一些产品肯定要考虑兼容主流软件keil的。用了keil C51后就不想用伟福编译软件了,同样的用了c写程序后,就不想用汇编了。但是汇编是每一个硬件研发工程师们必备的,汇编有c不可企及之处,但有时候还非用汇编不可。汇编的运行效率高,写起来很是烦琐,烦琐规烦琐,在某些特定的时刻,汇编还是发挥了它不可替代的作用。比如在将usoc移植到单片机的时候,与处理器相关的程序还真是必须用汇编来完成的。

再后来,学习sopc。从最小系统硬件平台的搭建,到简单的led闪烁程序的编写,到sof文件在芯片上跑起来,看着led的亮与灭,心中热情澎湃。每一次接触新知识都有一种发自内心的激动,每一次接触的新东西我都从最简单的led闪烁开始,从单片机到FPGA到sopc再到ucos,每天一个小小的进步能让我燃起对工作的热情,只要有这每天小小的看得见的“阶梯成就感”,就能激发我对更多知识的追求。在此期间本人比较欣赏Altera公司推出的可编程片上系统即sopc,它解放了我们搭建硬件系统的烦琐,仅仅需要按照需求在系统里边加上自己的IP核和一些必须的外设。Altera公司或者其他的第三方公司已经为我们提供了性能和功能很完善的IP核,我们所要做的只是将这些IP核加入到我们的系统里完成我们需要的功能。硬件系统完成后,需要在Altera公司提供的nios IDE环境下对硬件系统进行软件编程,在这里,完全用c语言来完成所需要的功能。与前边学习单片机、FPGA一样,第一个实验还是led闪烁,然后慢慢的转向一些比较复杂的功能设计上去,也无非是实现以前用verilog实现过的一些功能。两者的区别是:一种完全用verilog语言来实现全部功能;一种需要先用sopc builder搭建硬件系统,然后在nios ide中进行软件的编程。这两种方法都能够实现需要的功能,但是后者更方便快捷,因为在这种方法里,我们使用的是“拿来主义”,IP核已经实现了我们的功能,要做的仅仅是去利用它而已。

再后来学习ucos嵌入式操作系统,主要是运用在FPGA里面。nios已经为使用者移植好了,不需要修改任何文件。在nios用户界面里进行一些相应的设置就可以使用了。Altera公司为我们提供的模板里边有几个很好的例子,任务管理、信号量、邮箱传递、事件标志、时间管理等提供了很好的模板,我们需要做的是认真的阅读,研究它,必要的话对模板进行一些改写来完成自己的功能,这是模仿的更高境界了,把他的一些东西进行吸收转化成为自己的东西,我想这是一个硬件爱好者和初学者非常乐于做的事情。

在进行FPGA学习的时候,我遇到过问题停滞不前,试验没有进展,心情沮丧的时候。那时对底层硬件一无所知,连对基本的原理图也看不太懂,更别说程序在开发板上是怎么运行的了。再到后来进行nios开发的时候,这种沮丧感与日俱增,每天感受不到一点进步,真是很漫长难熬的日子。一次,我和办公室的一个工程师聊天,谈到了我的困惑,他建议我先学习单片机,自己搭建硬件平台,从最小系统做起。这个工程师古道热肠,学习方面的问题他总是很耐心地帮助解答,让我受益匪浅,我很庆幸能够在这种环境当中学习。还有我的导师,他是一个拥有近30年硬件开发经验的资深研究员,开始工作的时候我什么都不懂,但总喜欢往导师办公室跑,喜欢和他瞎聊。他为人和蔼可亲,容易接近,和他交流的时候总能得到一些职业和人生方面的忠告,这些忠告将伴随着我一生。到后来,事情逐渐有了转机,我也慢慢适应了这种心情,调整好了心态。现在想起来,庆幸自己并没有绝望,没有对自己热爱的硬件失去信心。我想说的还是那句老话:遇到问题的时候,当我们感觉事情没法进展下去的时候,不妨换一种方式,与周边的人聊聊,或许会有改变。人生总是有很多坎坷,我们的学习职业生涯也是如此。在这个时候若能看看任正非写给华为员工的一封信《要快乐的度过充满困难的一生》,或者去看看李嘉诚写给青年们的《Are you ready》,在那里你可以学到谦虚、勇气、智慧、毅力,我想这会增添我们积极生活下去的勇气。当确定了一个目标,我们需要鼓足勇气,满腔热情地去拥抱它,遇到困难、阻挠时一定不要独自等待,多和人交流吧,一切从沟通开始!

本文泛泛而谈,必然浅薄,若是能够给初学者带来哪怕是一丁点好的影响,能够提供一丁点的帮助,那我将感到无限的欣慰。最后送给我们初学者一句话,以共勉,这也是《圣经》中马太福音里的一句话:凡有的,还要加给他叫他多余;没有的,连他所有的也要夺过来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1590

    文章

    21136

    浏览量

    591878
  • 硬件
    +关注

    关注

    11

    文章

    2909

    浏览量

    64543

原文标题:忆当年硬件开发梦:就俩词,TM青涩!

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、protel设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规
    发表于 12-05 15:17

    硬件开发设计的流程

    硬件开发就是从无到有的设计一款电子产品,小到一个开关电灯台灯,大到个人计算机,超算力航天控制系统,这些都离不开硬件开发的相关内容,那这个从无到有的过程是怎样实现的呢?一起来分析看一下。
    的头像 发表于 11-06 15:27 525次阅读
    <b class='flag-5'>硬件</b><b class='flag-5'>开发</b>设计的流程

    张飞硬件设计与开发教程PDF版本

    张飞硬件设计与开发教程PDF版本电子产品开发参考资料
    发表于 10-30 15:59 9次下载

    STM32L0xx硬件开发入门

    电子发烧友网站提供《STM32L0xx硬件开发入门.pdf》资料免费下载
    发表于 09-25 11:10 1次下载
    STM32L0xx<b class='flag-5'>硬件</b><b class='flag-5'>开发</b>入门

    STM32F3xx硬件开发入门

    电子发烧友网站提供《STM32F3xx硬件开发入门.pdf》资料免费下载
    发表于 09-21 11:28 1次下载
    STM32F3xx<b class='flag-5'>硬件</b><b class='flag-5'>开发</b>入门

    浅谈硬件电路开发流程规范

    硬件电路开发流程是指导硬件工程师按规范化方式进行开发的准则,规范了硬件电路开发的全过程。
    的头像 发表于 08-03 10:31 690次阅读
    浅谈<b class='flag-5'>硬件</b>电路<b class='flag-5'>开发</b>流程规范

    怎么成为硬件电路设计高手?

    功能和性能的优化。成为硬件电路设计高手不仅意味着拥有稳定的职业前景,更意味着能够参与和创造未来科技的核心。 本文将介绍一条通往硬件电路设计高手之路的指南,帮助各位同学掌握必要的知识和技
    的头像 发表于 07-28 13:10 3096次阅读
    怎么成为<b class='flag-5'>硬件</b>电路设计高手?

    网课回放 I 第二期:RK3588 硬件设计独家技巧与经验分享

    网课回放 I 第二期:RK3588 硬件设计独家技巧与经验分享
    的头像 发表于 07-08 10:09 617次阅读
    网课回放 I 第二期:RK3588 <b class='flag-5'>硬件</b>设计独家技巧与<b class='flag-5'>经验</b>分享

    00020 硬件设计规范下篇#unicon#硬件设计

    硬件设计
    学习电子知识
    发布于 :2023年07月03日 21:34:10

    硬件工程师还有前途吗?

    摘要 :硬件要做得好,周期比软件长,而且一旦你在某个领域行业里积累了一定的经验是非常吃香的,硬件不是个吃学历的职业,非常吃经验。 一、做硬件
    的头像 发表于 06-27 08:45 2670次阅读
    做<b class='flag-5'>硬件</b>工程师还有前途吗?

    看大神是怎么搞定硬件电路设计的

    献给那些刚开始或即将开始设计硬件电路的人!刚刚开始接触电路板的时候,与你一样,在网上许多关于硬件电路的
    的头像 发表于 06-07 10:14 261次阅读
    看大神是怎么搞定<b class='flag-5'>硬件</b>电路设计的

    武汉芯源半导体CW32 MCU助力2023年第二届“圆梦杯”大学生智能硬件设计大赛

    、CW32L031等,作为主控设计一款有一定创新性、实用性的智能硬件产品。 为更好的服务参加“圆梦杯”大赛的同学们,武汉芯源半导体将为广大参赛同学们提供免费样品或开发板,以及大赛技术
    发表于 05-22 14:42

    【企业直聘】深圳市乐驰信息技术有限公司|硬件工程师|深圳宝安

    ; 3、熟练使用PADS,Cadence等电路设计软件; 4、电子工程、计算机、电气自动化、通信或相关专业,1-2年以上硬件开发工作经验 ; 5、有硬件Bug的分析和解决能力; 6、有
    的头像 发表于 04-04 07:40 449次阅读

    雨珠S初体验:一款比较新颖硬件设备“雨珠S”片上虚拟仪器

    ;#125; returnFT_OTHER_ERROR;}这样也就可以在Qt中跑起来了哈,下面为一个简单的演示:其他的函数接口,按照同样的方法封装即可。希望对参赛的同学们有所帮助。至于最终要做个什么效果出来,就要看同学们自己的想象力和能力了,祝大家好运。
    发表于 03-26 22:38