DJYOS Studio中关于DJYOS 组件配置说明
admin
2024-02-01 18:08:15
0

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组件之间可以互相依赖。

相关内容

热门资讯

安卓系统如何设置拍月亮,捕捉夜... 月亮,那轮皎洁的夜空明珠,总是让人心生向往。你是否也想用你的安卓手机捕捉到它的美丽瞬间呢?别急,今天...
安卓v8以上系统,探索安卓V8... 你知道吗?最近手机界可是掀起了一股新潮流,那就是安卓V8以上系统。这可不是什么小打小闹,而是实实在在...
安卓系统兼容哪个版本好,哪个版... 你有没有想过,你的安卓手机到底兼容哪个版本的系统最好呢?这可是个技术活儿,得好好研究研究。别急,今天...
安卓平板安装linux桌面系统... 你有没有想过给你的安卓平板来个变身大法?没错,就是给它安装一个Linux桌面系统!想象原本只能刷刷剧...
安卓什么手机系统bug最少,揭... 你有没有发现,用安卓手机的时候,有时候会遇到一些小麻烦,比如系统突然卡顿,或者某个应用突然崩溃,真是...
手机软件安卓下载系统,解锁手机... 你有没有发现,现在的生活越来越离不开手机了?手机里装满了各种各样的软件,让我们的生活变得更加便捷。今...
微软系统和安卓系统的cad软件... 你有没有想过,为什么你的电脑里装的是微软系统,而朋友的手机上却是安卓系统?这背后其实隐藏着一场关于操...
安卓系统怎么防止广告,全方位防... 你是不是也被安卓手机上的广告烦得头疼不已?别急,今天就来给你支几招,让你的手机广告消失得无影无踪!一...
安卓系统支持蓝牙gps,精准定... 你知道吗?现在智能手机的世界里,安卓系统可是当之无愧的霸主呢!而说起安卓系统的强大功能,蓝牙和GPS...
安卓11系统充电口异常,安卓1... 最近你的安卓手机是不是也遇到了充电口的小麻烦?别急,让我来给你详细说说安卓11系统充电口异常的那些事...
苹果转换到安卓系统6,系统6的... 你有没有想过,从苹果的iOS系统转换到安卓系统,这中间的滋味儿是不是有点像换了个口味?没错,今天咱们...
安卓系统表情包制作软件,安卓表... 你是不是也和我一样,喜欢在聊天的时候用表情包来增加趣味性呢?安卓手机上的表情包制作软件可是让这个乐趣...
安卓系统怎么冲公交卡,公交卡充... 你有没有想过,在繁忙的都市生活中,拥有一张便捷的公交卡是多么美妙的事情呢?想象你只需轻轻一刷,就能轻...
安卓最高系统图片格式,从基础到... 你有没有发现,手机里的安卓系统更新换代的速度简直就像小兔子一样跳跃呢!每次更新,都给我们带来了新的惊...
安卓系统如何玩渠道服,渠道服游... 你有没有想过,在安卓系统上玩渠道服,那感觉简直就像是在游戏世界里开挂一样?没错,今天就要来给你揭秘,...
安卓系统等级在哪里查看,安卓系... 你有没有好奇过,你的安卓手机里那些神秘的系统等级到底在哪里可以查看呢?别急,今天就来给你揭秘这个小小...
自己制作安卓系统教程,自制安卓... 亲爱的读者们,你是否曾梦想过摆脱安卓系统的束缚,亲手打造一个只属于你自己的操作系统?别再羡慕那些技术...
安卓系统调整器下载,轻松优化手... 你有没有发现,手机用久了,系统总是有点小问题,比如卡顿啦,电池续航不给力啦,这些小烦恼是不是让你头疼...
怎样升级安卓系统视频,安卓系统... 亲爱的手机控们,你是否也和我一样,对手机系统升级充满了好奇和期待?想象你的安卓手机在经过一番“变身”...
鸿蒙系统和安卓系统哪个广告少,... 你有没有发现,现在手机市场上的操作系统真是五花八门,让人挑花了眼。不过,最近有个话题特别火,那就是鸿...