国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

硬件工程師之路上的8個軟件必通絕招!!!

發(fā)布時間:2016-1-27 08:13    發(fā)布者:designapp
關(guān)鍵詞: 硬件工程師
  嵌入式系統(tǒng)設(shè)計不僅要了解硬件還應(yīng)該了解它與軟件之間的相互影響和作用。硬件設(shè)計需要一定的設(shè)計范例,這點對于軟件設(shè)計卻不那么適用。如何從單純的硬件設(shè)計過渡到硬軟結(jié)合的設(shè)計,在你著手開發(fā)軟件時需注意以下八個軟件設(shè)計技巧。
  1.設(shè)計控制流程圖
  工程師進行到開發(fā)軟件這一步時會情不自禁地開始書寫代碼。這種思維定勢就像在原理圖還未完成之前就開始嘗試畫PCB。當著手開發(fā)軟件時,克制寫代碼的沖動,取而代之的應(yīng)該是軟件流程結(jié)構(gòu)圖表的設(shè)計,這點非常重要。流程圖能清晰地呈現(xiàn)給開發(fā)人員軟件的各個需要的組成部件,正如電路圖列出硬件設(shè)計所需的各種元器件一樣。做到這點能很大程度上使程序整體更易于組織,而且也會減少占開發(fā)周期較長的調(diào)試工作量進而節(jié)省時間減少調(diào)試的繁瑣。
  2.使用狀態(tài)機控制程序流程
  狀態(tài)機是20世紀優(yōu)秀的軟件發(fā)明之一。應(yīng)用程序一般被分解為多個不同的狀態(tài),每一個狀態(tài)控制一個特定的程序分支。狀態(tài)機包括內(nèi)部狀態(tài)和依據(jù)不同激勵所控制的狀態(tài)轉(zhuǎn)換。使用狀態(tài)機機制設(shè)計軟件能夠使模塊化的可維護的軟件開發(fā)更加容易而且易于理解。狀態(tài)機原理與算法的示例隨處可見。
  3.避免使用全局變量
  在過去的函數(shù)式編程中,程序員使用函數(shù)編寫程序,他們的唯一目標是使程序盡可能快的運行而不考慮程序的結(jié)構(gòu)和重用性。這類程序風(fēng)格在使用全局變量時不注意變量的作用范圍引起其他函數(shù)修改的危險性。這樣變量會被多次占用和重寫。如今面向?qū)ο蟮某绦蛟O(shè)計中,成員變量被定義在最小的作用范圍之內(nèi)并封裝起來避免被重新復(fù)值和濫用。所以建議盡量少地使用全局變量,實在需要的話,使用C語言中的關(guān)鍵字“extern”來修飾。
  4.充分利用模塊化的設(shè)計理念
  如果你問一位工程師項目的哪一部分最有可能會拖延交付并超出預(yù)估時間,那答案一定是軟件周期了。軟件通常是復(fù)雜而且不易開發(fā)和維護的,特別是當項目應(yīng)用程序集中在一個單一的文件里,或者幾個結(jié)構(gòu)松散的文件中時。為了便于代碼重用和軟件可維護并減小軟件的復(fù)雜度,強烈建議發(fā)揮高級程序設(shè)計語言模塊化的特性,在程序的結(jié)構(gòu)中把公用的函數(shù)分離出來作為一個獨立的模塊。通過這種方式可以讓程序員開始創(chuàng)建包含有常用函數(shù)和常用的聲明定義,它可以很容易的被其他的代碼重用,這在以后的測試階段不僅可以節(jié)省時間代價還能提高代碼的質(zhì)量。
  5.中斷服務(wù)事件保持簡練
  中斷服務(wù)事件是中斷處理器正在執(zhí)行的程序,轉(zhuǎn)而去處理觸發(fā)該中斷的外設(shè)的請求的一種機制。處理器響應(yīng)中斷請求需要大量的系統(tǒng)開銷,具體表現(xiàn)在保存被中斷程序的狀態(tài)(入棧下條指令的段地址、偏移地址和程序狀態(tài)寄存器,有時還會入棧若干寄存器的值),執(zhí)行中斷服務(wù)程序然后恢復(fù)中斷點繼續(xù)執(zhí)行(依次出棧各寄存器),雖然現(xiàn)在的處理器速度非常快但是這種系統(tǒng)開銷仍然需要考慮。一般來說,為了避免與主程序沖突程序員總想使中斷執(zhí)行時間減小到最小。這就意味著中斷服務(wù)事件應(yīng)該短小簡單。不能在中斷程序中調(diào)用函數(shù)。另外,如果中斷需要處理的事件特別復(fù)雜或者需要花費較長的時間,這個時候中斷服務(wù)程序應(yīng)該滿足最小的需求,例如將數(shù)據(jù)載入到緩沖寄存器、設(shè)置標志位,而讓主程序去處理讀入的數(shù)據(jù)。這樣處理器的工作大部分周期都在處理程序而不是中斷。
  6.使用處理器示例代碼測試設(shè)備
  對于硬件設(shè)計,在畫板之前標準的測試電路有助于工程師理解電路的特性。同樣可以適用于軟件設(shè)計,半導(dǎo)體廠商通常有測試微處理器各個部分的功能的示例程序提供工程師體驗各部分是如何工作的。據(jù)此可以提前組織軟件的結(jié)構(gòu)并且預(yù)知在設(shè)計中的問題。提前確定在設(shè)計潛在的障礙遠比在產(chǎn)品完成前幾個小時發(fā)現(xiàn)問題更加科學(xué)合理。而值得注意的是廠商提供的代碼通常不是模塊化而且不做必要的修改是很難直接用于實際的軟件中的。
  7.控制函數(shù)的復(fù)雜度
  在工程設(shè)計中有句俗語叫“KISS”,意思是“Keep It Simple Silly”。在處理一些復(fù)雜的任務(wù)時最簡單有效的方法是把它分解成若干個簡單的子任務(wù),當任務(wù)或者功能很復(fù)雜時,人們很難留意所有的細節(jié)也很難不出錯。當工程師寫了一個在當時能夠理解的復(fù)雜函數(shù),可一段時間后需要維護程序了還能不能清晰的呈現(xiàn)出當初的設(shè)計思想這是值得考慮的。有大量的技術(shù)來衡量函數(shù)的復(fù)雜度像“循環(huán)復(fù)雜度”。經(jīng)驗告訴我們,函數(shù)的循環(huán)復(fù)雜度應(yīng)該低于10比較好。
  8.詳細的文檔
  在激烈的軟件開發(fā)競爭中關(guān)注的焦點很容易就局限在代碼的書寫和調(diào)試而忽略文檔的編寫。有時迫于壓力要求寫文檔,開發(fā)人員通常把文檔安排在項目開發(fā)的最后的一個環(huán)節(jié)集中編寫。然而給代碼寫文檔應(yīng)該乘在頭腦里面還比較清晰的時候比較關(guān)鍵,這樣在后續(xù)的開發(fā)或者自己閱讀注釋的時候能很快的回憶起當時的設(shè)計思想
                               
                                                               
                               
               
