技术专栏
基于海思wifi平台Hi3861开发(2) -- SDK开发篇
背景
上篇说到开发Hi3861平台时搭建编译环境的一些坑,点这里可以直达回顾。在稍微放松过后,开始下一步工作,SDK的开发。这里的经历也是坎坷曲奇,山回路转~
又一坑
1. 开发appSDK
- 要知道,在linux下编译通常需要执行shell脚本或者是py脚本让SDK自行去编译。那么我们自己开发的SDK适配进原有工程,也是需要做相应配置才能在编译时被链接进去的。
找对指导文档 - 在Hi3861平台中编译使用的命令是
./build.sh all
,可以看出来执行了一个shell脚本,但实际上此文件中调用了\build\scripts\common_env.py
文件来进行编译文件的链接等工作。 - 我首先是在app中(大多数情况下我们只需要开发官方SDK下的app实现功能)开发一版SDK,主要指导文档如下图:
PS:当时文档这么多没仔细查找,就看到了SDK开发指南,真正关键的内容在下面的《第三方软件移植指南》,花了好多时间… …o(╥﹏╥)o,一定要仔细看文档有没有问题的解决方案啊~~
- 在通过
common_env.py
生成源码的库之后,文档中具指导意义的就是《第三方软件 移植指南》的1.3.1小节的阐述,说明了如何将第三方的库文件编译进SDK工程,如下图: - 我是把库文件.a直接放在build/libs下的,编译可以通过,正在看的朋友可以尝试文档说到的另一种方式 —— 复制到app工程目录下,修改app.json文件,文档中步骤很清晰,建议多多尝试。
新增编译必需文件 - 有了编译环境配置,但还需要让配置中的参数找到相应文件的位置,这时还需要在源码目录下加入SConscript文件,并在SDK根目录下添加三个文件,我还打开文件看了看,发现有些src和inc的路径是对应其当前目录的,对比了官方移植的hilink模块也是如此,以为一定需要在
module_config.mk
添加当前src和inc目录的路径,如下图。 ε=(´ο`*)))唉,后来发现压根不用修改这些地方,着实走了些弯路。后证实,只需要把文件放入目录中,在下方【修改py文件】一节说明的py文件中添加那些参数配置编译就可以通过。
修改py文件 - 根据文档可以得知需要修改的位置在
common_env.py
中的compile_module,module_dir,proj_lib_cfg和common_inc_path,如下图位置:
- 具体怎么回事,可以参考《第三方软件 移植指南》的1.2节步骤5即可明白。
- 这些步骤都做了,基本上app中开发的SDK不管是源码还是库文件,都可以编译通过使用了。
2. 开发bootSDK
- 这次项目中让人头疼的还是boot开发,虽说文档中有boot相关的文档,但说实话帮助不大,都是一些boot流程介绍和编译boot的bin文件说明与指导内容,API参考也是Flash和官方boot的接口。
仅有的文档
新增编译必需文件
源码目录中新增与app工程同样操作的三个文件
修改py文件 - 我进行的是boot中的新增SDK开发,也就是同样需要解决上面说到的修改编译配置文件的问题,想着应该跟app差不多吧,那就依葫芦画瓢做一遍咯,复制粘贴… …修改,编译… …嗯,不出所料地出错了
【boot依照app的第三方源码移植后,编译错误截图】 - 看来跟app不是一个样啊,于是我多次尝试,最终把自己的源码作为boot的源码放在flashboot目录下,在py中添加了源码路径,如图:
PS:这里需要注意的是boot中,src和inc一定要在同一目录中,而不能像app一样分src和inc目录再分别存放源文件和头文件。(我尝试分开后在py中配置好路径,但似乎boot还是找不到分开的头文件在哪)
- 好消息是编译可以通过了,源码中的函数可以得到调用
- 坏消息是打包成库后,这么做就不行了… … 做法依照app工程,编译不通过,始终提示找不到函数的定义,也就是库没有被boot找到。
【boot源码成库后,编译错误截图】
推测build/libs
目录中只能放app工程的链接库,boot的库应该放在别处,或者在什么文件中被配置路径等才能编译进工程。- boot不支持用库链接进工程 (⊙_⊙)?
- 2是不存在的,还有个我没想到的方法(⊙o⊙)…
- 希望看到这里的朋友如果有思路的可以提醒一下,让咱都涨涨姿势~~ 谢谢呀
— – — – — – — – — – 2020.09.28 更新 — – — – — – — – — –
海思支持
- 上述boot链接库出现的问题反馈给海思的支持之后,经过漫漫等待终于在一个月后得到了解决的答复,看来是原先的工程中压根不支持链接第三方库到boot的操作,以后的版本中就都支持了。上图:
- 图中提到的附件patch文件已上传 —— 点击直达,我使用基于020的官方SDK,有需要的可以先拿走,后续海思SDK中应该都支持了。
- 到此,在Hi3861上第三方SDK开发我所遇到的问题都已记录完毕,希望帮助到各位。
————————————————
版权声明:本文为CSDN博主「泊云_Kevin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/emmy_kanly/article/details/107742781
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:3879次2021-12-03 16:40:57
-
浏览量:1695次2023-04-19 09:05:44
-
浏览量:9338次2020-12-08 19:45:14
-
浏览量:7180次2018-06-14 23:13:10
-
浏览量:1715次2023-04-19 09:06:21
-
浏览量:4618次2021-08-25 13:48:29
-
浏览量:786次2023-10-23 18:45:16
-
浏览量:2013次2021-12-07 09:35:55
-
浏览量:9068次2020-12-15 21:43:52
-
浏览量:5728次2021-06-28 13:41:26
-
浏览量:4476次2021-09-23 13:51:06
-
浏览量:4101次2021-07-09 13:47:54
-
浏览量:3324次2022-01-31 09:00:24
-
浏览量:4712次2021-09-07 13:36:59
-
浏览量:6207次2021-09-14 13:51:27
-
浏览量:905次2023-10-26 15:06:55
-
浏览量:9390次2018-06-02 19:08:30
-
浏览量:3469次2020-07-27 15:12:15
-
浏览量:2306次2020-08-30 12:39:35
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
来自远方
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注