chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

裸奔和RTOS下的嵌入式開發(fā)有什么區(qū)別

GReq_mcu168 ? 來源:fqj ? 2019-05-30 17:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

本文和大家一起討論一下,從裸奔到操作系統(tǒng),我們將面對什么挑戰(zhàn)。

1、速度

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

2、內(nèi)存容量

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

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

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

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


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

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

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

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

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

3、人

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

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

    關注

    5200

    文章

    20476

    瀏覽量

    334484
  • 內(nèi)存
    +關注

    關注

    9

    文章

    3213

    瀏覽量

    76395

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux 開發(fā)嵌入式必備命令速查表

    管理等環(huán)節(jié)輕松應對各種問題。今天,我們整理了一份Linux嵌入式開發(fā)必備命令速查表,讓你一篇文章就能快速查閱。一、文件與目錄管理命令在嵌入式開發(fā)中,你經(jīng)常需要操作
    的頭像 發(fā)表于 01-19 09:06 ?898次閱讀
    Linux <b class='flag-5'>下</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>嵌入式</b>必備命令速查表

    嵌入式開發(fā)常用函數(shù)速查表

    嵌入式開發(fā)中,掌握常用函數(shù)的用法可以大大提高開發(fā)效率。無論是單片機初學者還是有一定經(jīng)驗的工程師,熟悉函數(shù)庫和調(diào)用方式都是必備技能。今天,我們?yōu)榇蠹艺硪环?b class='flag-5'>嵌入式開發(fā)常用函數(shù)速查表,覆蓋GPIO
    的頭像 發(fā)表于 01-19 09:06 ?320次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常用函數(shù)速查表

    什么是嵌入式應用開發(fā)?

    概述 所謂的嵌入式應用開發(fā)就是在嵌入式操作系統(tǒng)進行開發(fā)、軟硬件綜合開發(fā) ?
    發(fā)表于 01-12 16:13

    RTOS嵌入式開發(fā)中的作用

    嵌入式系統(tǒng)中,有很多方式實現(xiàn)任務調(diào)度。功能有限的小系統(tǒng)中,無限循環(huán)足夠?qū)崿F(xiàn)系統(tǒng)功能。當軟件設計變得龐大且復雜時,設計師應該考慮使用RTOS(實時操作系統(tǒng))。 下面給大家分享使用RTOS的8個理由
    發(fā)表于 12-26 07:53

    性能與性價比兼得!迅為RK3562開發(fā)板開啟嵌入式開發(fā)新選擇

    性能與性價比兼得!迅為RK3562開發(fā)板開啟嵌入式開發(fā)新選擇
    的頭像 發(fā)表于 12-23 16:10 ?1345次閱讀
    性能與性價比兼得!迅為RK3562<b class='flag-5'>開發(fā)</b>板開啟<b class='flag-5'>嵌入式開發(fā)</b>新選擇

    什么是嵌入式操作系統(tǒng)?

    要理解嵌入式操作系統(tǒng)(Embedded Operating System,簡稱 RTOS/EOS),我們可以從本質(zhì)定義→核心區(qū)別→實際作用→典型特征→嵌入式開發(fā)場景適配,五個維度來拆解
    發(fā)表于 12-09 10:33

    分享一個嵌入式開發(fā)學習路線

    拓展期(3-4個月) 學習嵌入式操作系統(tǒng)(RTOS)和物聯(lián)網(wǎng)通信技術(shù),能開發(fā)“多任務、聯(lián)網(wǎng)”的復雜項目,理解企業(yè)級嵌入式開發(fā)的“架構(gòu)思維”。這一階段的學習需要一定的自律和毅力,但與學
    發(fā)表于 12-04 11:01

    嵌入式與FPGA的區(qū)別

    \"嵌入式開發(fā)門檻低、就業(yè)廣,適合轉(zhuǎn)行;FPGA技術(shù)深、薪資高,但要求學歷和數(shù)學功底。選哪個?看你的基礎和職業(yè)目標。\" ?我們先來明白兩者區(qū)別在哪? ?1、嵌入式:分兩部分
    發(fā)表于 11-20 07:12

    嵌入式開發(fā)的關鍵點介紹

    嵌入式開發(fā)在現(xiàn)代科技中扮演著非常重要的角色。隨著物聯(lián)網(wǎng)的發(fā)展,嵌入式系統(tǒng)的需求也越來越大。嵌入式開發(fā)不僅需要開發(fā)人員具備深入的硬件知識和編程經(jīng)驗,還需要不斷學習新的技術(shù)和工具,以滿足不
    發(fā)表于 11-13 08:12

    恩智浦如何攻克兩大嵌入式開發(fā)難題

    在我們的身邊,嵌入式系統(tǒng)無處不在。而隨著技術(shù)的進步和應用的拓展,今天的嵌入式開發(fā)也面臨著諸多新課題、新挑戰(zhàn)。
    的頭像 發(fā)表于 10-27 09:28 ?1812次閱讀

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    搶先體驗 SHEL 流程簡化所有 AMD 嵌入式開發(fā)平臺上的軟件項目生成過程 Zephyr RTOS 兼容性已擴展至第二代 AMD Versal AI Edge 系列、Kria SOM
    的頭像 發(fā)表于 08-20 09:15 ?4004次閱讀

    嵌入式開發(fā)就業(yè)還有前景嗎?

    嵌入式的發(fā)展前景如何呢?隨著科技的飛速發(fā)展,嵌入式開發(fā)在各個領域的應用越來越廣泛,因此嵌入式開發(fā)的就業(yè)前景也備受關注。以下將從智能家居、醫(yī)療設備、工業(yè)控制、汽車電子、航空航天等方面,探討嵌入式
    發(fā)表于 07-16 10:47

    Linux嵌入式和單片機嵌入式區(qū)別

    單片機嵌入式系統(tǒng)和Linux嵌入式系統(tǒng)是兩種不同的嵌入式系統(tǒng)開發(fā)方式,它們在應用領域、開發(fā)環(huán)境、資源需求等方面都有顯著的
    發(fā)表于 06-20 09:46

    嵌入式開發(fā)入門指南:從零開始學習嵌入式

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

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

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