女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

裸奔和RTOS下的嵌入式開發有什么區別

GReq_mcu168 ? 來源:fqj ? 2019-05-30 17:53 ? 次閱讀

嵌入式設備網絡化、u盤化、功能復雜化的趨勢,使越來越多的、過去可以用裸奔實現的嵌入式產品,產生了應用操作系統的需求。

而人力成本的持續上升、芯片成本的連續下降,以及cpu性能的迅速提高,又為大面積應用操作系統提供了物質基礎。

本文和大家一起討論一下,從裸奔到操作系統,我們將面對什么挑戰。

1、速度

我們首先面對的,將是cpu運行速度的問題,毋庸置疑,操作系統調度需要cpu開銷,需要cpu有更高的速度來彌補;再者,嵌入式系統經常用于實時控制,需要較高的定時精度,縮短tick時間間隔有利于提高控制精度,嵌入式系統中經常使用1mS甚至更短的tick間隔。然而,tick間隔越短,調度開銷就越高,同樣需要更高的cpu速度來彌補。當前日益提高的嵌入式cpu的性能,甚至單片機都32位了,很好地回答了這個問題。

2、內存容量

先討論一個問題,一個原先需要50K內存的裸奔程序,如果移植到自身開銷1K內存的RTOS下面,需要增加多少內存?是51K嗎?

有許多嵌入式操作系統,都把運行操作系統的內存開銷作為主要性能指標,有些甚至聲稱不到1K內存就可以運行。但我們千萬不要被誤導,以為用操作系統需要的內存與裸機差不多,只要比裸奔程序多那么1K、2K就行了。操作系統會使應用程序所需要的內存暴增,使用操作系統所增加的內存需求,主要來自以下方面:

1) 運行操作系統本身需要的內存。2) 創建線程控制塊、消息控制塊等操作系統組件需要的內存。3) 每個線程配置獨立的棧所增加的內存需求。

其中第一項很好理解,幾乎所有操作系統都會給出這個指標。第二項也容易理解,不用操作系統的情況下,我們常常定義標志位或全局變量來在不同模塊之間傳遞信息,需要的內存就很少。而操作系統模式下,需要用到同步、互斥、線程間交換數據等,這就需要使用信號量、郵箱等操作系統組件,信號量需要分配信號量控制塊,郵箱需要分配郵箱控制塊……,這些,都需要消耗可觀的內存。許多操作系統標明的,僅僅是OS本身運行需要的內存,并不包括信號量控制塊拉、郵箱控制塊拉等等這些操作系統組件需要的內存。


我們知道,一個僅運行OS的系統,是毫無意義的,真正實現產品功能的,是應用程序。而djyos的si版本,大約需要的10K內存,則包含了一定數量的事件控制塊、信號量控制塊等操作系統組件所需內存的條件下的,完全滿足一個小型系統所需。

說了半天,其實也只講了操作系統對內存需求的冰山一角,OS下編程,對內存需求的影響最大的,當屬OS的多線程并發特性,這使得我們要為每一個線程分配獨立的棧。下面我們定性分析一下棧獨立化帶來的內存需求變化。棧是用來保存函數參數和局部變量的,可以說,有函數調用,就有局部變量。在單線程環境下,應用程序需要的棧,幾乎就是main函數需要的棧,而在多線程環境下,每個線程的棧是獨立的,分別等于該線程的線程執行函數所需要的棧,而系統總的棧需求,就是所有線程的棧需求之和。

在超級循環中,分別調用了func1~func5這5個函數,他們的棧需求分別是10K、5K、9K、8K、9K。調用func1時,系統分配10K的ram作為棧,func1函數返回,這10K空間將被釋放,并且再次分配給func2使用,所以,整個程序的棧需求,就是這5個函數中需要棧最多的那個函數需要的棧空間:10K。

如果要把這個程序移植到OS下,最簡單的方法就是創建5個線程來調用func1~5這5個函數,這5個線程需要的棧分別是10K、5K、9K、8K、9K,而這5個棧是獨立的,不能共用,程序總共需要的棧空間是(10+5+9+8+9)=41K,線程棧一般是從堆中動態分配的,考慮到動態分配本身的開銷,硬件須準備50K以上的內存用于程序的運行棧。一下子增長到5倍,沒想到吧。

可見,上操作系統,雖然操作系統本身不需要很大內存,但會極度增加應用程序的內存需求。做項目時,一是不要盲目上OS,要根據需求綜合考慮,二是設計硬件系統時,應該充分考慮到內存方面的需求,配置充足的內存。

3、人

任何產品都是由人開發的,所以,討論嵌入式產品開發的任何話題,都不能離開人的因素,科技以人為本嘛!從裸奔到操作系統,那么程序員,也將由編寫裸奔程序轉為在操作系統下編程。這些迅速、大量增加的程序員,他們可能習慣了在裸奔環境下編程,他們可能是化工、建筑、地質等不同行業的專家,他們也許已經上了年紀,沒有太多的精力學習多線程編程等知識。然而,涉及到專業的程序,仍然離不開他們,如何從技術上降低他們的入門門檻,是一個亟需考慮的問題。但是,普通的操作系統下,你不掌握線程控制技術,就無法編寫正確的程序。djyos允許你按事件編程,沒有任何跟線程相關的api函數,無需程序員掌握線程技術,客觀上降低了裸奔到OS編程的轉換技術門檻。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5141

    文章

    19543

    瀏覽量

    315202
  • 內存
    +關注

    關注

    8

    文章

    3109

    瀏覽量

    75007

