• DJYOS Studio中关于DJYOS 组件配置说明


    1、概述     

    DJYOS的内核以及组件、bsp等的裁剪和配置功能,由源码和DJYOS Studio配合完成,hacker,也可以自己裁剪。源码中(c/cpp或h/hpp)中放置一段特定格式的描述文本,DJYOS Studio扫描得到配置信息,以图形化的方式进行配置、裁剪。DJYOS Stduio中有图形配置界面,配置完成后,会生成 projec_config.h 文件放在工程目录中:

    具体又分两种情况:

    1、只包含1个C文件的组件。

    2、2个以上文件组成的组件。

    对于第一种情况,c/cpp文件格式为:

    文件头(注释)

    #include    xxxx.h

    #include  "projec_config.h"

    组件配置块

    代码正文

    对于第二种情况,整个组件和目录是唯一对应的,即组件全部代码必须在一个目录树中,且该目录树只包含一个组件。

    该目录中,必须有一个名为component_config_myname.h的头文件,不允许放在子目录中。

    component_config_myname.h文件的内容,与第一种情况的c/cpp文件一致。

    c/cpp文件则包含component_config_myname.h文件即可。

    2、DJYOS Studio配置

    2.1组件配置块

    把2、3、4、5项内容包含在“//@#$%component configure” 和 “//@#$%component end configure”两个标签中间,每个文件中只能出现一次

    2.2组件初始化代码描述块

    用于帮助DJYOS Studio生成初始化代码。

    代码包含在标签“//%$#@initcode”和“//%$#@end initcode”之间,处于行注释状态,DJYOS Studio将删除"//"后,copy到初始化文件中。

    2.3组件描述块

    用于描述组件的属性,例如组件名、父组件名等,包含在标签“//%$#@describe”和“//%$#@end describe”之间

    组件属性包括:

    //component name:"example"      //该组件的名字

    //parent:"none"                 //该组件的父组件名字,none表示没有父组件

    //attribute:用户组件            //选填“第三方组件、核心组件、bsp组件、用户组件”,本属性用于在DJYOS Studio中分组

    //select:可选                   //选填“必选、可选”,若填必选且需要配置参数,则DJYOS Studio裁剪界面中默认勾取,

                                    //不可取消,必选且不需要配置参数的,DJYOS Studio裁剪界面中不显示

    //grade:none                    //初始化时机,可选值:none,init,main。none表示无须初始化,

                                    //init表示在调用main之前,main表示在main函数中初始化

    //dependence:"none"             //该组件的依赖组件名(可以是none,表示无依赖组件),

                                    //选中该组件时,被依赖组件将强制选中,

                                    //如果依赖多个组件,则依次列出

    //weakdependence:"none"         //该组件的弱依赖组件名(可以是none,表示无依赖组件),

                                    //选中该组件时,被依赖组件不会被强制选中,

                                    //如果依赖多个组件,则依次列出,用“,”分隔

    //mutex:"none"                  //该组件的依赖组件名(可以是none,表示无依赖组件),

                                    //如果依赖多个组件,则依次列出

    2.4组件参数配置块

    包含在标签“//%$#@configue//%$#@end configue ”之间,用于配置组件的参数。

    DJYOS自有模块的参数配置一律使用有参数值格式:

    #define     CFG_PARAM   value       //"name",参数的注释

    只有第三方组件,允许使用无参数值格式:

    #define     CFG_PARAM                   //"name",参数的注释

    其中"name"是显示在DJYOS Studio图形配置界面中的名字,与真正的注释用逗号隔开。

    在第一个参数配置前,加入了一段代码:

    #ifndef ANY_PARAM

    #warning    “name”组件参数未配置,使用默认值

    ANY_PARAM是本模块配置的任一参数。

    这样写的好处是,即使用户没有配置,组件也能正常编译、阅读,并且能够给出警告,避免了传统开源软件必须结合makefile和configure这些天书式的文件才能正常阅读的毛病。

    各参数自身的属性,使用标签加以说明,IDE的图形配置界面中,将据此做规则检查,各标签说明如下:

    //%$#@target = header/cmdline   ————header=配置结果放在头文件中;cmdline=配置结果放在编译命令行参数中。cmdline仅用于第三方开源软件,DJYOS自有组件不允许用

    //%$#@num,0,100,                ————配置项是数值,随后是最小值,最大值,用逗号分隔,留空则不限值

    //%$#@enum,true,false,          ————配置项是enum,紧跟着罗列出全部可选值

    //%$#@string,1,10,              ————配置项是字符串,紧跟着串长度最小值,最大值,空则不限长度

    //%$#@select,                   ————IDE中设置勾选框,不注释掉为默认不勾选,否则默认勾选,勾选的将定义一个无值参数。只用于第三方组件,不允许自有组件使用。

    //%$#@free,                     ————自由配置,IDE不做规则检查

    2.5被排除的文件

    主要用于第三方开源代码,把不需要的文件排除在外

    //%$#@exclude       ****编译排除文件列表

    //列出所有排除文件或文件夹,用分号“;”隔开,以本文件所在目录为当前目录,允许用通配符

    //%$#@end exclude   ****排除文件列表结束

    2.6加到include查找路径的文件夹

    用于第三方开源代码,列出本使用本开源代码时需要加到include查找路径的全部文件夹。

    //%$#@include path

    //../include;                   ————路径列表,用分号“;”隔开,以本文件所在目录为当前目录,允许用通配符

    //%$#@end include path

    //@#$%component end configure

    依赖关系原则:

    1、依赖具体的设备名称、文件名称的组件,放在main中初始化。

    2、功能组件不可以依赖bsp中的组件,也不可以依赖第三方组件,反之可以。

    3、bsp组件之间可以互相依赖。

  • 相关阅读:
    PingCode 完成近亿元人民币C轮融资,打造世界级研发管理与协作平台
    SAP ABAP OData 服务如何支持 $filter (过滤)操作试读版
    SpringMVC 项目中 创建SpringBoot,使用Hibernate和JPA
    理论+实践,彻底掌握Vue自定义指令
    交互与前端10 Tabulator+Flask开发日志007
    【Linux】常用文件管理命令
    分享一个字体抽取软件
    【poi导出excel模板——通过建造者模式+策略模式+函数式接口实现】
    EMQX 集群节点数据转发
    十五、异常(5)
  • 原文地址:https://blog.csdn.net/wangjianzhongfj/article/details/127938632