本文地址:http://m.qingdxww.cn/thread-160426-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜羞羞视频在线观看 | 99热成人精品国产免男男 | 黄页网站在线看 | 国产91香蕉视频 | 亚欧成人中文字幕一区 | 日本亚洲最大的色成网站www | 青青操青青| 黄色国产在线观看 | 在线观看视频日韩 | 手机看片高清日韩精品 | eeuss影院www影院入口 | 久久视热这只是精品222 | 欧美又大粗又爽又黄大片视频黑人 | 2021国产麻豆剧传媒剧情最新 | 久久精品国产日本波多麻结衣 | 激情五月婷婷久久 | 国语精品91自产拍在线观看二区 | 欧美成人一区二区三区 | 色成人亚洲 | 精品久久久久久久久久香蕉 | 国产一级毛片在线 | 精品一区二区三区视频 | 女老师中文字幕 | 久青草国产在线视频亚瑟影视 | 青娱乐自拍视频 | 亚洲美女综合网 | 日韩手机在线 | 欧美人成一本免费观看视频 | 国产精品99久久 | 国产一级一片免费播放视频 | 亚洲一区欧美日韩 | 丁香伊人| 亚洲图片偷拍区 | 午夜精品在线 | 国产亚洲欧美在线中文无广告 | 青青免费 | 午夜爱| 欧美亚洲日本国产 | 欧美片网站yy | 精品在线免费观看视频 | 青青草网站在线观看 |