嵌入式编程中的zalloc是什么?

2024-02-25

我正在研究对 ESP8266 串行 WiFi 芯片进行编程。在其 SDK 示例中,它广泛使用了一个名为os_zalloc我期望的地方malloc.

不过偶尔,os_malloc也被使用。因此它们在功能上似乎并不相同。

不幸的是没有文档。任何人都可以从以下头文件中做出有根据的猜测吗?

#ifndef __MEM_H__
#define __MEM_H__

//void *pvPortMalloc( size_t xWantedSize );
//void vPortFree( void *pv );
//void *pvPortZalloc(size_t size);

#define os_malloc   pvPortMalloc
#define os_free     vPortFree
#define os_zalloc   pvPortZalloc

#endif

Since os_zalloc是一个宏,定义在 mem.h 中给出,更好的问题是关于什么pvPortZalloc does.

给定函数名称pvPortMalloc, vPortFree and pvPortZalloc看起来正在使用的操作系统是 FreeRTOS(或其商业许可的等效 OpenRTOS),该操作系统已记录在案 - 尽管没有具体说明pvPortZalloc,但如果不简单的话那就奇怪了分配和零初始化- 例如,这就是它的意思here http://w1.fi/wpa_supplicant/devel/os_8h.html#aa3941c5693466d194ef568dfe2f299e6。这些函数是 FreeRTOS 目标移植层的一部分,通常不会由应用程序级别调用,但我想这里宏包装器用于访问应用程序用户的移植层代码,而不是编写两次。

在 RTOS 内核中,需要 RTOS 感知的动态内存分配函数来确保线程安全,尽管某些标准库实现包括使用 RTOS 互斥调用实现的线程安全存根,这是自现有库和 C++ 以来更好的方法new/delete可以更方便地使用。

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

