国产精品自产拍在线观看涩_一级毛片视频播放_可以在线看黄的网站_爽爽婬人综合网网站不卡免费_亚洲动作电影在线观看高清_日本人妻丝袜资源久草婷婷_一级做一级a做片爱_欧美成人免费大片_国产heyzo在线播放_午夜免费男女高潮啪啪

EsDA工控單板
EPC6450-AWI/EPC1107-LI/EPC3568系列工控板
MPC-ZC1迷你工控主板
Cortex?-A5,拖拽式開(kāi)發(fā),40pin擴(kuò)展引腳
2.5寸工控單板
EPC-6Y2C-L網(wǎng)絡(luò)控制器
Cortex?-A7,800MHz,8路串口,數(shù)字音頻
IoT-6Y2C-L物聯(lián)網(wǎng)關(guān)控制器
Cortex?-A7,800MHz,8路串口,支持藍(lán)牙
EPC-6G2C-L網(wǎng)絡(luò)控制器
Cortex?-A7,528MHz,8路串口,數(shù)字音頻
IoT-6G2C-L物聯(lián)網(wǎng)關(guān)控制器
Cortex?-A7,528MHz,8路串口,支持藍(lán)牙
3.5寸工控單板
IoT7000A-LI物聯(lián)網(wǎng)網(wǎng)關(guān)控制器
Cortex?-A7,雙MiniPCIe接口支持無(wú)線模塊擴(kuò)展
IoT-9608I-L網(wǎng)絡(luò)控制器
Cortex?-A8,800MHz,6種無(wú)線通訊方式
EPC-9600I-L工控主板
Cortex?-A8,800Mhz
IoT9000A-LI工控主板
Cortex?-A9,強(qiáng)勁編解碼,專注多媒體
IoT9100A-LI工業(yè)IoT網(wǎng)絡(luò)控制器Cortex?-A9,1GHz
SX-3568系列主板Cortex?-A55,雙核心GPU
MD-3568LI工控板Cortex?-A55,雙網(wǎng)口

【Linux學(xué)習(xí)小技巧】Linux內(nèi)核開(kāi)發(fā)工具介紹2

通過(guò)make menuconfig(make xconfig或者make gconfig)命令配置內(nèi)核的時(shí)候,從Kconfig文件讀取菜單,配置完畢保存到文件名為.config的內(nèi)核配置文件中,供Makefile文件在編譯內(nèi)核時(shí)使用。

1.1.1 Kconfig基本語(yǔ)法

如程序清單.1所示代碼摘自文件,是一個(gè)比較典型的Kconfig文件片段,包含了Kconfig的基本語(yǔ)法。

程序清單1drivers/char/Kconfig片段

menu "Character devices"

source "drivers/tty/Kconfig"

config DEVKMEM

bool "/dev/kmem virtual device support"

default y

help

Say Y here if you want to suppor

1. 子菜單

通過(guò)menu和endmenu來(lái)定義一個(gè)子菜單,程序清單1所示代碼定義了一個(gè)“Character devices”子菜單,子菜單在界面中用“--->”表示,如圖1所示。
圖1menu定義的子菜單

子菜單的菜單項(xiàng)則由config來(lái)定義,隨后的“bool”、“default”、“help”等都是該菜單項(xiàng)的屬性:
config DEVKMEM

bool "/dev/kmem virtual device support"

這兩行語(yǔ)句定義了一個(gè)bool選項(xiàng),在.config中的配置變量名稱為CONFIG_DEVKMEM,選項(xiàng)提示信息為“/dev/kmem virtual device support”,在內(nèi)核配置界面的實(shí)際表現(xiàn)為:

[*] /dev/kmem virtual device support

由于設(shè)置其默認(rèn)屬性default為y,所以該選項(xiàng)默認(rèn)選中。

help引出幫助信息,在內(nèi)核配置界面,選擇選項(xiàng)后,通過(guò)可以查看幫助信息。

2. 屬性

類型定義:每個(gè)菜單項(xiàng)都必須定義類型,可選類型有:bool、tristate、string、hex和int,各類型描述如表1所列。

表1菜單項(xiàng)類型和說(shuō)明

