freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]基于高通msm8x60的i2c驅(qū)動(dòng)終極講解-全文預(yù)覽

  

【正文】 _init(initfn)define module_exit(x)__define_initcall(4,fn)define fs_initcall(fn)__define_initcall(2,fn)define arch_initcall(fn) /*如果驅(qū)動(dòng)模塊靜態(tài)編譯進(jìn)內(nèi)核*/define __define_initcall(level,fn) \./include/linux/---------------------ifndef MODULE*(.)*(.)具體實(shí)現(xiàn)如下:./arch/arm/kernel/----------------- }---------------------------do_initcalls(void){ */firmware_init()。buses_init()。/* These are the core pieces */*driver_init initialize driver model./* Networking initialization needs a process context */driver_init()。init_workqueues()。 Try passing init= option to kernel.)。}start_kernel()中的函數(shù)rest_init()將創(chuàng)建第一個(gè)核心線程kernel_thread(init, NULL, CLONE_FS | CLONE_SIGHAND),調(diào)用init()函數(shù):static intstart_kernel(void){其他的各個(gè)區(qū)段的定義方法分別是:core_initcall(fn) .postcore_initcall(fn) .arch_initcall(fn) .subsys_initcall(fn) .fs_initcall(fn) .device_initcall(fn) .late_initcall(fn) .(fn)則等價(jià)于device_initcall(fn)。1),在這個(gè)區(qū)段中,函數(shù)的擺放順序是和鏈接的順序有關(guān)的,是不確定的。轉(zhuǎn)載現(xiàn)在整個(gè)執(zhí)行流程算是跟蹤完了。} fn __initcall_end。.........}其中do_initcalls()函數(shù)如下:static void __init do_initcalls(void){.........}其中的do_basic_setup()函數(shù)如下:static void __init do_basic_setup(void){.........}其中kernel_init函數(shù)如下:static int __init kernel_init(void * unused){rest_init(void) __releases(kernel_lock){static initcall_t __initcall_customize_machine3__used__define_initcall(3,fn,3)}arch_initcall(customize_machine)。}其中init_machine是一個(gè)函數(shù)指針,該函數(shù)指針的初始化如下static void (*init_machine)(void) __initdata。mdesc = setup_machine(machine_arch_type)。struct machine_desc *mdesc。 setup_arch(amp。 上一節(jié)分解到平臺(tái)設(shè)備已經(jīng)注冊(cè),但是這個(gè)成員什么時(shí)間調(diào)用呢,也就是我們的驅(qū)動(dòng)是在什么時(shí)候注冊(cè)進(jìn)系統(tǒng)的呢,現(xiàn)在就來(lái)跟蹤下, 分類:基于高通MSM 8x60的I2C驅(qū)動(dòng)終極講解(3)msm8x60_ep680_init,MACHINE_START(MSM8X60_EP680, QCT MSM8X60 EP680)msm8x60_init(struct msm_board_data *board_data){} else {其中的msm_i2c_config_gpio賦值的值的定義如下static void gsbi7_qup_i2c_gpio_config(int adap_id, int config_type){.clk = gsbi_qup_clk,.msm_i2c_config_gpio = gsbi_qup_i2c_gpio_config,}。.clk_freq = 100000,.clk = gsbi_qup_clk,.msm_i2c_config_gpio = gsbi7_qup_i2c_gpio_config,}。.clk = gsbi_qup_clk,.msm_i2c_config_gpio = gsbi_qup_i2c_gpio_config,}。.clk_freq = 100000,.clk = gsbi_qup_clk,msm_gsbi9_qup_i2c_pdata。 = amp。msm_gsbi3_qup_i2c_pdata。msm8x60_init_buses(void){amp。amp。amp。作者:shangbaogen上一篇文章已經(jīng)把I2C控制器所用的platform devices準(zhǔn)備好啦,現(xiàn)在開(kāi)始注冊(cè),該文件在板級(jí)支持文件中。= gsbi12_qup_i2c_resources,}。= MSM_GSBI12_QUP_I2C_BUS_ID,.resource.name= ARRAY_SIZE(gsbi9_qup_i2c_resources),.id/* Use GSBI9 QUP for /dev/i2c2 */struct platform_device msm_gsbi9_qup_i2c_device = {.num_resources= qup_i2c,= gsbi4_qup_i2c_resources,}。= MSM_GSBI4_QUP_I2C_BUS_ID,.resource.name= IORESOURCE_IRQ,.end{= MSM_GSBI12_PHYS,.name= IORESOURCE_MEM,.end{.flags= qup_err_intr,},= MSM_GSBI9_PHYS + 4 1,.start.flags= qup_phys_addr,static struct resource gsbi9_qup_i2c_resources[] = {= GSBI8_QUP_IRQ,.name= IORESOURCE_MEM,.end{= MSM_GSBI8_QUP_PHYS,.name},}。= GSBI7_QUP_IRQ,.start.flags= gsbi_qup_i2c_addr,},= MSM_GSBI7_QUP_PHYS + SZ_4K 1,.start= IORESOURCE_IRQ,.end{= MSM_GSBI4_PHYS,.name= IORESOURCE_MEM,.end{.flags= qup_err_intr,},= MSM_GSBI3_PHYS + 4 1,.start.flags= qup_phys_addr,下面是六個(gè)控制器所用到的資源static struct resource gsbi3_qup_i2c_resources[] = {作者:shangbaogen網(wǎng)上的I2C驅(qū)動(dòng)講解已經(jīng)很多啦,我想不想畫(huà)蛇添足,我想寫(xiě)一個(gè)完整的I2C驅(qū)動(dòng),包括系統(tǒng)啟動(dòng),總線注冊(cè),驅(qū)動(dòng)注冊(cè),設(shè)備注冊(cè),里面會(huì)貫穿Linux設(shè)備驅(qū)動(dòng)模型,platform機(jī)制等等,基于高通MSM 8x60,I2C控制器為qup,下面開(kāi)始進(jìn)入正題:首先是平臺(tái)設(shè)備的注冊(cè):源碼位置:(msm/arch/arm/machmsm/)首先說(shuō)下平臺(tái)設(shè)備,因?yàn)長(zhǎng)inux所有的設(shè)備都是通過(guò)總線控制器連接到CPU的,但是還有一些設(shè)備不是通過(guò)總線控制器連接到CPU,所以就有了platform總線虛擬總線,把那些不是真正通過(guò)總線控制器相連的設(shè)備,比如:SOC的片內(nèi)設(shè)備,片內(nèi)控制器,以便維護(hù)Linux設(shè)備模型中的,總線,設(shè)備,驅(qū)動(dòng)之間的關(guān)系。(20120422 17:30)標(biāo)簽:linux driver study原文地址:基于高通MSM 8x60的I2C驅(qū)動(dòng)終極講解(1)下面的是6個(gè)控制器在I2C控制器的ID編號(hào)define MSM_GSBI3_QUP_I2C_BUS_ID 0define MSM_GSBI4_QUP_I2C_BUS_ID 1define MSM_GSBI9_QUP_I2C_BUS_ID 2define MSM_GSBI8_QUP_I2C_BUS_ID 3define MSM_GSBI7_QUP_I2C_BUS_ID 4define MSM_GSBI12_QUP_I2C_BUS_ID 5.name= MSM_GSBI3_QUP_PHYS,{.end= IORESOURCE_MEM,.name= GSBI3_QUP_IRQ,static struct resource gsbi4_qup_i2c_resources[] = {= qup_phys_addr,.flags.start= MSM_GSBI4_PHYS + 4 1,},= qup_err_intr,.flags{.end= IORESOURCE_MEM,.name= MSM_GSBI7_PHYS,{.end= IORESOURCE_IRQ,.start= MSM_GSBI8_QUP_PHYS + SZ_4K 1,},= gsbi_qup_i2c_addr,.flags.start= GSBI8_QUP_IRQ,},}。.name= MSM_GSBI9_QUP_PHYS,{.end= IORESOURCE_MEM,.name= GSBI9_QUP_IRQ,static struct resource gsbi12_qup_i2c_resources[] = {= qup_phys_addr,.flags.start= MSM_GSBI12_PHYS + 4 1,},= qup_err_intr,.flags下面是為6個(gè)I2C控制器所注冊(cè)平臺(tái)設(shè)備驅(qū)動(dòng)需要的結(jié)構(gòu)體/* Use GSBI3 QUP for /dev/i2c0 */struct platform_device msm_gsbi3_qup_i2c_device = {.id= ARRAY_SIZE(gsbi3_qup_i2c_resources),.name.resource= MSM_GSBI8_QUP_I2C_BUS_ID,= gsbi8_qup_i2c_resources,}。= qup_i2c,.num_resources/* Use GSBI7 QUP for /dev/i2c4 (Marimba) */struct platform_device msm_gsbi7_qup_i2c_device = {.id= ARRAY_SIZE(gsbi7_qup_i2c_resources),.name.resource(20120422 17:30)標(biāo)簽:linux driver study原文地址:基于高通MSM 8x60的I2C驅(qū)動(dòng)終極講解(2)msm_gsbi3_qup_i2c_device,msm_gsbi7_qup_i2c_device,msm_gsbi9_qup_i2c_device,繼續(xù)對(duì)該I2C平臺(tái)設(shè)備結(jié)構(gòu)體初始化static void __init = amp。msm_gsbi4_qup_i2c_pdata。 = amp。msm_gsbi12_qup_i2c_pdata。.src_clk_rate = 24000000,static struct msm_i2c_platform_data msm_gsbi4_qup_i2c_pdata = {.pclk = gsbi_pclk,.src_clk_rate = 24000000,.pri_dat = 59,.src_clk_rate = 24000000,static struct msm_i2c_platform_data msm_gsbi9_qup_i2c_pdata = {.pclk = gsbi_pclk,.src_clk_rate = 24000000,.msm_i2c_config_gpio = gsbi_qup_i2c_gpio_config,}。gpio_tlmm_config(gsbi7_gpio_table[0], GPIO_CFG_ENABLE)。}}下面的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1