嵌入式编程中的zalloc是什么? 的相关文章

  • 是否有与 SQL Server newsequentialid() 等效的 .NET

    我们使用 GUID 作为主键 您知道默认情况下它是集群的 将新行插入表中时 它将插入表中的随机页 因为 GUID 是随机的 这会对性能产生可衡量的影响 因为数据库始终会分割数据页 碎片 但我使用顺序 GUID 的主要原因是因为我希望将新行插
  • C++ 中的可变参数函数声明中省略了逗号

    我习惯于这样声明可变参数函数 int f int n 读书时C 编程语言我发现书中的声明省略了逗号 int f int n the comma has been omitted 这个语法似乎是 C 特定的 因为当我尝试使用 C 编译器编译它
  • 将整数四舍五入到最接近的 10 倍数[重复]

    这个问题在这里已经有答案了 我想弄清楚如何对价格进行四舍五入 双向 例如 Round down 43 becomes 40 143 becomes 140 1433 becomes 1430 Round up 43 becomes 50 1
  • CRTP 能否完全取代小型设计的虚拟功能?

    Is CRTP http en wikipedia org wiki Curiously recurring template pattern有足够的能力智胜virtual功能齐全 我认为 CRTP 的唯一缺点是为每个重复模式生成大量代码
  • LockBits 性能关键代码

    我有一个方法需要尽可能快 它使用不安全的内存指针 这是我第一次尝试这种类型的编码 所以我知道它可能会更快
  • 如何从 UNC 中提取服务器名称

    谁能告诉我如何从 UNC 中提取服务器名称 ex 服务器名称 目录 目录 编辑 我很抱歉 但看起来我需要澄清一个错误 路径实际上更像是 服务器名 d 目录 我知道这可能会改变一些事情 怎么样Uri Uri uri new Uri serve
  • g++.exe 和 x86_64-w64-mingw32-g++.exe 有什么区别?

    同样的问题也适用于 gcc ar 等 在 Code Blocks 中将工具链可执行文件从 Something exe 更改为 x86 64 w64 mingw32 something exe 时 代码仍然可以完美编译 此外 32 位和 64
  • 如何获取字符串宽度

    我需要在类库中构建一个函数 该函数接受一个字符串和该字符串的特定字体 然后获取字符串的宽度 那么我怎样才能得到字符串边界宽度呢 另一种方法是使用TextRenderer 并致电its MeasureString http msdn micr
  • Python NET 调用具有返回值和输出参数的 C# 方法

    我有以下静态 C 方法 public static bool TryParse string s out double result 我想使用 Python NET 包从 Python 调用它 import clr from System
  • 一个阻塞但非模态的 QDialog?

    我有一堆图像 我想对其执行一些操作 处理完每个图像后 我的程序应该弹出一个对话框 提示用户是否要继续处理下一个图像或中止 在此之前 他们应该有机会对图像或参数进行一些手动更改 无论如何 他们必须能够访问应用程序的窗口 而调用对话框的方法的执
  • 您在 C# 或 .NET 中见过的最奇怪的极端情况是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在javascript中调用c#函数[重复]

    这个问题在这里已经有答案了 可能的重复 从 Javascript 调用 ASP NET 函数 https stackoverflow com questions 3713 call asp net function from javascr
  • 如何将焦点设置到 Windows 窗体应用程序中的控件?

    在 Windows 窗体应用程序中 when我是否编写代码以在应用程序启动时以及随后调用函数后将焦点设置到控件 例如 如果我有一个 DropDownList 一个 TextBox 和四个按钮 并且我希望将 Focus 设置为 DropDow
  • invoke_result获取模板成员函数的返回类型

    如何获取模板成员函数的结果类型 下面的最小示例说明了该问题 include
  • 创建 .ICS 文件,添加到 Outlook

    我正在创建一个简单的应用程序 允许用户下载 ICS 文件 并将其导入到他们选择的日历应用程序 站点中 我对创建过程感到满意 但对在 Outlook 中打开它们有疑问 将使用C ASP NET进行开发 当我打开一个日历时 它会添加一个新日历
  • 从 WMI 运行 exe 时的网络身份验证

    我有一个 C exe 需要使用 WMI 运行并访问网络共享 但是 当我访问共享时 我收到 UnauthorizedAccessException 如果我直接运行 exe 则可以访问共享 我在这两种情况下都使用相同的用户帐户 我的应用程序有两
  • 自定义编译器警告

    在 Net 中使用 ObsoleteAtribute 时 它 会向您发出编译器警告 告诉您该对象 方法 属性已过时 应使用其他内容 我目前正在从事一个需要大量重构前员工代码的项目 我想编写一个自定义属性 可用于标记方法或属性 这些方法或属性
  • 为什么这些双精度数的返回值为-1.#IND?

    I have double score cvMatchContourTrees CT1 CT2 CV CONTOUR TREES MATCH I1 0 0 cout lt
  • 在 Qt C++ 中使用多个键

    我正在构建 坦克 游戏 我使用关键事件在地图上运行我的坦克 实际上我当时只能使用一把钥匙 但我需要有能力去完成任务 同时向上和离开 这是我的单键事件代码 switch event gt key case Qt Key Up if ui gt
  • 使用 std::set 时重载运算符<

    这是我第一次使用 std set 容器 并且我对操作符 std less 遇到了问题 我声明该集合 std set

