Time of Update: 2018-12-03
遠端偵錯環境由宿主機GDB和目標機調試stub共同構成,兩者通過串口或TCP串連。使用GDB標準程串列協議協同工作,實現對目標機上的系統核心和上層應用的監控和調試功能。調試stub是嵌入式系統中的一段代碼,作為宿主機GDB和目標機偵錯工具間的一個媒介而存在。就目前而言,嵌入式Linux系 統中,主要有三種遠端偵錯方法,分別適用於不同場合的調試工作:用ROM
Time of Update: 2018-12-03
關於Linux的BOOTLOADER文章不少了,但是大都是vivi,blob等比較龐大的程式,讀起來不太方便,編譯出的檔案也比較大,而且更多的是面向開發用的引導代碼,做成產品時還要裁減,這一定程度影響了開發速度,對初學者學習開銷也比較大,在此分析一種簡單的BOOTLOADER,是在三星公司提供的S3C2410 BOOTLOADER上稍微修改後的結果,編譯出來的檔案大小不超過4k,希望對大家有所協助. 1.幾個重要的概念 COMPRESSED KERNEL and DECOMPRESSED
Time of Update: 2018-12-03
我們都應該知道,進階語言的函數調用過程中,有“棧”這麼一個概念,被調用函數的局部變數是存放在棧中的,函數調用的參數也是通過棧傳遞的。那麼,調用函數是怎麼把各種資料壓入棧中,被調用函數又是怎麼對棧進行操作以擷取必要的資料呢?函數調用發生完畢之後,誰又負責清理這個棧?這就用到了函數調用棧規範!函數調用棧規範是指編譯器的一中“約定”,他規定了調用者如何傳遞參數,被調用者如何擷取參數,調用完成後怎麼清理棧,怎麼傳遞傳回值等。編譯器在編譯器的時候遵循這種規範,從而使程式正確的執行。對於不同的編譯器,不同
Time of Update: 2018-12-03
Linux核心 2.4和2.6的進程核心堆棧和task描述符儲存不太一樣,這兒總結一下。在核心2.4中堆棧是這麼定義的:union task_union { struct task_struct task; unsigned long stack[INIT_TASK_SIZE/sizeof(long)];
Time of Update: 2018-12-03
之前一直有這樣的需求,當時問到,也沒搜到方法,現在竟然既問到了,也搜到了,哎,世事真是不能強求啊! 在linux核心調試中,經常用到的列印函數呼叫堆疊的方法非常簡單,只需在需要查看堆棧的函數中加入:dump_stack();或 __backtrace();即可。 dump_stack()在~/kernel/ lib/Dump_stack.c中定義 void dump_stack(void){ printk(KERN_NOTICE "This architecture does not
Time of Update: 2018-12-03
解壓縮 arm-linux-gcc-3.4.1.tar.bz2 得到一個usr 目錄把usr/local/arm 檔案夾 拷貝到 /usr/local下 看好了,第一個usr是目前的目錄 ,第二個usr是根目錄下cp -r usr/local/arm /usr/local這就放好來,然後添加環境變數編輯/etc/bash.bashrc (sudo 開啟,或者 root 使用者)最後添加兩行: export PATH=$PATH:/usr/local/arm/3.4.1/bin export
Time of Update: 2018-12-03
一、Linux記憶體結構分為:node(節點),zone(地區),page(頁框描述符)node ----{ zone-----{ page …… { zone-----{page二、映射高端記憶體的方法:永久映射(permanent kernel mapping)和暫時映射(temporary kernel mapping),以及不連續記憶體申請(noncontiguous memory
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
url:http://cache.baidu.com/c?m=9d78d513d98205f34fede520564a902c0e54f1744dd6c7610ec3e24b84132c550026bdb47d645646c4c40f7a1cff1701bfe73605664276eb8cc8ff168afd8f7664de20377a01d501438942eb9c5b25c3229a47eba504e4b1ed3296a5d7d0de5244ca24563bc2ba&p=cb77c6
Time of Update: 2018-12-03
在程式不尋常退出時,核心會在當前工作目錄下產生一個core檔案(是一個記憶體映像,同時加上調試資訊)。使用gdb來查看core檔案,可以指示出導致程式出錯的代碼所在檔案和行數。1.core檔案的產生開關和大小限制 1)使用ulimit -c命令可查看core檔案的產生開關。若結果為0,則表示關閉了此功能,不會產生core檔案。 2)使用ulimit -c filesize命令,可以限制core檔案的大小(filesize的單位為kbyte)。若ulimit -c
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
一 簡介 GNU make是一個工具程式(Utility
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
文章出處:http://www.limodev.cn/blog作者連絡方式:李先靜 <xianjimli at hotmail dot
Time of Update: 2018-12-03
Boa 是一套小型的網頁伺服器,很適合應用在 Embedded System 上,並且內建就可以直接支援以 C 寫的 CGI 網頁,這篇是移植 Boa 到 ARM9 S3C2410 平台的過程,Linux 版本為 2.6.17.4,使用 arm-linux toolchain 3.4.1 編譯。1. 產生 Makefile下載 Source code 並解壓縮進到 src 目錄。# ./configure –host=arm-linux2. 修改 Makefile 使用跨平台編譯CC =
Time of Update: 2018-12-03
---------------------------------------------------------------------------------------------已經看過的書: C 程式設計語言第二版Linux C 編程UNIX環境進階編程(第2版)Linux裝置驅動程式(第三版)構建嵌入式 Linux 系統LINUX與UNIX SHELL編程指南Linux核心設計與實現(第二版) Linux核心編程指南(第三版)Linux 核心完全剖析-----------------