A20 GPIO
1. A20的bsp給應用程序封裝了gpio接口,其源碼在bsp的位置如下:
??? frameworks/base/core/java/android/os/Gpio.java
??? frameworks/base/core/jni/android_os_Gpio.cpp
??? 使用的時候導入javalib.jar即可
2. 下面介紹如何在驅動層操作gpio
??? 通過搜索驅動代碼,在init_ctp.c里面發現這一行
??? __gpio_set_value(config_info.wakeup_gpio_number, 1);
?? 這顯然是給一個gpio管腳設置高低電平
?? 那么config_info.wakeup_gpio_number這個一定是此管腳的編號,再查看代碼發現
?? type = script_get_item("ctp_para", "ctp_wakeup", &item);
?? ?if(SCIRPT_ITEM_VALUE_TYPE_PIO != type) {
?? ??? ?printk("script_get_item ctp_wakeup err\n");
?? ??? ?return -1;
?? ?}
?? ?config_info.wakeup_gpio_number = item.gpio.gpio;
??? 從這幾句就可以看出,script_get_item通過sys_config.fex文件的里面配置信息給其分配了一個編號。
?? 那么我們想操作這個gpio,用此編號即可。從代碼注釋里可以看到這個編號的含義。
?? 在gpio.h里面,u32 gpio;?????? /* gpio global index, must be unique */
?? 也就是說,這樣用即可
?? script_get_item("ctp_para", "ctp_wakeup", &item);
?? __gpio_set_value(item.gpio.gpio, 1);?????????
?? 這里要注意,__gpio_set_value是兩個下劃線開頭,我用了一個下劃線,找了半天才找到問題
總結
- 上一篇: 江西宜春暴雨成灾 网友实拍当地情况:有居
- 下一篇: 开源应用架构之asterisk