0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)指南

PCB線路板打樣 ? 來(lái)源:LONG ? 2019-08-08 08:58 ? 次閱讀

在過(guò)去的幾年中,我注意到嵌入式系統(tǒng)開(kāi)發(fā)人員和團(tuán)隊(duì)之間的趨勢(shì)非常令人不安。趨勢(shì)包括開(kāi)發(fā)功能(最好)但不是為生產(chǎn)環(huán)境構(gòu)建或測(cè)試的嵌入式系統(tǒng)。這種趨勢(shì)導(dǎo)致災(zāi)難。

這種“簡(jiǎn)單功能”趨勢(shì)的主要原因似乎是由于三個(gè)因素:利用示例代碼,匆忙的開(kāi)發(fā)周期,以及缺乏理解它需要什么構(gòu)建生產(chǎn)嵌入式系統(tǒng)。利用示例代碼的第一個(gè)因素實(shí)際上是啟動(dòng)嵌入式軟件開(kāi)發(fā)的關(guān)鍵一步。示例代碼有助于啟動(dòng)和運(yùn)行嵌入式系統(tǒng),以及獲得對(duì)目標(biāo)硬件的重要見(jiàn)解。許多微控制器供應(yīng)商為開(kāi)發(fā)人員提供了有關(guān)如何設(shè)置外設(shè)和與微控制器交互的急需的示例代碼。

但是,許多開(kāi)發(fā)人員通常不會(huì)考慮這個(gè)示例代碼。首先,示例代碼只是一個(gè)例子;它不適合生產(chǎn)。它只是如何設(shè)置和與各種外圍設(shè)備交互的指南。然而開(kāi)發(fā)人員將采用代碼,一旦將示例代碼引入系統(tǒng),它通常會(huì)保留在系統(tǒng)中。

仔細(xì)檢查來(lái)自不同微控制器供應(yīng)商的示例代碼,經(jīng)常會(huì)發(fā)現(xiàn)免責(zé)聲明所提供的代碼不能保證適用于任何目的。它甚至不能用于任何目的,而只是“原樣”提供。只要閱讀免責(zé)聲明,就應(yīng)該讓嵌入式軟件開(kāi)發(fā)人員在考慮采用該代碼時(shí)感到不安。該軟件的制作人沒(méi)有足夠的信心支持他們的榜樣,那么是什么讓人們認(rèn)為示例代碼產(chǎn)品已經(jīng)準(zhǔn)備就緒?

檢查硬件寄存器標(biāo)志時(shí),通常可以看到功能示例代碼的一個(gè)很好的例子。圖1顯示了類似于人們通常會(huì)發(fā)現(xiàn)的內(nèi)容。

圖1 - 示例代碼硬件寄存器標(biāo)記檢查

一個(gè)問(wèn)題使用圖1中的代碼是 while 循環(huán)假設(shè)操作最終會(huì)成功完成。在理想條件下,這可能是真的,但如果硬件出現(xiàn)故障會(huì)怎樣?也許振蕩器正在漂移,因此無(wú)法實(shí)現(xiàn)同步。也許寫(xiě)入閃存失敗了。當(dāng)流氓出現(xiàn)故障的外部傳感器導(dǎo)致總線停機(jī)時(shí),硬件檢查可能在通信總線標(biāo)志上,從而無(wú)法完成傳輸。在這些情況下,使用圖1中的代碼的結(jié)果將是無(wú)限循環(huán),需要外部力量(例如看門(mén)狗定時(shí)器)的干預(yù)。即使這樣,看門(mén)狗定時(shí)器也會(huì)重置系統(tǒng),但不能保證系統(tǒng)不會(huì)在循環(huán)中結(jié)束,進(jìn)入永久復(fù)位的永久循環(huán)。

為生產(chǎn)環(huán)境編寫(xiě)的軟件應(yīng)該適應(yīng)失敗的可能性。某些場(chǎng)景的解決方案(如圖1中的 while 循環(huán))可能是基于系統(tǒng)節(jié)拍向循環(huán)添加超時(shí),或者可能建立最大數(shù)字標(biāo)志檢查。這些將阻止系統(tǒng)進(jìn)入無(wú)限循環(huán)或永久復(fù)位循環(huán)。

圖2中的示例演示了如何將附加條件添加到 while 循環(huán)中,以便系統(tǒng)退出發(fā)生故障時(shí)的循環(huán)。這些添加不是使系統(tǒng)掛起等待救援的無(wú)限循環(huán),而是生成錯(cuò)誤代碼,該錯(cuò)誤代碼警告調(diào)用例程感興趣的硬件標(biāo)志已超時(shí)。然后,系統(tǒng)可以在不調(diào)用最后一個(gè)監(jiān)視器的情況下采取糾正措施。

