Time of Update: 2018-12-03
新下載一個arm-linux-gcc4.4.3(:http://www.arm9.net/download.asp)試一下。export PATH="/home/new/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH" export PATH="/home/new/usr/local/arm/4.3.2/bin:$PATH"
Time of Update: 2018-12-03
socket也即通訊端介面,實際上也就是網路上的通訊節點。使用者或者應用程式只要串連到socket便可以和網路上任何一個通訊端點串連,傳遞資料。LINUX中,程式員可以不必關心通訊協定而專註應用程式開發。根據資料傳送方式,可以把socket分成連線導向的資料流通訊和不需連線的資料報通訊。通訊過程如下:
Time of Update: 2018-12-03
(1)不需連線的socket通訊相對於有串連的socket通訊較為簡單,因為在傳輸過程中不保證能否到達,常用於對資料要求不高的地方。由於省去了很多開銷,它的傳輸速度比有串連的socket通訊要快,使用UDP傳輸資料。資料通訊如下:
Time of Update: 2018-12-03
使用select函數可以處理socket多串連的問題(select的用法參見:http://blog.csdn.net/zhandoushi1982/article/details/5070107),使用POLL也可以實現同樣的功能,且調用方式更加簡單。原型是:struct pollfd { int fd;//檔案描述符 short events;//要求查詢的事件掩碼 short revents;//返回的事件掩碼};int poll(struct pollfd *ufds,
Time of Update: 2018-12-03
Linux作業系統案頭應用軟體使用推薦 來源:賽迪網技術社區 作者:kornLinux系統近兩年在案頭應用上的發展有目共睹, 面對類似windows一樣的案頭應用,Linux也有對應的如那件與其比拼。 現在把我的Linux系統下使用的軟體與在windows下的軟體環境給出一個對比結果。 一、辦公軟體 永中office2007 PK Microsoft Office2003
Time of Update: 2018-12-03
建立守護進程函數:int daemon_init(void) { int max_fd, ret; int iRet; struct sigaction act; int i; if ((iRet = fork()) { printf("建立守護進程錯誤!/n"); _exit(4); } else if (iRet != 0)
Time of Update: 2018-12-03
sed -i 's/old_string/new_string/g' file_name >/dev/null 在sed的命令列中引用shell變數時要使用雙引號,而不是通常所用的單引號。下面是一個根據name變數的內容來刪除named.conf檔案中zone段的指令碼: name='zone\ "localhost"' sed "/$name/,/};/d" named.conf sed -i "s/oldstring/newstring/g" `grep
Time of Update: 2018-12-03
核心常用文檔:README:該檔案介紹了linux的背景及發展。怎樣編譯和配置核心。出現問題怎樣解決等。Documentation/Changes:編譯和使用核心的最小軟體包。Documentation/CodingStyle:指定核心編碼風格。Documentation/SubmittingPatches,指出了提交補丁的過程和方法Documentation/SubmittingDrivers,指出提交驅動的過程方法Documentation/SubmittingChecklist:提交代碼前
Time of Update: 2018-12-03
1.簡介 GNU 的調試器稱為 gdb,該程式是一個互動式工具,工作在字元模式。在 X Window 系統中,有一個 gdb 的前端圖形工具,稱為 xxgdb。gdb 是功能強大的偵錯工具,可完成如下的調試任務:* 設定斷點;* 監視程式變數的值;* 程式的逐步執行;* 修改變數的值。 在可以使用 gdb 偵錯工具之前,必須使用 -g 選項編譯源檔案。可在 makefile 中如下定義CFLAGS 變數:CFLAGS = -g運行 gdb 偵錯工具時通常使用如下的命令:gdb
Time of Update: 2018-12-03
select系統調用是用來讓我們的程式監視多個檔案控制代碼(file descriptor)的狀態變化的。程式會停在select這裡等待,直到被監視的檔案控制代碼有某一個或多個發生了狀態改變。 檔案在控制代碼在Linux裡很多,如果你man某個函數,在函數傳回值部分說到成功後有一個檔案控制代碼被建立的都是的,如man socket可以看到“On success, a file descriptor for the new socket is returned.”而man 2
Time of Update: 2018-12-03
自己寫了一個簡單的hello.c #include "stdio.h" voidhello (const char * name){printf ("Hello, %s!/n", name);} $gcc hello.c就會出現/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':(.text+0x20): undefined reference to `main'collect2:
Time of Update: 2018-12-03
Linux啟動時,第一個必須掛載的是根檔案系統;若系統不能從指定裝置上掛載根檔案系統,則系統會出錯而退出啟動。之後可以自動或手動掛載其他的檔案系統。因此,一個系統中可以同時存在不同的檔案系統。不同的檔案系統類型有不同的特點,因而根據存放裝置的硬體特性、系統需求等有不同的應用場合。在嵌入式Linux應用中,主要的存放裝置為RAM(DRAM, SDRAM)和ROM(常採用FLASH儲存空間),常用的基於存放裝置的檔案系統類型包括:jffs2, yaffs, cramfs, romfs,
Time of Update: 2018-12-03
(1)原理:本文拋開技術層次上來說說LINUX觸控螢幕裝置驅動原理。觸控螢幕,就是用一塊AD轉換模組來將螢幕上的觸摸訊號轉成數字訊號。觸控螢幕常用的是四線電阻,當觸摸時候,功能模組會將類比訊號轉換成數字訊號,就是通常說的AD轉換。在LINUX中,通常是通過中斷來讀取這些數位。觸控螢幕幕的時候,中斷髮生,LINUX通過串口或者I2C,SPI或者內部資料通道等去讀取轉換後的數字,然後把數值傳給INPUT層。TP在進入休眠時,要關閉CTP的中斷,防止誤觸發中斷,導致異常。 為什麼要校正?
Time of Update: 2018-12-03
在Linux的應用平台上,很多時候我們需要用到從SD卡讀資料來使用,比如升級觸控螢幕韌體,比如載入調試文本等,都需要用到Linux的檔案系統來操作。通過舉一個執行個體來說明VFS FILE操作細節,即在ADB中通過echo 到DEVICE_ATTR的store來升級TP韌體,相關升級函數可以參見博文http://blog.csdn.net/zhandoushi1982/article/details/7704416。(1)store屬性函數static ssize_t
Time of Update: 2018-12-03
就像你寫C程式需要包含C庫的標頭檔那樣,Linux核心編程也需要包含Kernel標頭檔,大多的Linux驅動程式需要包含下面三個標頭檔:#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>其中,init.h 定義了驅動的初始化和退出相關的函數,kernel.h 定義了經常用到的函數原型及宏定義,module.h 定義了核心模組相關的函數、變數及宏。
Time of Update: 2018-12-03
Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹HZ、tick與jiffies。 (1)HZ Linux核心每隔固定周期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interrupts。舉例來說,HZ為1000,代表每秒有1000次timer interrupts。
Time of Update: 2018-12-03
Linux系統下Subversion 安裝與配置一 、首先準備好相關的安裝包,我這裡使用的是下列的幾個包Apr : apr-1.2.12 和 apr-util-1.2.12Apache : httpd-2.2.4.tar.gzSubversion: subversion-1.4.5.tar.gz 和
Time of Update: 2018-12-03
問題:工程中有一個庫檔案是32位的,在64位下編譯,發生錯誤:[*****@Fedora-17-64 Lab1-linux]$ makegcc datalink.c protocol.a -o datalink -lm -lstdc++ /usr/bin/ld: i386 architecture of input file `protocol.a(protocol.o)' is incompatible with i386:x86-64 output/usr/bin/ld: i386
Time of Update: 2018-12-03
linux作業系統啟動之前,首先是硬體上電, BIOS,然後是主引導載入程式等。我們從上電開始說起直到init進程。啟動第一部分:從系統上電到進入linux作業系統。第二部分:linux作業系統開始初始化到啟動init進程。第一部分:1.系統上電之後,會從0xffff,fff0處取指令。在0xffff,fff0地址處是一個跳轉指令,通過此指令,CPU跳轉到BIOS(位於ROM中)開始運行BIOS程式。2.BIOS程式分兩個部分:其一主要做自檢工作,這個工作叫做POST(power on
Time of Update: 2018-12-03
#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/syscalls.h>#include <asm/unistd.h>#include