嵌入式操作系统 硬件抽象层 HAL

Android Hal层简要分析 阅读详情

  引言

  为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层 HAL(Hardware Abstraction Layer)的思想。硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。然而,目前BSP形式的硬件抽象层仅 仅能够解决有限的几种操作系统在同样有限的BSP所支持的硬件平台上的移植,而对绝大多数需要根据不同嵌入式应用而专门定制的嵌入式操作系统来说能起的作 用则非常有限。

    1 硬件抽象层原理 

    1.1 硬件抽象层概念

  嵌入式系统是一 类特殊的计算机系统。它自底向上包括3个主要部分:硬件环境、嵌入式操作系统和嵌入式应用程序。硬件环境是整个嵌入式操作系统和应用程序运行的硬件平台, 不同的应用通常有不同的硬件环境;因此如何有效地使嵌入式操作应用于各种不同的应用环境,是嵌入式操作系统发展中所必须解决的关键问题。

  硬件抽象层通过硬件抽象层接口向操作系统以及应用程序提供对硬件进行抽象后的服务。当操作系统或应用程序使用硬件抽象层API进行设计时,只要硬件抽象层API能够在下层硬件平台上实现,那么操作系统和应用程序的代码就可以移植。

                                          图1 引入HAL后的嵌入式系统结构

  这样,原先嵌入式系统的3层结构逐步演化为一种4层结构。图1显示了引入硬件抽象层后的嵌入式系统的结构。

   在整个嵌入式系统设计过程中,硬件抽象层同样发挥着不可替代的作用。传统的设计流程是采用瀑布式设计开发过程,首先是硬件平台的制作和调试,而后是在已 经定型的硬件平台的基础上再进行软件设计。由于硬件和软件的设计过程是串行的,因此需要很长的设计周期;而硬件抽象层能够使软件设计在硬件设计结束前开始 进行,使整个嵌入式系统的设计过程成为软硬件设计并行的V模式开发过程,如图2所示。这样两者的设计过程大致是同时进行的或是并发的,缩短了整个设计周 期。

                                            图2 硬件抽象层引入后的V开发模式

    1.2 BSP分析

   作为硬件抽象层的一种实现,板级支持包BSP(Board Support Package)是现有的大多数商用嵌入式操作系统实现可移植性所采用的一种方案。BSP隔离了所支持的嵌入式操作系统与底层硬件平台之间的相关性,使嵌 入式操作系统能够通用于BSP所支持的硬件平台,从而实现嵌入式操作系统的可移植性和跨平台性,以及嵌入式操作系统的通用性、复用性。

   然而现有应用较为广泛的BSP形式的硬件抽象层,完全是为了现有通用或商业嵌入式操作系统在不同硬件平台间的移植而设计的,因此BSP形式的硬件抽象层 与BSP所向上支持的嵌入式操作系统是紧密相关的。在同一种嵌入式微处理器的硬件平台上支持不同嵌入式操作系统的BSP之间不仅从组成结构、向操作系统内 核所提供的功能以及所定义的服务的接口都完全不同,因而一种嵌入式操作系统的BSP不可能用于其他嵌入式操作系统。这种硬件抽象层是一种封闭的专用硬件抽 象层。因此,我们提出了为上层嵌入式操作系统内核的开发和构建提供一种开放、通用的硬件抽象层平台,使得在某种硬件平台上的嵌入式操作系统内核的开发能够 在支持这种硬件平台的硬件抽象层上进行。

    2 通用硬件抽象层总体设计 

    2.1 通用硬件抽象层的功能结构设计

 