圖2 - 生產(chǎn)代碼硬件寄存器標(biāo)記檢查

導(dǎo)致構(gòu)建功能性而非生產(chǎn)意圖嵌入式系統(tǒng)趨勢(shì)的第二個(gè)因素是匆忙的開(kāi)發(fā)周期。開(kāi)發(fā)嵌入式系統(tǒng)會(huì)給企業(yè)帶來(lái)巨大的管理成本,這使得企業(yè)希望昨天進(jìn)入市場(chǎng)。此外,初創(chuàng)企業(yè),小型企業(yè)和銷售團(tuán)隊(duì)因樂(lè)觀地設(shè)定生產(chǎn)日期而不考慮開(kāi)發(fā)強(qiáng)大的生產(chǎn)就緒系統(tǒng)所需的實(shí)際工作而臭名昭著。許多工程師要么在這種情況下拒絕接受管理,要么他們確實(shí)發(fā)現(xiàn)他們的擔(dān)憂被置若罔聞。最終結(jié)果是角落被切割以試圖滿足不切實(shí)際的最后期限,這導(dǎo)致設(shè)計(jì)僅包含僅在一系列非常受控的條件下工作的功能代碼。

有助于發(fā)布功能性而非生產(chǎn)意圖的嵌入式系統(tǒng)的最終因素是缺乏對(duì)如何構(gòu)建生產(chǎn)意圖嵌入式系統(tǒng)的理解。嵌入式軟件和系統(tǒng)工程師需求量大,供不應(yīng)求。這種情況導(dǎo)致公司在校外或從不同學(xué)科的工程師(如網(wǎng)絡(luò)或應(yīng)用程序開(kāi)發(fā))中擔(dān)任重要角色。結(jié)果是如何正確地構(gòu)建和實(shí)現(xiàn)健壯的嵌入式系統(tǒng)的知識(shí)差距,這些嵌入式系統(tǒng)不需要每天更新修補(bǔ)程序錯(cuò)誤并修復(fù)安全問(wèn)題。

但是,綠色和跨學(xué)科的工程師并非完整的故事,導(dǎo)致人們對(duì)生產(chǎn)嵌入式系統(tǒng)的真正缺乏了解。經(jīng)常會(huì)要求訓(xùn)練有素且經(jīng)驗(yàn)豐富的工程師開(kāi)發(fā)原型或概念證明。為了向管理人員演示,工程師們提供了一個(gè)基于功能性示例代碼的漂亮功能原型。演示很順利,但該系統(tǒng)只能在受控條件下工作。但由于演示進(jìn)展順利,管理層希望立即運(yùn)送系統(tǒng),而不是理解仍需要做很多工作才能使系統(tǒng)生產(chǎn)準(zhǔn)備就緒。

