午夜伦理在线-午夜伦理在线观看-午夜毛片免费看-午夜美女久久久久爽久久-午夜免费


曙海教育集團論壇Win CE 專區WinCE系統定制與驅動開發 → OMAP3530 WINCE GPIO驅動開發過程


  共有8781人關注過本帖樹形打印

主題:OMAP3530 WINCE GPIO驅動開發過程

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
OMAP3530 WINCE GPIO驅動開發過程  發帖心情 Post By:2010-11-26 10:58:35

一開始上來整TI的OMAP3530,直接碰的就是系統移植和GPIO驅動�?戳薚I的DATASHEET和產品的性能介紹,說實話真的是一分錢一分貨,與曾經的三星的相比,三星產品的本地化(中國)做得比較好,首先價格較同類便宜,第二由于第一點造就了用的人多,人多英文的變成中文的手冊多,例子多,書多,源碼多。天下源碼一大抄嗎,所以一般而言,三星的就更受歡迎了,但是回過頭來,TI的產品真讓你心服口服。他的支持之多,超過了三星,只是多是英文的,起點高,所以。。。
    言歸正傳,OMAP3530的GPIO(General-purpose Interface)按照分組的原則,共有6組,每組的控制類寄存器是32bit的,代表了32個GPIO,所以總共有192個GPIO,這些是屬于MPU控制的,超過192編號的GPIO是屬于IVA2.2(DSP)控制的。結構框圖如下: OMAP3530的GPIO具有以下功能:
1)數據輸入(捕獲)/輸出(驅動)
2) 帶有防抖功能的鍵盤接口
3)外部事件檢測(電平中斷、邊沿中斷)
4) 在空閑模式下通過外部事件的睡眠喚醒功能
相關的配置需要仔細參照技術手冊
    接下來是WINCE下的GPIO驅動,跳過流驅動的標準框架以及MDD層框架和PDD層的與硬件相關的寄存器設置。這些和三星ARM的GPIO驅動大同小異。
    著重介紹可能遇到的問題,忽略的地方:
我在編寫完OMAP3530的GPIO驅動后,發現有的GPIO能夠控制輸入輸出,有的則不能。經過同學提醒,重新看了技術手冊,原來在技術手冊的第7章System Control Module(SCM)中明確介紹了core modul(內核模塊)和wake-up module(喚醒模塊)。
    SCM主要負責以下功能
1)I/O端口功能復用、多工選擇
2) Pad塊配置(端口上拉/下拉)
3) 設備狀態
4) MPU和DSP(IVA2.2)的外圍擴展設備特性
5) 靜態設備配置
6)調試和觀測功能IO復用
7) 存儲pad塊的配置
pad塊配置寄存器如下:
其中pad塊的配置中有一項就是端口的MODE(3bits),由于一個GPIO可能有多個功能,他們是互斥的,只能選擇一個,就涉及到端口功能的選擇,總共有MODE0到MODE7八個模式,默認是MODE0,MODE7是安全模式。比如GPIO143總共有實實在在的5個模式:mcbsp3_fsx/uart2_rx/gpio143/hsusb3_till_data7/safemode。所以在配置GPIO的時候需要選擇成GPIO模式,不然操作GPIO就沒有效果,這是問題1.
   另外,上面的配置只能解決端口的輸出控制,當端口配置成輸入時,就不一定能讀取端口電平。問題出在哪里呢,繼續仔細參照技術手冊的SCM模塊。pad塊中還有兩項是GPIO的上拉/下拉選項、輸入使能選項。針對當GPIO端口配置為輸入時不能讀取正確的引腳電平的問題,主要原因是由于GPIO端口的輸入使能被關閉了。
   輸入使能(INPUTENABLE)(1bits)的描述如下:
1)INPUTENABLE = 0,關閉引腳輸入,引腳只能夠作為輸出。
2) INPUTENABLE = 1,使能引腳輸入,引腳具有雙向端口功能,即輸入/輸出。
所以我們應該使能SCM中,pad塊的這項功能。
   具體到相關的WINCE文件有
GPIO驅動:
   1) $\WINCE600\PLATFORM\TI_EVM_3530\SRC\DRIVERS\GPIO\gpio.cpp
   2)$\WINCE600\PLATFORM\COMMON\SRC\SOC\OMAP35XX_TPS659XX_TI_V1\omap35xx\GPIO\omap35xx_gpio.cpp
啟動時安裝配置成GPIO的文件:
   1)$\WINCE600\PLATFORM\TI_EVM_3530\SRC\BOOT\XLDR\platform.c
比如:
   VOID GpioSetup()函數下的GPIO模式和端口方向定制:
 OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D0, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D1, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D2, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D3, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D4, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D5, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D6, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D7, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
    OUTREG16(&pConfig->CONTROL_PADCONF_SDRC_D8, (INPUT_ENABLE | PULL_INACTIVE | MUX_MODE_0));  
 
   綜上所述:SCM模塊決定了端口的功能,而GPIO模塊控制了端口的GPIO功能;GPIO只是端口功能的一個子集。

支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

OMAP3530 WINCE GPIO驅動開發過程








簽名
主站蜘蛛池模板: 91精品国产调教在线观看 | 美女黄色在线网站大全 | 欧美日本俄罗斯一级毛片 | 爱操综合 | 国产v视频| 国产三级视频在线观看视主播 | 黄色影片在线看 | 黄色录像免费看 | 欧美日韩一卡 | 在线中文天堂 | 免费一级毛片在线播放不收费 | 日本丝袜一区 | 亚洲最大网址 | 日本69色视频在线观看 | 中文字幕久热在线精品 | 91视频免费网址 | 黑人欧美一级毛片 | 国产亚洲一区二区三区不卡 | 国产一区免费视频 | 免费啪视频观在线视频在线 | 中文字幕在线高清 | 成人在线免费视频播放 | 亚洲精品国产免费 | 欧美精品黄页在线观看大全 | 亚洲欧美中文字幕专区 | 成人精品国产 | 免费二级c片在线观看a | 欧美日韩国产在线观看 | 亚洲最大激情中文字幕 | 999jjj在线播放 | 337d欧美人体大胆瓣开下面 | 欧美一区二区三区成人看不卡 | 亚洲国产精品久久人人爱 | 国产女同磨豆腐视频在线观看 | 日本三级a做爰视频东爱 | 4388x17亚洲最大成人网 | 女的被到爽的羞羞视频 | 国产女人一区二区 | xxxxxxhd日本d| 污污的网站有哪些呢 | 精品视频免费 |