Time of Update: 2018-12-03
在一台伺服器上配置兩個tomcat應用 1,不能在/etc/profile裡面配置CATALINA_HOME環境變數 2,第一個tomcat的配置保持預設設定.修改第二個tomcat中conf目錄下面的server.xml檔案中的幾個選項 :<Connector port="9090" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
Time of Update: 2018-12-03
這段時間搞一個電容觸控螢幕,經過實驗摸索終於試出來了,因為以前是沒有專門搞過這塊的,這下積攢了十足的經驗。有兩個關鍵地方做下說明:(1)I2C器件讀寫函數。時序如下:根據特性,我沒有使用smbus的讀寫函數,還是用的I2C讀寫函數來處理:static struct i2c_client *g_client; //本I2C器件註冊的client端static int GW8158_read_register_packet(u8 bufp[13]) //讀13
Time of Update: 2018-12-03
一,引言 通常情況下,對函數庫的連結是放在編譯時間期(compile time)完成的。所有相關的對象檔案(object file)與牽涉到的函數庫(library)被連結合成一個可執行檔(executable file)。程式在運行時,與函數庫再無瓜葛,因為所有需要的函數已拷貝到自己門下。所以這些函數庫被成為靜態庫(static libaray),通常檔案名稱為“libxxx.a”的形式。 其實,我們也可以把對一些庫函數的連結載入延遲到程式啟動並執行時期(runtime)。
Time of Update: 2018-12-03
在Linux核心中何時使用spin_lock,何時使用spin_lock_irqsave很容易混淆。首先看一下代碼是如何?的。spin_lock的調用關係 spin_lock | + -----> raw_spin_lock |+------> _raw_spin_lock | +-------->
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
(1)異常的概念
Time of Update: 2018-12-03
動態連結程式庫是一種通用的軟體組件技術,是多種作業系統中提供基本服務的方式。比如Win32核心就是3個DLL檔案構成。這種技術在Linux作業系統下也有對應的實現,就是Linux標準對象Standard Ojbect,對應的副檔名為.so。 下面通過一個簡單的例子開始介紹Linux標準對象。void show() { printf("Standard Object by gashero/n"); } 儲存為myso.c檔案,按照如下編譯: $ gcc -fPIC
Time of Update: 2018-12-03
實現平台: Redhat9.0 作者: 呂岩 物理要求: 兩台普通PC,有串口 系統要求: linux 原理概括: 兩台linux PC其中一台做為server端,監聽COM1 也就是/dev/ttyS0 ,另一台利用minicom等終端工具通過串口線串連. 實現步驟: Server: 修改: /etc/inittab 增加一行,類似於: tty:2345:respawn:/sbin/agetty 115200 ttyS0 欄位"tty"是id
Time of Update: 2018-12-03
自旋鎖的名字來自它的特性,在試圖加鎖的時候,如果當前鎖已經處於”鎖定”狀態,加鎖進程就進行”旋轉”,用一個死迴圈測試鎖的狀態,直到成功的取得鎖。自旋鎖的這種特性避免了調用進程的掛起,用”旋轉”來取代進程切換。而我們知道環境切換需要一定時間,並且會使高速緩衝失效,對系統效能影響是很大的,所以自旋鎖在多處理器環境中非常方便。當然,被自旋鎖所保護的”臨界代碼”一般都比較短,否則就會浪費過多的CPU資源。
Time of Update: 2018-12-03
(1)概述 Executable and linking format(ELF)檔案是x86 Linux系統下的一種常用目標檔案(object file)格式,ELF檔案格式比較複雜,本文只是簡要介紹它的結構。有三種主要類型:(1)適於串連的可重定位檔案(relocatable file),可與其它目標檔案一起建立可執行檔和共用目標檔案。 (2)適於執行的可執行檔(executable file),用於提供者的進程映像,載入到記憶體執行。 (3)共用目標檔案(shared
Time of Update: 2018-12-03
本文拋開技術層次上來說說LINUX觸控螢幕裝置驅動原理
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
在驅動開發過程中,我們有時會碰到這種應用:比如說某款晶片的韌體不是固定的,是可以後期升級的。那麼在每次系統開機時,需要做個檢測,如果檢測到提供了新的韌體,那麼在第一次開機時就升級韌體。之後由於儲存了新的韌體版本號碼可供檢測,就不用再開機升級了。
Time of Update: 2018-12-03
(1)原理:本文拋開技術層次上來說說LINUX觸控螢幕裝置驅動原理。觸控螢幕,就是用一塊AD轉換模組來將螢幕上的觸摸訊號轉成數字訊號。觸控螢幕常用的是四線電阻,當觸摸時候,功能模組會將類比訊號轉換成數字訊號,就是通常說的AD轉換。在LINUX中,通常是通過中斷來讀取這些數位。觸控螢幕幕的時候,中斷髮生,LINUX通過串口或者I2C,SPI或者內部資料通道等去讀取轉換後的數字,然後把數值傳給INPUT層。TP在進入休眠時,要關閉CTP的中斷,防止誤觸發中斷,導致異常。 為什麼要校正?
Time of Update: 2018-12-03
在Linux下編譯安裝軟體包時提示:make: warning: Clock skew detected. Your build may be incomplete。修改系統的日期與時間然後重新編譯安裝,則錯誤消失。方法如下: [root@server vsftpd-2.0.5]# date Sat Jan 26 04:33:07 CST 2002 [root@server vsftpd-2.0.5]# date -s 12/11/2006 Mon Dec 11 00:0
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