Time of Update: 2018-12-04
看2410的驅動,始終沒弄清楚裝置和匯流排是如何勾搭上的,順藤摸瓜就找到了下面這個函數,好好的分析一下吧。對驅動模型理解的不是太透徹,不對的地方您儘管仍(最好是雞蛋,現在都買不起了) int platform_device_add(struct platform_device *pdev){int i, ret =0;if (!pdev) /*驗證指標的有效性 */ return-EINVAL;if (!pdev->dev.parent)/*都說匯流排有兩個鏈表,一個是裝置鏈表(
Time of Update: 2018-12-04
轉自:http://nuclear-imaging.info/site_content/2011/05/11/vnc-server-setup-for-ubuntu-11-04-natty-narwhal/ For the first time I was able to get VNC to work with Ubuntu with Gnome session instead of a xterm on gray background. The steps involved were
Time of Update: 2018-12-04
關於volatile變數的理解 收藏 一個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去假設這個變數的值了。精確地說就是,最佳化器在用到這個變數時必須每次都小心地重新讀取這個變數的值,而不是使用儲存在寄存器裡的備份。下面是volatile變數的幾個例子: 1). 平行裝置的硬體寄存器(如:狀態寄存器) 2). 一個中斷服務子程式中會訪問到的非自動變數(Non-automatic variables) 3).
Time of Update: 2018-12-04
強大的測試組居然測出不少android架構級的bug,其中有一個現象如下: 故事是這樣發生的,當焦點放在地址欄時,會彈出SearchDialog,而在下方會有一個popup
Time of Update: 2018-12-04
混雜裝置驅動程式 收藏 混雜裝置驅動程式是那些簡單的字元驅動程式,它們擁有一些相同的特性。核心將這些共同行抽象至一個API中(具體實現代碼見 drivers/char/misc),這些簡化了驅動程式的初始化的方式。所有的混雜裝置都被分配一個主裝置號10,但每個裝置可選擇一個單獨的次裝置號。普通的字元驅動程式完成初始化的順序如下。 1,通過alloc_chrdev_region()及相關函數分配主/次裝置號。 2,使用device_create()建立/dev和/sys節點。
Time of Update: 2018-12-04
#include <stdio.h>#include <stdlib.h>#include <string.h>/* 關鍵字表宏定義 */#define KEYTYPE int // #define ERRTYPE -1#define FILES 0#define DATE 1#define FONT_NAME 2#define FONT_SIZE 3#define TIMES 4#define HEAD 5#define DATA_BEGIN 6
Time of Update: 2018-12-04
首先給出一個ED和TD的鏈表結構圖,相信有了這個圖對代碼的理解就容易多了!HeadPtr-->ED-->ED-->ED-->EDED-->TD-->TD-->TD... 根據OHCI spec:每個ED(Endpoint Descriptor)描述USB裝置的一個端點的所有資料轉送,所有的ED被串連在一起;而TD(Transfer
Time of Update: 2018-12-04
殭屍進程及其避免方法 收藏 Author :Jeffrey.zhu My Blog:http://blog.csdn.net/gueter/ 1、何謂殭屍進程? 在linux系統中,一個已經終止但父進程尚未對其進行善後處理(釋放子進程相關資訊佔用的資源)的子進程叫做殭屍進程 。子進程結束時,父進程調用pid_t wait(int *statloc)或者pid_t waitpid(pid_t pid,int *
Time of Update: 2018-12-04
電容屏被廣泛使用,多點觸摸機制也隨之發展,可惜29核心不支援多點上報,30以後核心才支援。特此記錄移植過程。 1、修改include/linux/input.h Index: include/linux/input.h===================================================================--- include/linux/input.h (revision 1550)+++ include/linux/input.h
Time of Update: 2018-12-04
STM32 USB 程式將BULK EP改成雙緩衝機制後,接收OUT資料的速度從原先的500KB/S, 收藏 前天測試自己編寫的USB驅動程式時候發現從主機到STM32的OUT傳輸(主機到裝置)速率竟然只有最高33KB/S,實在是暈死了。經過研究後發現是驅動程式中設定的PIPE MaxTransferSize參數的關係,原先設定64隻能33KB/S,後參考其他USB裝置驅動程式的值,設定成了65535,再測試USB OUT的速度,達到了500KB/S,終於解決了驅動程式的瓶頸。不過算下USB 2
Time of Update: 2018-12-04
Linux驅動程式開發 - 裝置驅動模型初探 收藏 序言 從這一章開始,我們將詳細的介紹Linux的裝置驅動模型。Linux裝置驅動模型是一個相當複雜的系統,對於初學者來說真有些無從入手。而且更加困難的是,隨著新的Linux Kernel的release,Linux的裝置驅動模型總會有或大或小的變化,我們將盡量展現 Linux Kernel
Time of Update: 2018-12-04
測試部提出一個產品bug,說是android預設的瀏覽器無法使用手勢縮放頁面,確實比較奇怪,這點android預設就是支援的,糾察原因時比較幸運,在WebView.java中發現了這個函數: void updateMultiTouchSupport(Context context) { WebSettings settings = getSettings(); mSupportMultiTouch =
Time of Update: 2018-12-04
ARM指令 LDR 和 ADR的一些區別 收藏 LDR 是ARM中的指令,也是偽指令。當用 LDR r, =imd // r 為寄存器, imd為立即數LDR 是一條偽指令。編譯器會根據 立即數的大小,決定用 ldr 指令或者是mov或mvn指令。當imd能用mov或者mvn操作時,就將它翻譯成一條mov或mvn指令。當imd大於mov或mvn能夠操作的數時,編譯器會將imd存在一個記憶體單元中,然後再用一條ldr指令載入這個記憶體單元的的值到寄存器中。LDR r, label 和 LDR
Time of Update: 2018-12-04
近期由於需要,研究了魔獸檔案打包管理器的相關演算法,重點對其檔案索引表的產生和尋找進行了研究:採用雜湊表進行,在衝突方面的處理方面,採用線性探測再散列。在添加和尋找過程中進行了三次雜湊,第一個雜湊值用來尋找,後兩個雜湊值用來校正,這樣可以大大減少衝突的幾率。 這裡對其進行了簡單的封裝,擴充時,僅僅需要對結構體進行擴充即可。更為詳細的說明,參考代碼:【轉載請保留著作權,謝謝】 一、類聲明標頭檔 /////////////////////////////////////////
Time of Update: 2018-12-04
exit(),_exit()的區別 收藏 Linux的源碼#define __NR_exit 1#define __NR__exit __NR_exit /* 摘自檔案include/asm-i386/unistd.h*/
Time of Update: 2018-12-04
在ubuntu 1004中直接安裝kscope的方法:-.pcb { margin-right: 0pt; }在ubuntu 1004中直接安裝kscope的方法: 1. download kscope deb wget http://ftp.debian.org/pool/main/k/kscope/kscope_1.6.2-1_i386.deb 2. 下載後一定不要用命令列去安裝這個包. 直接點擊 會調用 gdebi 去安裝這個包 3. 下載 kate 庫 wget
Time of Update: 2018-12-04
iPhone tab bar Item image resolution tabbaritem的圖採用什麼大小解析度比較合適?The documentation says that the tab bar image is usually 30x30, but I've found that the best size to setup the images is 48x32 pixels. This size still renders and gives you a bit more
Time of Update: 2018-12-04
Linux系統在使用光碟片、磁碟片或隨身碟時,必須先執行掛載(mount)命令。掛載命令會將這些儲存介質指定成系統中的某個目錄,以後直接訪問相應目錄即可讀寫儲存介質上的資料。 1.掛載光碟片 掛載光碟片的命令如下: # mount -t is09660 /dev/cdrom /mnt/cdrom 該命令將光碟片掛載到/mnt/cdrom目錄,使用“ls /mnt/cdrom”命令即可顯示光線盤中資料和檔案。 卸載光碟片的命令如下: # umount /mnt/
Time of Update: 2018-12-04
裝置節點的動態建立 收藏 我們在剛開始寫Linux裝置驅動程式的時候,很多時候都是利用mknod命令手動建立裝置節點,實際上Linux核心為我們提供了一組函數,可以用來在模組載入的時候自動在/dev目錄下建立相應裝置節點,並在卸載模組時刪除該節點,當然前提條件是使用者空間移植了udev。 核心中定義了struct class結構體,顧名思義,一個struct
Time of Update: 2018-12-04
摘要 本文主要介紹了嵌入式Linux系統下使用pppd 2.4.4來進行PPP撥號需要使用的指令碼是如何配置的,配置項的含義,同時也說明了如何來配置參數,實現ppp撥接。一.問題提出