1 空间隔离操作系统µC/OS-MPU中段的定位-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

空间隔离操作系统µC/OS-MPU中段的定位

麦克泰技术 来源:麦克泰技术 2023-01-04 14:07 次阅读

介绍

本应用笔记描述了使用 GCC 环境时,数据段的定位实现。

µC/OS-MPU介绍

µC/OS-MPU基于 µC/OS-II,增加了内存保护扩展,这种保护称为“空间保护”,隔离 µC/OS-II 内核与任务。基于µC/OS-MPU,为任务提供了一个受保护的运行环境,其他任务不会干扰或损坏任务的内存,避免非法访问。

· 空间保护

空间保护旨在保护应用程序的内存不被其他任务破坏。下图展示了一个包含三个进程的系统,以说明空间保护的实现。

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

通常,µC/OS-II 内部变量和线程(任务)放到进程#0。进程#1包含 2个线程。进程#2包含 3个线程,线程可以访问共享内存区域(shared memory)。进程#3是2个线程的集合,并且有权访问共享内存区域。

段的组织

在基于µC/OS-MPU的应用中,进程中的所有全局数据位于同一个段。下图展示了单个段的数据组织:

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

在启动阶段,运行环境的启动函数将初始化数据(initialized data)从 ROM 复制到 RAM ,并清零未初始化数据(uninitialized data)。事实上,每个进程都有自己的段,在项目中,该组织结构可能存在多次。

· 未初始化数据

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

示例:全局变量 Task1Stk[] 和 SyncSem 放置到段”sec01”中未初始化数据域。

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

将已有代码集成到µC/OS-MPU系统时,可以基于文件放置数据,仅需调整链接命令文件。

示例:基于提供的GCC链接命令文件模板,红色部分的行表示将文件 myfile.c中未初始化数据放置到段”secA0”中的未初始化数据域。

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

在启动阶段,我们需要清零段中未初始化数据域。为了简化实现,系统提供了一些有用的宏SP_INIT_)。

示例:在调用函数 MyInitData()时,段” sec01”和”secA0”中未初始化数据域清零。注意:函数”_zero_init”可能是启动环境外部提供的:

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

· 初始化数据

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

示例:全局变量”MyNumber”和”MyValue”放到段” sec01”中的初始化数据域。此外,数据的值被放置在ROM中的数据区域。

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

将已有代码集成到µC/OS-MPU系统时,也可以基于文件放置数据,仅需调整链接器命令文件。

示例:根据提供的GCC链接命令文件模板,红色显示的行表示将文件 myfile.c中的初始化数据放置到段” secA0”中的初始化数据域。

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

在启动阶段,我们需要复制段中的初始化数据域。为了简化实现,系统提供一些有用的宏SP_INIT_)。

示例:调用函数 MyInitData()时,段” sec01”和” secA0”中的初始化数据域,将从 ROM 复制到 RAM。

注意:函数"_data_init"可能不是启动环境提供的:

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123280
  • GCC
    GCC
    +关注

    关注

    0

    文章

    107

    浏览量

    24835
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19675