通用硬件抽象层需要为上层操作系统内核提供统一的硬件相关功能服务;而嵌入式操作系统内核主要的硬件相关部分包括系统启 动初始化、任务上下文管理、中断异常管理以及时钟管理。因此,通用硬件抽象层对嵌入式操作系统内核所相关的硬件平台的基本硬件组成部分进行抽象,提供嵌入 式操作系统内核硬件平台的相关功能,并设计相应的通用硬件抽象层API接口。通用硬件抽象层的总体功能结构如图3所示。

                                图3 通用硬件抽象层总体功能结构示意图
    (1) 系统启动初始化

   启动初始化功能为操作系统的启动和运行提供了必要的软硬件环境。启动和初始化过程中,对硬件平台的直接访问包括对CPU内核的寄存器的初始化设置,以及 对于起系统控制作用的端口寄存器的设置。通过启动初始化过程,为整个操作系统内核的运行提供了必要的运行环境与基础,隔离了不同硬件平台上嵌入式微处理器 总线结构、存储 系统结构的差异。

    (2) 任务上下文管理

   任务上下文管理负责嵌入式操作系统内核中任务管理部分中对任务寄存器上下文的创建、删除以及切换等操作。任务的寄存器上下文是操作系统内核所管理的任务 的重要组成部分,是CPU内核的寄存器中内容的映像,因此上下文管理的实现依赖于CPU内核中寄存器的组织,是与体系结构密切相关的。通用硬件抽象层的任 务上下文管理统一定义体系结构中的寄存器上下文的保护格式,提供了任务管理对任务上下文的基本操作的API接口。

   (3) 中断异常管理

  中断异常管理是嵌入式操作系统内核中的重要组成部分。中断异常机制是操作系统内核实现与外部设备通信、任务系统调用、进行出错处理以及能够实现对任务的实时调度的重要手段。因此,硬件抽象层中断系统的管理部分是整个硬件抽象层中的关键。

   通用硬件抽象层中为中断异常处理进行了必要的包装,向嵌入式操作系统内核屏蔽底层的中断异常处理;同时,由于中断管理必须涉及对中断控制器的操作。因 此,通用硬件抽象层的设计中,将中断控制器控制的外设请求抽象成为统一的IRQ设备,嵌入式操作系统通过操作抽象IRQ设备来管理外设的中断服务程序以及 进行对中断控制器的操作,从而为操作系统内核屏蔽了中断控制器的直接操作。

   (4) 定时管理

  定时管理负责为操作系统内核中的时钟滴答处理提供必要的定时机制,同时也为内核之外的系统功能提供定时服务,如TCP/IP协议 栈等。操作系统内核通过时钟滴答处理来执行重要的定时任务(如任务时间的分配、任务运行时间统计、任务定时等待更新等),因此定时功能是硬件抽象层需要为操作系统内核提供的最为基本和重要的功能之一。

  通用硬件抽象层根据对硬件定时器的抽象为操作系统内核提供统一的抽象定时器设备,并且对定时中断服务程序进行了包装,从而使嵌入式操作系统内核直接面对的是统一、通用的抽象定时器设备,通过对抽象定时器的操作来实现定时服务,而不必直接操作硬件定时器。

   2.2 通用硬件抽象层的层次结构设计

   通用硬件抽象层的设计是为在各种不同硬件平台上的嵌入式操作系统内核的开发提供统一的硬件平台相关的功能,因此这就要求硬件抽象层本身能够易于扩展和移 植到不同的硬件平台之上,才能为这种硬件平台上嵌入式操作系统内核的开发提供支持。与硬件平台相关的软件分为体系结构相关以及外围端口寄存器操作相关部 分。体系结构相关软件部分能够用于与CPU内核体系结构兼容的不同嵌入式微处理器上,而对外围端口寄存器的操作,则每种嵌入式微处理器都不同。因此,通用 硬件抽象层功能的实现设计成为图4所示的3个层次的结构:通用层、体系结构层以及外围层。通过这3个实现层次的划分尽可能地实现代码的可复用性。

                                       图4 通用硬件抽象层层次结构示意图

    (1) 通用层

  通用层是以C语言编写的、不涉及体系结构及外围端口寄存器具体操作的、能够通用于各种硬件平台的一层。通用层内包括: 对统一的与编译器无关的数据类型、抽象设备的数据结构定义,以及提供给嵌入式操作系统内核的对抽象设备的各种统一的操作服务的接口通用的实现部分。

  通用层中抽象设备操作的实现中需要涉及的对CPU内核寄存器的操作以及对外围I/O端口寄存器的操作,是通过调用体系结构层以及外围层中统一定义的接口进行的。当扩展或移植到其他硬件平台上时,上层无须修改,而只须进行下层替换。

    (2) 体系结构层

   针对各种嵌入式微处理器CPU内核的体系结构,体系结构层需要分别设计实现。体系结构层中对体系结构相关的数据类型以及数据结构进行定义,包括寄存器上 下文保存格式的定义以及对中断异常向量起始地址、各种异常和中断处理的入口偏移等,并负责通用硬件抽象层功能中体系结构相关部分的实现。实现的内容主要是 对CPU内核中各个寄存器的访问,对于中断异常向量表的操作以及底层的中断和异常处理。

  体系结构层的实现是按照上层规定的调用接口来进行的,因而针对不同的体系结构,上层通用层无须进行修改。体系结构层中对有关I/O端口寄存器的操作通过对外围层接口的调用来实现。

  针对某种体系结构设计实现的体系结构层能够通用于CPU内核体系结构兼容的嵌入式微处理器的硬件平台上,从而易于硬件抽象层在体系结构兼容的嵌入式微处理器硬件平台上的扩展和移植。

 

