吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 541|回复: 0
收起左侧

[学习记录] SubModule子模块设计

[复制链接]
vtor 发表于 2022-9-25 15:20
本帖最后由 vtor 于 2022-9-26 00:41 编辑

【SubModule子模块设计】
视频讲解链接:
https://www.bilibili.com/video/BV1Ze4y167iH
【伪钞vtor】【2022年09月24日】
image.png
【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】





发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 08:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表