Time of Update: 2018-12-03
1.GDB簡介: GNU 的調試器稱為 GDB,是一個互動式工具,工作在字元模式下。很多程式員習慣於圖形介面的程式開發,如 VC、VB 等整合式開發環境,但是在 UNIX/Linux 環境下,GDB 的功能更強大。 GDB 作為功能強大的調試工具,可完成如下的調試任務: (1)設定斷點。 (2)監視程式變數的值。 (3)程式的逐步執行。 (4)修改變數的值。 2.GDB的使用 GDB常用命令: a)載入應用程式: gdb test (載入應用程式)
Time of Update: 2018-12-03
使用一個命令來建立分類樹~ $ mkdir -p tmp/a/b/c 使用一個命令來定義複雜的分類樹~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a} 使用選項 -C 來解壓縮 .tar 封存檔案到指定目錄~ $ tar xvf -C tmp/a/b/c newarc.tar.gz 按順序執行多個命令~ $ cd / ; ls
Time of Update: 2018-12-03
sigset_t 號集及訊號集操作函數:訊號集被定義為一種資料類型: typedef struct { unsigned long sig[_NSIG_WORDS]; } sigset_t 訊號集用來描述訊號的集合,linux所支援的所有訊號可以全部或部分的出現在訊號集中,主要與訊號阻塞相關函數配合使用。下面是為訊號集操作定義的相關函數: int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int
Time of Update: 2018-12-03
原文地址:http://blog.csdn.net/imtgj/article/details/7107489?reload鑒於最近有關cpu佔有率的一些問題涉及到linux核心的調度演算法,有必要進行瞭解。因此,寫了這篇文章。linux常見的任務有兩種,即時任務與非即時任務。即時任務的調度演算法是大家都非常熟悉的優先順序搶佔或優先順序搶佔加時間片兩種,其主要思想是效率優先。非即時任務的調度演算法是CFS(完全公平演算法),從名字就可以知道,其思想是公平優先,兼顧效率。由於我們使用上,即時任務比
Time of Update: 2018-12-03
現在最常用的處理序間通訊的方式有:訊號,訊號量,訊息佇列,共用記憶體。 所謂進程通訊,就是不同進程之間進行一些"接觸",這種接觸有簡單,也有複雜。機制不同,複雜度也不一樣。通訊是一個廣義上的意義,不僅僅指傳遞一些massege。他們的使用方法是基本相同的,所以只要掌握了一種的使用方法,然後記住其他的使用方法就可以了。 1. 訊號 在我學習的內容中,主要接觸了訊號來實現同步的機制,據說訊號也可以用來做其它的事 情,但是我還不知道做什麼。
Time of Update: 2018-12-03
#include <pthread.h>1、建立int pthread_create( pthread_t *tid, const pthread_attr_t *attr, void *(* func) (void *), void *arg );attr: 線程屬性包括:優先順序、初始棧大小,是否應該成為一個守護線程。預設設定,NULL後面是線程要執行的函數和參數成功返回 02、等待一個給定線程終止int pthread_join( pthread_t tid, void
Time of Update: 2018-12-03
一、互斥與同步1.互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。2.同步:是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源.3.同步是一種更為複雜的互斥,而互斥是一種特殊的同步.二、通訊與同步進程間同步本身也是一種處理序間通訊(因為涉及資訊的交換),當然也是一種原始的處理序間通
Time of Update: 2018-12-03
今天花了點時間在RedHat5.0上安裝了一個arm-linux交叉編譯器。裝的過程中出現過幾個問題,經過查詢網上的資料。現在就總結一下正確的安裝方法。 首先我用的是天嵌內建的交叉編譯器EABI-4.3.3_EmbedSky_20100610.tar.bz2, 1.首先建一個存放交叉編譯器的目錄,我建的目錄的絕對路徑是:/opt/TQ (TQ就是我建的目錄) 2.解壓EABI-4.3.3_EmbedSky_20100610.tar.bz2, tar xjvf
Time of Update: 2018-12-03
OpenCV是Intel支援的開源電腦視覺庫。它由一系列C函數和少量C++類構成,實現了影像處理和電腦視覺方面的很多通用演算法。它不依賴於其它的外部庫—儘管也可以使用某些外部庫。 OpenCV使用BSD License,對非商業應用和商業應用都可以免費使用。 OpenCV的主要應用環境是Windows和Linux,對於嵌入式系統如arm-linux,很少有資料提到,因此將我在arm-linux編譯過程記錄下來和大家分享。預備工作: a. 安裝交叉編譯鏈 我使用的是arm-linux-gcc 4
Time of Update: 2018-12-03
1、線程資料
Time of Update: 2018-12-03
媽的,我在我自己的電腦上的vmware中裝個了RedHat,可不知道怎麼我的xp與RedHat死活就是通不了,搞了兩個多星期,一下班回來就不停地配ip,可就是不通,好不容易通了一下,可我的ssh又不知道怎麼總連不上,這幾吧破網路問題搞得我頭疼死了,今天不知道怎麼人品爆發了一回,一搞竟然通了。哈哈。。 趕緊記下來,免得以後又麻煩。 網路情況:pc機是用電信的網上網,不需要IP RedHat是裝在vmware中 詳細步驟:
Time of Update: 2018-12-03
經過兩周的摸索,終於對Linux裝置驅動開發有了個初步的認識,下面對Linux裝置驅動開發環境的搭建做個小結,以方便自己以後查詢,同時也能給同道的初學者一點協助。剛接觸Linux裝置驅動時,初學者往往連如何編譯驅動程式都不懂,更別說編譯進核心或載入測試了。一般都是在網上找個最簡單的 helloworld驅動程式,然後嚴格按照網上所說的步驟編譯,結果卻得到一大堆見都沒見過的錯誤,更不要說根據錯誤資訊來解決問題了,很多人到這裡就
Time of Update: 2018-12-03
一、u-boot基本常用命令1. 基本環境設定setenv serverip 192.168.1.115setenv ipaddr 192.168.1.211setenv gatewayip 192.168.1.1setenv ethaddr 1E:23:37:48:5A:6Bsetenv bootargs root=/dev/mtdblock2 rootfstype=yaffs init=/linuxrc mem=64M console=ttySAC0,115200setenv
Time of Update: 2018-12-03
本文轉自:http://blog.chinaunix.net/uid-24203478-id-3111803.html與Linux中斷息息相關的一個重要概念是Linux中斷分為兩個半部:上半部(tophalf)和下半部(bottom
Time of Update: 2018-12-03
2012-02-05 wcdj1, 調試時必需的棧知識2, 數組非法訪問導致記憶體破壞調試時必需的棧知識棧(stack)是程式存放資料的記憶體地區之一,其特徵是LIFO(Last In First Out, 後進先出)式資料結構,即後放進的資料最先備取出。向棧中儲存資料的操作稱為PUSH(壓入),從棧中取出資料稱為POP(彈出)。在儲存動態分配的自動變數時要使用棧。此外在函數調用時,棧還用於傳遞函數參數,以及用於儲存返回地址和傳回值。 #include <stdio.h>
Time of Update: 2018-12-03
2011-05-18 wcdj 問題:在Windows下編寫的檔案,當在Linux下用 cat -v filename 命令查看時,可以發現每行的結尾都有^M字元。當我們在Linux下寫的應用程式在讀取含有^M字元的檔案時,會出現意想不到的錯誤。所以需要將Windows下檔案的格式轉換為Linux下的檔案格式。仍存在的疑惑:在我的vi中開啟含有^M的檔案,設定 :set list 只能看到以“$”表示的分行符號,並沒有看到有^M字元。使用 :%/^M$//g 進行替換也沒有找到。 注意:To
Time of Update: 2018-12-03
2012-03-17 wcdj在Linux/UNIX系統引導的時候會開啟很多服務,這些服務稱為守護進程(也叫Daemon進程)。守護進程是脫離於控制終端並且在後台周期性地執行某種任務或等待處理某些事件的進程,脫離終端是為了避免進程在執行過程中的資訊在任何終端上顯示並且進程也不會被任何終端所產生的中斷資訊所終止。 建立守護進程的一般步驟: (1)
Time of Update: 2018-12-03
上一篇博文講到了核心提供的通用虛擬檔案模型中四大資料結構極其操作,那麼,為了使各種檔案系統和諧相處,這些對象又是怎麼串聯起來的呢。本博,我們就重點討論他們怎樣與核心互動,包括如何與進程打交道,以及介紹一些相關的緩衝機制。 1
Time of Update: 2018-12-03
進程類似於人生:它們被產生,有或多或少有效生命,可以產生一個或多個子進程,最終都要死亡。一個微小的差異是進程之間沒有性別差異——每個進程都只有一個父親。那麼,作業系統有一個重要的概念——線程,在Linux上是怎麼實現的呢?可以明確的告訴你,Linux並沒有線程這個概念。呵呵,是不是Linux很落後呢,不是,恰恰相反,Linux提供了另一個概念——輕進程,其更具有擴充性,更偉大。Linux是支援多線程的功能的,只不過是通過一個概念——輕量級進程來實現的。從核心觀點看,進程的目的就是擔當分配系統資源
Time of Update: 2018-12-03
為了確保電腦能夠正常工作,必須提供資料通路,讓資訊在串連到個人電腦的CPU、RAM和I/O裝置之間流動。這些資料通路總稱為匯流排,擔當電腦內部主通訊通道的作用。所有電腦都擁有一條系統匯流排,它串連大部分內部硬體裝置。一種典型的系統匯流排是PCI(Peripheral Component