(3) 外围层

  外围层是针对各种嵌入式微处理器而分别设计实现的。外围层主要包括对外围I/O接口和设备属性的定义(包括中断控制器连接的外设个数、定时器个数等),并且负责对各个外围I/O设备端口寄存器的访问操作。外围层的实现需要根据上层定义的接口进行。

  通用硬件抽象层的外围层必须提供对存储 控 制、总线控制、中断控制器、定时器控制器、UART等基本I/O接口和设备的I/O端口寄存器的访问功能。外围层是与各种嵌入式微处理器一一对应的,在采 用不同的嵌入式微处理器的硬件平台之间,外围层是无法通用的。因此针对新的嵌入式微处理器的通用硬件抽象层的扩展或移植,外围层都需要重新设计实现。

    (4) 层次间接口的设计

   通用硬件抽象层除了为嵌入式操作系统内核提供统一的功能服务接口外,为了便于扩展和移植到其他硬件平台,还在各层的调用之间设计了统一的调用接口。下层 的功能实现需要按照与上层确定的接口规范来进行。其中某些上下层之间的接口,尤其是外围层与上层之间的接口是使用宏定义的方式进行的。宏定义在预编译时进 行替换,没有执行时的性能损失。相反,对于底层的操作直接使用宏定义能够提高执行效率,尤其对外围端口寄存器的操作,由于操作本身的执行时间短,而一般函 数调用则需要返回地址、参数压栈等过程。这些开销可能超过这些I/O端口寄存器的访问时间,使用宏定义则没有调用开销,从而能够直接实现接口对底层端口寄 存器的访问而不损失操作的效率。

 

 

告别裸机开发:在STM32F407上跑OpenHarmony 3.1 LiteOS-M的完整踩坑实录 本文详细介绍了在STM32F407上移植OpenHarmony 3.1 LiteOS-M内核的完整过程,包括环境搭建、内核移植、任务管理和调试技巧。通过实战案例和常见问题解决方案,帮助开发者从裸机开发平滑过渡到操作系统开发,提升嵌入式系统的开发效率和性能。 阅读详情

相关推荐

MultiOTP Credential Provider避坑指南:从安装到RDP双因素认证的全流程解析

本文详细解析了MultiOTP Credential Provider从安装到实现RDP双因素认证(MFA)的全流程,重点分享了Docker部署、Active Directory集成及网络级认证(NLA)兼容性等环节的实战避坑经验,旨在帮助运维人员高效、稳定地部署离线双因素认证方案,提升Windows远程桌面安全性。

weixin_29255731的博客 642

HAL 层简介

简介: HAL层又称硬件抽象层,HAL层在Android体系中有着深远的意义,因为Android究竟是完 全开源还是完全不开源的秘密就在这一层·Google将硬件厂商的驱动程序放在这一层,正是因为 这一层的代码没有开源,所以Android被Linux家族删除.本章将详细介绍HAL层的基本知识, 为本书后面的驱动开发和移植打下坚实的基础 1、认识 HAL 层 HAL层(硬件抽象层)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象 化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬.

Venus 的博客 2万+

FFmpeg 部署与使用(含Docker部署)

ffmpeg 部署以及使用

weixin_38584583的博客 910

