原创 Arm-linux-xx編譯工具用法

Arm-linux-gcc: 這個命令是程序的包裝,它會根據不同的參數要求去調用預編譯編譯程序cc1(預處理+編譯),彙編器arm-linux-as,鏈接器arm-linux-ld. GCC的常用選項: -E: 僅作預處理,不進行編譯,

原创 如何自定義可變參數函數

在我們編寫代碼中,有時需要我們自定義可變參數函數,像庫函數中有pirntf,ioctl都是可變參數函數,如果我們要實現自定義可變參數,一般要實現像int ioctl(int fd, unsigned long request, ...)這

原创 內核寫文件

#include <linux/fs.h> #include <linux/uaccess.h>   struct file *fp;    char p_buf[12]="run here!!\n",*

原创 network switch配置

交互芯片內部解構: switch主要用在路由器上或交換機上。 一般來說,像我們的家用路由器,有一個wan口,還有多個lan口。 而沒有交互芯片的路由器也就固定了wan口鏈接到物理接口eth0,lan接口連接到eth1上。 那麼如果我們

原创 csopes插件筆記

cscope含有: :cs find s ---- 查找C語言符號,即查找函數名、宏、枚舉值等出現的地方 :cs find g ---- 查找函數、宏、枚舉等定義的位置,類似ctags所提供的功能:cs find d ---- 查找本函數

原创 MPDU和MSDU區別

Difference in implementation:If we see the packet being handed from the IP layer to the MAC layer the following sequenc

原创 linux啓動流程分析(一)

我分析的linux 版本是linux3.14.77 編譯腳本是:arch/arm/kernel/vmlinux.lds 根據頂層Makefile可知,最開始編譯的文件是arch/arm/kernel/head.S,所以這個文件是最開始執行

原创 quilt的常用使用命令解釋

生成patch文件一般步驟爲:生成空patch(quilt new filename.patch)->文件關聯patch(quilt add {files})->修改文件->生成最終patch文件(qui