2、Kconfig 每个config菜单项都有类型定义: bool布尔类型、 tristate三态(内建、模块、移除)、string字符串、 hex十六进制、integer整型。...作用:决定make menuconfig时展示的菜单项, 参考:linux-3.4.2/drivers/leds/kconfig: config LEDS_S3C24XX tristate"LED...LEDS_S3C24XX:配置选项的名称,省略了前缀"CONFIG_" Tristate: 表示该项是否编进内核、编成模块。...Tristate后的字符串是make menuconfig时显示的配置项名称。 bool: 此类型只能选中或不选中,make menuconfig时显示为[ ],即无法配置成模块。...hello.c: #include #include #include static int
linux内核版本:4.14 pcie转四路串口芯片:亚信的AX99100 linux内核里是没有这块芯片的驱动的,这里自己添加驱动进去进行编译。...1.从亚信官网下载该芯片的linux驱动https://www.asix.com.tw/cs/download.php?...sub=driverdetail&PItemID=256 2.在 linux/drivers/tty/serial/的目录下新建一个99xx的目录,把解压之后的文件里除了.cache.mk、Makefile...+= ax99100_spi.o ax99100_sp.o 4.参照8250下的Kconfig在该目录下创建Kconfig文件,内容如下 config SERIAL_99xx tristate.../16550 and compatible serial support" select SERIAL_CORE config SERIAL_CH99xx_EXAR tristate
补充说明一下类型定义部分: 每个config菜单项都要有类型定义: bool布尔类型、 tristate三态(内建、模块、移除)、string字符串、 hex十六进制、 integer整型。 ...例如: config HELLO_MODULE bool "hello test module" bool 类型的只能选中或不选中,显示为[ ]; tristate类型的菜单项多了编译成内核模块的选项...下面我们以实例来说明这几个文件的作用 Step1:编辑配置文件Kconfig,加入驱动选项,使之在make menuconfig 的时候出现 打开 linux-2.6.32.2/drivers/char...保存退出,这时在linux-2.6.32.2 目录位置运行一下make menuconfig 就可以在Device Drivers Character devices 菜单中看到刚才所添加的选项了,按下空格键将会选择为...我们虽然可以在配置内核的时候进行选择,但实际上此时执行编译内核还是不能把mini2440_hello_module.c 编译进去的,还需要在Makefile 中把内核配置选项和真正的源代码联系起来,打开linux
源码分析 const Checkbox({ Key key, @required this.value, // 复选框状态 true/false/null this.tristate...this.checkColor, // 选中状态对号颜色 this.materialTapTargetSize, // 点击范围 }) 分析源码可知,tristate...: true, value: _triState == null ?...(0.7), onChanged: (value) => setState(() { if (value == null) { _triState...= value; } else { _triState = ''; state = value; } }
问题 有客户使用Linux中的USB Gadget功能,把MPSoC器件做USB从设备。在执行“mkdir functions/.”时,得到错误“Device or resource busy”。...sys/class/udc/ > UDC 其它 CONFIG_USB_F_FS(USB_F_FS)的定义在文件drivers/usb/gadget/Kconfig: config USB_F_FS tristate...CONFIG_USB_FUNCTIONFS(USB_FUNCTIONFS)的定义在文件drivers/usb/gadget/Kconfig: config USB_FUNCTIONFS tristate...参考文档 Linux USB gadget configured through configfs USB 协议核心概念与实践
参数也会被读写为bool参数(也就是不能设置m) CONFIG宏变量参数 bool: 表示该CONFIG宏只能选择y(编译内核)或者n(不编译),不能选择m(编译为模块) tristate:...表示该CONFIG宏可以设置y/m/n三种模式(tristate) string: 表示该CONFIG宏可以设为一串字符,比如#define CONFIG_XXX "config test" hex...才有效) select : 反依赖项,和depends on刚好相反,比如 selecton XXX表示当前宏如果是y或者m,则会自动设置XXX=y或者m(注意参数只有bool或tristate...才有效) choice: 会生成一个单选框,里面通过多选一方式选择config,需要注意choice中的config参数只能bool或tristate prompt: 提示信息,如果对于...,tristate属性其实并没有module功能,只有y/n ?
|–linux内核中Makefile,Kconfig,.config的关系 (1)三者的作用 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜 Makefile...|– Kconfig 类型定义: 每个config菜单项都要有类型定义: bool布尔类型、 tristate三态(内建、模块、移除)、 string字符串、 hex十六进制、integer整型。...eg: config HELLO_MODULE bool “hello test module” bool 类型的只能选中或不选中,显示为[ ]; tristate类型的菜单项多了编译成内核模块的选项,
驱动开发时候,尽量选择对应操作系统内核的Linux系统作为上位机平台 下载源码与编译 源码的下载可以从网站:https://mirrors.edge.kernel.org/pub/linux/kernel...#include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init...卸载命令为rmmod xxx 模块之间的依赖通信 以下为add_sub.c #include #include #include"add_sub.h...# # add_sub configuration # menu "ADD_SUB" comment "ADD_SUB" config CONFIG_ADD_SUB tristate..."ADD_SUB support" default y config CONFIG_TEST tristate "ADD_SUB test support"
2 构造函数 const Checkbox({ Key key, this.activeColor, this.tristate, this.value, this.onChanged...}) 3 常用属性 3.1 activeColor:激活时的颜色 activeColor:Colors.blue, 3.2 tristate:如果为 true,那么复选框的值可以是 true,false...或 null tristate: true, 3.3 value:复选框的值 value: false, 3.4 onChanged:改变时触发 onChanged: (bool value) {
MethodImplOptions.AggressiveInlining)] get { if (_isAsciiCasingSameAsInvariant == Tristate.NotInitialized...PopulateIsAsciiCasingSameAsInvariant(); } Debug.Assert(_isAsciiCasingSameAsInvariant == Tristate.True...|| _isAsciiCasingSameAsInvariant == Tristate.False); return _isAsciiCasingSameAsInvariant...== Tristate.True; } } [MethodImpl(MethodImplOptions.NoInlining)]...Tristate.True : Tristate.False; } private Tristate _isAsciiCasingSameAsInvariant = Tristate.NotInitialized
ARM-Linux开发步骤 拿到一块YC2440(s3c2440)的开发板,经过几天的学习,我对arm-linux系统开发步骤有了一些认识。...基本上u-boot是一个精简的linux,它提供人机交换的,一般现在linux开发都采用串口方式使用u-boot。...config symbol是个新的标记的菜单项,options是在这个新的菜单项下的属性和选项 其中options部分有: 1、类型定义: 每个config菜单项都要有类型定义,bool布尔类型、 tristate...、移除 string字符串、 hex十六进制、 integer整型 例如config HELLO_MODULE bool “hello test module” bool类型的只能选中或不选中,tristate...第二:修改/driver/mtd/maps目录下的kconfig文档: config MTD_flashtest tristate “ap71 flash”
AX88772B的驱动,驱动官网地址https://www.asix.com.tw/cn/product/USBEthernet/High-Speed_USB_Ethernet/AX88772B,目前linux...2.在该目录下新建一个Makefile文件,内容如下 #This driver has been verified on Linux kernel 2.6.14 and later....-$(CONFIG_USB_NET_AX88772B) += asix.o 3.继续在该目录下新建一个Kconfig文件,内容如下 config USB_NET_AX88772B tristate...$(CONFIG_USB_NET_AX88772B) += ax88772b/ 5.继续修改该目录下的Kconfig文件 #注释掉下面内容 #config USB_NET_AX8817X # tristate
Linux平台提供了专门的工具来时先磁盘IO性能的获取,该工具为hdparm,本文就该工具的使用做一个详细的介绍。...readahead -A set drive read-lookahead flag (0/1) -b get/set bus state (0 == off, 1 == on, 2 == tristate...immediately -w perform device reset (DANGEROUS) -W set drive write-caching flag (0/1) (DANGEROUS) -x tristate
那下面我们可以看一下,linux驱动框架上是怎么处理sd卡驱动的?...obj-$(CONFIG_MMC_S3C) += s3cmci.o 4、根据s3c阅读Kconfig,确认s3c下的sd卡还依赖哪些文件 config MMC_SDHCI_S3C tristate...config MMC_S3C tristate "Samsung S3C SD/MMC Card Interface support" depends on ARCH_S3C24XX
如果 XX_defconfig 板卡配置文件中没有设置 CONFIG_MODULES=y 则编译make modules时将会失败,而 make menuconfig 时, Kconfig 中的 tristate...default 默认配置项 help help 提示信息专用 prompt 提示信息 comment 相当于一行说明 choice 单选框, choice 中的 config 参数只能b ool 或 tristate...键就能够进入这个menu所对应的界面 endmenu 与menu配对使用 menuconfig 可选的菜单,先择它,它就相当于成了 类型 类型 bool y – 默认选中 n – 默认不选 tristate...string "config CC" default 123 config DD hex "config DD" default 0x123 config EE tristate..."config EE" default y 因为我的 tristate 没有启用, 所以为默认为了 bool 类型 备注 : 如果 退格 不能删除 请使用 Ctrl + 退格 ----
注:linux内核中一个功能模块有三种编译方法:一种是编入、一种去去除、一种是模块化。...1.tristate、bool、string bool:[ ]有两种状态,*代表选中,空代表未选中; tristate:有三种状态,*代表选中,空代表未选中,M代表模块; string:( )...---- .config “.config文件中每一行都是一个配置项,从.config文件的规模可以看出linux内核的可配置项有两三千个。...所以linux内核是高度可配置的,而且linux内核的所有配置项很难全部搞明白。...因为linux内核的配置项太多太繁杂超出了人的大脑能够记忆和处理的数量级,因此linux内核不像uboot那样直接手工配置,而是发明了一个图形化的配置工具menuconfig。”
= arm-linux (前提交叉工具链已经加入Path环境变量) 也可以将路径写死,这样更方便 CROSS_COMPILE ?...=/work/cross_compile_3.4.1/usr/local/arm/3.4.1/bin/arm-linux- 也可以在make是传入 如:make ARCH=ia64 CROSS_COMPILE...= armlinux 5. ...└────────────────────────────────────────────┘ 必须要选上enalbe loadable moudules support这个选项,否则就是你定义一个tristate...注意zImage在\linux-kernel\linux-2.6.28.7\arch\arm\boot\compressed下生成 而vmlinux在内核的根目录下生成。
便于需要时查找 Ref: Linux内核中Kconfig文件的作用 本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...其中bool表示这是一个二态值(三态值是“tristate”)。后面的“---help---”指明帮助信息,并且会在menuconfig菜单中出现。...完成了make menuconfig之后,内核会生成.config文件,就在Linux代码树的根目录下。这个文件制定了各个模块是否会被编译,由Makefile读取并在编译过程中配置内核。
CardSuit.Clubs; // 类型安全 Card = 'not a member of card suit'; // Error: string 不能赋值给 `CardSuit` 类型 enum Tristate...{ False, True, Unknown } 编译成 JavaScript: var Tristate; (function(Tristate) { Tristate[(Tristate...['False'] = 0)] = 'False'; Tristate[(Tristate['True'] = 1)] = 'True'; Tristate[(Tristate['Unknown...'] = 2)] = 'Unknown'; })(Tristate || (Tristate = {})); 这意味着我们可以跨文件、模块拆分枚举定义~ enum Color { Red, Green
NOTE: linux-xlnx: compiling from external source tree workspace/linux-xlnx ERROR: linux-xlnx-5.4+git999.../linux-xlnx/5.4+git999-r0/linux-xlnx-5.4+git999' GEN Makefile scripts/kconfig/conf --syncconfig...[1]: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf' make: *** [workspace.../linux-xlnx/Makefile:179: sub-make] Error 2 make: Leaving directory '......./linux-xlnx/5.4+git999-r0/linux-xlnx-5.4+git999' 恢复 幸好astyle对文件进行了备份。
领取专属 10元无门槛券
手把手带您无忧上云