zhuimeng0101 发表于 2024-7-15 09:11:09

ardupilot 日志系统移植​


上一篇推文《ardupilot 日志文件解析》中表述了日志文件的构成。
本篇推文用 C 语言来做一个简单的 ardupilot 日志系统移植 demo。
(使用“潘多拉”开发板上 spi 模式的 MicroSD 卡槽)
“解码格式”结构体数组


这部分与 ardupilot 的源码结构一致。


初始化时,将解码格式写入文件首部



C语言形式封装一个测试函数


到这里,已经完成了 80% 的工作。
什么?原来这个日志系统就这么点儿代码?
不要怀疑,真的就是这么简单。



看看还差点啥


日志系统函数都有了,怎么写到 SD 卡上呢?

简单,用 FatFS 实验上面的 WriteBlock() 接口就行了。

一个函数就搞定。




放 main() 函数里跑一下试试。

用 CubeMX 的一看下图里的注释就知道是在 main() 的哪个地方,我就不截全图了。



看一下头文件,看看能不能找到 ardupilot 的感觉



总结

本篇就先简单的写到这里,后面我会用这个日志存些有用的数据,到时候代码就多起来了。
给宝宝装了个小车,后面把日志用在这个小车上,上 RT-Thread 操作系统。边玩边学代码。

http://static.video.qq.com/TPout.swf?vid=e09055ksguu&1314.swf
PS


上一篇说得那么牛的 ardupilot 日志系统,移植过来就这么几行代码,轻松不轻松?

ardupilot 代码虽然长,但构架非常清晰。

经常是好几种功能都打一个套路。

程咬金最拿手的三板斧使了一辈子,ardupilot 代码构架优秀简单又实用,就跟程咬金那三板斧似的。

看代码首先看的不是函数怎么实现功能的,而是看函数实现的是什么功能。尤其是看开源代码,量大、功能多,要拎清各个功能之间的区别和联系才能看得懂。

本篇 demo 的 github 地址:

https://github.com/code-structure-train/sdcard_pandora

关注作者

欢迎扫码关注我的公众号MultiMCU EDU。

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。
页: [1]
查看完整版本: ardupilot 日志系统移植​