(網上摘抄)--------------------------------雜項裝置(misc device)雜項裝置也是在嵌入式系統中用得比較多的一種裝置驅動。在 Linux 核心的include/linux目錄下有Miscdevice.h檔案,要把自己定義的misc device從裝置定義在這裡。其實是因為這些字元裝置不符合預先確定的字元裝置範疇,所有這些裝置採用主編號10 ,一起歸於misc device,其實misc_register就是用主標號10調用register_chrdev()
* 用fflush(stdin)來清除輸入緩衝(C語言)。* system("cls");就相當於在DOS視窗中輸入cls命令。* system("pause");在DOS中,作用是暫停程式,按任意鍵繼續。* system("./abc_bash");在Linux中調用bash指令碼。* Linux下應用軟體使用pow()等數學函數需包含math.h,並且在gcc編譯時間加入 -lm 選項。* 在終端開啟當前位置的檔案夾視窗(UI介面): nautilus .*
步驟:1.ubuntu下#gedit /etc/exports/opt/GTStudio/GT2440/root_qtopia *(rw,sync,no_root_squash)其中:/opt/GTStudio/GT2440/root_qtopia 表示nfs 共用目錄,它可以作為開發板的根檔案系統通過nfs 掛接;* 表示所有的客戶機都可以掛接此目錄rw 表示掛接此目錄的客戶機對該目錄有讀寫的權力no_root_squash
linux subsys_initcall 轉載 宏定義__define_initcall(level,fn)對於核心的初始化很重要,他指示編譯器在編譯的時候,將一系列初始化函數的起始地址值按照一定的順序放在一個section中。在核心初始化段,do_initcalls()
(部分轉載)其實2440觸控螢幕跳點問題在前一個多月已經得到解決,在我解決6410 觸控螢幕抖動的時候,偶然發現6410 不會任何跳點,只是抖動,後來比較2440 和6410 的觸控螢幕驅動寫法,發現6410的比較驚異,演算法避免了天外飛仙跳點。 ooo,下班了,明天再寫吧。 ——續@2010-11-19 我仔細比較6410 觸控螢幕驅動和2440 驅動,發現6410 的寫法比較合理一些,最大區別是DdsiTouchPanelGetPoint函數寫法,下面是2440
1.假設我有個{0,1}產生器,產生0的機率為p,產生1的機率為q,如何通過此發生器獲得一個均為1/2的{0,1}產生器呢?【答】思路:尋找兩個等機率事件。易知連續投擲兩次獲得01或者10的機率均為p(1-p) =Y,因此如果我們連續產生兩個數,如果獲得00或者11機率為U=p^2+(1-p)^2,則繼續再擷取兩個數,直到擷取到10或者01為止。機率為(1+U+U^2+U^3+...)*Y 求極限為Y*(1/(1-U))=0.5因此
通常wireshark中不可以直接抓取本地的迴環資料包,比如寫一個小socket程式,client和server都在本地,這種資料包wireshark是不能直接抓取的。但可以通過以下配置達到此目的:windows下,在命令列中輸入以下語句:route add 192.168.1.106 mask 255.255.255.255 192.168.1.1metric 1其中,192.168.1.106是本機ip,
看到看門狗的設計與我們做的球隊的最外部定時器原理和作用十分相似,最近看到很多的嵌入式底層的原理和球隊當時的想法不謀而合。由此,我們球隊的設計思路是正確的!應該堅定不移的走下去! 另答辯時姚老師建議我的異常處理的跳轉方式改成決策後跳轉,當時沒想很多基本認可了他的想法。現在看來在要求高即時性情況下,不可能線上決策的,必須無條件跳轉!
它們的區別:前者是帶視窗形式的,後者是命令列形式的。兩者之間的轉換:win32->console在project中的setting選項卡中找到link選項配置,Gategory欄中選擇General。Project Options欄中找到subsystem:windows把它改成subsystem:console就可以了,最好還把c/c++選項卡中Category選General,下面就會有Preprocessor definetions一項,裡面有_WINDOWS改為_CONSOLE。
在GNU系統中,malloc或realloc返回的記憶體塊地址都是8的倍數(如果是64位系統,則為16的倍數)。如果你需要更大的粒度,請使用memalign或valloc。這些函數在標頭檔“stdlib.h”中聲明。 在GNU庫中,可以使用函數free釋放memalign和valloc返回的記憶體塊。但無法在BSD系統中使用,而且BSD系統中並未提供釋放這樣的記憶體塊的途徑。 函數:void * memalign (size_t boundary, size_t size)
SPI是一個環形匯流排結構,由ss(cs)、sck、sdi、sdo構成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位寄存器進行資料交換。 假設下面的8位寄存器裝的是待發送的資料10101010,上升沿發送、下降沿接收、高位先發送。 那麼第一個上升沿來的時候資料將會是sdo=1;寄存器=0101010x。下降沿到來的時候,sdi上的電平將所存到寄存器中去,那麼這時寄存器=0101010sdi,這樣在8個時鐘脈衝以後,兩個寄存器的內容互相交換一次。這樣就完成裡一個spi
思路:常規大數加減法,要考慮輸入數字為負數情況。用字串儲存數字,處理時,逆序字串補0對齊。主要考慮進位和借位。Problem Id: 2Submit time: 2012-10-01
microsoft's versionchar* _itoa(int value, char* string, int radix){char tmp[33];char* tp = tmp;int i;unsigned v;int sign;char* sp;if (radix > 36 || radix <= 1){__set_errno(EDOM);return 0;}sign = (radix == 10 && value < 0);if (sign)v
二分尋找變形,如{3,5,7,9,11,13,1};這樣的數組,這裡所說的迴圈有序數組,就是把一個有序數組從某個(未知)位置處截為兩段,把前一段放到後一段的後面(數組裡的元素還是有序的,只不過最小值不一定是數組的第一個元素,而可能是其中的任何一項,從它開始逐項遞增,到數組的最後一個元素時再回到第一個元素)。顯然傳統的二分法已經無法直接使用了,但考慮一下,如果已經知道分界點位置,那問題就簡單多了,只要先判斷一下待查元素是在分界點的左側還是右側,然後直接對那一側的半個數組使用二分尋找。 那麼重點就
FrameBuffer 是出現在 2.2.xx 核心當中的一種驅動程式介面。這種介面將顯示設備抽象為框架緩衝區。使用者可以將它看成是顯示記憶體的一個映像,將其映射到進程地址空間之後,就可以直接進行讀寫操作,而寫操作可以立即反應在螢幕上。該驅動程式的裝置檔案一般是 /dev/fb0、/dev/fb1 等等。比如,假設現在的顯示模式是1024x768-8 位色,則可以通過如下的命令清空螢幕: $ dd if=/dev/zero of=/dev/fb0 bs=1024
轉自:http://xccds1977.blogspot.com/2012/03/blog-post_14.html英文版連結:http://www.discoverycorpsinc.com/interviewing-data-miners-and-m/資料採礦領域是一個獨特的行業,通常的招聘面試方法可能不大適用於本行業的特點。在招聘一個合格的資料採礦工程師時,公司一般關注以下三個方面:他聰明嗎?聰明意味著能透過複雜的資訊建構問題並以正確的方式加以解決。聰明人還能從失敗中擷取經驗。他能否專註於
經測試,現在無bug,歡迎指點。//main.cpp/////////////////////////////////////////////////////題目描述:刪除給定二叉排序樹的給定節點////作者:k_eckel(韋福如)//時間:2005-09-30//////////////////////////////////////////////////#include <iostream>using namespace std;template <class
畢業三年了,平時都潛水,看了nickyday的文章覺得太慚愧了,從來沒分享過經驗。我郵像我這樣考了好幾年公務員的應該不多,現在反正上班也基本沒啥事了,談下經驗吧。師弟師妹有這方面需要的,可以站內我。
1.你有5瓶藥,每個藥丸重10克,只有一瓶受到汙染的藥丸重量發生了變化,每個藥丸重9克。給你一個天平,你怎樣一次就能測出哪一瓶是受到汙染的藥呢?答案:調試好天平後,天平左右盤各放兩瓶,有下列情況:1:天平平衡,則餘下那瓶的是受汙染的藥;2:天平左傾,則目標瓶在右盤,現在同時從左右盤拿下一瓶,觀察到:若天平恢複平衡,則目標瓶就是右盤拿下的那瓶,若天平依舊左傾則目標就是右盤餘下的那瓶。3:天平右傾,用上述2
#include<iostream>#include<cstring>using namespace std;//template<class T>class myString{private:char *str;public:myString() {str = new char[1];str[0] = '\0';}myString(const char* pStr){if(pStr == NULL){str = new char[1];str[0] = '\