色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

嵌入式操作系統(tǒng)FreeRTOS內(nèi)存如何管理和堆

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-01-10 15:17 ? 次閱讀

編輯:黃工 公眾號(hào):strongerHuang 素材來(lái)源:FreeRTOS網(wǎng)站 + 網(wǎng)絡(luò) 前兩年FreeRTOS被亞馬遜收購(gòu)之后,變化不大,應(yīng)該是在規(guī)劃物聯(lián)網(wǎng)這一塊。 前段時(shí)間FreeRTOS官網(wǎng)的界面發(fā)生了變化,接下來(lái)可能會(huì)有大的動(dòng)作,感興趣的朋友可以去看一下。 網(wǎng)址:

https://www.freertos.org

回讀之前文章:談?wù)凢reeRTOS_V10版本FreeRTOS更新至V10.2.1 言歸正傳,回來(lái)說(shuō)FreeRTOS的內(nèi)存管理和堆的問(wèn)題。從 V9.0.0 開始,F(xiàn)reeRTOS 應(yīng)用程序可以完全靜態(tài)分配,這意味著無(wú)需包含堆內(nèi)存管理器。 FreeRTOS內(nèi)存管理地址:
https://www.freertos.org/a00111.html 一、拓展知識(shí)動(dòng)態(tài)內(nèi)存分配及其與 FreeRTOS 的關(guān)聯(lián)性:要讓 FreeRTOS 對(duì)象(如任務(wù)、隊(duì)列、信號(hào)量和事件組)變得盡可能易于使用,這些內(nèi)核對(duì)象不是在編譯時(shí)靜態(tài)分配,而是在運(yùn)行時(shí)動(dòng)態(tài)分配。每次創(chuàng)建內(nèi)核對(duì)象時(shí),F(xiàn)reeRTOS 都會(huì)分配 RAM

每次刪除內(nèi)核對(duì)象時(shí),都會(huì)釋放 RAM。此策略可減少設(shè)計(jì)和規(guī)劃工作量,簡(jiǎn)化了 API,并最大程度地減少 RAM 開銷。

動(dòng)態(tài)內(nèi)存分配是一個(gè) C 語(yǔ)言編程概念。它不是特定于 FreeRTOS 或多任務(wù)處理的概念。它與 FreeRTOS 相關(guān),因?yàn)閮?nèi)核對(duì)象是動(dòng)態(tài)分配的,通用編譯器提供的動(dòng)態(tài)內(nèi)存分配方案并非始終適合實(shí)時(shí)應(yīng)用程序。

可以使用標(biāo)準(zhǔn) C 語(yǔ)言庫(kù)函數(shù) malloc() 和 free() 分配內(nèi)存,但由于以下一個(gè)或多個(gè)原因,這些函數(shù)可能不適合或不適用:

?它們并非始終適用于小型嵌入式系統(tǒng)。?它們的實(shí)現(xiàn)可能相當(dāng)大,占用寶貴的代碼空間。?它們極少是線程安全的。?它們不是確定性的。執(zhí)行函數(shù)所花的時(shí)間量將因調(diào)用不同而異。?它們可能會(huì)碎片化。如果堆中的可用 RAM 被拆分為若干較小且彼此分離的塊,則認(rèn)為堆已碎片化。當(dāng)堆已碎片化時(shí),如果堆中沒(méi)有一個(gè)可用塊的大小足以包含某個(gè)數(shù)據(jù)塊,則嘗試分配此數(shù)據(jù)塊時(shí)將失敗,即使堆中所有單獨(dú)塊的總大小比無(wú)法分配的數(shù)據(jù)塊大小大很多倍,也是如此。?它們可能使鏈接器配置變得更復(fù)雜。?如果允許堆空間增長(zhǎng)而占用了其他變量使用的內(nèi)存,則這些函數(shù)可能成為一些難以調(diào)試的錯(cuò)誤的來(lái)源。 二、動(dòng)態(tài)內(nèi)存分配的選項(xiàng)

早期版本的 FreeRTOS 使用內(nèi)存池分配方案,在編譯時(shí)預(yù)分配由不同大小的內(nèi)存塊組成的池,然后由內(nèi)存分配函數(shù)返回。雖然這是實(shí)時(shí)系統(tǒng)中常用的方案,但它產(chǎn)生了大量支持請(qǐng)求。由于該方案使用 RAM 的效率無(wú)法滿足非常小型的嵌入式系統(tǒng)的需要,因此已被放棄。

