Time of Update: 2018-12-03
ioctl系統調用是為使用者空間建立的一種控制硬體裝置的通道。比如控制串口的傳輸速率,馬達的轉速等等。是使用者空間和核心空間進行通訊的方式之一。要實現一個ioctl,需要使用者空間和核心空間兩方面的配合。如果想要一個硬體支援ioctl,則要在其驅動函數中加入ioctl的實現,應用程式想要通過ioctl控制一個裝置,則要在使用者空間發起一個iotcl系統調用。它在使用者空間的系統調用函數原型為: int ioctl ( int fd, unsigned long cmd,
Time of Update: 2018-12-03
1、typedef int (init_fnc_t) (void);表示定義init_fnc_t為函數類型,該函數返回int型,無參數。而“init_fnc_t *init_sequence[]={ cpu_init, board_init }”表示用init_fnc_t(函數類型)去定義一個一維指標數組,數組中的元素都是指標變數,而且都是指向函數的指標,這些函數傳回值都是int型,無參數的。更明朗的說就是數組中的每個元素是用來存放函數入口首地址的。 2、int
Time of Update: 2018-12-03
1.如何找回失去的context window context window 在看程式時很有用,當使用者指向某個函數或變數時,在context window中都會有該變數或函數的定義;但有時會為了增加程式的容量或者不小心,將context window變成獨立視窗,sourceinsight沒有簡單的菜單來恢複它。下面介紹一種網上流傳的方法:步驟為: 運行source insight, 點擊Options->Save Configuration.選擇“All settings”,
Time of Update: 2018-12-03
linux下的每一個字元裝置都有一個struct cdev結構體,所以編寫字元裝置驅動就是把這個結構體填好。該結構體如下:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj; //每個 cdev都是一個kobject struct module *owner; //指向實現驅動的模組 const struct file_operations *ops;
Time of Update: 2018-12-03
設定一個阻塞型字元裝置驅動在裝置的讀操作中加入阻塞函數:...While(!have_data){ if (filp->f_flags & O_NONBLOCK) return -EAGAIN; wait_event_interruptible(dev->inq,have_data);}...在裝置的寫操作完成後喚醒裝置 ...have_data = true; /*有新的資料可讀了*/Wake_up(&dev-&
Time of Update: 2018-12-03
幀定界就是標識幀的開始與結束。有4
Time of Update: 2018-12-03
在RS485網路的通訊中出現通訊故障時,可能存在很多方面的原因,可以考慮按照下面思路進行分析: 1、通訊電纜連線不正確(包括接觸不良) 物理上不通雖然是最簡單的問題,但也是最容易犯錯的地方。正確的電纜連線是完成通訊的基礎,實際的應用中要確保接線的正確。 很多時候連接器上的管腳碼小,不易看清;焊接工藝上不熟練等都是容易串連錯誤的問題所在。 當實際的通訊電纜長度大於50米時,要在匯流排的兩端加匹配的終端電阻。當然這個50米也不是絕對值,如果大家手頭上有電阻是,可以考慮都加上而不必拘泥於通訊電纜的長度
Time of Update: 2018-12-03
混雜裝置定義:linux中把無法歸類的五花八門的裝置定義為混雜裝置,像LED,按鍵等。所有的混雜裝置都被分配一個主裝置號10,但每個裝置可選擇一個單獨的次裝置號。混雜裝置用一個struct miscdevice結構體來描述,混雜驅動只需要調用misc_register()即可完成字元驅動的所有步驟: #include<linux/miscdevice.h> 建一個miscdevice結構體static struct miscdevice misc = { .minor =
Time of Update: 2018-12-03
轉載請註明出處:http://blog.csdn.net/icyfox_bupt 文檔:http://url.cn/30W8lo 大家好,我是狐狸,在學校實驗室一起學習了單片機,現在就把我的一些學習經驗和大家分享,隨著以後的學習,我還會慢慢的進步。希望我的文章會對大家有協助。 實驗室使用的是Cortex M3 LM3S811 型號。 本來想把驅動庫,原理圖,內部原理都上傳到百度文庫的
Time of Update: 2018-12-03
轉自:http://blog.sina.com.cn/s/blog_4d66279f010009ho.html 這幾天研究VC,做個多線程的伺服器。就在CString上屢受挫折,痛定之後學習了網上一些高手的文章(其實還是msdn寫的好,只不過英文的看著費勁),有點理解了。其實最關鍵的是CString是個類,而且是引用,有些操作有可以直接操作記憶體。這就在CString特殊又容易搞錯的地方,我在這拼出一些網上我覺得很好文章,互相學習。 串操作是編程中最常用也最基本的操作之一.
Time of Update: 2018-12-03
轉載請註明來曆:http://blog.csdn.net/icyfox_bupt/archive/2011/05/23/6440874.aspx BasicExcel是一個很好的讀取excel的庫,對於做小程式來說很方便,作為一個初學者,現在來初步討論一下對於這個庫的使用。 BasicExcel的:http://www.codeproject.com/KB/office/BasicExcel.aspx 同時還附有BasicExcel的庫函數。 首先建立一個工程,取名為qtexcel,
Time of Update: 2018-12-03
sizeof 是用來計算一個數組佔用多少空間,如果運算元是一個指標,則反回的是一個指標的大小。下面看一些例子: char ss[10]; sizeof(ss) == 10;表示在記憶體中的大小為 10*1 char ss[] = "0123456789"; sizeof(ss) == 11; //ss是數組,計算到\0位置,因此是 10+1 char *ss = "How are you!";
Time of Update: 2018-12-03
轉自:http://blog.sina.com.cn/s/blog_4db3fe5501008o0k.html1.SQLBindParameter:其作用為當我們要向例如預存程序傳遞參數時,我們可利用其綁定我們要傳遞的參數。SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_CHAR,SQL_VARCHAR,10,0,&name1,0,&namelen); 參數 類型
Time of Update: 2018-12-03
轉自:http://qun.51.com/yaoliying/topic.php?pid=4673 這幾個宏是為了進行條件編譯。一般情況下,來源程式中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的條件,這就是“條件編譯”。有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。 條件編譯命令最常見的形式為: #ifdef 標識符 程式段1 #else 程式段2 #endif
Time of Update: 2018-12-03
轉載請註明出處:http://blog.csdn.net/icyfox_bupt/archive/2011/06/01/6460074.aspx 本來想把驅動庫,原理圖,內部原理都上傳到百度文庫的 ,結果被和諧了不讓上傳,需要的朋友留下郵箱,我會打包給你發過去的。這些文檔確實很好用,對於函數的參數,內部的連線結構介紹的很清楚,真是編程必備呀! 上次我們講了如何使用延時來做小燈閃爍的程式,相信大家都有所瞭解了,這次我們來看如何使用定時器實現小燈閃爍。 1、不使用中斷的方法:
Time of Update: 2018-12-03
用途說明hexdump命令一般用來查看”二進位“檔案的十六進位編碼,但實際上它的用途不止如此,手冊頁上的說法是“ascii, decimal, hexadecimal, octal
Time of Update: 2018-12-03
SQLFetch — 取裝下一行 用途 SQLFetch() 使遊標前進到結果集的下一行,並檢索任何已綁定的列。 SQLFetch() 可用來將資料直接接收到您使用 SQLBindCol() 指定的變數中,也可以在取裝之後通過調用 SQLGetData() 來分別接收列。如果在繫結資料行時指示了轉換,則調用 SQLFetch() 時也將執行資料轉換。 文法 SQLRETURN SQLFetch (SQLHSTMT hstmt);函數自變數表 59. SQLFetch 自變數資料類型
Time of Update: 2018-12-03
今天天有點熱啊,剛好又停電了,閑來無事就實現了下K近鄰演算法。K近鄰演算法的思想是將欲分類新資料的特徵與所有樣本的特徵一一做比較,找出K個最相似資料(距離最短)的標籤,然後找出K個標籤裡出現最多的標籤,即為所分類的新資料的標籤。具體見K近鄰演算法用Python實現了下,代碼如下所示:# -*- coding: utf-8 -*-"""Created on Sun Jul 07 15:40:25 2013@author: lming_08"""import numpy as
Time of Update: 2018-12-03
我使用的是u-boot-1.3.0-rc2。在cpu/pxa/start.S中,有如下的標號定義: _TEXT_BASE: .word TEXT_BASE /*uboot映像在SDRAM中的重定位地址,我設定為0xa170 0000 */ .globl _armboot_start _armboot_start: .word _start /*_start是程式入口,連結完畢它的值應該是0xa170 0000=TEXT_BASE*/ /* 這句話的意思應該是在_armboot_start標號處,
Time of Update: 2018-12-03
大家用source insight看linux源碼的時候都遇到這麼一個麻煩,makefile和kconfig中的文字在搜尋的時候不能找到,這是因為source insight預設是不選makefile的,也沒有konfig這種類型的檔案。下面就講一下 如何添加makefile:開啟Source Insight,在建立工程之前,進入Options -> Document Options-> 點擊Document Type的下拉框,然後選擇Make File,在右邊的File