从“绑好鞋带”谈嵌入式系统开发

曾收到别人寄来的一则网路连结,是连结到TED (Technology, Entertainment & Design)网站上一则2005年TED大会中的演讲影片【注一】,影片内容是告诉我们该如何把鞋带「确实」绑好。

这则影片很值得一看,从脸书( Facebook )上围绕着这则影片所作的诸多讨论看来,似乎大多数人习以为常的绑鞋带方法都错了。老实说,我曾经试着用影片中介绍的那套「正确方法」来绑鞋带,结果证明真的有非常显著的改善。试着改用这套「正确方法」来绑鞋带,的确可以让绑好的鞋带看起来比较美观,也更牢固。不过,若要改用这套新的方法,则需要多花点时间努力练习来改变以往绑鞋带的习惯。

您一定觉得奇怪,绑鞋带跟嵌入式系统开发到底有何关系?没错,这两者表面上是有点八竿子打不着,但是箇中隐含的道理却是共通的。要用更好、更有效的方法来做事情,需要具备三个条件:首先必须了解,大家通常是如何做这些事情的(其中的错误症结在哪)?再来是必须拥有足够的知识,知道这些事情应该要如何处理才会比较好(正确的解决方案为何)?最后则是必须投入一定的时间和精力,才能改变原先的做事习惯(如何付诸实行)?

在我们所处的嵌入式系统世界里,常常可以很容易看到到一些很有问题的做事或问题处理方式,无论是太慢、太贵、太多错误(Bugs),或是其他想得或到想不到的问题等等,反正要找出有问题的事情永远都不是件因难的事,反倒是要找出更好或更有效率的方法来做事却是难上加难;此外,该如何找出最恰当的时机和动机作出改变,才是真正最困难的部分。

去年我参加过一场益华电脑( Cadence )举办的活动。活动中有一位讲师指出,硬体工程师的日子可说越来越难过了,因为他们除了要做好手边的硬体设计工作外,还被寄望必须开始去思考如何支援软体开发方面的工作。

请想想,如果你是硬体工程师,怎会有时间去思考那些软体的东西呢?原本你应该就非常忙碌了,忙到就快没办法搞定指派给你的那些硬体设计工作,此时又要你设法去兼顾整个产品设计流程,这种要求无疑是天方夜谭。实际情况应该是,如果真的想作出改变,你就得先有停下脚步喘息的空档,稍稍退一步想想,然后好好思索接下来你应该做什么?又该怎么做?

当我们向新用户介绍Wind River的虚拟化平台「Simics」时,就常常碰到这个问题。理论上,Simics当然可以提供许多非常有用的功能,这些极富潜力的功能有助于改善原先的开发流程,使开发流程变得更好、更有效率(请参考其他文章进一步了解Simics可以做些什么【注二】 )。

但是,若要把Simics所提供的强大功能转化为可实际改善开发流程的助力,那么不仅还需要真正了解其运作原理,同时也需要时间实际导入部署,并改变工作团队原本的思维模式及作业习惯。

说到最后,这一切仍是牵涉到领导以及管理。我们需要给每位工程师足够的时间并提出有效的激励方案,好让他们愿意尝试新的工具,或是找出新的方法来使用旧的工具。对某些案例来说,导入新的作法就像你试着用更好的方法绑鞋带一样简单易行;不过对其他案例来说,导入新作法却困难多了。

就好比得先召集一千个人,然后说服他们为什么要改穿有鞋带的鞋子而不再穿用魔鬼毡固定的凉鞋,接着还得教导他们用特定的方法来绑好这些新奇玩意儿的带子。当然,一定也会有些人根本就还没意会到鞋子是有鞋带的,而这些人也会不断绊倒自己并让自己受伤,因为他们的鞋带一直都是松垮垮的,并没真正绑好。

从上述案例来看,无论是透过哪种途径开始绑鞋带,至少都已经开始尝试绑鞋带了,也就是说你已经开始有所改变并作出改善了,不管如何总是好事一桩。顺带一提,因为某些未知的原因,大部分跟我一起跳摇摆舞(Swing Dancing)的朋友早就都已知道绑鞋带的正确方法了。我猜,或许是正确绑好鞋带这件事,对某些特定的人事物来说格外重要吧?

总之,如果你想要做事快捷有效率,那你一定得先花点时间找​​出对的方法来做事情!

备注

【注一】TED网站(Terry Moore: How to tie your shoes):http://www.ted.com/talks/terry_moore_how_to_tie_your_shoes.html

【注二】Simics特点介绍:http://blogs.windriver.com/wind_river_blog/simics/

