原创 sysfs____之用戶屬性接口(XXX_ATTR)

前言 如果你正在開發的設備驅動程序中需要與用戶層的接口,一般可選的方法有: (1)、註冊虛擬的字符設備文件,以這個虛擬設備上的 read/write/ioctl 等接口與用戶交互;但 read/write 一般只能做一件事情, ioct

原创 power_supply子系統筆記

現在的手機平板供電系統變得比以前的嵌入式設備複雜了,要考慮USB、AC和battery的供電,同時USB和AC還要充電,這一系列功能一般由電源管理芯片完成。android設備使用的供電系統使用的是sys文件系統的固定位置,對應的硬件抽象層

原创 sysfs____之ATTR實例

接下來的例子,我會在驅動中提取,來源是高通MSM8610下Android4.3對應的kernel 1、觸屏虛擬按鍵(通用ATTR) 這個示例創建目錄和attr是通用的,不管device,device_driver,還是class,只要是

原创 linux notifier機制及應用

linux龐大系統中,各個模塊是相對獨立的,那麼模塊間通信該如何做呢?當然你也可以使用全局資源,如果這樣的話系統缺少獨立性,會帶來穩定性問題的。如果你說,使用共享內存,進程通信等,那麼你曲解我的意思了,因爲你說的大多是user space

原创 linux驅動____LED子系統筆記

LED在linux系統中居然組織了一個子系統,個人完全可以自定義LED系統,但是爲了統一到,便於代碼移植的一致性,我們還是多用系統帶的LED子系統吧!如果你是開發android驅動的,那HAL層用的就是LED子系統提供的sys接口。本文以

原创 windows批處理在androi開發中的作用

windows批處理是DOS時代的產物,現在已經很少人用了,以前的一些病毒高手,一些裝機工具都在使用它。最近公司生產的安卓機器用QPST燒寫,老是會出現藍屏,死機,設備管理器有黃色感嘆號,嚴重影響機器燒寫速度,我們不是生產手機的,沒那麼大

原创 github詳盡圖文配置攻略

驅動開發過程中,經常廠商提供的芯片驅動都在github上,而且很多質量高的開源代碼大多都在上面,學習使用很有必要。由於是國外的代碼託管網站,在中國訪問時很慢,至少我是這樣的感覺,有時還連不上。 git本來就是給linux設計的,現在出來了

原创 android中JavaScript與java接口互相調用產生的失效問題

有個汽車廠商提出需求,在我們提供的安卓設備上使用js來調用java硬件服務接口,一般我們有人寫apk demo的。我沒用過js,java只是能大概看懂,只是個開發驅動底層的,這可難住我了,我去,度娘你在哪裏!? 在網上搜了一會,不少人還真

原创 linux kernel時間管理

    1. 內核中的時間節拍     內核時鐘頻率在arm中默認是100,即HZ=100,定義在arch/arm/include/asm/param.h,這個值是可以改變的,內核代碼儘量使用HZ宏,不要直接使用100。提高頻率雖然可以提

原创 Android開發小問題集

由於安卓系統比較複雜,開發中會發中會碰見各種小問題,在此做一些記錄,只要覺得有必要就會添加進來。 1、觸屏鼠標模式和觸屏模式 開發android4.3高通400平臺時,用atmel_max 640T作爲觸屏,很奇怪的問題,調好驅動後,系

原创 linux開發打印及格式化

在進行android或者linux開發的過程中,打印和格式化使我們經常使用的函數,有時候有某種想法,可是不知道有哪些函數可以去實現,就算你知道是有函數的,但你可能記不住名字,參數個數,以及順序,快年底了,趁現在有空,趕緊整理出來,我可能側

原创 將定製的java包引入到android系統中

開發環境 主機: ubuntu android機: android 4.3 CPU: MSM8610 一般行業定製機器或者某些品牌會定製自己的jar包,那麼如何將其引入android系統中,作爲全局包呢?如果只是引入第三方已做好的jar

原创 linux驅動____中斷底半部

 前言     在linux老版本的內核(2.6之前),系統中斷分爲頂半部和底半部。其實這不是linux的專利,很多現代操作系統都有類似的方法來平衡快速響應和執行復雜任務的關係。早期的有bottom half(BH)和task queue

原创 併發控制____完成量(comletion)

      完成量用於一個執行單元等待另一個執行單元完成某些工作。強調代碼片或執行單元的執行順序,就用完成量completion。     相關文件#include <linux/wait.h>   1. 定義: 如: struct c

原创 sysfs____之簡明筆記

我們在開發或調試設備驅動時常常用到/sys目錄下的東西,甚至有的時候完全依賴這個目錄下的東東,而不用/dev下的設備,比如一些傳感器,vibrator,leds等。安卓驅動的HAL層大量使用了這個/sys下的屬性節點。那麼這個/sys目錄