随机推荐

  • Java:从方法调用返回两个整数

    我在处理大量二维坐标的代码中经常这样做 int getSize int res gridRows gridColumns return res 我知道我可以定义一个小类并获得类型安全 但我没有这样做 因为在它自己的小琐碎 java 文件中拥
  • C 多个单行声明

    当我在一行上声明多个变量时会发生什么 例如 int x y z 全部都是整数 问题是下面语句中的 y 和 z 是什么 int x y z 都是int指针吗 Only x是一个指向 int 的指针 y and z是常规整数 这是 C 声明语法
  • 停止系统中的所有参与者而不关闭系统本身?

    在Akka 2 0中 有没有一个好的方法来关闭 user路径下的所有actor 例如 假设我执行以下操作 val system ActorSystem create mySystem system actorOf Props new MyA
  • 对 UIView 的 CoreGraphics/drawRect 内容进行动画处理

    是否可以制作动画UIView的 CoreGraphics 内容 说我有一个UIView子类称为MyView实现了drawRect 像这样的方法 void drawRect CGRect rect CGContextRef c UIGraph
  • 如何将 Google 图表集成为 AngularJs 指令?

    有一些将 Google 图表集成为 AngularJs 指令的示例 像这个 http plnkr co edit YzwjuU p preview http plnkr co edit YzwjuU p preview Update 我想避
  • 为什么我的代码没有向标准输出打印任何内容? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试计算学生的平均分 impo
  • 如何获取角度形式数组中更改项目的索引

    我正在使用带有反应形式的 Angular 4 我有一个表单数组 我试图将其绑定到我在组件中跟踪的数组 我使用反应式表单 这样我就可以进行验证 所以我不想使用模板表单方法 我将项目添加到表单数组中 如下所示 createFormWithMod
  • 有没有办法用静态 OpenSSL 构建静态 Qt?

    原始问题略有不同 但属于更主要问题的一部分 我正在尝试在 Windows 上使用静态 OpenSSL 将 Qt 5 2 构建为静态 我的最终目标是发送单个二进制文件无需提供 libeay32 dll 和 ssleay32 dll 然而 在我
  • 角度异步等待中的单元测试位置

    我使用 Angular 9 与 karma 测试运行器和 jasmine 测试框架进行单元测试 我只想进行单元测试app component其中有一个依赖注入 app component ts import Component Embedd
  • HTML5 Canvas - 用图像填充圆圈

    如何在圆内绘制图像 如果我做 context beginPath context arc e pageX e pageY 161 0 Math PI 2 true context closePath 然后我如何使用 fill 用我绘制的图像
  • 为组合 ggplots 添加通用图例

    我有两个水平对齐的 ggplotsgrid arrange 我浏览了很多论坛帖子 但我尝试的所有命令似乎现在都已更新并命名为其他名称 我的数据如下所示 Data plot 1 axis1 axis2 group1 0 212201 0 35
  • Django:找出菜单中已选择的项目

    我确信我以前在 Stack Overflow 上见过这个问题 但我找不到它 所以这里什么也没有 我有一个普通的 Django 菜单 它使用 url 菜单项的标签和静态名称 现在我想为已选择的菜单项设置不同的样式 但是菜单是在基本模板中渲染的
  • Objective-C HashMap 等效项

    我正在尝试转换一段使用 HashMap 的 Java 代码 其中包含一个对象作为键 一个对象包含一个值 private static HashMap
  • zfcuser 注册后添加用户角色

    我使用 Zend Framework 2 以及 ZfcUser BjyAuthorize 和 Doctrine 作为数据库 到目前为止 注册等工作进展顺利 我的问题是 注册用户没有分配角色 所以我想在注册过程中向用户添加角色 用户 我想我可
  • 如何在 Windows 上禁用调试断言对话框?

    我有一堆以批处理模式运行的单元测试 有时 Visual C 库发出的调试断言会导致崩溃 这会弹出一个对话框 并且单元测试停止运行 直到我单击 确定 关闭对话框 如何让 C 程序在遇到断言时崩溃 就像在 Linux 上一样 而不是弹出烦人的对
  • Angular Elements - 未捕获类型错误:无法构造“HTMLElement”

    我一直在尝试让 Angular 元素组件正常工作 因为我正在考虑在即将到来的项目中使用它们 我已经遵循了许多教程 都非常相似 但无法让它们工作 其中一个教程是this one https www techiediaries com angu
  • tomcat后台线程

    我有一个正在运行的 tomcat 6 20 实例 并且想通过后台线程发送电子邮件以防止电子邮件发送功能阻止请求 有什么方法可以在后台执行线程 同时仍然允许正常的页面流发生 该应用程序是用 ICEfaces 编写的 Thanks 创建一个Ex
  • Maven Mojo 映射复杂对象

    我正在尝试编写一个 Maven 插件 包括 mvn 配置参数中自定义类的映射 有谁知道等效的 Person 类会是什么样子 http maven apache org guides mini guide configuring plugin
  • ld:未找到架构 x86_64 的符号

    并感谢您提前提供的所有帮助 我是 C C 新手 正在通过深入学习来自学 我正在尝试编写一个共享 静态 不确定区别 库并编写一个简单的程序来使用该库 我可能没有以最有效的方式做这件事 如果是Python 我一周前就完成了这个项目 但我更关心的
  • 嵌入式编程中的zalloc是什么?

    我正在研究对 ESP8266 串行 WiFi 芯片进行编程 在其 SDK 示例中 它广泛使用了一个名为os zalloc我期望的地方malloc 不过偶尔 os malloc也被使用 因此它们在功能上似乎并不相同 不幸的是没有文档 任何人都