FreeRTOS 現(xiàn)在將內(nèi)存分配視為可移植層的一部分(而不是核心代碼庫(kù)的一部分)。這樣做的原因是我們已認(rèn)識(shí)到嵌入式系統(tǒng)具有變化多端的動(dòng)態(tài)內(nèi)存分配和計(jì)時(shí)要求。單個(gè)動(dòng)態(tài)內(nèi)存分配算法僅適用于一部分應(yīng)用程序。此外,通過(guò)從核心代碼庫(kù)中刪除動(dòng)態(tài)內(nèi)存分配,應(yīng)用程序編寫者可以適時(shí)提供其自己的特定實(shí)現(xiàn)。

當(dāng) FreeRTOS 需要 RAM 時(shí),它調(diào)用 pvPortMalloc() 而不是 malloc()。釋放 RAM 時(shí),內(nèi)核調(diào)用 vPortFree(),而不是 free()。pvPortMalloc() 與標(biāo)準(zhǔn) C 語(yǔ)言庫(kù)函數(shù) malloc() 具有相同的原型。vPortFree() 與標(biāo)準(zhǔn) C 語(yǔ)言庫(kù)函數(shù) free() 具有相同的原型。

pvPortMalloc() 和 vPortFree() 是公共函數(shù),因此,也可以從應(yīng)用程序代碼中調(diào)用它們。

FreeRTOS 附帶了 pvPortMalloc() 和 vPortFree() 的五個(gè)示例實(shí)現(xiàn),本指南將一一介紹。FreeRTOS 應(yīng)用程序可以使用其中一個(gè)示例實(shí)現(xiàn)或提供自己的實(shí)現(xiàn)。

這五個(gè)示例在 heap_1.c、heap_2.c、heap_3.c、heap_4.c 和 heap_5.c 源文件中定義,這些源文件位于FreeRTOS/Source/portable/MemMang 目錄中。

三、5種內(nèi)存分配實(shí)現(xiàn)

heap_1:最簡(jiǎn)單,不允許釋放內(nèi)存。

heap_2:允許釋放內(nèi)存,但不能合并相鄰的空閑塊。

heap_3:簡(jiǎn)單包裝標(biāo)準(zhǔn)的malloc()和free()以確保線程安全。

heap_4:合并相鄰的空閑塊以避免碎片。包括絕對(duì)地址放置選項(xiàng)。

heap_5:按照heap_4,具有跨多個(gè)不相鄰的內(nèi)存區(qū)域擴(kuò)展堆的能力。

Heap_1

它常用于小型專用嵌入式系統(tǒng),以便僅在啟動(dòng)計(jì)劃程序之前創(chuàng)建任務(wù)和其他內(nèi)核對(duì)象。在應(yīng)用程序開始執(zhí)行任何實(shí)時(shí)功能之前,內(nèi)核動(dòng)態(tài)分配內(nèi)存,并且內(nèi)存在應(yīng)用程序的生命周期內(nèi)保持已分配狀態(tài)。這意味著所選分配方案不必考慮任何更復(fù)雜的內(nèi)存分配問(wèn)題(例如確定性和碎片化),而是可以考慮如代碼大小和簡(jiǎn)單性等屬性。

Heap_1.c 實(shí)現(xiàn) pvPortMalloc() 的一個(gè)非常基本的版本。它不實(shí)現(xiàn) vPortFree()。從不刪除任務(wù)或其他內(nèi)核對(duì)象的應(yīng)用程序可以使用 heap_1。

某些商業(yè)關(guān)鍵和安全關(guān)鍵型系統(tǒng)可能禁止動(dòng)態(tài)內(nèi)存分配,這些系統(tǒng)也可能能夠使用 heap_1。由于存在與非確定性、內(nèi)存碎片化以及分配失敗等相關(guān)的不確定性,因此,關(guān)鍵系統(tǒng)通常禁止動(dòng)態(tài)內(nèi)存分配,但 heap_1 始終是確定性的且無(wú)法對(duì)內(nèi)存進(jìn)行碎片化。

當(dāng)調(diào)用 pvPortMalloc() 時(shí),heap_1 分配方案將一個(gè)簡(jiǎn)單的數(shù)組細(xì)分成更小的塊。此數(shù)組稱為 FreeRTOS堆。

