开发者学堂课程【平头哥剑池 CDK 功能及开发实战:2.2工作空间及组件:组件配置演示】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/61/detail/1118
2.2工作空间及组件:组件配置演示
主要内容
一、每个组件的组件配置分别演示
二、Common类型的组件
三、开发版的软件配置
四、芯片组件的配置入口
五、Solution组件
六、优先级的配置
一、每个组件的组件配置分别演示
在CDK如何配置组件:进入演示,在CDK的workspace中有一个组件工程,整个组件基本上分为4个类型,Common类型的组件,芯片类型的组件,开发板类型的组件,以及工程引领代表的Solution组件。
二、Common类型的组件
右击Common类型组件选择Options for附件名称,任何一个Common组件都包含Base,Compiler,Assembler和linker的配置页面,其中Base配置组建的author,license,组件名和版本号,以及组件的描述,是一个组件基本信息的配置,如下图:
Compiler配置的是组建了一个编译当前组建的 c文件的一些选项。其实Common组件包含两个大的部分,一个是Global config,还有一个是logal config。其中Global config是用来配置所有组件的编译选项,这里配置的选项不仅会影响到组件本身的代码编译,其他所有组件的代码编译都会影响。这里Global config包含了的define编译以及头文件搜索路径,logal选项表示这里的配置选项只对当前组件的源代码有有效果。Local选项包含了 define同一页路径,以及编译常用到的调试信息,优化选项,包括其他的配置选项,如果界面没有的选项的话,可以在other flags里面去增加需要的配置。这就是Common组件的Compiler table:
Assembler table只包含了Global config的选项,是一个可以配置调试信息的格式以及other flags。Assembler选项配置是用来编译汇编文件的,如下:
linker选项是用来配置组件包含的一些库的配置,在linker选项中配置库的名称以及库的路径,会把组建中包含的库会链接到最终生成的镜像文件中如下:
三、开发版的软件配置
点击开发版的组件节点,右击Options for开发版名称,就可以看到与common组件table上是类似的,Base是一致的,与Compiler的区别在于 locals,locals的配置只包含了define 和Include如下:
剩余的define和其他的编译选项是可用的配置选项,配置的内容和Common组件是一样的,Assembler是跟Common组件一致的。Link选项相比于Common组件多了一个General选项,是用来配置工程中所使用到的链接描述脚本。也可以不不去配置,其他的地方也有配置脚本的配置入口。
四、芯片组件的配置入口
点击芯片组件右击Options for芯片组件名,芯片组件跟开发板相比的话,其中Base,Compiler,Assembler是一致的,linker选项和common组件是一致的,芯片组件会多一个info如下:
是用来配置的CPU的信息,行车芯片组件是可以配置成一个单核和多核两种方式。那么每一种芯片的一个配置信息包含的芯片的CPU的型号会包含RISCV系列的以及eRISC和CK系列的CPU。Linker file跟开发版 file是一样的,都是指定程序的链接描述脚本,如果开发板的配置的脚本,这里的配置将会无效,也就是说开发板的 LD脚本会覆盖掉这里的ldk文件,算法文件是用来配置的不断烧写,后续章节会介绍,这就是的芯片总结。
五、Solution组件
方案组件是应急工程节点选择Options for,与其他组件相比,同样包含Base,Compiler和linker的配置选项与芯片组件类似,Assembler也与芯片组件是类似的,这里还会多了Target,output、user及debug和flash这些配置如下:
这些配置是跟工程的一些需要配置的内容有关,这些就是所有组件的配置选项。
六、优先级的配置
每一个组件都可以配置Base,Compiler,Assembler和linker的信息,在编译的过程中,是有优先级的一个关系的,整个优先级的顺序应该是的solution方案配置选项大于的开发板的配置选项,开发版配置选项是大于芯片的配置选项,最后芯片的配置点会大于Common组件的配置选项,就可以很容易的看到,对于一个全局配置的选项来说,会根据这种规则就可以判断其有效性。比如当前demo,在方案组件中配置了拷贝config_chip_danica宏,如果在Common组件也配置了一个类似的宏,这两个宏虽然名字一样,但是值不一样。而在这种情况下,优先级的关系,最终整个工程有效的配置应该是config_chip_danica=1的而不是=0,这就是整个组件的优先级的配置。
根据优先级的配置的表现,建议他们的常用的配置都放在solution中,跟开发板严格相关的才会放在开发板中。跟芯片相关的会放在芯片中,与硬件和方案无关的配置可以放在具体的一个Common组件中。整个组件的一个基本配置的方式以及入口,包括组建配置的优先级关系。