背景:
公司原本只在一个平台(海思)做开发,前同事写的代码是直接调海思 sdk 接口,然后在同一个函数里完成功能,现在要迁移到另一个平台上并且原本海思平台还是要继续维护,所以我把代码重构了,现在大概分成了 app/device 这样子。
问题:
现在代码重构好了,但是我之前没有维护跨平台应用的经验,不知道接下来该怎么搞,自己埋头大概想了想,由于两个平台的依赖库也不尽相同,想着以如下的目录去维护:
/myproject
--/app 这个目录下存放与平台无关的业务代码,最终可执行文件也生成在这里
--/device 这个目录下存放不同平台的接口操作代码,对外提供统一的接口
--/platform1
--/platform2
--/libs 存放不同平台的依赖库
--/platform1
--/platform2
其中 device 单独编译生成.so 动态库。然后修改 app 下的 makefile ,在编译 app 的时候,根据 make 传参确定平台,选择对应的 device 和 libs 中的库文件进行链接。
目前是计划这样做,还没有着手,想请教一下,这样做是否合理?各位平常对于这样的项目是怎么处理的?
1
lixile 2022-06-15 19:54:03 +08:00 1
目录划分大体思路跟你说的一致
主要是抽象出硬件层 对外提供统一接口 也就是你说的 /device 一般可能还有 也许会封装通信层 因为 32 64 会有为了性能 可能部分通信数据有差异 所以我有见过额外抽象出通信层的 在嵌入式来说 还是有可能 /app 无法彻底区分嵌入式平台 需要额外编译宏控制 |