(本文转自电子工程世界:http://www.eeworld.com.cn/qrs/2012/0724/article_11198.html)

时间: 2024-12-02 04:44:32

从“绑好鞋带”谈嵌入式系统开发的相关文章

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-03项目生命周期五大阶段

02-03项目生命周期五大阶段 嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜 我们前面讲过项目的定义,特别谈到每件项目都是独一无二的,都有各自的目标.可应用的资源.必须面对的限制与风险等.但所谓的知识体系就是要设法异中求同,通过分析与比较足够数量且不同种类的案例,试图归纳出适用于所有项目的思想与方法. 这么做并不牵强,因为不同项目间确实具有共同的特性,可以使用相同的思想与方法论来执行,就如同我们的本行-嵌入式系统与电子产品开发,如果不能在不同的项目间秉持共通的概念,工程人员免不了要多走很

《嵌入式 Linux C 语言应用程序设计(修订版)》——1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.软件进行详细设计.一般情况下嵌入式

《嵌入式 Linux C 语言应用程序设计(修订版)》一1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 图1.15 嵌入式系统的开发流程 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.

车载嵌入式系统开发的新解决方案

尽管汽车产量可能会在未来的几年增长缓慢,但嵌入式电子设备和更精确的嵌入式软件这一部分的产量正在增长.找出车载嵌入式系统开发的新解决方案是法国EEA(嵌入式电子架构)合作研究和开发计划 "AEE"的目标.其获得的成果有:嵌入式组件级别的识别.一类嵌入式架构的详细说明,并且定义了一种陈述性语言. 现在,嵌入于汽车内的功能包括辅助制动.主动悬架.转向功能性等.它们都受严格的时间约束,更笼统地说,是受可靠性的约束.在不远的未来,随着电控X (X-by-Wire)技术的普及,这些约束会变得更加重

《 嵌入式系统设计与实践》一一1.2 嵌入式系统开发

1.2 嵌入式系统开发嵌入式系统是特殊的,因此也给开发者带来一些特殊的挑战.许多嵌入式软件工程师开发了工具箱来处理各种约束.在我们开始构建自己的系统之前,先来看看开发一个嵌入式系统会有哪些困难.在熟悉了嵌入式系统开发会如何受到限制之后,我们再开始讨论一些设计原则并借此指导我们找到更好的解决方案.1.2.1 调试如果在计算机上运行调试软件,就可以在这台计算机上编译和调试.系统有足够的资源在运行程序的同时调试程序.事实上,硬件根本不知道是在调试程序,因为这是由软件完成的.嵌入式系统就不是这样了.除了

Python在实时嵌入式系统开发中扮演的五个主要角色

Python已经成为相当热门的程序语言.它以着名的Monty Python喜剧组命名,属于面向对象和解释型语言(非编译型).该属性使得Python具有良好的跨平台性,比如Linux和Windows,或是诸如Raspberry Pi等单板计算机.随着Python的日益普及,人们可能会问,在实时嵌入式系统中是否也有Python的一席之地. 答案是肯定的.下面是开发人员发现Python在实时嵌入式系统开发中有可能扮演的五个主要角色. 作用# 1设备调试和控制 在嵌入式软件开发过程中,开发人员常常需要分

.NET简谈构件系统开发模式

在本人的".NET简谈插件系统开发模式"一文中我们详细介绍了插件系统开发模式的优越性,尽管.NET平台或者第三方提供的平台都为我们实现了底层插件原理模型,我们可以在上面进行开发,作为一名有求知欲的程序员才是一名合格的程序员:我们不能满足系统为我们提供的功能,我们要向下沉,沉的越深越好,躲开那些应用变化给我们带来的劳累感,所以我们是否需要掌握一些别人不会的技术,才能让我们在众多的程序员中脱颖而出呢:[王清培版权所有,转载请给出署名] 我们今天来探讨"构件"系统开发模式

《stm32嵌入式系统开发实战指南》一2.2 主要板载资源

2.2 主要板载资源 本节介绍STM32F107微控制器的主要片内外设,着重介绍10/100M以太网接口.CAN总线接口和RS485总线接口. 2.2.1 10/100M以太网接口 1.功能介绍 STM32F107的以太网模块支持通过以太网收发数据,符合IEEE 802.3-2002标准.STM32F107以太网模块灵活可调,能适应各种不同客户的需求.该模块支持两种标准接口连接到外接的物理层(PHY)模块:IEEE 802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII

《stm32嵌入式系统开发实战指南》一1.2 Cortex内核系列处理器技术特点

1.2 Cortex内核系列处理器技术特点 1.2.1 ARM Cortex-M系列处理器 ARM Cortex-M3是一种基于ARMv7体系结构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(与冯?诺依曼结构的数据和指令共用一条总线相比,双总线架构使吞吐量得到有效提升).除了使用哈佛结构,Cortex-M3 还具有其他显著的优点:具有更小的基础内核.价格更低.速度更快.与内核集成在一起的是一些系统外设,如中断控制器.总线矩阵.调试功能模块,而这些外设通常都是由芯片制造商增加的