这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 嵌入式发烧友的生活

共42条 2/5 1 2 3 4 5 跳转至
菜鸟
2012-02-15 21:58:57     打赏
11楼
他山之石,可以攻玉!转发一个专家的帖子与大家共享

菜鸟
2012-02-15 22:02:37     打赏
12楼
先学什么后学什么完全取决于个人目前的基础,产品的开发也完全取决于个人的技术积累,因此注重个人在技术上的修为和打好基础,则是未来成为出类拔萃人才的重要前提,而对开发思想和方法的深刻认识,则远比暂时能开发几个产品要持久得多。

        比方说,同样的项目选用ARM9,则有几种可行的方案,Linux、WinCE与uC/OS-II,用Linux、WinCE硬件成本很高,至少是2片32M的SDRAM、1片NAND Flash或者一片2M NOR Flash。而用uC/OS-II的硬件成本最低,硬件成本大约10元人民币,即只需要一片128K-2M DataFlash和一片2-8M SDRAM,同样可以支持MMU等所有的资源,而且支持GUI的速度之快是Linux与WinCE所不能比的。但也不是所有的产品都适合用uC/OS-II,则要看具体情况而定,而且还有很多客户用“裸奔”的办法。而Linux与WinCE强大的平台化软件支持是其突出的优势,如支持Wi-Fi最好的方案是Linux和WinCE,因为Linux与WinCE自带协议,而要在uC/OS-II上自己开发一个支持Wi-Fi的协议简直是开玩笑。所以作为一个未来具有竞争力的工程师,我想你已经知道初步该如何选择了。

        还有关键看您目标要成为什么样的人才,一般来说开发工程师有几个层次,(1)会开发产品,但理论水平一般,比方说,很多工程师会用ARM开发产品,但对ARM的细节讲不清楚;(2)会开发产品,理论水平也不错,会写开发文档,也能够将问题讲清楚,但不一定能够做到****地详细阐述技术来龙去脉,同时也不善于从思想上启迪年轻人,一般来说这样的人才会做出令人难以想象的成就;(3)会开发产品,理论水平很高,会说、会写还会讲,属于技术专家型管理人才;(4)会开发产品,形象思维很好,条理性很强,沟通能力非常出色,属于管理型人才;(5)技术全面,沟通能力强,非常擅长从思想上毫无保留地全面关心和指导年轻人,这类人才则属于工程师中的思想家。

       事实上人才分为4大类,第一类大约15%,第二类大约65%,第三类大约20%,第四类为0,为什么还有为0的类别呢?在每次考评之前就已经淘汰的人才,即归类为0。属于第一层次的工程师,很难让人佩服和追随,因为这样的能力带不出高手,而且成功的企业家往往会将这样的“高手”永远拒之门外,这类人才大多存活于小企业之中;处于第二层次的工程师很多人是专家,但这样的人才不多见,需要多年埋头苦干才能成“佛”;处于第三层次的工程师,需要具备出色的形象思维和比较好的逻辑思维,同时也需要企业不惜一切代价去栽培,而且也离不开技术专家型管理人才长期巨无细事的指点和严格要求。  
        第一层次工程师的学习方法是人云亦云,往往听信“别人”无关紧要不负责任的建议(可能是专家也可能是一般的人,因为网络的时代你不认识谁是专家,你只认识人们眼中的牛人,其到底如何不得而知,但不否认他一定开发过成功的产品),常常有人在网上说学这个好,也有人说学那个,这里面有一个学习方法的问题,但没有人说得出来;第二层次与第三层次的工程师注重向成功者学习,成功者早已超越了牛人的界限,他们对技术的细节了如指掌,不达目的不罢休,这些人永远在最好的状态下坚持学习和研究。

        总之要从基础抓起,虽然很多人听得进去,但却不肯下苦功夫坚持数十年如一日地奋斗。其实创业不是想象中那么容易得,要创业成功必先完成思想与技术等方面的原始积累,其实资本并不是最重要的必要条件,不是技术好就能够创业成功,而技术好的人才常常埋怨缺乏机会和资本,本来机会和资本就是稀缺资源,如果遍地都是机会和资本,那成功者一定不是您,而事实上无论什么样的好技术都是用钱可以买得到的,什么样的好人才都是可以想办法请到的,唯有成功需要靠自己一步一个脚印地走出来,尽管成功者的结果是一样的,但成功的过程却从来是不可复制的,参与和共同经历过与别人成功的过程和帮助别人成功过,与自己做成功完全是两码事。

 

   

 

