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

正文內(nèi)容

linux設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)(參考版)

2024-07-28 15:36本頁(yè)面
  

【正文】 2022 Embedded 169。 2022 Embedded ? LED實(shí)驗(yàn) – 在完成前兩個(gè)實(shí)驗(yàn)后 ,開(kāi)始編寫(xiě) LED的驅(qū)動(dòng)程序 – 用于在指定位置顯示數(shù)字的復(fù)合指令 – 其中 A3~A0 為顯示緩存編號(hào)范圍為 0000B~0111B 對(duì)應(yīng) DpRam0 ~DpRam7 無(wú)效的編號(hào)不會(huì)產(chǎn)生任何作用 。 – y = ()*240/(1869211)+240。 read(fd, (char*)amp。 } TS_RET。 unsigned short y。 2022 Embedded 實(shí)驗(yàn)步驟 觸摸屏驅(qū)動(dòng) ? 編寫(xiě)應(yīng)用程序需要用到的數(shù)據(jù)結(jié)構(gòu) TS_RET 當(dāng)調(diào)用 read( )函數(shù)從觸摸屏驅(qū)動(dòng)中讀取數(shù)據(jù) ,讀出 TS_RET類型的數(shù)據(jù)結(jié)構(gòu)定義如下 : typedef struct { unsigned short pressure。 2022 Embedded 實(shí)驗(yàn)步驟 demo驅(qū)動(dòng)程序 ? 閱讀和理解源代碼 – 進(jìn)入 /arm2410s/exp/drivers/demo, 閱讀理解源代碼 ? 編譯驅(qū)動(dòng)模塊 – 修改 Makefile文件 , 編譯實(shí)驗(yàn)平臺(tái)運(yùn)行的驅(qū)動(dòng)程序 ? 測(cè)試驅(qū)動(dòng)程序 – 裝載驅(qū)動(dòng)程序和建立設(shè)備文件節(jié)點(diǎn) ? insmod ? [ ]mknod /dev/demo c 254 0 – 編譯測(cè)試程序并運(yùn)行 ? [ ]armv4lunknownlinuxgcc – o test_demo ? ./test_demo 169。 } 169。 close(fd)。 } ioctl(int fd, int cmd,?)。 if((fd=open(/dev/led, O_RDWR)) 0) { printf(open led device failed!\n)。 2022 Embedded LED測(cè)試應(yīng)用程序框架 include include include include include sys/ int main() { int fd。 ? 可以使用 IIC_Write(char baseAddr, char offSet, char data)來(lái)設(shè)置寄存器的值(字節(jié)操作),該函數(shù)在 。 2022 Embedded LED顯示驅(qū)動(dòng)器功能框圖 ? IIC基地址是 0x70 ? 有 24個(gè) 8位寄存器( 0x0- 0x17) ,通過(guò)IIC總線訪問(wèn),必須是字節(jié)操作 ? 主要寄存器 SystemReg 0x0 FlashOnOff 0x0c ScanNum 0x0d DpRam0~7 0x100x17 CmdBuf0~1 0x70x8 ? 兩種控制方式: 寄存器映象控制 命令解釋控制 ? 參考 169。 2022 Embedded LED連接原理圖 169。 ? 睡眠進(jìn)程被喚醒并不一定代表有數(shù)據(jù),也有可能是被其他的信號(hào)喚醒,所以醒來(lái)后需要測(cè)試 condition. 169。 – 在阻塞型 IO中, read和 write調(diào)用可能會(huì)出現(xiàn)阻塞 ? read調(diào)用當(dāng)前無(wú)數(shù)據(jù)可讀,而又沒(méi)有數(shù)據(jù)馬上可讀,這時(shí)會(huì)睡眠并且等待, write調(diào)用也會(huì)出現(xiàn)這樣的情況 ? 等待隊(duì)列機(jī)制- wait_queue_head_t。 – 由于用戶空間和內(nèi)核空間的內(nèi)存映射方式不同,所以在內(nèi)核和用戶空間傳輸數(shù)據(jù)的時(shí)候需要使用如下的函數(shù) ? unsigned long copy_to_user(void *to, const void* from, unsigned long count)。 2022 Embedded 驅(qū)動(dòng)程序的實(shí)現(xiàn)-驅(qū)動(dòng)程序框架 ? open – 提供給驅(qū)動(dòng)程序初始化設(shè)備的能力,為后續(xù)的操作做準(zhǔn)備 – 此外一般會(huì)遞增使用計(jì)數(shù),防止文件關(guān)閉前模塊被卸載 – 通常情況下, open完成如下工作: ? 遞增使用計(jì)數(shù) ? 檢查特定設(shè)備錯(cuò)誤 ? 如果設(shè)備是首次打開(kāi),則對(duì)其進(jìn)行初始化 ? 識(shí)別次設(shè)備號(hào),如有必要,則修改 f_op指針 ? 分配并填寫(xiě) filpprivate_data中的數(shù)據(jù) ? release – 與 open正好相反 ? 釋放由 open分配的 filpprivate_data中的數(shù)據(jù) ? 在最后一次關(guān)閉操作時(shí)關(guān)閉設(shè)備 ? 使用計(jì)數(shù)減一 169。 module_exit(demo_exit)。 printk(DEVICE_NAME unloaded\n)。 return 0。 if (result 0) return result。 resul
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1