久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1697|回復: 1
打印 上一主題 下一主題
收起左側

飛思卡爾-iMX6開發板-GPIO讀寫配置文檔_V1.0《1》

[復制鏈接]
跳轉到指定樓層
樓主
本文檔主要介紹 iMX6 板子 gpio 引腳讀寫配置。有關平臺文件的設備注冊的資料可以參
考“iTOP-iMX6-平臺文件注冊設備”文檔。注冊的設備名稱是“gpio_ctl”。
硬件環境:iMX6 開發板:核心板 v_1.2、底板 v_2.2(以及 v_2.1 底板)。
軟件環境:Ubuntu12.04。
1.1 配置文件簡述
配置 gpio 需要研究三個文件,分別為“ arch/arm/plat-mxc/include/mach/iomux-
mx6q.h”、“arch/arm/mach-mx6/board-mx6q_topeet.h”、“arch/arm/mach-
mx6/board-mx6q_topeet.c”。
其中“arch/arm/plat-mxc/include/mach/iomux-mx6q.h”文件為 IMX6 所有 IO 及其
每個 IO 所有功能的定義集合,用戶可通過此文件來查詢某個 IO 的功能的定義。
“arch/arm/mach-mx6/board-mx6q_topeet.h”文件用來定義初始化 IMX6 對應需要
用到的 IO 口的功能。在該文件對 gpio 進行初始化。
“arch/arm/mach-mx6/board-mx6q_topeet.c”文件為 IMX6 的板級初始化文件,在
該文件可以對 gpio 引腳進行設置。
1.2 硬件介紹
1.2.1 底板部分
查看 v_2.2 版本的 iMX6 底板原理圖。我們以下面的 5 個引腳為例。進行下面的操作。
下圖是 v_2.1 版本的底板原理圖。
在底板原理圖上搜索各個網絡標號“EIM_D17”、“EIM_D18”、“EIM_D20”、
“KEY_ROW5”、“EIM_D19”。可以查看到均連接到板對板連接器。也就是全都連接到核
心板上。接下來去看核心板原理圖。
1.2.2 核心板部分
搜索上述的網絡標號,查看連接到核心板的什么位置。如下圖。
由上圖可知,五個引腳分別接到核心的“EIM_D17”、“EIM_D18”、“EIM_D20”、
“GPIO_1”、“EIM_D19”引腳。接下來在“arch/arm/plat-mxc/include/mach/iomux-
mx6q.h”查看各個 IO 口的功能定義。
1.3 軟件配置
1.3.1 iomux-mx6q.h 文件
iomux-mx6q.h 文件主要功能是查詢某個 IO 的功能的定義。
進入 iMX6 內核源碼目錄,使用“vi arch/arm/plat-mxc/include/mach/iomux-
mx6q.h”命令打開 iomux-mx6q.h 文件。如下圖。
搜索上述查看到的五個引腳名稱。
以引腳 1 為例。使用“/EIM_D17”搜索到如下信息。如下圖。
由上圖可以看見擴展總線”EIM_D17”被定義為 8 種功能。我們在使用該引腳是要注
意,無論是初始化還是定義功能,都不能沖突,避免自己使用的功能被其他功能占用。
EIM_D17 配置為 GPIO 功能時使用的是定義為:_MX6Q_PAD_EIM_D17__GPIO_3_17。
其中 _MX6Q_PAD_EIM_D17__GPIO_3_17 被定義為:
#define _MX6Q_PAD_EIM_D17__GPIO_3_17 \
IOMUX_PAD(0x03A8, 0x0094, 5, 0x0000, 0, 0)
這個宏比較關鍵,其原型為:
#define IOMUX_PAD(_pad_ctrl_ofs,_mux_ctrl_ofs,_mux_mode,_sel_input_ofs,_sel_input,_pad_ctrl)
IOMUX_PAD 宏有 6 個參數,每個參數的意思是:
引腳 2、3、12 和引腳 1 定義類似。不再贅述。再搜索一下引腳 10 的定義。使用
“/GPIO_1”命令,查看到如下信息。(注意 GPIO 為 MX6Q_PAD 之后的 GPIO)
由 上 圖 可 知 , GPIO_1 配 置 為 GPIO 功 能 時 使 用 的 定 義 為 :
_MX6Q_PAD_GPIO_1__GPIO_1_1 。
現在可以暫時總結一下我們得到的信息。如下圖。
1.3.2 board-mx6q_topeet.h 文件
board-mx6q_topeet.h 文件用來定義初始化 IMX6 對應需要用到的 IO 口的功能。
在 board-mx6q_topeet.h 文件中要搜索使用的 IO 有沒有沒被定義為其他功能,有的話
需要注釋掉,然后添加自己的初始化定義。
在內核源碼目錄輸入“vi arch/arm/mach-mx6/board-mx6q_topeet.h”命令,打開
board-mx6q_topeet.h 文件。如下圖。
還是以 EIM_D17 的配置為例進行操作。使用”/MX6Q_PAD_EIM_D17”搜索初始化信
息,查看到該功能已經被初始化。把該初始化注釋掉,如下圖。
再次搜素沒有發現其他相關定義。其他引腳與此類似。要保證沒有被其他功能定義
(iomux-mx6q.h 文件中的定義)。還需要注釋掉一個地方,如下圖。
下面給上述引腳添加初始化。如下圖。
注意,是添加到 mx6q_topeet_pads[]之中。
1.3.3 board-mx6q_topeet.c 文件
board-mx6q_topeet.c 文件可以對 gpio 引腳進行設置。
在 board-mx6q_topeet.c 文件中我們將要使用的 gpio 管腳有可能被其他功能占用,需
要我們把其他功能注釋掉、或者設置為 NULL。
在 iMX6 的內核源碼目錄,使用”vi arch/arm/mach-mx6/board-mx6q_topeet.c”命
令打開 board-mx6q_topeet.c 文件,如下圖。
使用命令“/IMX_GPIO_NR(3, 17)”查找 EIM_D17 對應的配置。(此處應注意 17 和前
面的逗號之間有個空格,不然搜索不到)。把搜索到配置修改為 NULL。如下圖。
其它引腳與此類似。全部修改如下圖。
至此。我們的配置就都做完了。注意:IMX_GPIO_NR(1, 1)一共有兩處。
按照”iTOP-i.MX6 開發板之全能版使用手冊”中的內核編譯步驟,進行編譯內核。重新
燒寫到開發板。進行下一步測試。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:245207 發表于 2019-12-5 11:32 | 只看該作者
iTOP-iMX6已經支持安卓7.1系統
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区中文字幕 | 日韩91在线 | 久久高清 | 日韩中文字幕在线观看视频 | a黄在线观看 | 夜夜骚视频 | 久久久久久久电影 | 久久国产精品99久久久久 | 岛国毛片在线观看 | 日韩精品在线播放 | 青草青草久热精品视频在线观看 | 久久这里有精品 | 国产成人叼嘿视频在线观看 | 日韩中文字幕在线观看 | 在线亚洲欧美 | 久久婷婷麻豆国产91天堂 | 天天视频一区二区三区 | 亚洲高清在线免费观看 | 欧区一欧区二欧区三免费 | 亚洲精品国产一区 | 亚洲精品久久久9婷婷中文字幕 | 天天综合网91 | 精品国产黄色片 | 日韩精品一区二 | 成人深夜福利 | 国产精品视频一区二区三区四蜜臂 | 日韩一区av | 国产日韩欧美 | 超碰在线免费公开 | 91精品导航| 精品日韩一区 | 亚洲专区在线 | 成人在线一区二区 | 日韩av在线一区二区三区 | 国产精品久久久久久吹潮日韩动画 | 韩日在线视频 | 精品美女在线观看视频在线观看 | 国产福利观看 | 国产精品亚洲精品 | 7777在线视频 | 一区精品视频在线观看 |