转到 页确定

 

菜鸟
2012-02-15 22:47:23     打赏
13楼
听说原产地是CSDN,有兴趣的自己找下原出处吧,以下是内容:
  很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。
  事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。
  下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。
  1、Angle
  Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。
  最低运行环境要求不详。
  项目地址:http://code.google.com/p/angle/
  2、Rokon
  rokon是一款Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为 2.0.3 (09/07/10)。总体来说,此引擎最大的优点在于其开发文档相当之完备,并且项目作者对反馈Bug的修正非常之神速,所以该框架的使用在目前也最为广泛,有人干脆将它称为Cocos2d-iPhone引擎的Android版(业务逻辑和编码风格上也确实很像)。附带一提,国内某个需要注册会员才能下载的Android游戏框架衍生于此框架,所以大家也不要刻板的认为收费便一定是好的,免费就一定不好。
  最低运行环境要求为Android 1.5。
  项目地址:http://code.google.com/p/rokon/
  3、LGame
  LGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本,目前最高版本同为0.2.6(31/07 /10)。其底 层绘图器LGrpaphics封装有J2SE以及J2ME提供的全部Graphics
  
API(PC版采用Graphics2D封装,Android版采用Canvas模拟实现),所以能够将J2SE或J2ME开发经验直接套用其中,两版本间主要代码能够相互移植。Android版内置有Admob接口,可以不必配置XML直接硬编码Admob广告信息。
  该引擎除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,代价是jar体积较为庞大,PC版已突破1.2MB,Android版有所简化也在500KB左右。此外,该引擎还内置有按照1:1实现的J2ME精灵类及相关组件,可以将绝大多数 J2ME游戏平移到Android或PC版中。唯一遗憾的是,该项目作者是个极其懒惰的家伙,开发文档从去年说到今年依旧没有提供,只有游戏示例可供下载。
  最低运行环境要求为Android 1.1。
  项目地址:http://code.google.com/p/loon-simple/
  4、AndEngine
  andengine同样是一款基于OpenGL ES技术的Android游戏引擎,物理引擎同样为Box2D(标配|||)。该框架性能普通,文档缺乏,但示例较为丰富。
  下载地址(未直接提供jar下载,源码可通过svn提取):http://code.google.com/p/andengine/
  最低运行环境要求不详。
  项目地址:http://code.google.com/p/rokon/
  5、libgdx
  libgdx是一款基于OpenGL ES技术开发的Android游戏引擎,支持Android平台下的2D游戏开发,物理引擎采用Box2D实现。单就性能角度来说,堪称是一款非常强大的 Android游戏引擎,但缺陷在于精灵类等相关组件在使用上不够简化,而且文档也较为匮乏。
  最低运行环境要求不详。
  项目地址:http://code.google.com/p/libgdx/
  6、jPCT
  jPCT是一款基于OpenGL技术开发的3D图形引擎(PC环境为标准OpenGL,Android为OpenGL ES),以Java语言为基础的,拥有功能强大的Java 3D解决方案。该引擎与LGame(此为2D游戏引擎)相类似,目前拥有PC(J2SE)以及Android两个开发版本。
  jPCT的最大优势之一,就在于它惊人的向下兼容性。在PC环境中,jPCT甚至可以运行在JVM1.1环境之中,因为jPCT内部提供的图形渲染接口完 全符合所有的Java 1.1规范(就连已经消失的Microsoft VM乃至更古老的Netscape 4 VM也不例外)。
  
  最低运行环境要求为Android 1.5。
  项目地址:http://www.jpct.net/jpct-ae/
  7、Alien3d
  Alien3d是一款体积非常之小的Android 3D游戏引擎,基于OpenGL ES技术开发。为了压缩体积,它根据不同功能采用多jar方式发布(包括alien3d-engine.jar,alien3d- tiled.jar,alien3d-sprites.jar,alien3d-shapes.jar,alien3d- particles2d.jar,),事实上它的核心文件大约只有40KB,所有相关jar的总和也不足150KB。
  最低运行环境要求为Android 1.5。
  项目地址:http://code.google.com/p/alien3d/
  8、Catcake
  Catcake是一款跨平台的Java 3D图形引擎,目前支持PC(J2SE)及Android环境运行(已有iPhone版规划)。该引擎在易用性和运行性能上皆有出色的表现,支持常见的游戏开发功能,诸如精灵动画,音频处理和视频播放等。
  最低运行环境要求为Android 1.6。
  项目地址:http://code.google.com/p/catcake/ 有时间的话,可以尝试开发对越自卫反击战的游戏 什么游戏才能有意义呢?thinking

