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

审核编辑 :李倩

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

    关注

    37

    文章

    7436

    浏览量

    129612
  • GCC
    GCC
    +关注

    关注

    0

    文章

    112

    浏览量

    26415
  • 线程
    +关注

    关注

    0

    文章

    510

    浏览量

    20870

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    格灵深瞳元识金融多模态智算平台全面融入企业级Agent操作系统DeepBot-OS

    随着年初Agent火爆出圈,如何让Agent高效自主工作、实现多Agent稳定协作,成为打造AI原生基础设施的关键,也是格灵深瞳不断探索的应用方向之一。近日,格灵深瞳对元识(MetaSense)金融多模态智算平台进行了产品升级,全面融入企业级Agent操作系统DeepBot-OS
    的头像 发表于 04-13 09:49 405次阅读

    全志科技亮相OS2ATC 2026开源操作系统年度技术会议

    近日,第十三届开源操作系统年度技术会议(OS2ATC 2026)在北京语言大学顺利举办。作为国内聚焦开源操作系统领域的专业行业盛会,本次大会汇聚了产业链上下游众多核心机构、高校与企业。全志科技受邀
    的头像 发表于 04-10 10:28 1354次阅读
    全志科技亮相<b class='flag-5'>OS</b>2ATC 2026开源<b class='flag-5'>操作系统</b>年度技术会议

    操作系统体系结构

    操作系统的体系结构是一个开放的问题。正如上文所述,操作系统在核心态为应用程序提供公共的服务,那么操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结构:大内核和微
    发表于 01-15 08:19

    操作系统运行机制

    计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程
    发表于 01-15 07:12

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    单片机的操作系统

    单片机操作系统主要分为实时操作系统(RTOS)和嵌入式操作系统两类,以下是常见选择: 实时操作系统(RTOS) ‌ FreeRTOS ‌:轻量级开源内核(最小内核约6 KB RAM)
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    。 低功耗和小尺寸:实时嵌入式操作系统通常要求运行时的资源占用较少,以适应嵌入式系统对功耗和尺寸的限制。 常见的实时嵌入式操作系统包括 FreeRTOS、ThreadX、Micrium μC
    发表于 11-13 06:30

    探索操作系统底层的关键接口

      在linux中,将程序的运行空间分为内核空间与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程序不能访问内核数据,也无法使用内核函数。当用户进程必须访问内核或使
    的头像 发表于 11-08 12:42 870次阅读

    龙芯CPU与银河麒麟操作系统V11深度适配

    近日,龙芯中科受邀参加“麒麟遨天·共承长”2025中国操作系统产业大会,见证银河麒麟操作系统V11的正式发布。龙芯桌面CPU(3A5000/3A6000)、服务器CPU(3C5000/3D5000
    的头像 发表于 09-02 10:44 1089次阅读

    润芯微启航操作系统迎来升级里程碑

    作为润芯微在智能汽车领域的重要成果,启航操作系统通过智慧内生物联网操作系统创新架构,围绕人的生活、出行,开放扩展汽车软硬件生态,极简打造多元智能空间体验,真正实现了人、车、家跨端的连接互通。
    的头像 发表于 08-05 17:12 1035次阅读

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派操作系统有多个版本,
    的头像 发表于 07-28 18:26 1793次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

    ValueLabs宣布计划转型为“Agentic时代”的企业操作系统(Enterprise OS

    印度海得拉巴 2025年6月16日 /美通社/ -- 全球技术服务与AI解决方案公司ValueLabs今日宣布其计划,旨在转型为智能体时代的企业级操作系统(Enterprise OS),并由其自主
    的头像 发表于 06-17 09:33 543次阅读

    鸿道Intewell操作系统:人形机器人底层操作系统

    操作系统的实时性赋能东土科技的鸿道(Intewell)工业操作系统作为国内唯一通过汽车、工业控制、医疗、轨道交通四项功能安全认证的系统,为标准体系中的技术层架构提供了底层支持。其微内核虚拟化架构可将人形机器人电子架构成本降低50
    的头像 发表于 05-16 14:44 956次阅读

    理想汽车智驾操作系统解读

    [首发于智驾最前沿微信公众号]在智能网联与生成式AI技术深度融合的浪潮下,汽车操作系统已经从最初的简单资源管理平台,演化为承载感知决策、执行控制与安全防护的智能化中枢。理想汽车自主研发的星环OS
    的头像 发表于 05-13 10:54 1430次阅读
    理想汽车智驾<b class='flag-5'>操作系统</b>解读

    光庭信息推出下一代整车操作系统OS

    ,正式推出面向中央计算架构、支持人机协同开发的下一代整车操作系统OS(AI × Automotive OS),赋能下一代域控软件解决方案的快速研发,显著提升整车智能化水平。 A²OS
    的头像 发表于 04-29 17:37 1564次阅读
    光庭信息推出下一代整车<b class='flag-5'>操作系统</b>A²<b class='flag-5'>OS</b>