2026/4/18 4:13:11
网站建设
项目流程
做直播哪个网站好,做网址的公司,最新公司起名大全免费,网站不备案可以做百度竞价吗来源#xff1a;公众号【鱼鹰谈单片机】作者#xff1a;鱼鹰OspreyID #xff1a;emOsprey大家好#xff0c;我是鱼鹰。最近鱼鹰遇到一个比较奇葩的事情#xff0c;聊聊#xff0c;让大家避避坑。鱼鹰在 yocto 下编译的 STM32H7 程序升级到机器上时#xff0c;SPI 通信…来源公众号【鱼鹰谈单片机】作者鱼鹰OspreyID emOsprey大家好我是鱼鹰。最近鱼鹰遇到一个比较奇葩的事情聊聊让大家避避坑。鱼鹰在 yocto 下编译的 STM32H7 程序升级到机器上时SPI 通信异常在两个同事电脑上编译的运行正常不过没有使用 yocto 编译环境。这让鱼鹰很纳闷一时半会没明白为什么。使用 git log 对比了主仓库节点、子仓库节点都是一样的。没道理......于是鱼鹰想从 map 和 bin 文件入手对比差异发现两个 bin 和 map 差异比较大不太好比较。因为如果交叉编译工具链和有些文件的特性如添加编译时间确实会导致 map 和 bin 有些差异。实在没办法只能上调试工具了。自己的坑无论如何也要填上。事实证明在线调试永远是第一开发利器不接受反驳。除了搭建调试环境废了一点时间定位问题只花了几分钟就搞定了。调试发现spi 相关的函数被我以前因为某种原因屏蔽了。另外还有几个文件都有修改因此导致最终的 bin 文件功能不正常。当时鱼鹰在查看节点时只看了 git log 的信息主仓库因为使用 vscode 可以很好的查看仓库的文件修改情况但是子仓库却没那么容易特别是这个子仓库和主仓库属于同一级目录。因此如果当时查看模块时能使用 git status 确认就不会遇到这个坑了。其实这个坑很早就埋下了鱼鹰在更新子仓库时使用的是 git pull 命令 这个命令可以拉取库上最新的提交代码如果你没在当前分支提交任何内容只是保持和远端提交一致的话即使你工作空间的文件有改动也不会有任何提示从 git log 看就是拉取远程代码正常节点正常。这个特性可以在我们修改一些代码时不需要特意暂存这些修改方便开发但如果像鱼鹰一样疏忽大意只看节点git log不看状态git status的话就会踩坑。希望鱼鹰本次踩坑经验对大家有所帮助。下次再见。