菜鸟
2012-02-15 22:53:30     打赏
14楼
       作为一个菜鸟级工程师,不得不感叹自己最大的弱点是太浮躁了!什么都想学,什么都很难学,呵呵。要想成为一个优秀的嵌入式软件工程师,奉劝各位,必须把C学好,别的都可以退而求其次!

菜鸟
2012-02-15 22:54:50     打赏
15楼
这年头不浮躁的工程比较少了,哈哈,赞一个~~~

底层,会设计电路(这个最难),不过开始不用急,学好几个经典外围凑合用着。

会画PCB,可以专业画,但是也可以业余画.......反正简单的单双层版属于必会的知识。
精通C语言,会一门汇编,相辅相成。这阶段最辛苦,不要以为C很简单,看过那些专业的程序会让你感觉到自己的C怎么会烂的那么离谱 ...... (测试一下自己对函数指针理解怎么样吧)案头上摆两本C语言教程,一本数据结构,最好顺便买本算法放到那里 ..... 这阶段耗精力,成效不明显 ....

好了,差不多该“时髦”一下,跑一下操作系统了,下个uCOS看代码,案头上又多了1-2本操作系统原理的书,好了,发现自己的C语言真的不过关,很多代码看不懂,又跑回去啃C语言 .......

操作系统的基本原理看过一遍,突然发现“噢,原来操作系统就这么一回事而已”开始动了邪念,自己写一个吧,要求不高,实现一下任务调度,时间调度也好~~酷一把~~

耗了1-2个月,慢慢挣扎,写了个任务调度器出来,噢,精力耗尽了。作品比较烂,不过敢用到项目中倒是一股勇气~~~不过醉翁之意不在酒,这过程中学到的东西是在其他地方学不到的,安心吧。

一天不懂编译原理和装载的原理,程序在你面前还是一团雾,看不透的。有两条路可以走,跟你的编译器打好关系,了解它的一切,另外一条路就是 ..... 自己动手写编译器,这个是激难的东西,够胆就把头砸进去.....他会让你知道什么叫程序,什么叫算法.....


另外,作为新手,手工反汇编是必须学的,将一个一个机器码翻译成汇编指令。学完这个发现汇编编译是怎么一回事,CPU执行指令是怎么一回事,大有裨益。虽然很多人不学汇编,不过汇编是好东西,在汇编的世界有着跟C很不同的写程序处理办法,所以用起来很别扭,不过到某天你冲破这种障碍的话,那是很惬意的事情。

到了这个阶段,会很自然有种会回头的了,真正难的是硬件设计,模拟电路,数字电路,两们当初可能被很多人忽视的物体。这才是根本。

在学习的过程中难免要接触一些外文资料。在中国书籍“天下一大抄”的情况下,真诚的奉劝大家去看原文资料,编译器的文档,芯片datasheet等,有空就不要玩那么多游戏,去逛逛外国网站,看看人家怎么做东西的。

最后,想怎么检验自己合格了?
1,最多一个星期的时间,学会一种以前没有接触过的,新的单片机。
2,拿到一个芯片,根据一份英文的datasheet,在不参考任何程序的情况下,将这个芯片给驱动了。
3,不是抄板,是设计外围电路,将每个元件的模拟特性,频率响应,时序什么乱七八糟的东西默念在心。

