大半夜的,有点感概,忍不住写下来!
在15年底写了《BOOTLOADER开发趣事。你正在做的东西,说不准这个世界某个角落也有人在干同样的事情》这写的是我第一代的bootloader,后来觉得不满意,在2018年4月开始开发第二代bootloader,可以看我的 bootloader专题 ,当时的计划截图如下:
。
今天又发生了相同的事情,这次就更彻底了。
起因是刚刚我在安富莱公众号刷到一篇安富莱的帖子,电脑版链接如下:
《[BOOT/IAP] 功能资料比较全面的开源Bootloader OpenBLT,支持USB,CAN,232和TCP/IP(2020-07-28)》,一看内容,有点意思了,怎么感觉和我的开发思路相差无几啊。
(1)OpenBLT支持USB/CAN/TCPIP/RS232,而我的bootloader除了不支持USB别的都支持(因为我一直觉得USB不够“工业”)
(2)OpenBLT支持固件加密和整体校验,我的boot loader也是如此。
(3)OpenBLT支持主从网关,我的不支持,我当时也想过这个事情,最后放弃了,因为觉得给别人用的话,操作容易出问题。
(4)都用了XCP,这个是最大的相同地方了。我是在这篇文章里《节奏转换就是这么快,我打算放弃CCP,转向UDS的bootloader了!》转向XCP的。
(5)OpenBLT的net用的uip,我用的lwip。
(6)我的自动分配节点《BL 自动分配节点地址》和ram运行驱动《STM32 RAM 运行code 链接收集》是OpenBLT没有的。
(7)OpenBLT加载的不是hex,好像是摩托罗拉,而我加载的是HEX
(8)OpenBLT上位机开发环境与我用的不一样。
(9)github看了一下,这哥们是2011年就看是开发的。而我是2018年才开始我的第二代boot loader的。
下载了OpenBLT,代码质量真的很高(我所谓的质量高就是代码简单,一眼看懂,我比较喜欢这种代码,希望看到这篇文章的读者(尤其初学者能好好看看这个OpenBLT代码)
可惜直到今天才知道OpenBLT,要不然我开发我的二代bootloader肯定会多少借鉴一点吧。不过也不算遗憾,我对我的二代bootloader非常满意,至少自己用起来不错,甚至大部分场合都不用jink调代码了,直接用我的二代boot loader刷代码。用户体验上击败OpenBLT应该问题不大。
总之bootloader开发(既有PC界面又有单片机开发)费脑力又费体力,反正我以后再也不会花大把时间开发PC界面了,太煎熬了,易用又稳定真的好难!
OpenBLT的作者花在这个bootloader时间估计比我多得多。
好的作品都是时间堆起来的!
来源:oschina
链接:https://my.oschina.net/u/4418383/blog/4458249