FreeRTOS 匈牙利表示法 [重复]

2024-01-12

我是 RTOS 和 C 编程的新手,而且我仍在习惯 C 的良好实践。因此,我打开了一个使用 FreeRTOS 的项目,我注意到操作系统文件使用匈牙利表示法。我知道一点符号,但面临一些新的“标准”FreeRTOS.h文件,分别是:

#ifndef configASSERT
    #define configASSERT( x )
    #define configASSERT_DEFINED 0
#else
    #define configASSERT_DEFINED 1
#endif

在那之下,

#ifndef INCLUDE_xTaskGetSchedulerState
    #define INCLUDE_xTaskGetSchedulerState 0
#endif

#ifndef INCLUDE_xTaskGetCurrentTaskHandle
    #define INCLUDE_xTaskGetCurrentTaskHandle 0
#endif

我见过这个x- 如xXTaskGetCurrentTaskHandle


看着the man http://www.freertos.org/FreeRTOS-Coding-Standard-and-Style-Guide.html#NamingConventions

命名约定

RTOS 内核和演示应用程序源代码使用以下约定:

变量

  • 类型变量uint32_t有前缀ul,其中'u'表示unsigned'l'表示long.

  • 类型变量uint16_t有前缀us,其中'u'表示“无符号”,“s”表示short.

  • 类型变量uint8_t有前缀uc,其中'u'表示“无符号”,“c”表示char.

  • 非 stdint 类型的变量以 x 为前缀。例子包括BaseType_t and TickType_t,它们是可移植层定义的 typedef,用于架构的自然或最有效类型以及分别用于保存 RTOS 滴答计数的类型。

  • Unsigned非 stdint 类型的变量有一个附加前缀u。例如类型变量UBaseType_t (unsigned BaseType_t) 为前缀ux.

  • 类型变量size_t也有前缀x.

  • 枚举变量有前缀e

  • 指针有一个额外的前缀p,例如指向 a 的指针uint16_t将有前缀pus.

  • 根据 MISRA 指南,不合格的标准字符类型仅允许保存ASCII characters并带有前缀c.

  • 符合 MISRA 指南,类型变量char *只允许保存指向ASCII strings并带有前缀pc.

Emphasis mine

功能

  • 文件范围静态(私有)函数以 prv 为前缀。

  • API 函数以其返回类型为前缀,按照为变量定义的约定,并添加前缀v for void.

  • API 函数名称以定义它们的文件的名称开头。例如vTaskDelete定义在tasks.c中,并且有一个void返回类型。

Emphasis mine

Macros

  • 宏预先固定在定义它们的文件中。前缀是小写。例如,configUSE_PREEMPTION在 FreeRTOSConfig.h 中定义。

  • 除前缀外,宏均以大写形式编写,并使用下划线分隔单词。