不知道这些东西有多少人能做到?有多少人能坚持做到?,不用多想,每天需要做的事很简单,看一遍《不要做浮躁的嵌入式工程师》,然后埋头去写程序,去捉虫(debug),然后去整理程序,将实验的东西抽象升华为经验。最后就是,不断的积累 ......

以上说的是单片机 ......
如果有意转ARM,DSP,FPGA 等的话,有好心理准备,等待你的将会是不知多少个难关 .....

这个就是嵌入式,一个外人看来神奇,内人看来痛苦,不过如果你看到驱动两个LED闪动的时候,会有种莫名其妙的兴奋的话,那欢迎你,咱们是同类。
一时感触,写多了,怎么自己毕业一年多就变成完完全全的大叔了? ...... 
  

菜鸟
2012-02-15 22:56:45     打赏
16楼
通常我们头脑发热,在网上找到一个电路图准备“发烧”一下的时候,通常要将这个电路图读懂。
那么什么是“读”电路图呢?所谓的读图,就是对电路进行分析。通过读图,能够对以后的制作,特别
是生产的过程,能够少走很少的弯路是很正常的。
    在分析电子电路的时候,首先要明白这个电路是由几个独立的部分组成的。进而要对电路的每个独
立的部分有一个充分的了解。分析各个部分的工作原理,功能,以及所达到的指标。这样,到分析整个
电路的功能的指标的时候就有了一个大概的底子,分析整体的时候就有的放矢了。
    在分析电路整体功能的时候,必要的时候可以进行估算,仿真等等。常用的模拟仿真软件有:
multisim(现在已经出到10版本了),ORCAD等等。有的朋友还用protel仿真,但本人不提倡。
    好了,下面讲一下详细的“读”电路的步骤如下:
    1、要了解它的用途。也就是要了解这样电路是干什么用的。这对熟悉一个电路非常重要,对分析电路的指标和性能也同样重要。比如:一个普通LED大屏闹钟的电源管理,其性能就肯定比不上手机、数码相机的电源管理那么严格。指标也没有那么高。
    2、化整为零。将所读的电路分解。要分解为有独立功能的若干部分。空间要分为几部分呢?这要看那个电路的复杂程序和各位读者所掌握基本功能电路的多少有关了。一些电路可以进行若干次分解的。比如:手机电路一般可以分为:电源管理,LCD驱动,外部存储,射频,照相,语音模块等等,此外还有UART、USB、SIM卡、多媒体卡等接口。而语音模块又可以细分为受话部分,放大部分,等等。这些电路一般是有一定规律的。比如:运放一般有输入级,中间级,输出级,集团电路等几个部分。串联型稳压电源一般都有调整管、基准电压电路、输出电压取样电路、比较放大电路和保护电路等部分。
   3、分析功能。将电路分好块后,我们要分析每一块的电路功能,它是确定整个电路功能和性能的基础。
    4、纵观整体。首先将每部分电路用框图表示,并用合适的方式(文字、表达式、曲线、波形)扼要表述它的功能;然后根据各部分的联系将框图连接起来,就得到了整个电路的框图。这样可以比较清楚地看出各部分电路是如何相互配合来实现整个电路的功能。
   5、性能估算。对电路每个部分的定量估算,可以得出整个电路的性能指标。从估算过程中可以知道每一个部分电路会对与它相关的电路产生什么影响,为调试电路作好准备。

高工
2012-02-16 00:50:40     打赏
17楼
樓主太帥了,讓人心生敬意,作為一個電子信息出身的,那些課程都感覺晦澀難懂,尤其是DSP課程,看到你的帖子,看到你的執著,我感到狠是汗顏,感覺自己還不如你這個半路出家的,慚愧啊慚愧,。期待後續

菜鸟
2012-02-16 10:41:54     打赏
18楼
给力阿 呵呵

助工
2012-02-16 12:04:15     打赏
19楼
不容易啊不容易啊。 佩服楼主!

菜鸟
2012-02-16 21:15:36     打赏
20楼
多谢各位捧场!
但是自觉甚为惭愧,因为实在是水平有限公司的董事长啊!
宰相多起于郡县,而猛将必拔于卒伍!与各位共勉!

共42条 2/5 1 2 3 4 5 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]