嵌入式软件开发之程序分层(二)

硬件抽象层和驱动层主要就是为功能模块层提供的,实现该项目需要的功能,比如KEY、LED和EEPROM等功能,其中LEY、LED基本调用硬件抽象层的API函数(更复杂的可能通过片外芯片获取/控制等,因此可能也需要使用硬件驱动层),EEPROM调用硬件驱动层的API函数,即使EEPROM芯片更换(AT24C02或W25Q128等),也不影响EEPROM之前编写含的功能代码程序(前提是AT24C02,W25Q128提供的API函数提供的是统一标准)。即使换了MCU,也只需将调用过硬件抽象层的API函数替换即可。

坚持 1570

汽车电子电气架构诊断功能开发全流程解析

文章作者是一位在魔都工作的汽车电子工程师,坚持长期主义,并分享了一段关于“钝感力”的文字,强调面对困境的韧劲和耐力,以及不被外界噪音干扰的重要性。文章详细介绍了汽车电子电气架构(EEA)的诊断功能开发流程,涵盖设计、实现、生产、运维及售后五大环节。作者从技术实现维度展开,详细描述了诊断系统架构设计、供应商功能实现、产线集成与标定、云端数据交互以及售后诊断应用场景。文章还总结了技术演进趋势,包括AI融合、OTA 2.0和区块链应用等,强调了标准化协议与工具链在全链路诊断能力中的重要性。最后,作者鼓励读者相信时

Soly_kun的博客 1220

动态知识图谱构建:从本体论到工程实践

知识图谱作为语义网和人工智能领域的核心技术,旨在通过结构化的方式表示和组织知识。其核心原理在于将实体、概念及其关系建模为图结构,从而支持复杂的语义推理和关联查询。这一技术为机器理解数据间的深层联系提供了基础,在智能推荐、企业知识管理和学术研究等领域具有重要价值。通过结合自然语言处理(NLP)和图数据库技术,系统能够从非结构化数据中自动抽取知识,并构建动态演化的认知网络。本文以“本体论章鱼”项目为例,探讨了如何实现从静态本体到动态知识网络的范式转变,并详细解析了其分布式感知、适应性学习的架构设计,为构建灵活可

weixin_30731305的博客 657

【Android】HAL层浅析

一、HAL层的前世今生 二、HAL层的通用结构剖析 三、一个例子 四、击破Audio HAL Module 五、小的总结 一、HAL层的前世今生 HAL(Hardware Abstraction Layer),硬件抽象层。由于部分硬件厂商不想把自己的核心代码公开,如果把代码放在内核空间里就需要遵循GUN License,会损害厂家的利益。所以,Google为了响应厂家在A...

冇二哥的专栏 3万+

MR2数据集实战:5步搞定多模态谣言检测模型训练(附完整代码)

本文详细介绍了如何使用MR2多模态数据集构建高精度谣言检测系统,涵盖环境配置、数据准备、多模态特征工程、模型架构设计、训练调优及部署优化等5个关键步骤。通过双线性融合技术处理文本、图像和网页三模态数据,解决特征对齐和模态冲突等工程难题,并提供完整代码实现和性能优化方案。

weixin_42657024的博客 239

HAL层

HAL层被称为硬件抽象层,它位于操作系统内核和硬件电路之间的接口层,目的是将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟的硬件平台,使其具有硬件无关性,这样就可以在多种平台上移植。    在Android源码中,HAL层被保存下面的目录中   1.libhardware_legacy:过去的目录,采取了链接库模块观念   2.libhardware:新的目录,采用HAL s

zzobin的专栏 5028

5、自动化代码结构与运维系统的优化

本文探讨了自动化代码结构与运维系统的优化方法,涵盖审批流程的模块化设计、日志记录与工单系统的集成、通知方式的选择、错误处理的策略以及持续改进的实践。同时,深入分析了运维盲目性问题,通过故障案例揭示了关键指标缺失和日志未充分利用的弊端,提出了开发与运维角色转变的必要性。文章还介绍了如何生成有用的系统指标、建立良好的日志习惯以及实施日志聚合,以提升系统的可观测性和可靠性。最终通过总结和流程图展示了优化措施的核心要点,为构建高效、可靠的运维体系提供了指导。