原文標題:裸奔和RTOS下的嵌入式開發,有啥不同

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式開發入門指南:從零開始學習嵌入式

    基礎 3. 學習路徑推薦第一階段:熟悉開發環境(如Keil、IAR、STM32)第二階段:掌握裸機編程與驅動開發第三階段:學習RTOS(實時操作系統)如FreeRTOS第四階段:深入理解Linux
    發表于 05-15 09:29

    嵌入式開發:高門檻的系統性工程與 996 的行業困局

    嵌入式開發的門檻,往往被培訓機構和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發是硬件與軟件深度融合的系統性工程,需跨越三重壁壘
    的頭像 發表于 04-09 11:06 ?260次閱讀
    <b class='flag-5'>嵌入式開發</b>:高門檻的系統性工程與 996 的行業困局

    BlackBerry QNX推出通用嵌入式開發平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發平臺(General Embedded Development
    的頭像 發表于 03-11 16:04 ?546次閱讀

    AI來襲!嵌入式開發者該如何應對轉型?

    AI正在改變世界!從自動駕駛到智能家居,從工業自動化到語音助手,各行各業都在朝著智能化方向邁進。對于嵌入式開發者來說,AI的到來既是一次前所未有的挑戰,也是一個充滿機遇的時代。過去,我們專注于硬件
    的頭像 發表于 03-04 14:41 ?683次閱讀
    AI來襲!<b class='flag-5'>嵌入式開發</b>者該如何應對轉型?

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發表于 03-03 15:15 ?551次閱讀
    代碼+案例+生態:武漢芯源半導體CW32<b class='flag-5'>嵌入式開發</b>實戰正式出版

    如何成為嵌入式開發工程師?

    如何成為嵌入式開發工程師? 成為嵌入式開發工程師通常需要掌握一系列技能和知識,并且在實踐中不斷積累經驗。以下是一些基本步驟和建議: 1. 基礎教育:- 獲取電子工程、計算機科學或相關領域的學位
    發表于 02-19 10:39

    嵌入式開發必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

    實用干貨!嵌入式開發學習必備-RK3562演示Linux常用系統查詢命令(上)關注觸覺智能持續為大家帶來更多嵌入式開發內容
    的頭像 發表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開發</b>必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

    如何使用 RISC-V 進行嵌入式開發

    RISC-V是一種開源的指令集架構(ISA),它允許任何人設計、制造和銷售基于RISC-V的處理器,這為嵌入式開發提供了極大的靈活性和創新空間。以下是使用RISC-V進行嵌入式開發的基本步驟: 一
    的頭像 發表于 12-11 17:32 ?1702次閱讀

    基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南

    電子發燒友網站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南.pdf》資料免費下載
    發表于 12-10 15:31 ?34次下載

    RTOS與Linux到底有什么區別

    很多做嵌入式開發的小伙伴都存在這樣的疑惑:RTOS與Linux到底有什么區別
    的頭像 發表于 10-29 09:53 ?1106次閱讀

    嵌入式開發常見問題排查

    嵌入式開發問題排查很多人認為嵌入式開發很難,主要是因為在這個過程中常常會遇到各式各樣的問題。這些問題的復雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實際上大部分都可以
    的頭像 發表于 09-22 08:04 ?718次閱讀
    <b class='flag-5'>嵌入式開發</b>常見問題排查

    恩智浦加速嵌入式AI創新應用開發

    在AI應用飛速發展的今天,如何能夠將AI與嵌入式系統開發有機結合起來,營造新的開發生態,打造與眾不同的創新用例,一直是嵌入式開發者追求的目標。
    的頭像 發表于 08-27 09:46 ?1083次閱讀

    聚焦嵌入式開發中的合規性工具、項目管理工具、版本迭代工具應用

    日前,龍智攜嵌入式開發及管理解決方案亮相2024上海國際嵌入式展(embedded world China 2024)。展會期間,我們對話了多位龍智資深DevSecOps顧問及技術支持專家
    的頭像 發表于 07-29 15:15 ?979次閱讀

    從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

    ?嵌入式系統是許多現代電子設備和智能系統的核心,掌握嵌入式系統,意味著能夠設計和開發更加智能化的產品。本文為所有想進入嵌入式領域的初學者提供一個完整系統學習的路線圖,按照“STM32單
    的頭像 發表于 07-23 16:11 ?5639次閱讀
    從菜鳥到大牛!<b class='flag-5'>嵌入式</b>完整學習路線:STM32單片機-<b class='flag-5'>RTOS</b>-Linux

    嵌入式開發前景怎么樣?

    嵌入式開發前景非常廣闊,這主要得益于物聯網、人工智能、大數據等技術的快速發展,以及嵌入式系統在各個領域的廣泛應用。以下是對嵌入式開發前景的詳細分析
    的頭像 發表于 07-10 09:00 ?4167次閱讀
    <b class='flag-5'>嵌入式開發</b>前景怎么樣?