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

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

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

空間隔離操作系統(tǒng)μC/OS-MPU中段的定位

麥克泰技術(shù) ? 來(lái)源:麥克泰技術(shù) ? 2023-01-04 14:07 ? 次閱讀

介紹

本應(yīng)用筆記描述了使用 GCC 環(huán)境時(shí),數(shù)據(jù)段的定位實(shí)現(xiàn)。

μC/OS-MPU介紹

μC/OS-MPU基于 μC/OS-II,增加了內(nèi)存保護(hù)擴(kuò)展,這種保護(hù)稱(chēng)為“空間保護(hù)”,隔離 μC/OS-II 內(nèi)核與任務(wù)?;讦藽/OS-MPU,為任務(wù)提供了一個(gè)受保護(hù)的運(yùn)行環(huán)境,其他任務(wù)不會(huì)干擾或損壞任務(wù)的內(nèi)存,避免非法訪問(wèn)。

· 空間保護(hù)

空間保護(hù)旨在保護(hù)應(yīng)用程序的內(nèi)存不被其他任務(wù)破壞。下圖展示了一個(gè)包含三個(gè)進(jìn)程的系統(tǒng),以說(shuō)明空間保護(hù)的實(shí)現(xiàn)。

b3713fc2-8bf4-11ed-bfe3-dac502259ad0.jpg

通常,μC/OS-II 內(nèi)部變量和線程(任務(wù))放到進(jìn)程#0。進(jìn)程#1包含 2個(gè)線程。進(jìn)程#2包含 3個(gè)線程,線程可以訪問(wèn)共享內(nèi)存區(qū)域(shared memory)。進(jìn)程#3是2個(gè)線程的集合,并且有權(quán)訪問(wèn)共享內(nèi)存區(qū)域。

段的組織

在基于μC/OS-MPU的應(yīng)用中,進(jìn)程中的所有全局?jǐn)?shù)據(jù)位于同一個(gè)段。下圖展示了單個(gè)段的數(shù)據(jù)組織:

b3844a0e-8bf4-11ed-bfe3-dac502259ad0.png

在啟動(dòng)階段,運(yùn)行環(huán)境的啟動(dòng)函數(shù)將初始化數(shù)據(jù)(initialized data)從 ROM 復(fù)制到 RAM ,并清零未初始化數(shù)據(jù)(uninitialized data)。事實(shí)上,每個(gè)進(jìn)程都有自己的段,在項(xiàng)目中,該組織結(jié)構(gòu)可能存在多次。

· 未初始化數(shù)據(jù)

使用宏SP_MEM()放置變量,基于GCC鏈接器命令文件,將變量放置到段”.sec.bss”中。

示例:全局變量 Task1Stk[] 和 SyncSem 放置到段”sec01”中未初始化數(shù)據(jù)域。

b38efdaa-8bf4-11ed-bfe3-dac502259ad0.png

將已有代碼集成到μC/OS-MPU系統(tǒng)時(shí),可以基于文件放置數(shù)據(jù),僅需調(diào)整鏈接命令文件。

示例:基于提供的GCC鏈接命令文件模板,紅色部分的行表示將文件 myfile.c中未初始化數(shù)據(jù)放置到段”secA0”中的未初始化數(shù)據(jù)域。

b3a48cf6-8bf4-11ed-bfe3-dac502259ad0.png

在啟動(dòng)階段,我們需要清零段中未初始化數(shù)據(jù)域。為了簡(jiǎn)化實(shí)現(xiàn),系統(tǒng)提供了一些有用的宏SP_INIT_)。

示例:在調(diào)用函數(shù) MyInitData()時(shí),段” sec01”和”secA0”中未初始化數(shù)據(jù)域清零。注意:函數(shù)”_zero_init”可能是啟動(dòng)環(huán)境外部提供的:

b3ab8056-8bf4-11ed-bfe3-dac502259ad0.png

· 初始化數(shù)據(jù)

使用SP_MEM()將變量放置在段”.sec.data”中。

示例:全局變量”MyNumber”和”MyValue”放到段” sec01”中的初始化數(shù)據(jù)域。此外,數(shù)據(jù)的值被放置在ROM中的數(shù)據(jù)區(qū)域。

b3b3cc20-8bf4-11ed-bfe3-dac502259ad0.png

將已有代碼集成到μC/OS-MPU系統(tǒng)時(shí),也可以基于文件放置數(shù)據(jù),僅需調(diào)整鏈接器命令文件。

示例:根據(jù)提供的GCC鏈接命令文件模板,紅色顯示的行表示將文件 myfile.c中的初始化數(shù)據(jù)放置到段” secA0”中的初始化數(shù)據(jù)域。

b3c0e694-8bf4-11ed-bfe3-dac502259ad0.png

