linux建立裝置節點——class_creat()

從linux核心2.6的某個版本之後,devfs不複存在,udev成為devfs的替代。相比devfs,udev有很多優勢,在此就不羅嗦了,提醒一點,udev是應用程式層的東東,不要試圖在核心的配置選項裡找到它;加入對udev的支援很簡單,以作者所寫的一個字元裝置驅動為例,在驅動初始化的代碼裡調用class_create為該裝置建立一個class,再為每個裝置調用 class_device_create建立對應的裝置。大致用法如下:struct class *myclass =

Ubuntu下arm-linux-gdb+gdbserver的編譯及安裝

註:arm-linux-gdb的安裝路徑是/usr/local/arm/3.4.11、arm-linux-gdb的編譯安裝下載gdb-6.8.tar.bz2至工作目錄gdb源碼下載:http://ftp.gnu.org/gnu/gdb/命令如下:$tar -jxvf gdb-6.8.tar.bz2$cd gdb-6.8$./configure --target=arm-linux --enable-sim

linux終端下,使用ls時,顯示的檔案顏色,都表示什麼含義,在哪裡可以查看和修改

白色:表示普通檔案藍色:表示目錄綠色:表示可執行檔紅色:表示壓縮檔淺藍色:連結檔案紅色閃爍:表示連結的檔案有問題黃色:表示裝置檔案灰色:表示其他檔案這是linux系統約定的預設顏色在環境變數$LS_COLORS上修改就行,想永久儲存就在~/.bashrc裡改預設的是:echo $LS_COLORSrs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:

linux下/proc/stat 計算CPU利用率

一般來說對於需要大量cpu計算的進程,當前端壓力越大時,CPU利用率越高。但對於I/O網路密集型的進程,即使請求很多,伺服器的CPU也不一定很到,這時的服務瓶頸一般是在磁碟的I/O上。比較長見的就是,大檔案頻繁讀寫的cpu開銷遠小於小檔案頻繁讀寫的開銷。因為在I/O輸送量一定時,小檔案的讀寫更加頻繁,需要更多的cpu來處理I/O的中斷。在Linux/Unix下,CPU利用率分為使用者態,系統態和空閑態,分別表示CPU處於使用者態執行的時間,系統核心執行的時間,和空閑系統進程執行的時間。平時所說的

LINUX裝置驅動——輸入子系統

輸入子系統是所有I/O裝置驅動的中介層,如何為下層眾多各式各樣的輸入裝置提供介面以及為上層提供了一個統一的介面?     

linux裝置驅動中ADC的使用