pp12345的博客 71

手把手教你学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机轴电压与轴电流抑制仿真

本文带你完成了电机轴电压与轴电流抑制的Simulink仿真,实现了:✅ 揭示了共模电压 → 寄生电容 → 轴电压 → 轴承电蚀的完整链路✅ 搭建了含寄生参数的高频电机等效模型共模电压最小化PWM(源头抑制)dv/dt滤波器(路径阻断)轴接地(终端泄放) ✅ 通过仿真验证了轴电压从68 V降至<3 V的显著效果 ✅ 为高可靠性电机系统提供低成本、高效益的轴承保护方案。

MHD0815的博客 315

记录:HAL释义

HAL:Hardware Abstraction Layer,硬件抽象层 硬件抽象层技术最初是由Microsoft公司为确保WindowsNT的稳定性和兼容性而提出的。针对过去Windows系列操作系统经常出现的系统死机或崩溃等现象,Microsoft总结发现,程序设计直接与硬件通信,是造成系统不稳定的主要原因。在得出这个结论的基础上,微软公司在WindowsNT上取消了对硬件的直接访问,首先提出了硬件抽象层(Hardware Abstraction Layer,简称HAL)的概念,硬件抽象层就是:“将硬

灵哎惹,凌沃敏的博客 2712

“/usr/lib/wsl/wsl-setup“ failed, exiting

WSL2安装Ubuntu时出现"wsl-setup failed"错误的解决方法 摘要:当Windows用户名包含中文字符时,安装WSL2+Ubuntu会出现"wsl-setup failed"错误。本文提供两种解决方案:1)修改中文用户名(风险较大);2)通过命令手动配置。推荐第二种方法:先使用"wsl -l -v"查看Ubuntu名称,再通过"wsl -d Ubuntu20.04 -e /bin/bash"命令启动WSL2系

猿小白的博客 994

通过HAL+BSP架构,操作系统核心部分可在不同平台上复用,极大提升移植效率

四、总结: - **HAL 是“平台无关”的桥梁**,提升软件可移植性; - **驱动是“设备相关”的基础**,实现精确控制; - 在现代嵌入式开发中(如使用STM32CubeMX、Zephyr OS),HAL已成为标准组成部分,大幅降低开发门槛。 -

[Blog][Domain] programb.blog.youkuaiyun.com 2921

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

终极指南:Tock嵌入式操作系统架构深度解析——从硬件抽象到应用隔离的安全设计

Tock是一款专为Cortex-M和RISC-V嵌入式平台设计的安全嵌入式操作系统,采用Rust语言构建核心组件,通过硬件抽象层和内存保护单元实现多层次安全防护,让开发者能够在资源受限的微控制器上安全运行多个并发应用。 ## 📌 Tock架构核心特性概览 Tock的设计围绕两大核心安全机制展开: - **Rust语言安全**:内核与设备驱动采用Rust编写,利用其编译时内存安全和类型安全特性

gitblog_00936的博客 1280

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ChibiOS 开源项目常见问题解决方案

ChibiOS 开源项目常见问题解决方案 项目基础介绍 ChibiOS 是一个开源的嵌入式操作系统,主要用于微控制器和嵌入式系统。它提供了实时操作系统(RTOS)、硬件抽象层(HAL)和一些额外的库,支持多种硬件平台。ChibiOS 的主要编程语言是 C,适用于需要高性能和低资源占用的嵌入式应用。 新手使用注意事项及解决方案 1. 编译环境配置问题 问题描述:新手在初次使用 ChibiOS 时,可...

gitblog_01086的博客 495

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机三级-嵌入式组-考点汇总-嵌入式系统软件

未来教育配套计算机三级教程全考点总结

tong_yuhan的博客 973

计算机嵌入式开发技术考试错题集

选择题 1、UTF-16采用的是双字节可变长编码。 2、ARM处理器的7种类型的异常中: 最高的是 复位; 最低的是 未定义指令UND 和 软件中断SWI; 3、只要AND 和 BIC的位清零指令,可以在不影响其他位的情况下 做到对指令位进行清零。 4、AMBA的叙述正确的有: (1)ARM处理器的高宽带高性能外围接口通常链接到AMBA的系统总线; (2)ARM处理器的速度不高的外部接口如UART...

