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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

嵌入式設(shè)備網(wǎng)絡(luò)化、u盤(pán)化、功能復(fù)雜化的趨勢(shì),使越來(lái)越多的、過(guò)去可以用裸奔實(shí)現(xiàn)的嵌入式產(chǎn)品,產(chǎn)生了應(yīng)用操作系統(tǒng)的需求。

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

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

1、速度

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

2、內(nèi)存容量

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

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

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

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


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

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

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

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

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

3、人

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

聲明:本文內(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)注

    5177

    文章

    20007

    瀏覽量

    325707
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3160

    瀏覽量

    75986

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

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

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

    嵌入式開(kāi)發(fā)入門(mén)指南:從零開(kāi)始學(xué)習(xí)嵌入式

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

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

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

    BlackBerry QNX推出通用嵌入式開(kāi)發(fā)平臺(tái)

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

    AI來(lái)襲!嵌入式開(kāi)發(fā)者該如何應(yīng)對(duì)轉(zhuǎn)型?

    AI正在改變世界!從自動(dòng)駕駛到智能家居,從工業(yè)自動(dòng)化到語(yǔ)音助手,各行各業(yè)都在朝著智能化方向邁進(jìn)。對(duì)于嵌入式開(kāi)發(fā)者來(lái)說(shuō),AI的到來(lái)既是一次前所未有的挑戰(zhàn),也是一個(gè)充滿(mǎn)機(jī)遇的時(shí)代。過(guò)去,我們專(zhuān)注于硬件
    的頭像 發(fā)表于 03-04 14:41 ?1251次閱讀
    AI來(lái)襲!<b class='flag-5'>嵌入式開(kāi)發(fā)</b>者該如何應(yīng)對(duì)轉(zhuǎn)型?

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開(kāi)發(fā)實(shí)戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開(kāi)發(fā)愛(ài)好者們:大家好!今天,我們懷著無(wú)比激動(dòng)與自豪的心情,向大家宣布一個(gè)重大喜訊——武漢芯源半導(dǎo)體的單片機(jī)CW32正式出書(shū)啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?925次閱讀
    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32<b class='flag-5'>嵌入式開(kāi)發(fā)</b>實(shí)戰(zhàn)正式出版

    如何成為嵌入式開(kāi)發(fā)工程師?

    如何成為嵌入式開(kāi)發(fā)工程師? 成為嵌入式開(kāi)發(fā)工程師通常需要掌握一系列技能和知識(shí),并且在實(shí)踐中不斷積累經(jīng)驗(yàn)。以下是一些基本步驟和建議: 1. 基礎(chǔ)教育:- 獲取電子工程、計(jì)算機(jī)科學(xué)或相關(guān)領(lǐng)域的學(xué)位
    發(fā)表于 02-19 10:39

    哪些專(zhuān)業(yè)適合學(xué)習(xí)嵌入式開(kāi)發(fā)?

    哪些專(zhuān)業(yè)適合學(xué)習(xí)嵌入式開(kāi)發(fā)? 在傳統(tǒng)行業(yè)不斷被取代的當(dāng)下,對(duì)于大學(xué)生、從業(yè)者而言,選擇一個(gè)熱門(mén)主流的職業(yè)方向,是未來(lái)發(fā)展的關(guān)鍵因素之一。 嵌入式作為當(dāng)下高薪崗位之一,轉(zhuǎn)行、轉(zhuǎn)專(zhuān)業(yè)的人群已經(jīng)占據(jù)求職
    發(fā)表于 01-03 13:44

    嵌入式開(kāi)發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢(xún)命令(上)觸覺(jué)智能出品

    實(shí)用干貨!嵌入式開(kāi)發(fā)學(xué)習(xí)必備-RK3562演示Linux常用系統(tǒng)查詢(xún)命令(上)關(guān)注觸覺(jué)智能持續(xù)為大家?guī)?lái)更多嵌入式開(kāi)發(fā)內(nèi)容
    的頭像 發(fā)表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開(kāi)發(fā)</b>必備-RK3562演示Linux常用系統(tǒng)查詢(xún)命令(上)觸覺(jué)智能出品

    如何使用 RISC-V 進(jìn)行嵌入式開(kāi)發(fā)

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

    基于Xilinx ZYNQ7000 FPGA嵌入式開(kāi)發(fā)實(shí)戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開(kāi)發(fā)實(shí)戰(zhàn)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-10 15:31 ?39次下載

    RTOS與Linux到底有什么區(qū)別

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