Kaiyun(中国)官方网站-体育专属平台

2024年大数据最全(9)存储和EEPROM管理_eeprom分区存储(1)为什么大数据开发能最好地改变开发-Kaiyun体育|官方入口
新闻中心 分类
2024年大数据最全(9)存储和EEPROM管理_eeprom分区存储(1)为什么大数据开发能最好地改变开发

  一个人可以走的很快但一群人才能走的更远不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人都欢迎加入我们的的圈子技术交流、学习资源、职场吐槽、大厂内推、面试辅导让我们一起学习成长

  可用的存储空间大小是在AP_HAL/AP_HAL_Boards.h的宏 HAL_STORAGE_SIZE 中设置的。这意味着我们还不支持动态地确定这个接口的可用存储空间的大小。如果你想动态确定存储空间的大小目前你需要使用 Posix IO。

  我很想知道在我把这个练习添加到教程中后多久才会有提交…

  去读一下libraries/StorageManager/StorageManager.cpp。特别是看一下顶部的表格。注意到每种类型的多个区域是如何为拥有较大存储量的系统定义的。这种将多个不相邻的存储区域合并为一个逻辑存储区域的能力是添加 StorageManager 的主要动机。它使我们能够从使用所有板上的4k存储空间发展到使用每个板上的全部存储空间而不要求用户重新加载所有的参数或重新加载他们的航点。

  这种试图避免让用户重新配置他们的自动驾驶仪主板的主题是 ArduPilot 中常见的。我们喜欢用户能够更新到最新的固件而且他们之前设置的一切都能正常工作同时获得新的功能。有时这意味着我们作为开发者必须做更多的工作来使之成为可能—例如发生在 StorageManager 上的情况。

  StorageManager API 还提供了方便的函数来读写整数等变量。像 AP_Mission 这样的程序库就是用这个 API 来保存和恢复航点的。

  在你的板子上试试 StorageTest但要注意这是一个破坏性的测试。它不会破坏你的板子但会清除你所有的参数和航点。所以如果你在你最喜欢的飞机上测试电路板请备份你的配置。

  自动驾驶仪需要的另一种存储方式是用于机载日志。对于 ArduPilot 来说这是由 DataFlash 库提供的。在很多方面这是一个相当奇怪的库。首先它的名字很奇怪来自于它最初是围绕 APM1 的 DataFlash 芯片设计的。它是一个硬件设备驱动库随着时间的推移演变成了一个通用的日志系统。在内部这个库的结构从几个方面显示了这个历史而且不是好的方面。

  如今DataFlash 的 API 是围绕着一个日志基础设施模型设计的。它允许你为个别的日志信息定义自我描述的数据结构—比如一个 GPS信息来记录 GPS 传感器的数据。它以一种有效的方式处理将数据记录到永久性存储中并且还为其他库提供了 API当用户在飞行后想要下载他们的日志文件时可以使用这些 API 将数据取回。

  如果你看过 ArduPilot 现在下载日志时使用的’*.bin’文件那么你已经看到 ArduPilot 用来存储日志信息的格式。它是自我描述的这意味着地面站可以计算出日志文件中信息的格式而不需要有一些共同的方案。在每个日志文件的前面是一组 FMT 信息它有一个众所周知的格式并且描述了后面信息的格式。

  在像 APM2 这样的板子上事情就没那么简单了。APM2 的 DataFlash 芯片上有4兆字节的存储空间可以通过 SPI 接口访问。该接口本身是面向页面的所以你需要填充一个 512 字节或者可能是 528 字节的页面然后告诉芯片将该页面复制到永久性存储同时填充下一个页面。在这个 DataFlash 上做随机的 IO 不是很好—它是为那些需要连续写入的代码而设计的这就是日志记录时发生的情况。与自动驾驶仪喜欢记录的数据量相比4兆字节的大小线c;所以我们也需要在它填满时处理包装。

  所有这些复杂的东西都隐藏在一个 API 的背后这个 API 提出了 日志编号的概念这只是在自动驾驶仪的一次飞行中写入的一堆字节。APM1 和 APM2 上的 DataFlash 实现在每个页面的前面使用小标记字节来表示正在写入的日志编号。这些日志编号与用户要求检索其日志时下载的日志编号相对应。

  Kaiyun(开云)体育官方网站

  你必须只从 IO 定时器或你自己的低优先级线程中调用 IO 函数

  不要从库中可直接访问的 API 调用任何 IO 函数。即使是像 stat() 这样简单的函数也不行

  尽量对慢速存储卡友好在合理大小的块中进行 IO并尽可能避免搜索。

  既有适合小白学习的零基础资料也有适合3年以上经验的小伙伴深入学习提升的进阶课程涵盖了95%以上大数据知识点线;

  由于文件比较多这里只是将部分目录截图出来全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线c;并且后续会持续更新

  多这里只是将部分目录截图出来全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线c;并且后续会持续更新**

  2024年大数据最全(9)存储和EEPROM管理_eeprom 分区存储(1),为什么大数据开发能最好地改变大数据开发

  之所以有这个非常简单的 API,是因为我们鼓励开发者使用 StorageManager API 而不是 hal.storage。你应该只在建立新板或调试时才深入研究 hal.storage。可用的存储空间大小是在的宏 HAL_STORAGE_SIZE 中设置的。这意味着我们还不支持动态地确定这个接口的可用存储空间的大小。如果你想动态确定存储空间的大小,目前你需要使用 Posix IO。我们没有 AP_HAL::Storage API 的示例概述,所以这是你写一个的机会。

  最全数据湖Iceberg、Hudi和Paimon比较_数据湖框架对比(1),2024年最新Jetpack-MVVM高频提问和解答

  最全ES学习日记(一)-------单节点安装启动_es 单节点运行启动命令(1),字节跳动超高难度三面大数据开发程序员面经

  普通网友:优质好文,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  普通网友:支持一下,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  普通网友:大佬的文章写的太精辟了 让我深刻了解了这篇文章的精髓 谢谢大佬分享,希望继续创作优质博文。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  普通网友:写的很详细,感谢博主的分享。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  普通网友:大佬高质量文章,图文并茂,逻辑清晰,受益匪浅,期待大佬新作。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  最全数据结构--二叉树_#include 二叉树,2024年最新想搞定大厂面试官

  最全数据结构--二叉树_#include 二叉树(4),2024年最新10天拿到字节跳动大数据开发岗位offer

  最全数据结构 后缀表达式【深入剖析堆栈原理】_后缀表达式原理(2),2024年最新看完你还觉得算法不重要