原文标题:空间隔离操作系统µC/OS-MPU中段的定位

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片
    的头像 发表于 11-11 11:43 419次阅读

    新手学操作系统(第一周)

    1.介绍计算机、OS与应用程序之间的关系,计算机的硬件是底层的基础,操作系统在其之上管理硬件资源,应用程序则通过操作系统来实现其功能;2.推荐参考学习书籍;3.实践环境的介绍
    的头像 发表于 10-08 11:33 236次阅读
    新手学<b class='flag-5'>操作系统</b>(第一周)

    为了学习内核开发,大佬手搓了一个轻量级操作系统YiYiYa OS

    管理器 接口层(C标准库) 接口层为操作系统内核向外核提供的基本功能。通过libc和libmusl可选,实现基本的标准库,方便开发者直接移植代码或者适配应用app。 内核层 内核层则为核心领域业务。每
    发表于 08-30 14:57

    为了学习内核开发,大佬手搓了一个轻量级操作系统YiYiYa OS

    、gpio、i2c、spi驱动等 系统移植教程 作者本人及团队自制的开源掌机FunKey所采用的操作系统就是基于Linux内核和YiYiYa OS,YiYiYa
    发表于 08-27 10:08

    嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

    Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别:
    的头像 发表于 07-08 14:16 416次阅读
    嵌入式实时<b class='flag-5'>操作系统</b>:Intewell<b class='flag-5'>操作系统</b>与VxWorks<b class='flag-5'>操作系统</b>有啥区别

    中科创达全球首发面向中央计算的AI原生整车操作系统—滴水OS

    2024年4月26日,作为全球领先的智能操作系统及端侧智能产品和技术提供商,中科创达在北京国际车展上全球首发面向中央计算的AI原生整车操作系统——滴水OS,旨在赋能汽车产业拥抱AI大模型,加速推动汽车厂商的国际化战略落地。
    的头像 发表于 04-28 09:58 910次阅读

    Facebook Meta Horizon OS开放给第三方VR/AR开发者 

    据 IT 之家了解,Meta Horizon OS 是专为 Quest 系列头显研发的混合现实操作系统,具备眼球追踪、面部识别、手势识别、全身追踪以及空间定位、场景理解等多项功能。
    的头像 发表于 04-23 14:12 462次阅读

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项
    的头像 发表于 03-29 08:05 347次阅读
    瑞萨CTSU程序在向嵌入式<b class='flag-5'>OS</b><b class='flag-5'>操作系统</b>移植时的注意事项

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

    安全操作系统Flexible Safety RTOS提供了空间隔离保护,简化安全产品的设计,其安全插件可帮助用户安全团队提高微控制器诊断覆盖率。
    的头像 发表于 03-15 12:16 1376次阅读
    在Flexible Safety RTOS安全应用中集成X-CUBE-STL的步骤

    龙蜥操作系统/Anolis OS荣登“2023生态开源项目”奖项榜单

    在2023开放原子开发者大会上,开放原子开源基金会公布了“2023生态开源项目”榜单,龙蜥操作系统/Anolis OS凭借过硬的产品能力、优秀的安全治理以及较强的社区活跃度等多方面的突出表现成功入选。
    的头像 发表于 02-28 11:04 553次阅读

    联想今年将发布AI OS操作系统

    联想正式宣布,将把AI PC和个人Agent作为2024年的核心业务推进重点,并计划在今年内推出全新的“AI OS操作系统”以及一系列搭载此系统的“AI PC”。这一创新举措标志着联想在人工智能领域的深度布局和前沿探索。
    的头像 发表于 02-18 11:10 1027次阅读

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面操作系统
    的头像 发表于 01-18 15:00 1155次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局

    荣耀推出自研操作系统MagicOS 8.0

    荣耀正式推出了自主研发的全新操作系统——MagicOS 8.0(中文名:魔法OS 8.0)。这款操作系统凭借其独创的平台级AI使能的意图识别人机交互,引领了智能终端交互的新潮流。
    的头像 发表于 01-12 15:11 2242次阅读

    航天宏图推出新一代卫星操作系统PIESAT-OS 1.0版

    和满足卫星任务快速开发和资源优化需求的必要途径。然而,研发新一代卫星操作系统的过程极具挑战性。面对这些高标准需求,航天宏图公司凭借卓越的技术实力和前瞻性的创新思维,重磅推出了新一代卫星操作系统——PIESAT-OS 1.0版。
    的头像 发表于 01-03 10:57 1071次阅读
    航天宏图推出新一代卫星<b class='flag-5'>操作系统</b>PIESAT-<b class='flag-5'>OS</b> 1.0版

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统
    的头像 发表于 12-26 09:54 4725次阅读
    详解实时<b class='flag-5'>操作系统</b>和非实时<b class='flag-5'>操作系统</b>