尖皇 290

拆解正点原子综合实验:如何用STM32F103实现一个‘微型手机’系统?

本文深入解析了如何基于STM32F103开发板实现微型手机系统,重点探讨了正点原子综合实验中的嵌入式OS设计精髓。通过模块化架构、实时任务调度、内存管理等关键技术,展示了在资源受限环境下构建多功能系统的实践方法,为嵌入式开发者提供了宝贵的设计思路和优化技巧。

weixin_30647065的博客 368

计算机三级嵌入式学习笔记六

版权声明:本文为博主原创文章,如需转载,请注明出处 https://blog.youkuaiyun.com/qq_36554582/article/details/81297283 &lt;/div&gt; &lt;div id="content_view...

MMagicLoren的博客 434

ChibiOS核心架构深度解析:实时内核与硬件抽象层的完美结合

ChibiOS是一款开源、轻量级、高性能的嵌入式实时操作系统(RTOS),专为资源受限的微控制器设计。本文将深入解析ChibiOS的核心架构,揭示其如何将实时内核与硬件抽象层完美结合,为嵌入式开发者提供强大的开发工具链。无论您是嵌入式开发新手还是经验丰富的工程师,这篇文章都将帮助您全面理解ChibiOS的架构设计和应用优势。 ## 🔧 ChibiOS架构概览 ChibiOS采用模块化设计,主

gitblog_00368的博客 960

三级嵌入式错题集

三级嵌入式(三)硬件抽象层(HAL)嵌入式操作系统嵌入式处理器嵌入式微处理器芯片(S3C2410)触摸屏SPI伪指令进程间通信机制集成开发工具 硬件抽象层(HAL) 嵌入式操作系统 嵌入式处理器 嵌入式微处理器芯片(S3C2410) 触摸屏 SPI 伪指令 进程间通信机制 集成开发工具 ...

weixin_40587180的博客 225

FreeRTOS 学习:(三)HAL库、标准库 和 FreeRTOS 的关联性,简述

简述了 HAL库、标准库 和 FreeRTOS 的关联性

qq_51409113的博客 542

一文读懂RIOT OS启动流程:从硬件初始化到应用运行的完整指南

RIOT是面向物联网的友好操作系统,以其轻量级和模块化设计著称。本文将深入解析RIOT OS的启动流程,帮助开发者理解从硬件上电到应用程序运行的全过程,掌握嵌入式系统初始化的核心原理。 ## 启动流程概览:RIOT OS的四个关键阶段 RIOT OS的启动过程可分为四个主要阶段,每个阶段都有明确的职责和执行顺序: 1. **引导加载器阶段**:负责硬件自检和系统引导 2. **内核初始化阶段

gitblog_00026的博客 367

PowerToys 窗口管理教程:3 步跑通安装,再按症状排错

PowerToys 是微软出品的免费 Windows 效率工具箱,内置 FancyZones 窗口管理、PowerToys Run 快速启动、Keyboard Manager 等 30 多个模块。本文写给刚装完或卡在安装、首跑环节的新手;读完你能独立完成安装、跑通两个核心功能,出问题也知道往哪查。 ## 01|先给机器做体检 按 `Win+R`,输入 `winver`,回车。 ``` win

gitblog_00155的博客 1027

2017-2018-1 《信息安全系统设计基础》 20155322 十六周 课下实践

#2017-2018-1 《信息安全系统设计基础》 20155322 十六周 课下实践 [博客目录] 第二题 ucos是如何分层的 HAL都有哪些代码 分析任务是如何切换 第三题 原理 实现 代码链接 资料 第二题 阅读附件中的代码,回答: ucos是如何分层的? HAL都有哪些代码? 分析任务是如何切换的。 附件 返回目录 一、ucos是如何分层的 返回目录 二、HAL都有哪些代...

weixin_30894389的博客 152
上一篇: WinCE Cache操作函数
下一篇: 关于单CPU 多CPU上的原子操作
wolfcmd1231
博客等级 码龄17年 15粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值