Time of Update: 2018-12-03
遠端偵錯環境由宿主機GDB和目標機調試stub共同構成,兩者通過串口或TCP串連。使用GDB標準程串列協議協同工作,實現對目標機上的系統核心和上層應用的監控和調試功能。調試stub是嵌入式系統中的一段代碼,作為宿主機GDB和目標機偵錯工具間的一個媒介而存在。就目前而言,嵌入式Linux系 統中,主要有三種遠端偵錯方法,分別適用於不同場合的調試工作:用ROM
Time of Update: 2018-12-03
我們都應該知道,進階語言的函數調用過程中,有“棧”這麼一個概念,被調用函數的局部變數是存放在棧中的,函數調用的參數也是通過棧傳遞的。那麼,調用函數是怎麼把各種資料壓入棧中,被調用函數又是怎麼對棧進行操作以擷取必要的資料呢?函數調用發生完畢之後,誰又負責清理這個棧?這就用到了函數調用棧規範!函數調用棧規範是指編譯器的一中“約定”,他規定了調用者如何傳遞參數,被調用者如何擷取參數,調用完成後怎麼清理棧,怎麼傳遞傳回值等。編譯器在編譯器的時候遵循這種規範,從而使程式正確的執行。對於不同的編譯器,不同
Time of Update: 2018-12-03
中斷是Linux核心中比較難而且比較重要的一部分,如果想掌握這些東西,理解是首當其衝的一個重要環節。所謂的痛點,新知識,如果完全理解了原理,至少相當於掌握了80%,這對於任何知識都一樣,所謂真正理解,就是要完全瞭解這塊東西,引入的緣由以及如何引入的,特別是和其他模組之間的聯絡,以及包含在其中的眾多思想。 Linux核心,說到底還是上層軟體和底層硬體的橋樑。對上層,提供系統調用(當然其就是一個中斷,即128或0x80向量),對硬體,提供中斷機制,便是其中重要的一部分,當然還有其他方面,暫不談。
Time of Update: 2018-12-03
linux下/dev/loop常用於製作檔案系統鏡像檔案rootfs.img,以便下載到核心中掛載;http://zh.wikipedia.org/wiki//dev/loop我們日常接觸到比較多的鏡像檔案*.iso,都是用資料檔案來儲存實際塊裝置上的資料;首先必須明確,想光碟片,硬碟,磁碟片這樣的裝置上隱藏檔需要特定的檔案系統,上面有大量的檔案系統特定資訊用於管理上面的檔案,這些資訊和檔案資料一起組成了檔案系統的全部,所以鏡像檔案就是這些內容的總和。鏡像檔案做出來之後,可以放在存放裝置上作為一
Time of Update: 2018-12-03
首先需要安裝Red5運行所需的java開發環境jdk,我所有的檔案都儲存到/root/download,安裝要用root 使用者進行安裝 為https://sdlc6e.sun.com/ECom/EComActionServlet;jsessionid= 8CEC5D9DFF18A14B277B3C32456062B1我下載的是類型Linux RPM in self-extracting file
Time of Update: 2018-12-03
一、在windows作業系統中,查詢連接埠佔用和清除連接埠佔用的程式1、查詢連接埠佔用的進程ID 點擊"開始"-->"運行",輸入"cmd"後點擊確定按鈕,進入DOS視窗,接下來分別運行以下命令:netstat -a -n 各個連接埠佔用netstat -ano 各個連接埠佔用和進程PID netstat -aon | findstr "80" C:\Users\admin>netstat -aon|findstr "80"
Time of Update: 2018-12-03
隨著電腦的周邊外設越來越豐富,裝置管理已經成為現代作業系統的一項重要任務,這對於Linux來說也是同樣的情況。每次Linux核心新版本的發布,都會伴隨著一批裝置驅動進入核心。在Linux核心裡,驅動程式的代碼量佔有了相當大的比重。是我在網路上搜尋到的一幅Linux核心代碼量的統計圖,對應的核心版本是2.6.29。我們可以很明顯的看到,在Linux核心中驅動程式的比例已經非常高了。Linux
Time of Update: 2018-12-03
Linux檔案系統使用索引節點來記錄檔案資訊,作用類似於Windows下的檔案配置表。索引節點是一個結構,它包含了一個檔案的長度、建立及修改時間、許可權、所屬關係、磁碟中的位置等資訊。一個檔案系統維護了一個索引節點的數組,每個檔案或目錄都與索引節點數組中的唯一一個元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱為索引節點號。 linux檔案系統將檔案索引節點號和檔案名稱同時儲存在目錄中。 所以,目錄只是將檔案的名稱和它的索引節點號結合在一起的一張表,目錄中每一
Time of Update: 2018-12-03
總的來說,timer的用法還是很簡單的。主要需要定義一個timer_list變數timer、先初始化timer init_timer(&timer); then 對timer的相關參數賦值: timer.function = fun; timer.expires = jiffies + TIMER_DELAY; add_timer(&timer); 在定時器時間到的時候,會執行fun,如果繼續定時,可以通過 在fun中執行 mod_timer(&
Time of Update: 2018-12-03
下面是以前學習Linux時寫的,後來仔細研究rc.sysinit後發現,只需要修改下列地方就可以了,不必這麼麻煩的:rc.sysinit中有這樣的一段代碼:# Load other user-defined modulesfor file in /etc/sysconfig/modules/*.modules ; do[ -x $file ] && $filedone# Load modules (for backward compatibility with VARs)if [
Time of Update: 2018-12-03
自旋鎖:是linux核心中最常見的鎖,自旋鎖最多隻能被一個可執行線程持有,如果一個執行線程試圖獲得一個被持有的自旋鎖,那麼該線程會一直進行忙迴圈,旋轉,等待鎖重新可用.在任何時候,自旋鎖都可以防止多於一個的執行線程同時進入臨界區,一個被爭用的自旋鎖會導致請求他的線程在等待鎖重新可用時自旋,所以自旋鎖不應被長期持有.這也是自旋鎖的初衷:在短期內進行輕量級加鎖.自旋鎖的實現與體繫結構密切相關,代碼往往通過彙編實現.這些與體繫結構相關的代碼定義在<asm/spinlock.h>檔案中,實際
Time of Update: 2018-12-03
文章出處:http://www.limodev.cn/blog作者連絡方式:李先靜 <xianjimli at hotmail dot
Time of Update: 2018-12-03
---------------------------------------------------------------------------------------------已經看過的書: C 程式設計語言第二版Linux C 編程UNIX環境進階編程(第2版)Linux裝置驅動程式(第三版)構建嵌入式 Linux 系統LINUX與UNIX SHELL編程指南Linux核心設計與實現(第二版) Linux核心編程指南(第三版)Linux 核心完全剖析-----------------
Time of Update: 2018-12-03
最近定製了一個ubuntu的安裝介面,感覺比較有意思,寫上來,有興趣的朋友可以實踐一下... 先介紹一下grub和isolinux,以及一些開機引導程式...1)BIOS:basic input output system,一般的情況下是歸結於firmware這一類的.這裡是為了串連通順,就簡單的說一下bios.BIOS是使用者在按下電源的那一刻,負責和硬體溝通並呈現到使用者面前的那些資訊,可以通過顯示器看到的.BIOS做的工作主要有四點:
Time of Update: 2018-12-03
一 簡介 GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由 GNU 開發的程式設計語言編譯器。它是一套GNU編譯器套裝以 GPL 及 LGPL許可證所發行的自由軟體,也是 GNU 計劃的關鍵區段,亦是自由的類Unix及蘋果電腦 Mac OS X 作業系統的標準編譯器。二 編譯過程2.1 編譯包含一下四個步驟: 1. 預先處理(Pre-Processing) 2. 編譯(Compiling) 3.
Time of Update: 2018-12-03
0.前段時間做一個項目,需要根據hostname來解析對應的ipaddress,就想到了這個函數gethostbyname。所以就尋找對應函數。1.大致流程如下:應用的標頭檔:#include <netdb.h>函數和資料結構: struct hostent *gethostbyname(const char *hostname); 此函數返回的非null 指標指向下面的hostent結構: structhostent {
Time of Update: 2018-12-03
一 游標移動 Ctrl+a:游標回到命令列首。 (a:ahead) Ctrl+e:游標回到命令列尾。 (e:end) Ctrl+b:游標向行首移動一個字元。 (b:backwards) Ctrl+ f:游標向行尾移動一個字元。 (f:forwards)二 曆史 Ctrl+p: 上一個使用的曆史命令。 (p:previous) Ctrl+n: 下一個使用的曆史命令。(n:next )
Time of Update: 2018-12-03
平時我們開發中碰到陌生的命令或者函數,通常會找man來協助下,通過man後面加的數字可以看到關於命令或者函數更深層次的東西。或者通過比較命令和函數加深瞭解你需要的知識。如下是man後面的數字代表的含義。Section 1user commands (introduction)Section 2system calls (introduction)Section 3library functions (introduction)Section 4special files
Time of Update: 2018-12-03
1. Linux靜態庫和動態庫的命名規則:靜態函數庫:靜態庫的名字一般是libxxx.a,利用靜態庫編譯產生的檔案比較大,因為整個靜態庫所有的資料都會被整合進目標代碼中。a) 優點:編譯後,可執行檔不需要外部支援;b) 缺點:產生的可執行程式大;靜態庫改變了,就需要重新編譯可執行程式。 動態函數庫:動態庫的名字一般是libxxx.so,相對於靜態庫,動態函數庫在編譯的時候並沒有被編譯進目標代碼中,你的程式執行到相關函數時才調用函數庫裡面相應的函數,因此使用動態函數庫
Time of Update: 2018-12-03
1. Android開發官網(尼瑪的,這樣的網站偶爾也會被牆,所以那個時候會很慢)http://developer.android.comandroid開發人員官方首頁,這個是基礎的基礎,絕對不會有差錯,偶爾被牆,有大量資料,但是基本都是英文的,需要英文基礎~2. eoeAndroid開發人員論壇(推薦)http://www.eoeandroid.com , http://android.eoe.cn , http://www.eoe.cn暫時發現資料很全!3. AndDev(推薦)http:/