數(shù)組的總大小(以字節(jié)為單位)由定義 configTOTAL_HEAP_SIZE 在 FreeRTOSConfig.h 中設(shè)置。以這種方式定義大型數(shù)組可能讓應(yīng)用程序看起來(lái)會(huì)消耗大量 RAM,甚至從數(shù)組中分配任何內(nèi)存之前就是如此。

每個(gè)創(chuàng)建的任務(wù)都要求從堆中分配一個(gè)任務(wù)控制塊 (TCB) 和一個(gè)堆棧。

下圖顯示了在創(chuàng)建任務(wù)時(shí) heap_1 如何細(xì)分簡(jiǎn)單的數(shù)組。每次創(chuàng)建任務(wù)時(shí),都會(huì)從 heap_1 數(shù)組分配 RAM。

A 顯示創(chuàng)建任何任務(wù)之前的數(shù)組。整個(gè)數(shù)組都可用。

B 顯示已創(chuàng)建一個(gè)任務(wù)后的數(shù)組。

C 顯示已創(chuàng)建三個(gè)任務(wù)后的數(shù)組。

Heap_2

Heap_2 包含在 FreeRTOS 發(fā)行版中以保持向后兼容性。建議不要用于新設(shè)計(jì),而是考慮使用 heap_4,因?yàn)槠渲刑峁┝烁喙δ堋?/p>

也可以使用 Heap_2.c,但要細(xì)分由 configTOTAL_HEAP_SIZE 確定大小的數(shù)組。它使用最適合算法分配內(nèi)存。與 heap_1 不同,它允許釋放內(nèi)存。再次說(shuō)明,數(shù)組是靜態(tài)聲明的,因此應(yīng)用程序看起來(lái)會(huì)消耗大量RAM,甚至在從數(shù)組中分配任何內(nèi)存之前就是如此。

最適合算法可確保 pvPortMalloc() 使用的可用內(nèi)存塊在大小方面與所要求的字節(jié)數(shù)最接近。例如,考慮以下情形:

? 堆包含三個(gè)可用內(nèi)存塊,大小分別為 5 字節(jié)、25 字節(jié)和 100 字節(jié)。 ? 調(diào)用 pvPortMalloc() 以請(qǐng)求 20 字節(jié)的 RAM。

適合所請(qǐng)求字節(jié)數(shù)的最小可用 RAM 塊是 25 字節(jié)塊,因此,pvPortMalloc() 將 25 字節(jié)塊拆分成一個(gè) 20 字節(jié)塊和一個(gè) 5 字節(jié)塊,然后返回一個(gè)指向 20 字節(jié)塊的指針。(上面是過(guò)于簡(jiǎn)化了,因?yàn)?heap_2 要存儲(chǔ)堆區(qū)域中塊大小的信息,因此兩個(gè)拆分塊的總和實(shí)際上將小于 25。) 新的 5 字節(jié)塊保持可用于將來(lái)對(duì)pvPortMalloc() 的調(diào)用。

與 heap_4 不同,heap_2 不將相鄰的可用塊合并為單個(gè)更大的塊。因此,它更容易碎片化。但是,如果分配的塊與后續(xù)釋放的塊大小始終相同,則碎片化不是問(wèn)題。Heap_2 適合反復(fù)創(chuàng)建和刪除任務(wù)的應(yīng)用程序,但前提是分配給所創(chuàng)建的任務(wù)的堆棧大小不發(fā)生變化。

下圖顯示在創(chuàng)建和刪除任務(wù)時(shí)從 heap_2 數(shù)組中分配和釋放 RAM 的過(guò)程。

圖中顯示當(dāng)創(chuàng)建、刪除以及后續(xù)再次創(chuàng)建任務(wù)時(shí),最適合算法的工作原理

? A顯示已創(chuàng)建三個(gè)任務(wù)后的數(shù)組。大型可用塊保持在數(shù)組的頂部。

? B顯示已刪除其中一個(gè)任務(wù)后的數(shù)組。這些區(qū)域有:

數(shù)組頂部的大型可用塊保持原樣。此外,目前有兩個(gè)較小的可用塊,它們之前分配給了已刪除任務(wù)的TCB 和堆棧。

? C顯示已創(chuàng)建另一個(gè)任務(wù)后的數(shù)組。創(chuàng)建任務(wù)導(dǎo)致兩次調(diào)用 pvPortMalloc():一次是分配新的 TCB,一次是分配任務(wù)堆棧。使用 xTaskCreate() API 函數(shù)創(chuàng)建任務(wù),如創(chuàng)建任務(wù) (p. 23)中所述。在 xTaskCreate() 內(nèi)部發(fā)生兩次 pvPortMalloc() 調(diào)用。