核心原始碼arch\arm\plat-s3c24xx\s3c2410-clock.c/* standard clock definitions */static struct clk init_clocks_off[] = {{.name= "nand",.id= -1,.parent= &clk_h,.enable= s3c2410_clkcon_enable,.ctrlbit= S3C2410_CLKCON_NAND,}, {.name= "sdi",.id= -1,.parent=

linux按鍵中斷驅動程式——S3C2440

驅動程式#include<linux/module.h>#include<linux/init.h>#include<linux/types.h>#include<linux/kdev_t.h>#include<linux/kernel.h> //可以使用ptintk函數#include<linux/fs.h>#include<linux/interrupt.h>

linux+ramdisk移植的時候遇到的某些問題及解決方案

1.Uncompressing Linux................................................................ done, booting the kernel. 就不動了 解決:把console=/dev/ttySAC0 改成 console=ttySAC0 2. 啟動參數 initrd=0x30800000,0x20000,0x30800000表示ramdisk在RAM中的地址,0x20000表示ramdisk的大小 3.

linux核心的三種調度方法

1,SCHED_OTHER 分時調度策略,2,SCHED_FIFO即時調度策略,先到先服務3,SCHED_RR即時調度策略,時間片輪轉  即時進程將得到優先調用,即時進程根據即時優先順序決定調度權值,分時進程則通過nice和counter值決定權值,nice越小,counter越大,被調度的機率越大,也就是曾經使用了cpu最少的進程將會得到優先調度。SHCED_RR和SCHED_FIFO的不同:    

實現u-boot啟動linux的簡單方法

1.一直以來調試核心移植和檔案系統都是用下面命令:#tftp 0x30008000 zimage#go 0x30008000 正常啟動,注意:上面的zimage調用已經燒寫進nand flash的檔案系統。 2.其實把上面的命令作為u-boot的某個特殊變臉個環境變數就可以實現“u-boot+linux+檔案系統”自動啟動了(1)先把zimage燒寫進nand flash#tftp 0x30008000 zimage#nand erase 0x40000 0x3c0000#nand write.

linux下編程遇到的一個疑難雜症——野指標所帶來的害處

情境:    一段代碼,單進程多線程模式,除了main線程還有很多個子線程,裡面大量地使用了指標,代碼編譯沒有任何的warning和error;程式跑起來後一切正常,並和另外一個程式通過socket 網路通訊,也一切正常;所有的子線程退出也正常;所有類的解構函式析構的時候也正常。但是:就在main進程銷毀(或者通過exit(0))退出的時候,作業系統就提示以下錯誤:*** glibc detected *** ./fsvspsiu: corrupted double-linked list: 0

linux下發送廣播

關鍵字:linux 廣播 255.255.255.255               sendto error: Network is unreachable              全網廣播情境:    今天調試linux 網路編程的廣播,當向255.255.255.255 的某個連接埠發送廣播包的時候,sendto 返回 -1,錯誤原因是:sendto error: Network is unreachable。解決方案:    1. 編程的解決方案:       struct

使用iconv命令輕鬆實現linux下字元集編碼的轉換

昨天晚上郎師兄打電話說,我的結果檔案他開啟是亂碼,問我是不是字元編碼沒處理好。早晨早早的來到實驗室,請教了下同學,才知道linux shell 設定檔中預設的字元集編碼為UTF-8 。UTF-8是unicode的一種表達方式,gb2312是和unicode都是字元的編碼方式,所以說gb2312跟utf-8的概念應該不是一個層次上的。在LINUX上進行編碼轉換時,可以利用iconv命令實現,這是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。        

linux view /proc/cpuinfo

一些作業系統的最新版本已經更新了 /proc/cpuinfo 檔案,以支援多路平台。如果您的系統中的 /proc/cpuinfo 檔案能夠正確地反映出處理器資訊,那麼就不需要執行上述步驟。反之,可採用本文中的資訊進行解釋。/proc/cpuinfo 檔案包含系統上每個處理器的資料區段落。/proc/cpuinfo 描述中有 6 個條目適用於多核心和超執行緒(HT)技術檢查:processor, vendor id, physical id, siblings, core id 和 cpu

Linux命令:Kill

文法格式kill [-s 訊號][程式] 或 kill [-l 訊號]使用說明kill 命令發送一個訊號(預設,SIGTERM 訊號)到一個正啟動並執行程式。預設操作一般是停止進程。如果想停止一個進程,在 ProcessID 變數中指定進程標識符(PID)。這個 shell 報告每個在後台啟動並執行進程的 PID(除非在一個管道上啟動多個進程,這個種情況下,shell 報告最後一個進程號)。還可用 ps 命令來發現命令的進程標識號。root 使用者可用 kill 命令來停止任何進程。如果不是

linux裝置驅動開發詳解——globalmem

 常見的兩種錯誤:1.在插入模組的時候出現如下問題: # insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1 Device or resource busy ANSWER:主裝置號被佔用了,換另一個。 你把globalmem.c檔案裡面的宏定義那裡改為226或其他,然後再編譯就可以插入了!特別注意:      如果換了主裝置號以後,下面接著建立節點的時候也要該,否則出現下面錯誤:# mknod

LINUX 下tcp 和 udp 通訊端收發緩衝區的大小決定規則

1. tcp 收發緩衝區預設值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem  4096    87380   416153687380  :tcp接收緩衝區的預設值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem 4096    16384   416153616384  : tcp 發送緩衝區的預設值 2. tcp 或udp收發緩衝區最大值[root@qljt core]# cat

linux下的so、o、lo、a、la檔案有什麼區別?

o: 編譯的目標檔案a: 靜態庫,其實就是把若干o檔案打了個包so: 動態連結程式庫(共用庫)lo: 使用libtool編譯出的目標檔案,其實就是在o檔案中添加了一些資訊la: 使用libtool編譯出的庫檔案,其實是個文字檔,記錄同名動態庫和靜態庫的相關資訊 1 libtool的工作原理 libtool

嵌入式Linux中的進程同步無競爭態讀寫

Linux作為一個開源、穩健的作業系統,支援多種平台,擁有豐富的開發工具和應用軟體,尤其是其核心可裁減的特性,非常適合嵌入式系統。在資料即時性、準確度要求很高的情況下,系統在對資料的採集和處理過程中,由於其進程協調性問題,往往會造成資料的丟失。利用經典進程同步模型,可解決嵌入式Linux系統中資料同步讀寫衝突的問題。       引言       

Linux裝置模型之platform匯流排

 Linux Platform Device and Driver 作者:Dongas 日期:08-06-27   從Linux 2.6起引入了一套新的驅動管理和註冊機制:Platform_device和Platform_driver。 Linux中大部分的裝置驅動,都可以使用這套機制, 裝置用Platform_device表示,驅動用Platform_driver進行註冊。   Linux platform driver機制和傳統的device driver

總頁數: 3662 1 .... 749 750 751 752 753 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.