Emphasis mine

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FreeRTOS 匈牙利表示法 [重复] 的相关文章

  • MSI 和 EXE 安装程序有什么区别,我应该选择哪一个? [复制]

    这个问题在这里已经有答案了 可能的重复 msi 和 setup exe 文件之间有什么具体区别 https stackoverflow com questions 1789530 what are the specific differen
  • asp.net c# 将数据集中的数据转换为电子邮件正文?

    从数据集到电子邮件正文的最佳方式是什么 我有一个 net 控制台应用程序 用于根据存储过程的结果发送电子邮件通知 并且想知道如何最好地从 SQL 数据转到电子邮件正文 带有颜色和字体的 html 正文是最好的 但纯文本也可以 thanks
  • CMake 和 Visual Studio:如何获得快速、安静的命令行构建?

    我有一个 cmake 项目 它成功地完成了我想要的一切 但我有大约 100 个文件 当我只需要重新编译一个文件时 我厌倦了每次看到生成的巨大输出 每个文件 30 行 明确地说 我正在编译cmake build 得到这个结果 我需要传递给编译
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • 我们如何将数据从一个打开的表单传递到另一个打开的表单?

    winform中如何将数据从一个窗体传递到另一个打开的窗体 在 Windows 应用程序中 一个窗体打开另一个窗体 当我在父表单中输入一些数据时 这些数据将立即反映在另一个子表单中 这将如何发生 取决于你想要多花哨 最简单的方法就是直接调用
  • 基于 MS Bot Framework 中的响应分支对话框/表单

    我们正在尝试使用 MS Bot Framework 但尚未完全弄清楚如何实现此场景 我们有一个 LUIS 对话框 类型 它工作正常并且经过适当的培训 以常见的三明治为例 LUIS 意图寻找的基本内容是用户询问订单状态 如果问题中提供了订单号
  • 将列表(对象)转换为列表(字符串)

    有没有办法转换List of Object to a List of String 在 c 或 vb net 中而不迭代所有项目 幕后迭代很好 我只想要简洁的代码 Update 最好的方法可能就是进行新的选择 myList Select f
  • 'goto *foo' 其中 foo 不是指针。这是什么?

    我正在玩标签作为值 https gcc gnu org onlinedocs gcc Labels as Values html并最终得到这段代码 int foo 0 goto foo 我的 C C 经验告诉我 foo means dere
  • C 中“for”循环中的两个变量

    我正在编写一些代码 需要在其中使用两个变量for环形 下面的代码看起来没问题吗 它确实给了我预期的结果 for loop 1 offset loop 2 offset 2 loop 1 gt offset 190 loop 2 lt 190
  • 控制器中的异常处理 (ASP.NET MVC)

    当您自己的代码抛出异常并从控制器中的操作调用时 应该如何处理 我看到很多最佳实践的例子 其中根本没有 try catch 语句 例如 从存储库访问数据 public ViewResult Index IList
  • 替换 JSON 中的转义字符

    我想用空格替换 JSON 字符串中的 字符 我怎样才能做到这一点 我发现从 JSON 字符串中删除所有转义字符的最简单 最好的方法是将字符串传递到正则表达式 Unescape 方法 此方法返回一个没有转义字符的新字符串 甚至删除了 n t
  • 如何附加到 xml

    我有这个xml
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • 如何解释“错误C2018:未知字符'0x40'?[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在编译一些代码时 我收到以下信息 错误 C2018 未知字符 0x40 我想知道如何解决这样的问题 这是我要开始的地方
  • 需要使用 openssl 加密和解密文件的示例 C 代码

    我正在用 Linux C 编写代码 我需要使用以下命令来加密和解密文件 openssl 目前 我使用系统命令 des3 e nosalt k 0123456789012345 in inp file out out file 进行加密 使用
  • double 类型的静态类成员的常量表达式初始值设定项

    在 C 11 和 C 14 中 为什么我需要constexpr在下面的代码片段中 class Foo static constexpr double X 0 75 而这会产生编译器错误 class Foo static const doub
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜
  • 在代码中而不是 XAML 中呈现 UserControl

    我想用RenderTargetBitmap将 UserControl 呈现为位图 而无需为其编写 XAML 当我这样做时 我得到一张空白图像 我是否错过了关键的一步 ValTool Controls VideoFisheyeOverlayC
  • 如何将 char 转换为 unsigned int?

    我有一个字符数组 它实际上用作字节数组 而不是用于存储文本 在数组中 有两个特定字节表示我需要存储到无符号 int 值中的数值 下面的代码解释了设置 char bytes bytes 2 bytes 0 0x0C For the sake

随机推荐

  • 谷歌身份验证:OAuth2 不断返回“invalid_grant”

    我开始在我的新应用程序上配置谷歌日历 我几乎复制了谷歌开发人员显示的身份验证代码 https developers google com google apps calendar instantiate https developers g
  • Emacs 在 C 中的宏后缩进

    define INIT MACRO create some enviroment void function INIT MACRO extra indented normal indented 当要求自动缩进时 如何让emacs正确处理上述
  • 使用 AWS SDK 以 IAM 用户身份登录

    谁能帮助我了解如何使用 AWS SDK 以 IAM 用户身份登录 我正在使用适用于 Java 的 AWS 开发工具包 并且一直在寻找合适的 API 来以 IAM 用户身份登录 但我无法做到这一点 我能够传递访问密钥和密钥以使用 SDK 登录
  • 如何从 Firebase Firestore set() 调用返回承诺?

    这是我的问题的后续https stackoverflow com questions 54100270 google translate api and firebase firestore are killing each other 道
  • Spring Boot 2.x 的性能问题?

    我最近将Web应用程序中使用的Spring Boot版本从1 5版本更新到2 1版本 当我对其进行负载测试时 我的运行时间从 25 分钟缩短到 35 分钟 我知道这是一个广泛的问题 但是有谁知道为什么应用程序在升级 Spring Boot
  • 在 javascript 中填写表单的通用方法

    我正在寻找一种真正通用的方法来使用 javascript 基于参数字符串 填写 表单 例如 如果我有这个表格
  • R 通过 Hoovermode 绘图显示 x 轴值

    按照此question https stackoverflow com questions 70576618 r plotly bar chart positive negative values different color secon
  • Qt update() 不起作用

    我有一个问题 update 函数QGraphicsItem不起作用 我想做的是 当我移动圆圈时 其他QGraphicsItem 同时 roundrect 改变颜色 这是一个例子 我想做的事情 圆 cpp void CircleItem mo
  • 为什么我的 Google 网络字体是像素化的?

    我正在尝试在一个简单的网站中使用谷歌字体 我正在使用的标签是 CSS 是 body padding 0 text align center line height 180 background 1a2426 color f7f7f7 fon
  • EF 6 代码优先存储过程 - 只读

    我搜索了一些帖子 但都没有找到 我首先使用 EF6 代码尝试从数据库中已设置的存储过程获取结果 我的应用程序很简单 它从两个不同的服务器获取数据 执行一些业务逻辑 然后向用户显示 我可以使用 edmxfile Fine 它将函数映射到 xm
  • ImportError:无法从“google.cloud”(未知位置)导入名称“pubsub_v1”

    我正在尝试将 pubsub v1 导入云函数中 但是当我尝试将其部署到GCP上时 出现了如标题所示的问题 requirements txt 文件与 main py 文件位于同一目录中 这是requirements txt中的内容 googl
  • Excel:有没有一个函数可以返回满足匹配条件的范围? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 给定一个值与后续行 同一列上 进行比较 并返回直到该值第一次更改的行的范围 Example A 1 cat 2 cat 3 cat 4 dog 5 c
  • 具有 CuDNNLSTM 层的 Keras 模型无法在生产服务器上运行

    我使用 AWS p3 实例通过 GPU 加速训练以下模型 x CuDNNLSTM 128 return sequences True inputs x Dropout 0 2 x x CuDNNLSTM 128 return sequenc
  • JavaScript 中有语音或语音就绪事件吗? [复制]

    这个问题在这里已经有答案了 我在 Google Chrome 上尝试了以下操作 它会打印出来0声音 然后再次打印0我的电脑上有声音 但如果我重新加载页面以重新开始 并将最后一行更改为setTimeout foo 1000 那么第一行会打印出
  • 函数printf()打印退格问题

    有两个程序 它们得到不同的结果 但我不明白为什么 这是第一个 int main printf 12345 fflush stdout printf b b fflush stdout return 0 结果是 123 然后是第二个 int
  • 在单击按钮之前不要对引导表实施过滤器控制

    我提出的问题的后续行动earlier https stackoverflow com questions 64720472 add button on header th to hide and show filter control in
  • 将自定义类型转换注入 .NET 库类

    我想通过C 中的Convert ChangeType实现两个库类之间的转换 我无法改变这两种类型 例如 Guid 和 byte 之间的转换 Guid g new Guid object o1 g byte b byte Convert Ch
  • 在 Laravel 5.x 中组织 trans() 本地化文件的好策略有哪些?

    这是一个关于方法论和建议实践的问题 我知道它并没有严格依附于框架 甚至不是 PHP 答案可能是 这取决于你 但我关心的是最佳实践和方法 因为通常存在针对特定环境的最佳方法 我想知道哪些是最佳实践键命名为了trans 的函数Laravel 5
  • 在 Linux 中禁用网络摄像头自动对焦

    我正在 beagleboard 的嵌入系统中工作 源代码是Python的 但我从OpenCV导入库来进行图像处理 实际上 我使用的是 Logitech c910 网络摄像头 它是一款出色的摄像头 但它具有自动对焦功能 我想知道是否可以从 P
  • FreeRTOS 匈牙利表示法 [重复]

    这个问题在这里已经有答案了 我是 RTOS 和 C 编程的新手 而且我仍在习惯 C 的良好实践 因此 我打开了一个使用 FreeRTOS 的项目 我注意到操作系统文件使用匈牙利表示法 我知道一点符号 但面临一些新的 标准 FreeRTOS