当前位置: 首页 > article >正文

嵌入式面试刷题(day18)

文章目录

  • 前言
  • 一、## 为什么在FreeRTOS中信号量、队列等设计了两套函数?
      • 1. **中断上下文中的限制**
      • 2. **防止阻塞**
      • 3. **中断屏蔽与恢复**
      • 4. **任务唤醒机制**
      • 5. **与队列相关的锁定机制**
      • 总结
  • 二、什么是中断优先级
      • 1. 抢占优先级
      • 2. 子优先级
  • 三、 要配置一个引脚为输入功能或者输出功能的流程是什么?
  • 四、 FreeRTOS中的软件定时器
      • 软件定时器与硬件定时器的区别
  • 五、 讲解一下什么是MQTT协议
  • 六、什么是原码反码和补码
      • 原码、反码和补码
        • 1. 原码
        • 2. 反码
        • 3. 补码
      • 总结区别
      • 为什么使用补码?
      • 举例说明运算


前言

本篇文章将继续给大家讲解嵌入式面试中的内容。

一、## 为什么在FreeRTOS中信号量、队列等设计了两套函数?

FromISR函数是FreeRTOS中用于在中断服务例程(ISR)中调用的特殊版本API,它与普通的FreeRTOS函数的主要区别在于其设计用于中断上下文下的操作。让我们具体分析一下xQueueGenericSendFromISR函数的特点,以及它与普通的xQueueSend函数的区别:

1. 中断上下文中的限制

  • 中断优先级:普通的FreeRTOS API函数通常是在任务上下文中调用的,任务上下文允许在任意时刻被抢占和切换。然而,中断上下文中有更高的实时要求,所以不能使用普通的API。
  • portASSERT_IF_INTERRUPT_PRIORITY_INVALID():在FromISR函数中,FreeRTOS会检查中断的优先级是否允许调用系统API。如果中断的优先级高于配置的最大可调用系统API优先级,调用将触发断言失败。这是为了保证高优先级中断不会破坏系统的

http://www.kler.cn/news/330286.html

相关文章:

  • 在Ubuntu 16.04上使用LAMP安装WordPress
  • uniapp中uni.request的统一封装 (ts版)
  • PHP:构建高效Web应用的基石与实战案例
  • 【C++】多态(上)
  • 废品回收小程序/环保垃圾回收/收二手垃圾小程序/分类资源回收系统/独立版系统源码
  • 解析TMalign文本文件中的转换矩阵
  • 鸿蒙harmonyos next flutter混合开发之开发package
  • C++队列、双向队列
  • Linux Debian12使用Podman安装bwapp靶场环境
  • [Linux]Shell基本
  • X-Spreadsheet使用教程:打造你的Web端电子表格应用
  • 在实时语音交互上超过GPT-4o,端到端语音模型Mini-Omni部署
  • 滚雪球学MySQL[8.3讲]:数据库中的JSON与全文检索详解:从数据存储到全文索引的高效使用
  • 【Kubernetes】日志平台EFK+Logstash+Kafka【实战】
  • Android中的页面跳转机制
  • 【Android 源码分析】Activity生命周期之onDestroy
  • 如何使用Flask框架创建一个类似OpenAI的REST API接口
  • 一文上手SpringSecurity【三】
  • 大语言模型入门(二)——提示词
  • 5分钟学会SPI
  • MySQL基础练习题49-低质量的问题
  • 【动态规划】完全背包问题
  • 媒介坊:软文自助发布平台,开启营销新篇章
  • 什么是大语言模型的大海捞针指标
  • 【数据库差异研究】update与delete使用表别名的研究
  • Swift并发笔记
  • 「4.3」维护序列
  • 多系统萎缩患者必看!这些维生素助你对抗病魔
  • Docker的入门详解
  • 第十四讲-输入控件QPlainTextEdit