嵌入式系統(tǒng)正在進(jìn)入我們生活的每一個(gè)角落。對(duì)于在受控條件下操作的一些設(shè)備,僅使用功能代碼可能是好的。但隨著物聯(lián)網(wǎng)和自主智能社會(huì)的快速發(fā)展,運(yùn)輸功能而非生產(chǎn)代碼的危險(xiǎn)趨勢(shì)是等待發(fā)生的事故。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300732
  • PCB打樣
    +關(guān)注

    關(guān)注

    17

    文章

    2968

    瀏覽量

    21608
  • 華強(qiáng)PCB
    +關(guān)注

    關(guān)注

    8

    文章

    1831

    瀏覽量

    27680
  • 華強(qiáng)pcb線路板打樣

    關(guān)注

    5

    文章

    14629

    瀏覽量

    42894
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式視頻教程之嵌入式系統(tǒng)開(kāi)發(fā)對(duì)人才的技能要求

    `  如今嵌入式系統(tǒng)的發(fā)展前景讓很多年輕人逐漸的了解和熟知嵌入式開(kāi)發(fā)技術(shù),也讓年輕人們向往嵌入式系統(tǒng)開(kāi)發(fā)
    發(fā)表于 06-15 13:10

    嵌入式視頻教程之嵌入式系統(tǒng)開(kāi)發(fā)對(duì)人才的技能要求

     如今嵌入式系統(tǒng)的發(fā)展前景讓很多年輕人逐漸的了解和熟知嵌入式開(kāi)發(fā)技術(shù),也讓年輕人們向往嵌入式系統(tǒng)開(kāi)發(fā)
    發(fā)表于 06-23 10:44

    嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)

    請(qǐng)問(wèn)誰(shuí)有全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)教程——嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)(2017年版)的PDF啊~~~急求!?。?/div>
    發(fā)表于 07-30 17:12

    STM32嵌入式系統(tǒng)開(kāi)發(fā)實(shí)戰(zhàn)指南

    STM32嵌入式系統(tǒng)開(kāi)發(fā)實(shí)戰(zhàn)指南
    發(fā)表于 04-03 09:51

    ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)詳解

    了Linux技術(shù)的*發(fā)展,全部采用當(dāng)前最流行和穩(wěn)定的Linux發(fā)行版或者相關(guān)工具,是Linux愛(ài)好者學(xué)習(xí)Linux的好幫手?!禠inux典藏大系:ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)詳解(第2版)》是獲得了
    發(fā)表于 09-14 08:57

    嵌入式系統(tǒng)開(kāi)發(fā)的基礎(chǔ)知識(shí)

    # 嵌入式系統(tǒng)開(kāi)發(fā)的基礎(chǔ)知識(shí)(2)版權(quán)聲明:未經(jīng)博主允許,所有轉(zhuǎn)載皆算侵。 準(zhǔn)備結(jié)合“全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)考試大綱”,將
    發(fā)表于 12-22 06:13

    嵌入式系統(tǒng)開(kāi)發(fā)

    嵌入式系統(tǒng)開(kāi)發(fā);對(duì)你的開(kāi)發(fā)有非常的意義,不信你可以看看!
    發(fā)表于 03-25 13:08 ?91次下載

    嵌入式系統(tǒng)開(kāi)發(fā)圣經(jīng)

    嵌入式系統(tǒng)開(kāi)發(fā)圣經(jīng)的內(nèi)容: 第1章 嵌入式系統(tǒng)的介紹第2章 嵌入式SoC硬件系統(tǒng)概論第3章
    發(fā)表于 07-25 17:39 ?48次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>圣經(jīng)

    ARM嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)產(chǎn)品選型指南

    ARM嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)產(chǎn)品選型指南 MagicARM2410教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)是專為高校嵌入式系統(tǒng)
    發(fā)表于 03-27 14:15 ?91次下載

    面向?qū)ο?b class='flag-5'>嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)

    面向?qū)ο?b class='flag-5'>嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)
    發(fā)表于 10-30 16:10 ?15次下載
    面向?qū)ο?b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b><b class='flag-5'>技術(shù)</b>

    OMAP的嵌入式系統(tǒng)開(kāi)發(fā)

    OMAP的嵌入式系統(tǒng)開(kāi)發(fā)
    發(fā)表于 10-31 08:30 ?7次下載
    OMAP的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>

    ARM嵌入式系統(tǒng)開(kāi)發(fā)_Android應(yīng)用開(kāi)發(fā)入門(mén)(基礎(chǔ)版)

    ARM嵌入式系統(tǒng)開(kāi)發(fā)_Android應(yīng)用開(kāi)發(fā)入門(mén)(基礎(chǔ)版)(嵌入式開(kāi)發(fā)板教程)-該文檔為ARM嵌入式系統(tǒng)
    發(fā)表于 08-04 11:02 ?0次下載
    ARM<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>_Android應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>入門(mén)(基礎(chǔ)版)

    嵌入式系統(tǒng)開(kāi)發(fā)設(shè)計(jì)

    嵌入式系統(tǒng)開(kāi)發(fā)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì)的主要任務(wù)是定義系統(tǒng)的功能、決定系統(tǒng)的架構(gòu),并將功能映射到
    發(fā)表于 11-03 11:06 ?19次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>設(shè)計(jì)

    嵌入式系統(tǒng)開(kāi)發(fā)概述

    1、嵌入式系統(tǒng)是什么2、嵌入式系統(tǒng)的組成3、嵌入式開(kāi)發(fā)與傳統(tǒng)單片機(jī)開(kāi)發(fā)不同4、
    發(fā)表于 12-31 18:57 ?19次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)開(kāi)發(fā)</b>概述

    嵌入式系統(tǒng)開(kāi)發(fā)三大核心技術(shù)

    對(duì)于嵌入式系統(tǒng)開(kāi)發(fā),我想我們只要接觸過(guò)嵌入式研發(fā)的人都是比較了解的,但是作為一個(gè)合格的嵌入式系統(tǒng)開(kāi)發(fā)人員,你了解過(guò)
    的頭像 發(fā)表于 04-13 15:39 ?2455次閱讀