每個(gè) TCB 的大小完全相同,因此,最適合算法可確保之前分配給已刪除任務(wù)的 TCB 的 RAM 塊可重用于分配新任務(wù)的 TCB。

分配給新創(chuàng)建任務(wù)的堆棧大小與分配給以前被刪除任務(wù)的堆棧大小完全相同,因此,最適合算法可確保之前分配給已刪除任務(wù)的堆棧的 RAM 塊可重用于分配新任務(wù)的堆棧。

數(shù)組頂部的較大的未分配塊保持不變。Heap_2 是非確定性的,但它比 malloc() 和 free() 的大多數(shù)標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)都要快。

Heap_3

Heap_3.c 使用標(biāo)準(zhǔn)庫(kù)函數(shù) malloc() 和 free(),因此堆大小由鏈接器配置定義。configTOTAL_HEAP_SIZE 設(shè)置不起作用。

Heap_3 通過(guò)臨時(shí)暫停 FreeRTOS 計(jì)劃程序使 malloc() 和 free() 成為線程安全的。

Heap_4

與 heap_1 和 heap_2 一樣,heap_4 將數(shù)組細(xì)分成較小的塊。數(shù)組是靜態(tài)聲明的并由configTOTAL_HEAP_SIZE 確定大小,因此應(yīng)用程序看起來(lái)會(huì)消耗大量 RAM,甚至在從數(shù)組中分配任何內(nèi)存之前就是如此。

Heap_4 使用首個(gè)適合算法分配內(nèi)存。與 heap_2 不同,它會(huì)將相鄰的可用內(nèi)存塊組合(合并)成一個(gè)較大的塊。這樣可以最大程度地減小內(nèi)存碎片化風(fēng)險(xiǎn)。

首個(gè)適合算法可確保 pvPortMalloc() 使用第一個(gè)大小足以容納所要求的字節(jié)數(shù)的可用內(nèi)存塊。例如,考慮以下情形:

? 堆包含三個(gè)可用內(nèi)存塊。它們?cè)跀?shù)組中以下面的順序顯示:5 字節(jié)、200 字節(jié)和 100 字節(jié)。 ? 調(diào)用 pvPortMalloc() 以請(qǐng)求 20 字節(jié)的 RAM。

適合所請(qǐng)求字節(jié)數(shù)的第一個(gè)可用 RAM 塊是 200 字節(jié)塊,因此,pvPortMalloc() 將 200 字節(jié)塊拆分成一個(gè) 20字節(jié)塊和一個(gè) 180 字節(jié)塊,然后返回一個(gè)指向 20 字節(jié)塊的指針。(上面是過(guò)于簡(jiǎn)化了,因?yàn)?heap_4 要存儲(chǔ)堆區(qū)域中塊大小的信息,因此兩個(gè)拆分塊的總和將小于 200 字節(jié)。) 新的 180 字節(jié)塊保持可用于將來(lái)對(duì)pvPortMalloc() 的調(diào)用。

Heap_4 會(huì)將相鄰的可用內(nèi)存塊組合(合并)成一個(gè)較大的塊,同時(shí)最大限度地降低碎片化風(fēng)險(xiǎn)。Heap_4 適用于反復(fù)分配和釋放不同大小的 RAM 塊的應(yīng)用程序。

下圖顯示從 heap_4 數(shù)組中分配和釋放 RAM 的過(guò)程。它演示 heap_4 首個(gè)適合算法(帶內(nèi)存合并)在分配和釋放內(nèi)存時(shí)的工作方式。

A顯示已創(chuàng)建三個(gè)任務(wù)后的數(shù)組。大型可用塊保持在數(shù)組頂部。

B顯示已刪除其中一個(gè)任務(wù)后的數(shù)組。

C顯示已創(chuàng)建一個(gè) FreeRTOS 隊(duì)列后的數(shù)組。

D顯示在從應(yīng)用程序代碼中直接調(diào)用 pvPortMalloc()(而不是通過(guò)間接調(diào)用 FreeRTOS API 函數(shù))后的數(shù)組。

E顯示刪除隊(duì)列后的數(shù)組,此時(shí)會(huì)自動(dòng)釋放分配給已刪除隊(duì)列的內(nèi)存。此時(shí),用戶分配的塊的兩側(cè)都有可用內(nèi)存。