在啟動(dòng)階段,我們需要復(fù)制段中的初始化數(shù)據(jù)域。為了簡(jiǎn)化實(shí)現(xiàn),系統(tǒng)提供一些有用的宏SP_INIT_)。

示例:調(diào)用函數(shù) MyInitData()時(shí),段” sec01”和” secA0”中的初始化數(shù)據(jù)域,將從 ROM 復(fù)制到 RAM。

注意:函數(shù)"_data_init"可能不是啟動(dòng)環(huán)境提供的:

b3c998ac-8bf4-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(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)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122743
  • GCC
    GCC
    +關(guān)注

    關(guān)注

    0

    文章

    105

    瀏覽量

    24781
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    501

    瀏覽量

    19580

原文標(biāo)題:空間隔離操作系統(tǒng)μC/OS-MPU中段的定位

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為了學(xué)習(xí)內(nèi)核開(kāi)發(fā),大佬手搓了一個(gè)輕量級(jí)操作系統(tǒng)YiYiYa OS

    管理器 接口層(C標(biāo)準(zhǔn)庫(kù)) 接口層為操作系統(tǒng)內(nèi)核向外核提供的基本功能。通過(guò)libc和libmusl可選,實(shí)現(xiàn)基本的標(biāo)準(zhǔn)庫(kù),方便開(kāi)發(fā)者直接移植代碼或者適配應(yīng)用app。 內(nèi)核層 內(nèi)核層則為核心領(lǐng)域業(yè)務(wù)。每
    發(fā)表于 08-30 14:57

    為了學(xué)習(xí)內(nèi)核開(kāi)發(fā),大佬手搓了一個(gè)輕量級(jí)操作系統(tǒng)YiYiYa OS

    、gpio、i2c、spi驅(qū)動(dòng)等 系統(tǒng)移植教程 作者本人及團(tuán)隊(duì)自制的開(kāi)源掌機(jī)FunKey所采用的操作系統(tǒng)就是基于Linux內(nèi)核和YiYiYa OS,YiYiYa
    發(fā)表于 08-27 10:08

    嵌入式實(shí)時(shí)操作系統(tǒng):Intewell操作系統(tǒng)與VxWorks操作系統(tǒng)有啥區(qū)別

    Intewell操作系統(tǒng)和VxWorks操作系統(tǒng)都是工業(yè)領(lǐng)域常用的操作系統(tǒng),它們各有特點(diǎn)和優(yōu)勢(shì)。以下是它們之間的一些主要區(qū)別:
    的頭像 發(fā)表于 07-08 14:16 ?218次閱讀
    嵌入式實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>:Intewell<b class='flag-5'>操作系統(tǒng)</b>與VxWorks<b class='flag-5'>操作系統(tǒng)</b>有啥區(qū)別

    中科創(chuàng)達(dá)全球首發(fā)面向中央計(jì)算的AI原生整車(chē)操作系統(tǒng)—滴水OS

    2024年4月26日,作為全球領(lǐng)先的智能操作系統(tǒng)及端側(cè)智能產(chǎn)品和技術(shù)提供商,中科創(chuàng)達(dá)在北京國(guó)際車(chē)展上全球首發(fā)面向中央計(jì)算的AI原生整車(chē)操作系統(tǒng)——滴水OS,旨在賦能汽車(chē)產(chǎn)業(yè)擁抱AI大模型,加速推動(dòng)汽車(chē)廠商的國(guó)際化戰(zhàn)略落地。
    的頭像 發(fā)表于 04-28 09:58 ?764次閱讀

    Facebook Meta Horizon OS開(kāi)放給第三方VR/AR開(kāi)發(fā)者?

    據(jù) IT 之家了解,Meta Horizon OS 是專(zhuān)為 Quest 系列頭顯研發(fā)的混合現(xiàn)實(shí)操作系統(tǒng),具備眼球追蹤、面部識(shí)別、手勢(shì)識(shí)別、全身追蹤以及空間定位、場(chǎng)景理解等多項(xiàng)功能。
    的頭像 發(fā)表于 04-23 14:12 ?313次閱讀

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

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

    在Flexible Safety RTOS安全應(yīng)用中集成X-CUBE-STL的步驟

    安全操作系統(tǒng)Flexible Safety RTOS提供了空間隔離保護(hù),簡(jiǎn)化安全產(chǎn)品的設(shè)計(jì),其安全插件可幫助用戶(hù)安全團(tuán)隊(duì)提高微控制器診斷覆蓋率。
    的頭像 發(fā)表于 03-15 12:16 ?1208次閱讀
    在Flexible Safety RTOS安全應(yīng)用中集成X-CUBE-STL的步驟

    聯(lián)想今年將發(fā)布AI OS操作系統(tǒng)

    聯(lián)想正式宣布,將把AI PC和個(gè)人Agent作為2024年的核心業(yè)務(wù)推進(jìn)重點(diǎn),并計(jì)劃在今年內(nèi)推出全新的“AI OS操作系統(tǒng)”以及一系列搭載此系統(tǒng)的“AI PC”。這一創(chuàng)新舉措標(biāo)志著聯(lián)想在人工智能領(lǐng)域的深度布局和前沿探索。
    的頭像 發(fā)表于 02-18 11:10 ?864次閱讀

    航天宏圖推出新一代衛(wèi)星操作系統(tǒng)PIESAT-OS 1.0版

    和滿(mǎn)足衛(wèi)星任務(wù)快速開(kāi)發(fā)和資源優(yōu)化需求的必要途徑。然而,研發(fā)新一代衛(wèi)星操作系統(tǒng)的過(guò)程極具挑戰(zhàn)性。面對(duì)這些高標(biāo)準(zhǔn)需求,航天宏圖公司憑借卓越的技術(shù)實(shí)力和前瞻性的創(chuàng)新思維,重磅推出了新一代衛(wèi)星操作系統(tǒng)——PIESAT-OS 1.0版。
    的頭像 發(fā)表于 01-03 10:57 ?797次閱讀
    航天宏圖推出新一代衛(wèi)星<b class='flag-5'>操作系統(tǒng)</b>PIESAT-<b class='flag-5'>OS</b> 1.0版

    隔離拓?fù)浜屯ǖ?b class='flag-5'>間隔離設(shè)計(jì)挑戰(zhàn)

    電子發(fā)燒友網(wǎng)站提供《隔離拓?fù)浜屯ǖ?b class='flag-5'>間隔離設(shè)計(jì)挑戰(zhàn).pdf》資料免費(fèi)下載
    發(fā)表于 11-27 09:24 ?0次下載
    <b class='flag-5'>隔離</b>拓?fù)浜屯ǖ?b class='flag-5'>間隔離</b>設(shè)計(jì)挑戰(zhàn)

    從芯片到操作系統(tǒng),手機(jī)廠商的操作系統(tǒng)混戰(zhàn)卷到了智能手表

    ?電子發(fā)燒友網(wǎng)報(bào)道(文/莫婷婷)繼華為推出鴻蒙操作系統(tǒng)之后,不少手機(jī)廠商都推出自研操作系統(tǒng),小米推出小米澎湃OS替代MIUI,vivo也推出藍(lán)河操作系統(tǒng)。霎時(shí)間,自研
    的頭像 發(fā)表于 11-22 01:09 ?1693次閱讀
    從芯片到<b class='flag-5'>操作系統(tǒng)</b>,手機(jī)廠商的<b class='flag-5'>操作系統(tǒng)</b>混戰(zhàn)卷到了智能手表

    AUTOSAR OS操作系統(tǒng)功能特性

    汽車(chē)電子系統(tǒng)中的軟件任務(wù)和中斷。它提供了以下功能特性: 任務(wù)和中斷管理:AUTOSAR OS可以創(chuàng)建、啟動(dòng)、停止和刪除任務(wù),并處理中斷請(qǐng)求。它可以根據(jù)任務(wù)的優(yōu)先級(jí)和調(diào)度策略來(lái)調(diào)度任務(wù)的執(zhí)行,確保任務(wù)
    的頭像 發(fā)表于 10-27 16:55 ?1851次閱讀

    嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 14:07 ?0次下載
    嵌入式實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>μ<b class='flag-5'>C</b>/<b class='flag-5'>OS</b>-Ⅱ在LPC1788上的移植及應(yīng)用

    小米推出全新操作系統(tǒng)澎湃 OS:小米 14 系列將率先搭載;因華為Mate 60受歡迎,蘋(píng)果iPhone 15系列銷(xiāo)量同比下滑

    熱點(diǎn)新聞 1、小米推出全新操作系統(tǒng)澎湃 OS:小米 14 系列將率先搭載,逐步接替 MIUI 剛剛小米創(chuàng)始人雷軍在微博稱(chēng),今天對(duì)小米來(lái)說(shuō),是歷史性時(shí)刻。小米全新操作系統(tǒng),小米澎湃 OS
    的頭像 發(fā)表于 10-17 17:45 ?892次閱讀
    小米推出全新<b class='flag-5'>操作系統(tǒng)</b>澎湃 <b class='flag-5'>OS</b>:小米 14 系列將率先搭載;因華為Mate 60受歡迎,蘋(píng)果iPhone 15系列銷(xiāo)量同比下滑

    STM32嵌入式操作系統(tǒng)介紹

    的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動(dòng)。? 目前在嵌入式領(lǐng)域廣泛使用的操作系統(tǒng)有:嵌入式實(shí)時(shí)操作系統(tǒng)FreeRTOS、μC/OS-II、RThread、WindowsCE、VxWorks
    發(fā)表于 09-28 06:59