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

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

3天內不再提示

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

麥克泰技術 ? 來源:麥克泰技術 ? 2023-01-04 14:07 ? 次閱讀

介紹

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

μC/OS-MPU介紹

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

· 空間保護

空間保護旨在保護應用程序的內存不被其他任務破壞。下圖展示了一個包含三個進程的系統(tǒng),以說明空間保護的實現(xiàn)。

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

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

段的組織

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

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

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

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

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

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

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

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

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

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

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

示例:在調用函數(shù) MyInitData()時,段” sec01”和”secA0”中未初始化數(shù)據(jù)域清零。注意:函數(shù)”_zero_init”可能是啟動環(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ù)據(jù),僅需調整鏈接器命令文件。

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

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

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

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

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

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

審核編輯 :李倩

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

    關注

    37

    文章

    6625

    瀏覽量

    123050
  • GCC
    GCC
    +關注

    關注

    0

    文章

    105

    瀏覽量

    24798
  • 線程
    +關注

    關注

    0

    文章

    502

    瀏覽量

    19620

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

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    新手學操作系統(tǒng)(第一周)

    1.介紹計算機、OS與應用程序之間的關系,計算機的硬件是底層的基礎,操作系統(tǒng)在其之上管理硬件資源,應用程序則通過操作系統(tǒng)來實現(xiàn)其功能;2.推薦參考學習書籍;3.實踐環(huán)境的介紹
    的頭像 發(fā)表于 10-08 11:33 ?150次閱讀
    新手學<b class='flag-5'>操作系統(tǒng)</b>(第一周)

    為了學習內核開發(fā),大佬手搓了一個輕量級操作系統(tǒng)YiYiYa OS

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

    為了學習內核開發(fā),大佬手搓了一個輕量級操作系統(tǒng)YiYiYa OS

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

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

    Intewell操作系統(tǒng)和VxWorks操作系統(tǒng)都是工業(yè)領域常用的操作系統(tǒng),它們各有特點和優(yōu)勢。以下是它們之間的一些主要區(qū)別:
    的頭像 發(fā)表于 07-08 14:16 ?295次閱讀
    嵌入式實時<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)達全球首發(fā)面向中央計算的AI原生整車操作系統(tǒng)—滴水OS

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

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

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

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

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

    在Flexible Safety RTOS安全應用中集成X-CUBE-STL的步驟

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

    龍蜥操作系統(tǒng)/Anolis OS榮登“2023生態(tài)開源項目”獎項榜單

    在2023開放原子開發(fā)者大會上,開放原子開源基金會公布了“2023生態(tài)開源項目”榜單,龍蜥操作系統(tǒng)/Anolis OS憑借過硬的產品能力、優(yōu)秀的安全治理以及較強的社區(qū)活躍度等多方面的突出表現(xiàn)成功入選。
    的頭像 發(fā)表于 02-28 11:04 ?500次閱讀

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

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

    深度解析全球操作系統(tǒng)格局

    操作系統(tǒng)是負責協(xié)調、管理和控制計算機硬件與軟件資源的程序,是整個計算機的核心系統(tǒng)軟件。 按照操作系統(tǒng)面向的設備類型,通用操作系統(tǒng)主要包括桌面操作系統(tǒng)
    的頭像 發(fā)表于 01-18 15:00 ?877次閱讀
    深度解析全球<b class='flag-5'>操作系統(tǒng)</b>格局

    榮耀推出自研操作系統(tǒng)MagicOS 8.0

    榮耀正式推出了自主研發(fā)的全新操作系統(tǒng)——MagicOS 8.0(中文名:魔法OS 8.0)。這款操作系統(tǒng)憑借其獨創(chuàng)的平臺級AI使能的意圖識別人機交互,引領了智能終端交互的新潮流。
    的頭像 發(fā)表于 01-12 15:11 ?2042次閱讀

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

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

    隔離拓撲和通道間隔離設計挑戰(zhàn)

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

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

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