日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三次月考

發(fā)布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三次月考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第八章 讓開發(fā)板發(fā)出聲音:蜂鳴器驅(qū)動

一、linux代碼驅(qū)動的代碼重用:linux驅(qū)動的代碼重用有很多的方法,比如說用c程序的方式,將要重用的代碼放到其他文件中但是要在頭文件中聲明。還可以采用另外一種動態(tài)重用的方式就是一個linux驅(qū)動可以使用另一個驅(qū)動的內(nèi)容,如函數(shù)等。編譯是由多個文件組成的linux驅(qū)動,如果linux驅(qū)動復(fù)雜,就需要多個linux文件來存放不同的功能,這樣有利于分類和管理。

二、強行卸載linux驅(qū)動:如果編寫的linux驅(qū)動程序在邏輯上是正確的,那么是可以正常裝載和卸載的,在有些情況下就不能正常裝載和卸載,Linux驅(qū)動無法卸載的情況:

情況一:初始化函數(shù)崩潰p

情況二:卸載函數(shù)被阻塞

三、蜂鳴器(pwm)驅(qū)動:蜂鳴器與LED一樣也是開發(fā)板自帶的簡單的硬件,若打開蜂鳴器開發(fā)板會發(fā)出想蜂鳴一樣的叫聲,關(guān)閉就會停止尖叫。蜂鳴器驅(qū)動的原理:pwm基本原理通過脈沖來控制蜂鳴器的打開和關(guān)閉。

測試蜂鳴器驅(qū)動:pwm_fun.c則包含了打開和停止pwm的兩個函數(shù),從Makefile中可以看出,編譯器首先將pwm.c和pwm_fun.c文件編譯成pwm.o和pwm_fun.o,然后再將兩個.o文件連接成pwm_driver.o,最后生成pwm_driver.ko,然后執(zhí)行build.sh腳本文件,然后就編譯成功了。

輸入如下命令:

./ioctl /dev/pwm_dev 1 0

./ioctl /dev/pwm_dev 0 0

由于命令必須要求輸入I/O命令的參數(shù),而PWM驅(qū)動未使用I/O命令參數(shù),所以ioctl最后一個命令行可以任意輸入?yún)?shù)。如果最后顯示如下信息并且蜂鳴器發(fā)出尖叫則說明測試成功!

第九章 硬件抽象層:HAL

HAL(Handerware Abstraction Layer,硬件抽象層)是建立在linux程序上的一套程序庫,這套程序庫并不屬于內(nèi)核,而是屬于內(nèi)核之上的應(yīng)用層。

一、為什么要在Android中加入HAL:在linux驅(qū)動中一般有兩種類型的代碼:訪問硬件寄存器的代碼和業(yè)務(wù)邏輯代碼。對于訪問硬件寄存器的代碼而言,并沒有秘密,這都是調(diào)用linux內(nèi)核的標(biāo)準(zhǔn)函數(shù)進行的標(biāo)準(zhǔn)操作。Google為android加入HAL其主要目的在于:

統(tǒng)一硬件的調(diào)用接口;

解決了GPL版權(quán)問題;‘

針對一些特殊要求;

二、andriod HAL架構(gòu)

在Andriod系統(tǒng)中使用程序庫,條用位于內(nèi)核空間的Linux驅(qū)動,然后Andriod應(yīng)用程序。

HAL的基本原理是在android系統(tǒng)中使用程序庫調(diào)用內(nèi)核空間的linux驅(qū)動。

三、 為LED增加HAL:將所有業(yè)務(wù)邏輯從LED驅(qū)動移植到HAL模塊,而LED驅(qū)動模塊只保留讀寫寄存器的工程能。加入HAL會使組成linux驅(qū)動的一整套library更加獨立,更加容易維護。編寫一款支持HAL的LINUX程序驅(qū)動程序的步驟:1.Linux驅(qū)動程序;2.編寫HAL Library;3.編寫Service Library。編寫HAL模塊的步驟:1.定義結(jié)構(gòu)體和宏;2.編寫HAL模塊的open函數(shù);3.定義hw_module_methods_t結(jié)構(gòu)體變量;4.定義HAL_MODULE_INFO_SYM變量;5.編寫HAL模塊的close函數(shù);6.編寫控制LED的函數(shù)。

第十章 嵌入式linux的調(diào)試技術(shù)

對于復(fù)雜的linux驅(qū)動及HAL等程序庫,需要使用各種方法對其進行調(diào)試

一、打印內(nèi)核調(diào)試信息:printK:printK函數(shù)與printf函數(shù)類似,只不過printK函數(shù)運行在內(nèi)核空間,printf函數(shù)運行在用戶空間。也就是說像linux驅(qū)動這樣的linux內(nèi)核程序只能使用printK函數(shù)輸出調(diào)試信息。

二、防止printK函數(shù)降低linux驅(qū)動性能:雖然printK函數(shù)可以很方便的將消息寫入日志文件或控制臺,大那是大量使用printK函數(shù)操控日志文件或控制臺設(shè)備文件會嚴(yán)重影響linux的驅(qū)動性能。只要只在開發(fā)階段使用printK函數(shù),在正式發(fā)布linux驅(qū)動時把有可能影響性能的printK函數(shù)去掉。

三、通過虛擬文件系統(tǒng)(/proc)進行數(shù)據(jù)交互:在linux文件系統(tǒng)中,/proc經(jīng)常用來被作為用戶空間和內(nèi)核空間進行數(shù)據(jù)交互的工具。/proc文件系統(tǒng)的行為方式和設(shè)備系統(tǒng)(/dev)的類似。

四、調(diào)試工具:gdb,gdbservice,和kgdb。

轉(zhuǎn)載于:https://www.cnblogs.com/zhaoruixia/p/5638572.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的第三次月考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。