F顯示的也是已釋放用戶分配的內(nèi)存之后的數(shù)組。用戶分配的塊所用的內(nèi)存已與兩側(cè)的可用內(nèi)存組合成一個(gè)更大的可用塊。

Heap_4 是非確定性的,但比 malloc() 和 free() 的大多數(shù)標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)都要快。

Heap_5

heap_5 用來(lái)分配和釋放內(nèi)存的算法與 heap_4 的完全相同。與 heap_4 不同,heap_5 不限于從單個(gè)靜態(tài)聲明的數(shù)組分配內(nèi)存。Heap_5 可以從多個(gè)單獨(dú)的內(nèi)存空間分配內(nèi)存。當(dāng)運(yùn)行 FreeRTOS 的系統(tǒng)提供的 RAM在系統(tǒng)的內(nèi)存映射中未作為單個(gè)鄰接的(沒(méi)有空間)塊出現(xiàn)時(shí),Heap_5 很有用。

Heap_5 是唯一一個(gè)必須在調(diào)用 pvPortMalloc() 之前顯式初始化的內(nèi)存分配方案。它使用 vPortDefineHeapRegions() API 函數(shù)進(jìn)行初始化。當(dāng)使用 heap_5 時(shí),必須先調(diào)用vPortDefineHeapRegions(),然后才可創(chuàng)建任何內(nèi)核對(duì)象(任務(wù)、隊(duì)列、信號(hào)等)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3587

    瀏覽量

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

    關(guān)注

    8

    文章

    3019

    瀏覽量

    74003
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62140
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手怎么學(xué)嵌入式?

    嵌入式系統(tǒng)的發(fā)展,嵌入式操作系統(tǒng)也變得越來(lái)越重要。學(xué)習(xí)嵌入式操作系統(tǒng)可以幫助你更好地
    發(fā)表于 12-12 10:51

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

    指揮官配備最先進(jìn)的裝備。 未來(lái)會(huì)怎樣? 隨著技術(shù)的發(fā)展,嵌入式操作系統(tǒng)將繼續(xù)演進(jìn),以滿足更多的應(yīng)用需求和挑戰(zhàn),它們可能會(huì): 支持更多IoT設(shè)備:管理更多的智能家居和工業(yè)設(shè)備,就像是物聯(lián)網(wǎng)世界的大管家
    發(fā)表于 11-08 15:07

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)在各個(gè)領(lǐng)域扮演著越來(lái)越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作
    的頭像 發(fā)表于 11-06 10:22 ?334次閱讀

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+ 了解Hypervisor

    : 瀏覽目錄,其中包括中斷隔離、分區(qū)引導(dǎo)、內(nèi)存管理、分區(qū)通信、內(nèi)核服務(wù)等關(guān)鍵字,這些不都屬于操作系統(tǒng)的范圍嘛!第一章開頭一段就解開了我的疑惑:Hypervisor用于托管多個(gè)客戶操作系統(tǒng)
    發(fā)表于 10-13 16:47

    freertos和rtos區(qū)別是什么

    (Real-Time Operating System,實(shí)時(shí)操作系統(tǒng))是一種特殊的操作系統(tǒng),它能夠?yàn)閷?shí)時(shí)任務(wù)提供確定性的響應(yīng)時(shí)間。RTOS 通常用于嵌入式系統(tǒng),如工業(yè)自動(dòng)化、汽車電子、
    的頭像 發(fā)表于 09-02 14:18 ?1172次閱讀

    嵌入式linux開發(fā)板怎么操作

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)嵌入式系統(tǒng)開發(fā)平臺(tái)。它通常包括一個(gè)處理器、內(nèi)存、存儲(chǔ)器、輸入/輸出接口等硬件組件,以及一
    的頭像 發(fā)表于 09-02 09:09 ?372次閱讀

    RT-Thread出席第六屆中國(guó)嵌入式技術(shù)大會(huì),共話嵌入式操作系統(tǒng)與智能工業(yè)

    第六屆中國(guó)嵌入式技術(shù)大會(huì)將于8月27-28日在深圳會(huì)展中心(福田)1號(hào)館舉行。本屆大會(huì)以“AI與開源,開啟嵌入式系統(tǒng)智能新時(shí)代”為主題,聚焦人工智能與嵌入式應(yīng)用、
    的頭像 發(fā)表于 08-03 08:35 ?397次閱讀
    RT-Thread出席第六屆中國(guó)<b class='flag-5'>嵌入式</b>技術(shù)大會(huì),共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>與智能工業(yè)

    第六屆國(guó)產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    每年一度的國(guó)產(chǎn)嵌入式操作系統(tǒng)論壇即將在杭州濱江舉辦,今年是第六屆了,又是中國(guó)嵌入式系統(tǒng)新朋老友相聚的時(shí)刻。大模型催生AI走人千家萬(wàn)戶、喚醒端側(cè)AI的需求爆發(fā)。以機(jī)器人、無(wú)人駕駛和智能制
    發(fā)表于 07-26 10:54

    嵌入式系統(tǒng)怎么學(xué)?

    操作系統(tǒng)的基本概念和原理,掌握常見(jiàn)的RTOS,如FreeRTOS、uC/OS等,以實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)的任務(wù)調(diào)度和資源管理。 6、通信協(xié)議:學(xué)
    發(fā)表于 07-02 10:10

    如何提升嵌入式編程能力?

    /C++:大多數(shù)嵌入式系統(tǒng)使用C或C++編程語(yǔ)言,因此深入學(xué)習(xí)這兩種語(yǔ)言是非常重要的。 8. 理解操作系統(tǒng):學(xué)習(xí)嵌入式操作系統(tǒng)(如
    發(fā)表于 06-21 10:01

    實(shí)時(shí)操作系統(tǒng)之RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區(qū)別之一是,它不僅僅是一個(gè)實(shí)時(shí)內(nèi)核,還具備豐富的中間層組件,如下圖所示。FreeRTOS和RT-Thread是兩種常見(jiàn)的嵌入式實(shí)時(shí)
    的頭像 發(fā)表于 05-29 08:10 ?3849次閱讀
    實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>之RT-Thread及<b class='flag-5'>FreeRTOS</b>

    再談嵌入式實(shí)時(shí)操作系統(tǒng)

    由于嵌入式處理器早期功能單一且運(yùn)算能力不高,嵌入式應(yīng)用已不能滿足各個(gè)領(lǐng)域不斷增長(zhǎng)的需求。嵌入式操作系統(tǒng)應(yīng)運(yùn)而生,嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?787次閱讀
    再談<b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時(shí)的注意事項(xiàng)

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時(shí)的注意事項(xiàng)
    的頭像 發(fā)表于 03-29 08:05 ?348次閱讀
    瑞薩CTSU程序在向<b class='flag-5'>嵌入式</b>OS<b class='flag-5'>操作系統(tǒng)</b>移植時(shí)的注意事項(xiàng)

    請(qǐng)問(wèn)ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)

    我想問(wèn)一下ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)
    發(fā)表于 01-15 06:59

    FreeRTOS內(nèi)存機(jī)制詳解

    FreeRTOS是一種實(shí)時(shí)操作系統(tǒng),它提供了多種內(nèi)存分配方式,包括動(dòng)態(tài)內(nèi)存分配和靜態(tài)內(nèi)存分配。
    的頭像 發(fā)表于 12-31 16:49 ?2685次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>內(nèi)存</b>機(jī)制詳解
    主站蜘蛛池模板: qvod 韩国| 国产亚洲精品久久久久久入口| 久久伊人影院| 亚洲精品tv久久久久久久久久| 国产 亚洲 日韩 欧美 在线观看| 欧美日韩看看2015永久免费| 中文字幕人妻无码系列第三区 | 男神插曲女生软件完整版| 亚洲伊人久久综合影院2021| 国产午夜伦伦伦午夜伦| 無码一区中文字幕少妇熟女H| 动漫美女被到爽了流| 青青草色青伊人| WWW亚洲精品久久久无码| 男女做爽爽爽视频免费软件 | 色多多污污下载| 成人免费视频网站www| 青青久久精品| CHINESE熟女老女人HD视频| 男人舔女人的阴部黄色骚虎视频| 2020精品国产视| 蜜桃无码AV视频在线观看| 99RE6这里只有精品国产AV| 蜜桃最新网址| CHINESE老阿姨免费视频| 人与畜禽CROPROATION免费| 超碰最新地址| 色色激情网| 国产精品96久久久久久AV网址| 同居了嫂子在线观看| 国产精品99| 亚洲 自拍 清纯 综合图区| 好嗨哟在线看片免费| 夜夜国产亚洲视频香蕉| 久久九九精品国产自在现线拍| 在线观看免费毛片| 美女MM131爽爽爽| qvod电影网站| 日日操夜夜摸| 国产精品一区二区AV交换| 亚洲国产综合久久精品 |