好友
阅读权限10
听众
最后登录1970-1-1
|
vtor
发表于 2022-9-25 15:20
本帖最后由 vtor 于 2022-9-26 00:41 编辑
【SubModule子模块设计】
视频讲解链接:
https://www.bilibili.com/video/BV1Ze4y167iH
【伪钞vtor】【2022年09月24日】
【01】序
【01】【01】学习前提
靡不有初鲜克有终,望诸君砥砺前行
看懂此设计需要掌握最基本的git操作
(主要是pull,push,commit,clone等)
文件操作(复制粘贴重命名等)
【01】【02】学习结果
你将学会如何将何为模块,如何模块化,git绑定子模块
【01】【03】创作声明
此设计(包括但不限于文字,图片,视频,思路)
(以下简称“本设计”)为【伪钞vtor】创作,转载请注明出处
本设计并不完全遵循某些设计,而是加入了自己的想法
或因受限于本人知识,或因时代与技术进步,
本设计内容难免有纰漏或错误,望各位批评指正。
本设计发布于博客园(主要),吾爱论坛,哔哩哔哩,
伪钞杂货铺微信公众号,知乎,开源中国,影子论坛(待定)等
博客园会保持最新,其他平台只会发布一次,不会再次更新
如需讨论,请去博客园(或者使用邮箱(qq)联系)
【02】何为子模块
通俗来讲,能代码复用的就叫子模块
比如上次的VtorMenu,我可以在新的平台,
上使用旧的代码,少量的修改,就能够正常稳定运行
比如stm32连接tft屏幕进行显示
比如exp上使用oled(应该下期视频就会用到)
【03】如何子模块化
上回书说到想将VtorMenu多级菜单模块化
https://gitee.com/vtor3478/diaan/
这期视频不就来了吗
https://gitee.com/vtor3478/vtor_menu/
在子模块中,可能有一部分依赖工程的函数
在以往的做法中,是将实现方法放在工程中
再在初始化子模块时,
将方法作为指针传入到子模块中实现晚绑定
优点是非常遵循
缺点是需要设计传参接口,使用困难
在本例中,将实现方法与子模块绑定
然后通过工程宏去实现的底层方法
优点是操作简单,
缺点是随着调用的越来越多,子模块会越来越大
【04】子模块操作
视频详见【哔哩哔哩】,搜索【SubModule子模块设计】
gitee上新建仓库,以oled为例,工程名为oled
复制git链接
先将工程内oled文件夹移动到外部,重命名为【oled-bak】
再进行git clone,填入oled git 链接
将文件从【oled-bak】移动到【oled】文件夹中,
commit并新增文件
在工程中删除oled文件,并commit确认删除
工程文件夹内summodule add刚刚的oled git链接
并确认ide能正常编译
再将依赖于实现的方法放到新建的【oled_user.c】中
本例子使用的开发环境是基于eclipse的stm32cubeide
不同的ide可能在更新工程文件时操作略有不同
这样,以后oled内容有变化时,能直接更新子模块
其他绑定此子模块的工程也能用上最新的子模块
【05】尾
【SubModule子模块设计】
【伪钞vtor】【20220924】
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|