Time of Update: 2018-12-03
Shell: bash。我使用 bash 的 vi 命令列方式。 編輯器: VIM, Emacs 程式開發: GCC, GDB、make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ... 論文,幻燈工具:LaTeX, ConTeXt 繪圖工具:MetaPost。這個語言太強了,以至於我只用它了。你不熟悉的話可以用 dia 來畫一些流程圖之類的圖片。 影像處理:ImageMagick。其中的 import 程式可以螢幕抓圖,convert
Time of Update: 2018-12-03
Linux中dd命令詳解1.dd命令簡介 功能:把指定的輸入檔案拷貝到指定的輸出檔案中,並且在拷貝過程中可以進行格式轉換。可以用該命令實現DOS下的diskcopy命令的作用。先用dd命令把磁碟片上的資料寫成硬碟的一個寄存檔案,再把這個寄存檔案寫入第二張磁碟片上,完成diskcopy的功能。需要注意的是,應該將硬碟上的寄存檔案用rm命令刪除掉。系統預設使用標準輸入檔案和標準輸出檔案。 文法:dd [選項] if =輸入檔案(或裝置名稱)。 of =輸出檔案(或裝置名稱)。
Time of Update: 2018-12-03
linux-2.6.30.4移植至2440開發板經驗談 一、下載linux-2.6.30.4源碼,並解壓 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.4.tar.gztar zxvf linux-2.6.30.4.tar.gz二、在系統中添加對ARM的支援 $vim Makefile 193#ARCH ?= $(SUBARCH) 194#CROSS_COMPILE ?= 195 ARCH=arm 196
Time of Update: 2018-12-03
mdev是busybox內建的一個簡化版的udev。 作用是在系統啟動和熱插拔 或動態載入驅動程式時,自動產生驅動程式所需的節點檔案,在檔案系統中的/dev目錄下的裝置節點都是由mdev建立的 mdev掃描/sys/class和/sys/block中所有的類裝置目錄,如果在目錄中含有名為"dev"的檔案,且檔案中包含的是裝置號,則mdev就利用這些資訊為這個裝置在/dev下建立裝置節點 用法: 1. 執行mdev前要掛載 /sys mount -t
Time of Update: 2018-12-03
linux核心中的Oops什麼是Oops?從語言學的角度說,Oops應該是一個擬聲詞。當出了點小事故,或者做了比較尷尬的事之後,你可以說"Oops",翻譯成中國話就叫做“哎呦”。“哎呦,對不起,對不起,我真不是故意打碎您的杯子的”。看,Oops就是這個意思。在Linux核心開發中的Oops是什麼呢?其實,它和上面的解釋也沒什麼本質的差別,只不過說話的主角變成了Linux。當某些比較致命的問題出現時,我們的Linux核心也會抱歉的對我們說:“哎呦(Oops),對不起,我把事情搞砸了”。Linux核
Time of Update: 2018-12-03
構建自己的Linux 之三 初步完善(提供網路功能)1 添加profile檔案#Ash profile#vim:syntax=sh #No core files by default#ulimit -S -c 0>/dev/null 2>&1 #USER="`id -un`" //還不支援使用者登陸功能,將在以後的實驗中增加USER="root"LOGNAME=$USERPS1='[$USER@$HOSTNAME$PWD]#'//提示符PATH=$PATH HOSTNAME=
Time of Update: 2018-12-03
構建自己的Linux 之一 基本架構自己動手構建一個Linux不僅可以加深對Linux的理解,對嵌入式Linux的學習也有很大的協助。構建一個自己的Linux(核心的編譯,檔案系統的製作,圖形介面,驅動等)和開發嵌入式Linux的過程基本一樣。1開發環境RedFlag Linux 6.0VMware 7.1.3build-3242852 添加磁碟添加一個新的虛擬硬碟,硬碟類型選擇“IDE”,如所示: 注意:一定選擇IDE類型的虛擬磁碟,否則系統無法識別磁碟,會無法掛載檔案系統!,在initrd.
Time of Update: 2018-12-03
構建自己的Linux 之二 BusyBox移植
Time of Update: 2018-12-03
GPIO(GeneralPurpose
Time of Update: 2018-12-03
Linux驅動程式架構。 一、linux的裝置驅動程式與外界的介面可以分為三個部分: 1.驅動程式與作業系統核心的介面。通過file_operations(include/linux/fs.h)資料結構來完成的。 2.驅動程式與系統引導的介面。這部分利用驅動程式對裝置進行初始化。 3.驅動程式與裝置的介面。這部分描述了驅動程式如何與裝置進行互動,與具體的裝置密切相關。 二、根據功能劃分,裝置驅動程式的代碼有以下幾部分: 1.驅動程式的註冊和登出。 2.裝置的開啟和釋放。
Time of Update: 2018-12-03
linux下bus,device,driver三者關係 1.bus: 匯流排作為主機和外設的串連通道,有些匯流排是比較規範的,形成了很多協議。如PCI,USB,1394,IIC等。任何裝置都可以選擇合適的匯流排串連到主機。當然主機也可能就是CPU本身。記憶體也是通過BUS串連到主機的,可記憶體使用量的匯流排不是外設匯流排,因此和記憶體使用量相同類型的匯流排的裝置,談及BUS比較含糊。 一塊網卡在嵌入式開發中,直接通過記憶體匯流排接入到
Time of Update: 2018-12-03
對於任何編寫核心代碼的人來說,最吸引他們注意的問題之一就是如何完成調試。由於核心是一個不與某個進程相關的功能集,其代碼不能很輕鬆地放在調試器中執行,而且也不能跟蹤。本章介紹你可以用來監視核心代碼和跟蹤錯誤的技術。用列印資訊調試最一般的調試技術就是監視,就是在應用內部合適的點加上printf調用。當你調試核心代碼的時候,你可以用printk完成這個任務。Printk在前些章中,我們簡單假設printk工作起來和printf很類似。現在是介紹一下它們之間不同的時候了。其中一個不同點就是,printk
Time of Update: 2018-12-03
linux核心中的檔案描述符(六)--fd的分配--expand_filesKernel version:2.6.14CPU architecture:ARM920TAuthor:ce123(http://blog.csdn.net/ce123)我們先貼出expand_files函數的源碼:int expand_files(struct files_struct *files, int nr){int err, expand = 0;struct fdtable *fdt;fdt =
Time of Update: 2018-12-03
etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.並從/etc/profile.d目錄的設定檔中搜集shell的設定./etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.~/.bashrc:
Time of Update: 2018-12-03
函數: #include <time.h> char *asctime(const struct tm *tm); char *asctime_r(const struct tm *tm, char *buf); char *ctime(const time_t *timep); char *ctime_r(const time_t *timep, char *buf); struct tm
Time of Update: 2018-12-03
linux核心中的訊號機制--一個簡單的例子Author:ce123(http://blog.csdn.net/ce123)訊號機制是類UNIX系統中的一種重要的處理序間通訊手段之一。我們經常使用訊號來向一個進程發送一個簡短的訊息。例如:假設我們啟動一個進程通過socket讀取遠程主機發送過來的網路資料包,此時由於網路因素當前主機還沒有收到相應的資料,當前進程被設定為可中斷等待狀態(TASK_INTERRUPTIBLE),此時我們已經失去耐心,想提前結束這個進程,於是可以通過kill命令想這個進
Time of Update: 2018-12-03
linux核心中的訊號機制--訊號機制的管理結構Kernel version:2.6.14CPU
Time of Update: 2018-12-03
Linux下C語言編程的-把程式輸出資訊加到系統日誌裡去關鍵詞: Linux 系統日誌 syslog 服務程式 syslogd
Time of Update: 2018-12-03
淺析gcc、arm-linux-gcc和arm-elf-gcc的關係嵌入式開發交流群280352802,歡迎加入!一、GCC簡介The GNU Compiler Collection,通常簡稱 GCC,是一套由 GNU 開發的編譯器集,為什麼是編輯器集而不是編譯器呢?那是因為它不僅支援 C 語言編譯,還支援 C++, Ada,Objective C 等許多語言。另外 GCC 對硬體平台的支援,可以所無所不在,它不僅支援 X86處理器架構, 還支援 ARM, Motorola 68000,
Time of Update: 2018-12-03
linux核心中的likely和unlikelyKernel version:2.6.14CPU architecture:ARM920TAuthor:ce123(http://blog.csdn.net/ce123)GCC version:arm-linux-gcc-3.4.1看核心時經常遇到if(likely( )){}或是if(unlikely( ))這樣的語句,不甚瞭解,例如(選自kernel/fork.c中copy_process):SET_LINKS(p);if (unlikely(