本帖最后由 洁月明 于 2022-2-23 21:53 编辑
#申请原创# PS:这是年前1.16未完成的草稿,今天准备完结了,开始进入深入的开发学习,并实现某些功能,年前忙活的一直顾不上,过个年休整好了,我们继续吧!新的一年,祝大家虎虎生威!
这是平头哥RVB2601开发板使用连续贴,接上回留下的问题继续。这两天也没有大神关注到留言,所以靠谁不如靠自己,来吧!(想看开箱试用,看demo效果的步骤可以点击以下链接:https://bbs.21ic.com/forum.php?mod=viewthread&tid=3192270&page=1#pid12560780)
首先,我们来解决一下第一个疑问:疑问1:就是那个直接下载的SDK demo如何配置联网去下载支持包,我发现就是没有package支持包?
这个是我随便打开的一个HelloWord的demo,点一下packages左边的三角,会看到下图中的1所示,SDK_chip_ch2601右边有一个红色问号,你右击它发现第一个下载的选项是灰色的不能点击(刚忘记截图了,一会直接看下边的可以点击的截图),若直接编译后首先是一个弹窗,如图一所示。然后如下图2的图中2、3所示找不到aos目录下的一些头文件,并在编辑窗口用红色箭头提示出来。
图一 图二
这种问题怎么解决呢,我看论坛里也有解决办法,但都比这种方法麻烦一点,我们怎么做呢,说到底就是没有在workspace下打开工程导致的,那么我们操作完以上步骤以后就是关闭工程,会提示你保存工程,其实在我们打开工程的时候CDK默认为我们建立了以工程名称为工作空间的文件,如图三红线所示,我们重新打开新生成的.cdkws文件,会发现刚才不能点击download项可以点击了,如图四所示。
图三 图四
单击下载,会弹出这个窗口,如图五所示。注意这个就是下载的文件路径,以后在缺你就按他的提示,手动把workspace里的package路径转到你下载的文件夹所在位置,或者把下载好的文件提到一个独立的文件夹,以后所有的路径都指向哪里。
图五
好吧,随便打开的demo还是不太友好,他还缺一个组件,如图六所示,和我之前的操作不一样了,我用的demo是不缺的,看来每个demo也不太一样,等下我看怎么添加最方便。
图六
我先继续吧,这次提笔不能搁浅。我继续说,等我解决了重新更新进来,不用等了,我刚看了一下,如图七所示,单击第二项详细信息,就会看到welcome页面显示的下载按钮,如图八所示。
图七 图八
很醒目的下载组件按钮,如图八中红色圈圈所示,下载完所需的文件,基本就ok了,出现cli组件没有v7.4.3版本,应该是后台的问题,今天(1.17)看到有人反映了,现在没问题了,再次编译,过个几分钟就会0 error/0 wrong了,就可以下载看效果了。这样找不到aos相关文件的问题就解决了,当然这种方法我建议你在创建你自己的程序基本框架的时候,如果有使用到的demo功能,可以在demo的基础上进行一次这个操作,不要每个demo都这干,因为下载的东西都是重复的,很占内存,这只是一种便捷的方式,省的你一步步自己去搭建了。如果想自己一点点从头到尾搭建也是可以的,就是费时一点,可以参考我上个帖子里发的或者点这个链接https://occ.t-head.cn/community/download?id=3862555628233105408按步骤操作即可。
然后我们来解决疑问2:现在虽然可以下载demo了,但是我看了一下代码,这些函数都对我来说都是新的,怎么写,怎么用?这些函数的说明哪里有介绍,比如IO等外设配置,我可以参考demo来写,但是有没有系统讲解?
关于这个问题,我仔细看了一下其实这个和ARM的开发还是比较相似的,虽然函数名不一样,但是函数功能还是有英文单词说明的,比如GPIO的的相关函数至于有些函数的使用,比如传递的参数的作用,但是还是有好多不清楚的,想要查看他们的声明或者定义有的还查看不到,至此开发陷入了窘境,这个问题不是一两句话可以说清楚的,我就提交一个工单,把一些问题向平头哥开发人员请教。我们在此向回复问题的Eudora表示感谢。如图九所示,是工单问题截图,然后这个图十是Eudora的回复。
图九 图十
从问题1的回复中,我们可以了解CDK的开发首先要有内核的支持,相关文件在csi_core内,然后是外设的驱动支持,相关文件在csi_driver内,还有启动函数等,这么说比较笼统,我们参考一个player-demo的例程,如图十一所示,发现一个工程的组成由workspace文件夹、APP文件夹、configs文件夹、generated文件夹、script文件夹和对应芯片的组件以及packages支持包和说明性文件、初始化文件、YOC.map文件等组成。
图十一
我打开一个workspace文件夹的一个cli.c文件和芯片组件里的是同一个文件,但是没有组件编译也无法通过,所以workspace文件夹可能还包括配置文件以及这些组件支持源文件,包括但不限于内核和驱动文件,并没有明确的放在csi_core内和csi_drivers内。APP文件夹的文件顾名思义就是具体应用开发需要的头文件和源文件。configs文件夹、generated文件夹、script文件夹同样顾名思义分别是配置文件夹、过程生成文件夹和脚本文件夹,分别放一些编译及初始化用和flash下载用的文件,及编译过程中暂存的过程文件和初始化及下载的脚本文件等。总之代码架构可分为三部分,workspace(内核驱动文件)、APP(具体功能文件)以及初始化、配置、烧录文件。
我觉得问题2的回复是最有价值的,如图十二所示。虽然简单,但是这个文档有函数使用的说明,对应用的开发非常有帮助。提到的文档我已找到,下载连接如下:https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1836682/1621586994345/CSI-API%28v1.7%29_User_Manual.pdf
图十二
问题3是我问的其实回答2里的文档已经解决了,看Eudora的回复,解答了我的例子,printf的函数使用与常规的一样,度娘都知道,有些问题确实要先查资料,不能什么都问,好多帖子或者前辈都记录过各种坑以及怎么填的,归根结底还是多靠自己。这是Eudora的回复,如图十三所示。
图十三
关于疑问3,我觉得在疑问2里都有方法了,就是那个user-manual,我觉得开发指南如果平头哥的时间允许的话想自己来把这些相关的外设编写梳理一下,当然我看到好多外设的开发,已经有大神们在发帖,而且我还得完成这个开发板的应用演示,看情况吧,如果没有研究好这个应用也不好开发,至于会不会发帖就看时间而定吧,现在手头项目已经开始累积了,以后加班偏多了,尽量抽时间吧,玩玩这个也挺有趣的。下一个帖子可能是一个简单demo的开发学习,也可能是外设的学习记录,先完成开发板的试用要求再说吧。
|