51CTO博客开发
物联网,全世界都炒得比较热。号称未来有千亿的市场。于是乎,物联网作为一个新兴的行业,被各方追捧。很多企业号称自己就是物联网企业,沾上这一把千载难逢的机会。物联网是什么呢?写文章前我还特意看了网上和首席科学家刘海涛先生的定义。我理解比较肤浅,是不是个带传感器,带执行机构和传输机构的嵌入式系统啊?数据汇到平台上计算结果再返回执行机构?我个人觉得这并不是个新东西,可能是作为概念化的东西提出来是新的。但从
今天看到友人在群里说,rtems实时性不如rtt之类云云。看了之后,不禁手痒回了几句。不如就写在这里罢。个人观点,欢迎探讨。关于这个硬实时系统和软实时系统网上有明晰的定义,这里只谈硬实时系统。目前看,市面上大大小小的rtos真地有上百个。实时性谁好谁差呢?这个真不好回答。其原因很多,首先,目前的os都需要和用户代码编译形成一个整体然后运行。极少数的rtos不要这样。用户的代码不可能不影响核心。其次
ARM的启动代码是非常重要的代码,直接关系到系统的稳定性和可靠性(这里主要讨论arm7, arm9;cortex系列的会在后续的文章中讨论)。上次我们通过两则文章讨论了ARM启动代码的过程,ARM的启动代码(1):介绍ARM的启动代码(2):AT91SAM9260启动详解这次我们聊聊ARM的代码的具体编写。那么什么样的代码会涉及到这些问题呢?1.Bootloader或者位于启动序列上进行加载其他应
PCB(Printed Circuit Board)设计软件经过多年的发展、不断地修改和完善,或优存劣汰、或收购兼并、或强强联合,现在只剩下Cadence和Mentor两家公司独大。 Cadence公司的推出的SPB(Silicon Package Board)系列,原理图工具采用Orcad CIS或Concept HDL,PCB Layout采用的是Allegro。Mentor公司有三个系列的P
经常被问到这个问题。我的资历还不足以将这个问题回答好。昨天又有个朋友问起我这个问题。前思后想,还是硬着头皮写篇文章吧。 技术这个词表述的应该不怎么准确。实际中我们想表达的意思应该是知识在实际中的运用水平,技术可能限定了只在工程领域里,这么理解恐怕要准确些。这样就牵涉到几个问题:1. 是知识面的宽广程度;2. 知识
99年到04年正是CS疯狂的时候。大学里很多同学都爱打CS。那时我也听到了很多有意思的段子,比如说某个菜鸟扔了个闪光弹,害死了4个队友。手雷扔错了,把自己人给炸死了。于是乎,则有了“不怕神一样的对手,只怕猪一样的队友。”的说法。现代社会的设计工作,都是比较庞大的。很难一个人完成。有时间和精力的限制。那么合作,会不会出现不怕神一样的对手和猪一样队友的事情呢?合作,说起来容易,做起来其实很难。每个人都
最近,我在赶几个重要的项目,非常的着急,但是工程师布出来的怎么就是不符合要求。这个急啊。我们用的工具是Mentor, Expedition PCB。不知道朋友用过这款工具没有,这款工具推挤功能非常强大。走线非常迅速。是一款非常优秀的PCB布板工具。按理说,我们的布板速度和质量应该比较高了。可以方案交到我这里,我没有一次真心满意的。即使发板子以后的定型版本,我都不是很满意。长期的抑郁,让我思考什么是
和朋友聊天,聊起研发的沟通。席间就聊起,有些研发的人不善于沟通,有些善于沟通。我们把目光盯着不善沟通的人找了若干原因:1.做技术的人做久了,头脑里都有一些缺省的思维。潜意识认为对面的人应该知道,不知道的统归为不如自己的;知道的就多聊几句。2.头脑里不知道什么是应该展开的,什么是不应该展开的,结果要么全部展开,太罗嗦,没重点;要么展开的部分不对,重点错乱。3.有心理障碍的。一和人聊天,就血往头上涌,
常听朋友说,经验很重要。我刚参加工作的时候,也这么觉得;觉得好多老工程师非常厉害,怎么就知道那里需要加个东西的呢?又怎么知道加了东西一定有改善的呢?让我佩服不已。由于许多工程经验,犹如羚羊挂角,无迹可寻。好端端的设计工作,真的没办法弄了。只好作为孤立的知识点记住。应用中也不免产生这样或者那样的问题。很多工程师向我抱怨,公司没有利害的工程师,无法提高自己。我很想问他们,第一个祖师爷是怎么成长起来的?
当创新进入更高的阶层,设计越来越高层化,模块化。对于模块和积木的选择是非常难的。比如说,RTOS市面上不下上百种;文件系统常用的系统不下几十种。在这么多模块中选出自己合适的模块,真的是太难了。那么有没有什么技巧呢?首先,要对自己的应用熟悉。对自己的应用熟悉,也就是对需求的理解。需求的理解越深刻,对模块的选取和定位越有帮助。中国有句古话,叫差之毫厘,谬以千里。目标方向的理解不充分,是产生错误的根源。
听朋友常抱怨,难道嵌入式就是在互联网上找代码,然后抄代码吗?很多朋友不屑于这样抄代码。在美国,近年来成功的IT公司令人侧目。有几个公司是做C/C++,甚至做汇编慢慢起来的?Android,C/C++的批量应用,大量的应用都是用C堆出来的吗?我并未做深入细致的调查。有朋友对我说,C/C++, Java程序员今年来少一个优秀的程序员那真的是少一个优秀的程序员。这里主要的原因还是更高级的开发工具的效率对
软件调试和硬件调试都是调试,思路差不多,一些具体操作方式上有所差别。这是我在工作中总结的一些认识:1.调试总的指导思想是,任何一个实验应该唯一说明一个问题。成功了,唯一的结论是推论是成功的;失败了,唯一的结论是推论是失败的。这都是带有唯一性的。实际操作中可能并不好做到,但其中的一个唯一应该是可以做到的。2.由于软件硬件的耦合,杂散参数的影响。根本问题一样,可能现象每次发生都不一样。大胆的假设,仔细
中小型公司,需要照顾的东西比较多,每天救火都来不及,谈什么迭代改进?特别是自力更生发展起来的公司,除了一堆需要维护的老产品,还有一堆将要开发的产品特性。怎么弄?整天都在救火, 研发人员疲于奔命。难有心情和时间去总结。这都致使问题从一个版本继承到下一个版本,bug代代传。类似的项目做多了,也有一些小心得。总结如下:1.通过合理的设计简化业务模型。我们曾经设计一个RTOS系统的项目,原来的设计中大大小
无意中看到了<专访蒋彪:JavaEE是企业级开发首选>,写在最后的一段话:“此外他还和记者表示,技术只是一种实现方法,特意强调某种技术,乃至于为了某种技术辩护的人其实是虚伪的……”。这段话我读过后,在心中不断的发酵。非常有感触。一个技术人从自身出发,在企业里生存,强调两点:1.自己仕途和“钱途”;2.自我实现。很多时候, 实现自己往往要证明自己的存在,自己的存在往往用独一无二,别人不能
软件硬件看似两个分家的东西,其实内在有千丝万缕的联系。我举一些小例子:开关电源的电感在一个时钟周期内,要满足伏秒平衡。物理意义是,开关周期内电感吸收的能量和释放的能量应该是相等的。否则,系统不会平衡,不稳定。对于软件系统,特别是复杂的大型系统,虽然有严谨的理论去判断一个软件模块的稳定性。但对于程序员调试,并不是一个简单轻松的过程。可以借鉴伏秒平衡的思路,一个大型的代码在一个状态结束时,除了一些统计
员工的离职原因林林总总,只有两点最真实:1.钱,没给到位;2.心,委屈了。这些归根到底就是一条:干得不爽。员工临走还费劲心思去找靠谱的理由,就是为给你留面子,不想说穿你的管理有多烂、他对你已经失望透顶。仔细想想,真是人性本善。
三帮:初学者,帮;领悟者,帮;自学者,帮。三不帮:公司项目者,不帮;自命不凡者,不帮;开口索要者,不帮。
朋友也问过我,一些基础的东西学完了,如何进一步的成长,该学习哪些书呢?如果没有读过计算机专业的基础课程,那么计算机基础课程是一定要学习的。1.数据结构、离散数学、操作系统、编译原理这四门课学习完。数据结构和操作系统两门课程一定要细心学习,这个是基础理论。特别是数据结构,建议学习严蔚敏_吴伟民的《数据结构(C语言版)》。再找一本国外的,一共两本,学个一年。把书上的例子都用C写一遍。一些重要的代码需要
最近我的工作太忙了。身边朋友问我如何学习嵌入式,在这个行业健康的发展。我一直未能做一个系统的回答。这里我想写篇文章,彻底的回答这个问题。嵌入式,这是个术语。在我看来,嵌入式系统是:为了应用高度定制软件和硬件的计算机系统,满足一系列的特定应用需求。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。I
(一篇转载文章,看完之后就问身边的朋友,发现竟然有很多人同样不知道巴基斯坦和我们是兄弟。转来这边,中国人自居礼仪之邦,要善待咱们的真兄弟。)巴基斯坦与中国关系变化分为两个阶段,中国刚建国时,巴国完全走亲美路线,与中国关系并不是很好,但是也绝非很坏,巴国一直在举棋不定的摇摆中。60年代,巴国亲眼目睹了中国是如何以“数万边防军”即痛击印度的,就此发生转变。70年代,在第二次印巴之战以后,美国第一个抛弃
(转自电子竞技牛人:SKY 李晓峰 http://blog.sina.com.cn/s/blog_48fb9c130102ejvq.html#comment2)“大学的时候学会了打WAR III,后来知道了SKY 李晓峰,相当佩服,如痴如醉的学习sky流。如今10年过去了。SKY的感悟,一如我对技术的执着一样。曾今以为只要有技术,就没什么办不到的,自负自大自傲。后来自己慢慢变成个商业人,才明白,技
(一才女博客看来的,不错,意境很浓)大一,年少春衫薄。骑马倚斜桥,满楼红袖招。一朝看尽长安花。大二,春日游,杏花插满头。谁家年少足风流,妾身欲语还休。大三,男儿立志出乡关,会当凌绝顶,一览众山小。大四,林花谢了春红,太匆匆。毕业:平生不会相思,才会相思,便害相思,蓦然回首,月明楼空人散两茫茫。
这篇只是一个简短的记录,记录一下对Bootloader的一些粗浅认识。1.Bootloader真正核心的代码不过几百行汇编,完成的工作高度依赖于硬件和将要运行的系统。a.对于硬件,将硬件置于合适的工作状态;如ARM,关闭看门狗,关闭中断,初始化内存接口等等;b.检测硬件的类别和数量,保存在合适的位置。为被引导软件服务。c.搬运代码到合适的地方,并交接控制权。2.为了调试或者系统升级的方便,Boot
网上朋友聊天,随便出了个简单的题目。对一个正整数(不含0)进行因数分解。要求:输入:100输出:2 * 2 * 5 * 5 = 100输入:13输出:13 = 13很简单的一个题目。时间有限,只给十分钟。很快,被问者给出答案:#include<stdio.h>#include<stdlib.h>int main(void){ int m
最近有个朋友,叫我出出主意,想想怎么把他写得RTOS发扬光大。这事情问到我,让我思索良久。的确啊,现在的RTOS,知名的,不知名的;低调的,高调的。少说都有上百种。如何在这么多的RTOS中脱颖而出,那是需要点思路的。纵观整个RTOS的产品,有免费的和不免费的;有鲸鱼式的巨无霸,也有蜂鸟那样的小小鸟。有商业化成功的航空母舰,也有未走出只有学习者的小舢板。多年的工作让我明白,技术往往在商业成功中充当一
共模抑制比(CMRR) 是指差分放大器对同时加到两个输入端上的共模信号的抑制能力。更确切地说,CMRR是产生特定输出所需输入的共模电压与产生同样输出所需输入的差分电压的比值。 差分放大器共模响应,是指放大器中共模电压Vcm引起的差模电压Vcm_diff。根据CMRR 的定义,设Vcm_diff为差模下对应的电压: Vo= Vcm_diff× Adiffm= Vcm ×Acm重新
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号