新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機編程知識問答

        單片機編程知識問答

        作者: 時間:2013-03-07 來源:網絡 收藏

        19. Intel系列的9680c196KB開發系統時,都有那些注意事項?

        答:一個即時系統的軟體由即時操作系統加上應用程序構成。應用程序與作業系統的接口通過系統調用來實現。用80C196KB作業系統的MCU,只能用內部RAM作為TCB和所有系統記憶體(含各種控制表)以及各個任務的工作和資料單元。因此一定要注意以下幾點:

        (1)對各個任務分配各自的堆迭區,該堆迭區既作為任務的工作單元,也作為任務控制塊的保護單元。

        (2)系統的任務控制塊只存放各任務的堆迭指標,而任務的狀態均存放于任務椎棧中。在一個任務退出運行時,通過中斷把它的狀態進棧,然后把它的堆迭指標保存于系統的TCB中;再根據優先取出優先順序最高的已就緒任務的堆迭指標SP映象值送入SP中;最后執行中斷返回指令轉去執行新任務。

        (3)各任務的資料和工作單元盡量用堆迭實現,這樣可以允許各任務使用同一個子程序。使用堆迭實現參數傳遞并作為工作單元,而不使用絕對地址的RAM,可實現可重入子程序。該子程序既可為各個任務所調用,也可實現遞回調用。

        20. 在demo板上采樣電壓時,不穩定,采樣結果有波動,如何消除?

        答:一般來說,仿真器都是工作在一個穩壓的環境(通常為5V)。如果用仿真器的A/D時,要注意其A/D參考電壓是由仿真器內部給出,還是需要外部提供。A/D轉換需要一個連續的時鐘周期,所以在仿真時不能用單步調試的方法,否則會造成A/D采樣值不準。至于A/D采樣不穩定,可以在A/D輸入口加一電容,起到濾波作用;在軟件處理時采用中值濾波的方法。

        21. 在車載DVD系統中,如何設計電子防震系統?

        答:在車載DVD系統,最好選擇高檔DVD機,因為高檔DVD機都采用電子防震系統(ADVANCEDESP),當記憶緩沖區內的讀數降低,先進的電子防震設計會以雙速讀數系統,做出比正常速度快兩倍的讀數速率,以減低噪聲,即使連續震蕩仍可避免跳線情況出現,現在就說說什幺叫電子防震。簡單地說:電子防震就是一個信號的儲存--釋放過程,首先CD要先把信號進行提前讀取,也就是我們見到機子的加速,再把信號儲存在RAM中,而我們在開防震的時候所聽到的就是經過RAM的聲音,這樣就是它的過程。當沒有防震時是由于信號是1比1讀取的,所以當受到沖擊后,就會出現跳音。而當開了防震時,機子受到沖擊后,由RAM釋放出來的聲音使音樂不停地播放,而與此同時,光頭迅速進行復位檢索,當檢索到信號后立即補充,所以不會出現跳音。大概的情況就是這樣。但是這樣還沒有滿足用家的要求,由于這種的方法帶來的時間短,通常只有3秒,所以跳音的機會還是蠻高,如果增大RAM又帶來造價的增高因為RAM這東西價格較貴,尤其是質量好的。

        22. 在電子防震技術中,有那些IC或器件可供選擇?

        答:在電子防震技術中,最重要的技術之一要數是RAM技術,而一直以來都是因為它的成本問題,所以防震時間都一直不能增加,也就是說RAM本身就有限制,RAM的容量越大,造價就越高。而許多廠家就如何在RAM的限制里得到最大限度的記憶時間展開了開發研究。

        23. 如何進行編程可以減少程序的bug?

        答:在此提供一些建議,因系統中實際運行的參數都是有范圍的。系統運行中要考慮的超范圍管理參數有:

        物理參數。這些參數主要是系統的輸入參數,它包括激勵參數、采集處理中的運行參數和處理結束的結果參數。合理設定這些邊界,將超出邊界的參數都視為非正常激勵或非正常回應進行出錯處理。

        資源參數。這些參數主要是系統中的電路、器件、功能單元的資源,如記憶體容量、存儲單元長度、堆迭深度。在程序設計中,對資源參數不允許超范圍使用。

        應用參數。這些應用參數常表現為一些、功能單元的應用條件。如E2PROM的擦寫次數與資料存儲時間等應用參數界限。

        過程參數。指系統運行中的有序變化的參數。

        在上述參數群對一程序編寫者而言,須養成良好習慣,在程序的開頭,有順序的用自己喜歡文字參數對應列表來替代,然后用自己定義的文字參數來編寫程序,這樣在做程序的修改及維護時只在程序的開頭做變動即可,不用修改到程序段,才比較容易且不會出錯。

        24. 有人認為將被ARM等系列結構的嵌入式系統所取代。單片機的生命期還有多長?

        答:因為8位單片機與嵌入式系統的ARM在功能結構和單價的差異,故應用層次上就有很大的不同。 ARM適用于系統復雜度較大的高級產品,如PDA、手機等應用。 而8位單片機因架構簡單,硬件資源相對較少,適用于一般的工業控制,消費性家電……等等。評估單片機近期是否會給ARM取代,要觀察兩個因素:

        芯片成本

        因ARM的工作頻率較高,電路較龐大,所需的芯片制造工藝要求在0。25U以上,成本較高。8位單片機工作頻率相對較低,電路較小,所需的芯片制造工藝在0。5U 即可,成本較低。

        功能定位

        ARM的功能較單片機強,但兩者定位不同。就如現階段不會有人用ARM去作一個簡單的工業定時開關。當然,如果兩者單價相同也無不可,但現實是有很大的單價差距。

        至于將來,因芯片制造成本會不斷下降,上述的成本差異影響愈來愈少!但我估計在往后5年單片機仍有價格優勢,仍能存活!但ARM是否會精簡架構,降低成本,搶奪低階市場?我想可能性不大,ARM應該會向上發展。同樣,單片機也只能向上發展,如16位,高功能……等。 原因就是因為芯片制造工藝進步太快。壓迫芯片設計往高集成發展。

        25. 在單片機C編成時,如何才能使生成的代碼具有和匯編一樣的效率?

        答:如果是使用C語言編程時,不太可能生成的代碼具有1:1和匯編一樣的效率。

        C語言命令要被硬件識別并執行,必須通過編譯器編譯。編譯器分為前端、中端、后端。前端與各種計算機語言寫的程序打交道,后端與處理器的基本指令集接軌。所以如果使用C編程時,要達到最高的效率,最好能夠很了解所使用的C編譯器。先試驗一下每條C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確的知道效率。在今后編程的時候,使用編譯效率最高的語句,這樣就能確保單片機C編程的時候同樣的功能不同的C程序,編譯效率最高。但是各家的C編譯器都會有一定的差異,優秀的嵌入式系統C編譯器代碼長度和執行時間僅比以匯編語言編寫的同樣功能程度長5-20%,所以不同廠家的C編譯器的編譯效率也會有所不同。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德清县| 当阳市| 治多县| 牙克石市| 旬阳县| 宣化县| 阿巴嘎旗| 婺源县| 荔浦县| 通许县| 孙吴县| 安泽县| 龙里县| 内乡县| 宁海县| 沧源| 青神县| 溧水县| 合水县| 平湖市| 娄底市| 临江市| 九龙县| 台中县| 常山县| 平昌县| 台北市| 绥滨县| 红安县| 瑞丽市| 卢龙县| 绍兴县| 绥中县| 宿松县| 如东县| 土默特右旗| 临朐县| 淮安市| 蓝田县| 武隆县| 潍坊市|