定義選項(xiàng)的類型后面可以加菜單信息,用引號(hào)(“”)給出,留空則不加提示信息。

對(duì)于布爾型選項(xiàng),在配置界面用[]表示:

[*] /dev/kmem virtual device support

[*]表示選中,對(duì)應(yīng)CONFIG_XXX=y,[ ]則表示未選中。

對(duì)于三態(tài)選項(xiàng),在配置界面用<>表示:

<*> Kernel .config support

<*>表示選中,對(duì)應(yīng)CONFIG_XXXx=y,表示編譯為模塊,對(duì)應(yīng)CONFIG_XXX=m,<>表示未選中。

子菜單也可同時(shí)設(shè)置類型,如下列代碼在定義PWM菜單的同時(shí)定義了菜單屬性為三態(tài):

menuconfig GENERIC_PWM
tristate "PWM Support"
default n
help
Enables PWM device support implemented via a generic
framework.If unsure, say N.

在配置界面表現(xiàn)為:

<> PWM Support--->

說(shuō)明:子菜單的配置值會(huì)影響其子選項(xiàng)的可能值。例如三態(tài)子菜單配置為,則其三態(tài)子選項(xiàng)依舊可有3種可能值,即可配置為、或者不選中;而三態(tài)子菜單配置為,則其子選項(xiàng)只有和不選中兩種狀態(tài)可用。

默認(rèn)值:有寫選項(xiàng)可以設(shè)置默認(rèn)值,無(wú)論是哪種類型,都可以通過(guò)default設(shè)置其默認(rèn)值,例如:

config ARM
bool
default y
select HAVE_AOUT

選中:前面這個(gè)示例的select,表示了一種選中關(guān)系,即選中某個(gè)選項(xiàng)后,會(huì)自動(dòng)選中某個(gè)或者某些選項(xiàng)。前面這個(gè)示例表明,選中Arm?后,會(huì)自動(dòng)選中HAVE_AOUT。

依賴關(guān)系:如果一個(gè)選項(xiàng)能否生效與否與其它選項(xiàng)的設(shè)置有關(guān),則必須通過(guò)depends on來(lái)聲明這種依賴關(guān)系。例如,只有使能了SMP才能設(shè)置CPU個(gè)數(shù)變量NR_CPUS,在Kconfig中則寫成:

config NR_CPUS
int "Maximum number of CPUs (2-32)"
range 2 32
depends on SMP
default "4"

幫助:通過(guò)help關(guān)鍵字引入幫助,幫助的正文必須另起一行。

菜單選項(xiàng)屬性的每個(gè)關(guān)鍵字,必須用TAB鍵與行首隔開(kāi),不能用等數(shù)的空格替代。

3. 目錄層次迭代

通過(guò)source可以直接引用下級(jí)目錄的Kconfig文件,形成新的菜單項(xiàng)或者子菜單,這樣方便每個(gè)目錄獨(dú)立管理各自的配置內(nèi)容?!皊ource "drivers/tty/Kconfig"”就是直接引用文件,形成更多菜單(項(xiàng))。

1.1.2 配置項(xiàng)和配置開(kāi)關(guān)

通過(guò)config定義的菜單配置項(xiàng),在內(nèi)核配置后會(huì)產(chǎn)生一個(gè)以“CONFIG_”開(kāi)頭的配置開(kāi)關(guān)變量,該開(kāi)關(guān)變量可在Makefile中或者源代碼中使用。

例如:“config BAR”將會(huì)產(chǎn)生一個(gè)開(kāi)關(guān)變量CONFIG_BAR,在Makefile中可以這么使用:

obj-$(CONFIG_BAR)+= file_bar.o

在源代碼中可用這個(gè)開(kāi)關(guān)變量在源代碼中可用這個(gè)開(kāi)關(guān)變量來(lái)進(jìn)行一些條件處理,例如:

#if defined (CONFIG_BAR)

實(shí)際處理代碼

#endif

如果定義的BAR是三態(tài)變量,則還可以根據(jù)需要這樣使用:

#if defined (CONFIG_BAR)|| defined (CONFIG_BAR_MODULE)

實(shí)際處理代碼

#endif