Pages

2012年5月27日 星期日

[Vim] 複製、貼上、搜尋、復原


Vim的複製、貼上、搜尋是簡單的指令,也是常用的指令:
        選擇一段文字,可以在一般模式下鍵入大寫V,或者小寫v來選擇文字區塊。鍵入大寫V是游標經過一行就選擇一行,小寫v則是游標經過的位置就選擇起來。
        選擇好文字區塊後,按下小寫y可以複製起選擇的文字,按下d可以刪除掉選取的文字。
        在想要貼上文字的地方,按下p就可以貼上剛才複製好的文字。
        如果要復原剛才的動作,可以在一般模式下鍵入u。
        要搜尋字串,可以在一般模式下輸入"/",並在斜線後方鍵入要搜尋的字串,並按下Enter。當找到一個符合的字串後,若要繼續往下搜尋,可以鍵入小寫n。

[嵌入式系統] Linux kernel內的資料Export到外部


在撰寫嵌入式系統的驅動程式(以linux為系統)時,我們有時候需要將kernel內的變數Export給我們自己撰寫的驅動程式,也就是我們可以在Linux的kernel內定義extern變數或函式,來給外部自己定義的module使用。
要將變數或函式Export給外部使用,必須做以下2個步驟:
1.   用EXPORT_SYMBOL()函式,將自己定義的Variable1匯出給外部使用。例如我們可以在 linux/kernel/net/netsyms.c內,將Variable1 Export出來:
//要先 #include <linux/module.h>
int Variable1 = 0;
EXPORT_SYMBOL(Variable1);
可以研究一下netsyms.c這個檔案,裡面會發現都是整理一系列的EXPORT_SYMBOL的動作。

2.   在kernel內的檔案內定義extern的變數,將剛剛Export出來的變數,直接拿來操作。
例如在for PCM7230的linux kernel內,可以在linux/kernel/net/core/dev.c內定義extern:
extern int Variable1;
接著就可以將Variable1拿來使用了。
在自己撰寫的驅動程式裡面,也可是一樣先在變數前寫上"extern",就可以操作從kernel導出的變數。我們可以在驅動程式的程式碼內,修改從kernel Export出來的變數,也可以用create_proc_entry函式新增一個程序在linux的文件系統 /proc 裡面,並且將create_proc_entry函式回傳的指標,來將這個程序的參數,指定為在驅動程式的程式碼內自己定義的函式。