开发者社区> 问答> 正文

Linux编程之杂项技术中怎么去修改内核?

已解决

Linux编程之杂项技术中怎么去修改内核?

展开
收起
去校区学技术 2022-04-03 18:11:32 1632 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    1.删除LCD驱动: 修改/arch/arm/mach-omap2/board-am335xevm.c

    2.删除IIC驱动: 修改/arch/arm/mach-omap2/board-am335xevm.c

    屏蔽am335x_evm_init(void) am335x_evm_i2c_init();

    3.删除Audio驱动: 修改/arch/arm/mach-omap2/devices.c

    4.删除摄像头驱动: 修改/arch/arm/mach-omap2/devices.c

    屏蔽omap2_init_devices()---omap_init_camera();

    (暂不用)增加ADC驱动(目前与触屏冲突,将不能再使用触屏功能)

    将CAN0_Tx与CAN0_Rx两个引脚改为开关量输出

    5.引脚定义

    static struct pinmux_config gpio_led_mux[] = {
        ……
        //-----XSL-----CAN0-->KOUT
    {"uart1_ctsn.gpio0_12",OMAP_MUX_MODE7|AM33XX_PIN_OUTPUT},
            {"uart1_rtsn.gpio0_13",OMAP_MUX_MODE7| AM33XX_PIN_OUTPUT},
    //-------------
        ……
    };
    
    

    6.引脚导出

    static void gpio_led_init(int evm_id, int profile){
    ……
        //-----XSL-----GPIO EXPORT
        gpio_request(GPIO_TO_PIN(0, 12), "GPIO-OUT1");
        gpio_direction_output(GPIO_TO_PIN(0, 12),1);
        gpio_export(GPIO_TO_PIN(0, 12), 0);
        gpio_request(GPIO_TO_PIN(0, 13), "GPIO-OUT2");
        gpio_direction_output(GPIO_TO_PIN(0, 13),1);
        gpio_export(GPIO_TO_PIN(0, 13), 0);
        //-------------
    }
    
    

    7.将IIC0_SDA与IIC0_SDL两个引脚改为开关量输入

    
    /* pinmux for gpio based key */
    static struct pinmux_config gpio_keys_pin_mux[] = {
    {"mii1_col.gpio3_0",OMAP_MUX_MODE7|AM33XX_PIN_INPUT},
    {"rmii1_refclk.gpio0_29",OMAP_MUX_MODE7|AM33XX_PIN_INPUT},
    //-----XSL-----(IIC0-->KEY)
    {"i2c0_sda.gpio3_5",    OMAP_MUX_MODE7| AM33XX_PIN_INPUT},
    {"i2c0_scl.gpio3_6",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},    
    //-------------
    {NULL, 0},
    };
    //-----XSL-----删除按键驱动(开发板按键与串口5冲突)
    //-------------另:IIC0->KEY,重新开启KEY驱动
    {gpio_keys_init,  DEV_ON_BASEBOARD, PROFILE_ALL},
    //-------------
    
    

    8.GPIO做文件输出(执行后就会在文件下有相应文件)

    
    (/sys/class/gpio/gpio101  /sys/class/gpio/gpio 102)
    static void gpio_keys_init(int evm_id, int profile)
    {
        int err;
     
        setup_pin_mux(gpio_keys_pin_mux);
        err = platform_device_register(&gpio_keys);
        if (err)
            pr_err("failed to register gpio key device\n");
        //-----XSL-----GPIO OUT
        gpio_request(GPIO_TO_PIN(3, 5), "GPIO-KIN1");
        gpio_direction_input(GPIO_TO_PIN(3, 5));
        gpio_export(GPIO_TO_PIN(3, 5), 0);
        gpio_request(GPIO_TO_PIN(3, 6), "GPIO-KIN2");
        gpio_direction_input(GPIO_TO_PIN(3, 6));
        gpio_export(GPIO_TO_PIN(3, 6), 0);
        //-------------
    }
     
    

    9.终端测试:

    查看状态---cat value

    2022-04-03 18:45:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载