Time of Update: 2018-12-04
第一步 下載核心源碼 可以到 http://www.kernel.org/ 下載核心源碼第二步 找到合適的設定檔 可以利用我給你的設定檔,重新命名為.config放到源碼根目錄。注意config前面有一個"點"。 還可以到你本機/boot目錄下去尋找適合你原生設定檔。第三步 進一步配置核心 #make menuconfig 對核心進行配置第四步 編譯核心 #make第五步 編譯模組 #make modules第六部 安裝模組
Time of Update: 2018-12-04
驅動程式源檔案名稱:/work/driver/test.c 驅動程式目標檔案名稱:test.ko 核心源碼目錄:/work/linux2.6.30 這個目錄是板子源碼根目錄 第一步:在核心源碼下(/work/linux2.6.30)輸入:make oldconfig && make prepare && make scripts 第二部:編譯方法有兩種 (1
Time of Update: 2018-12-04
#ifndef _WATCHER_H_#define _WATCHER_H_#include <sys/time.h>#include <sys/stat.h>#include <string>// We often want to know if a file was just now created or updated (then we// may reload the file to get latest data). FileWatcher
Time of Update: 2018-12-04
一、Makefile的規則在講述這個Makefile之前,還是讓我們先來粗略地看一看Makefile的規則。target ... : prerequisites ...command......target也就是一個目標檔案,可以是Object
Time of Update: 2018-12-04
向majordomo@vger.kernel.org發送郵件,郵件內容為:subscribe linux-kernel 可以單獨使用一個新郵箱,以免每天幾百封郵件將你的重要信件淹沒。 參考資料: Very short Majordomo introSend request in email to address <majordomo@vger.kernel.org>To subscribe a list (``linux-kernel'' is given as an
Time of Update: 2018-12-04
在Linux環境下編寫程式時,經常會調用glibc庫中的API。這些庫是如何?的的呢?很多初學者對此一直很困惑,接下來就與大家一起動手練習一下靜態庫和共用庫的製作方法。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter 轉載請註明出處 嵌入式技術交流QQ群:179012822 首先,我們編寫代碼來實現“輸入半徑求出圓的面積和周長”這個任務。看一下我另幾篇文章的內容:Linux環境下C語言編程實踐_01
Time of Update: 2018-12-04
一、實驗環境 開發機環境 作業系統:ubuntu 9.10 交叉編譯環境:arm-linux-gcc 4.2.2 ,安裝位置 /usr/local/arm/4.3.2/ 6410板子核心源碼路徑:/work/linux-2.6.36.2-v1.05/ 目標板環境:OK6410-A linux2.6.36 二、實驗原理 模組時在核心空間啟動並執行,模組中不能使用glibc庫中的函數。
Time of Update: 2018-12-04
上一篇文章我們介紹了如何在linux下編寫一個模組,並載入到核心空間。通過實驗我們瞭解了大體的流程以及模組的工作原理。本篇文章我們將介紹如何編寫一個虛擬字元裝置驅動程式。 之所以稱之為虛擬字元裝置驅動程式,主要原因是該驅動程式並沒有真正操作外部裝置,只是一個字元裝置驅動程式架構,這為後面我們開發正是裝置的驅動程式(LED、蜂鳴器等)奠定了基礎。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter
Time of Update: 2018-12-04
一、引言通常情況下,對函數庫的連結是放在編譯期間(compile time)完成的。所有相關的對象檔案(object file)與牽涉到的函數庫(library)被連結併合成一個可執行檔(executable file)。程式在運行時,與函數庫無關,所有需要的函數已拷貝到可執行檔中。所以這些函數庫被成為靜態庫(static libaray),檔案名稱為“libxxx.a”的形式。其實,我們也可以把庫函數的連結載入延遲到程式運行期間(runtime)。這也就是所謂的動態連結程式庫(dynamic
Time of Update: 2018-12-04
上一篇文章我們介紹了字元裝置驅動程式的架構,本篇文章我們將操作真實的硬體---LED。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter 轉載請註明出處 嵌入式技術交流QQ群:179012822 一、實驗環境 開發機環境 作業系統:ubuntu 9.10 交叉編譯環境:arm-linux-gcc 4.2.2 ,安裝位置 /usr/local/arm/4.3.2/
Time of Update: 2018-12-04
Linux和BSD區別是什嗎?當前FreeBSD的版本FreeBSD2.2.x-stableFreeBSD3.x-stableFreeBSD4.0-current可以看到,FreeBSD的版本使用current或stable尾碼進行修飾,其中使用stable修飾的版本是一個穩定的版本,它不是FreeBSD的最新版本,主要關心系統的效能和使用的連續性,同一個stable分支中的下一個版本主要是修訂系統問題,因此stable分支得到很多商業使用者的歡迎。current表示這個版本是正在開發的版本,
Time of Update: 2018-12-04
從FTP連結下載用wget,eg: wget ftp://www.dekaino.net/pub/screen/screen-4.0.3.tar.gzFTP命令是Internet使用者使用最頻繁的命令之一,不論是在DOS還是UNIX作業系統下 使用FTP,都會遇到大量的FTP內部命令,熟悉並靈活應用FTP的內部命令,可以大大方便 使用者,對於現在撥接的使用者,如果ISP提供了shell可以使用nohup,那麼ftp將是 你最省錢的上download方式,ftp的命令列格式為:ftp -v -d
Time of Update: 2018-12-04
摘自: http://os.51cto.com/art/200912/168700.html 在我們學習生活中經常會遇到問題和困難,就比如說我們在學習Linux時,比如怎樣Linux擷取檔案大小的方法。前幾天在工作中需要寫一段代碼,擷取一些視頻檔案的大小,心想:這還不簡單嗎?直接用標準C的檔案操作函數就OK了。於是寫了下面的一段代碼來實現:unsigned long get_file_size(const char *filename) { unsigned long size;
Time of Update: 2018-12-04
$# 傳送給命令Shell的參數序號 $- 在Shell啟動或使用set命令時提供選項 $? 上一條命令執行後返回的值 $$ 當前shell的進程號 $! 上一個子進程的進程號 $@ 所有的參數,每個都用雙括弧括起 $* 所有參數,用雙括弧括起 $n 位置參數值,n表示位置 $0 當前shell名 $* 所有的命令列參數$@ 同上"$*" 把所有命令列參數當作一個來處理"$@"
Time of Update: 2018-12-04
用 GDB 偵錯工具GDB 概述————GDB 是 GNU 開源組織發布的一個強大的 UNIX 下的程式調試工具。或許,各位比較喜歡那種圖形介面方式的,像 VC 、 BCB 等 IDE 的調試,但如果你是在 UNIX 平台下做軟體,你會發現 GDB 這個調試工具有比 VC 、 BCB 的圖形化調試器更強大的功能。所謂 “ 寸有所長,尺有所短 ” 就是這個道理。一般來說, GDB 主要幫忙你完成下面四個方面的功能: 1 、啟動你的程式,可以按照你的自訂的要求隨心所欲的運行程式。 2 、
Time of Update: 2018-12-04
四、原始碼的記憶體你可以使用 info line 命令來查看原始碼在記憶體中的地址。 info line 後面可以跟 “ 行號 ” , “ 函數名 ” , “ 檔案名稱 : 行號 ” , “ 檔案名稱 : 函數名 ” ,這個命令會列印出所指定的源碼在運行時的記憶體位址,如:(gdb) info line tst.c:funcLine 5 of "tst.c" starts at address 0x8048456 <func+6> and ends at 0x804845d <
Time of Update: 2018-12-04
ifconfig eth0 新ip然後編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip[aeolus@db1 network-scripts]$ vi ifcfg-eth0 DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=219.136.241.211NETMASK=255.255.255.128GATEWAY=219.136.241.254[aeolus@db1 etc]$ vi resolv.conf
Time of Update: 2018-12-04
in front of date-time text. Corresponding to class name 'sun' & 'moon'-->liunx網友學習文章(1) 2007-04-02 18:59:06 大 中 小 目錄:1.學習bootsect.s中經常會問到的問題 轉自oldlinux論壇2.系統調用及參數傳遞過程 3. 調度器工作時機:office"4.虛擬機器VMWARE與其網路設定(包你玩轉虛擬機器)1.學習bootsect.s中經常會問到的問題
Time of Update: 2018-12-04
2.系統調用及參數傳遞過程發言者:小白 發言時間:2002-06-29 08:36:451.系統調用函數介面是如何轉化為陷入命令系統調用是通過一條陷入指令進入核心態,然後根據傳給核心的系統調用號為索引在系統調用表中找到相映的處理函數入口地址。這裡將詳細介紹這一過程。我們以x86為例說明:由於陷入指令是一條特殊指令,而且依賴與作業系統實現的平台,如在x86中,這條指令是int
Time of Update: 2018-12-04
1.對於形如#define __LIBRARY__後面沒有任何東西,用處何在???觀察檔案include/unistd.h便可以看到#ifdef