Time of Update: 2018-12-04
在使用socket或串口的時候應用代碼經常使用select來判斷有沒接收到資料,驅動需要做什麼處理,應用程式層使用者才能正確判斷有資料收到並讀取資料呢?使用select能夠監視我們需要監視的檔案描述符的變化情況——讀寫或是異常。 先建立簡單模型,應用使用select監聽裝置是否可讀,當裝置可讀將資料讀出後繼續監聽。已經有了一個監聽裝置可讀狀態的進程,還要開啟終端使用echo xxx
Time of Update: 2018-12-04
linux將文字檔內容加以排序命令 功能說明:將文字檔內容加以排序。語 法:sort [-bcdfimMnr][-o<輸出檔案>][-t<分隔字元>][+<起始欄位>-<結束欄位>][--help][--verison][檔案]補充說明:sort可針對文字檔的內容,以行為單位來排序。參 數: -b 忽略每行前面開始出的空白字元。 -c 檢查檔案是否已經按照順序排序。 -d
Time of Update: 2018-12-04
非同步通知是裝置狀態改變後主動通知應用程式,這樣應用程式就不需要阻塞或查詢裝置了。應用通過訊號來處理核心的非同步通知,上次使用poll select來查詢裝置的可讀狀態,下面這個例子類似,不同的是當裝置有資料時主動通知應用去讀資料。 應用的C代碼很簡單,主要設定對訊號的處理方式,核心有資料時會收到SIGIO訊號,應用會自動調用signal設定的函數去讀資料。 main.c#include <stdio.h>#include
Time of Update: 2018-12-04
原文: http://linux.chinaunix.net/techdoc/system/2009/07/02/1121343.shtml構建嵌入式Linux根檔案系統移植好了UBOOT和核心之後,便是構建linux根檔案系統了。以http://blog.chinaunix.net/u1/34474/showart_485837.html文章為基礎進行修改。1)建立根檔案系統的基本目錄結構。我把這個過程做成了shell指令碼(檔案名稱為mkroot) ,很方便! #! /bin/sh
Time of Update: 2018-12-04
tasklet是中斷處理下半部分最常用的一種方法,驅動程式一般先申請中斷,在中斷處理函數內完成中斷上半部分的工作後調用tasklet。tasklet有如下特點:1.tasklet只可以在一個CPU上同步地執行,不同的tasklet可以在不同地CPU上同步地執行。2.tasklet的實現是建立在兩個軟體中斷的基礎之上的,即HI_SOFTIRQ和TASKLET_SOFTIRQ,本質上沒有什麼區別,只不過HI_SOFTIRQ的優先順序更高一些3.由於tasklet是在非強制中斷上實現的,所以像非強制中
Time of Update: 2018-12-04
fedora 17 安裝配置nfs : http://www.server-world.info/en/note?os=Fedora_17&p=nfs原文: http://cabbage812.blog.163.com/blog/static/922814382009287020395/網路檔案系統(NFS,Network File
Time of Update: 2018-12-04
文章目錄 3.使用自訂欄隊 工作隊列是一種將工作推後執行的形式,交由一個核心線程去執行在進程上下文執行,其不能訪問使用者空間。最重要特點的就是工作隊列允許重新調度甚至是睡眠。工作隊列子系統提供了一個預設的工作者線程來處理這些工作。預設的工作者線程叫做events/n,這裡n是處理器的編號,每個處理器對應一個線程,也可以自己建立工作者線程。 1.工作的定義 typedef void
Time of Update: 2018-12-04
windows提供了計劃任務這一功能,在控制台 -> 效能與維護 -> 任務計劃, 它的功能就是安排自動啟動並執行任務。 通過'新增工作計劃'的一步步引導,則可建立一個定時執行的任務。 在linux同樣具備相同的功能:第一部分:at命令 1. at命令:在一個指定的時間執行一個指定任務,只能執行一次,且需要開啟atd進程(ps -ef | grep atd查看, 開啟用/etc/init.d/atd start or restart;
Time of Update: 2018-12-04
1、Makefile‘混和的隱含和普通規則’錯誤的解決 (mixed implicit and normal rules. Stop.) 這是由於Make工具對低版本核心Makefile一些舊的規則相容不是很好,只需要修改一下開發包核心原碼裡的Makefile。 http://blog.csdn.net/liukun321/article/details/69156412、核心編譯時間make menuconfig出現問題時的解決辦法
Time of Update: 2018-12-04
一、Brigde——橋接 :預設使用VMnet0fish批註:只要在虛擬機器中將IP設對,即使宿主機的IP是錯的,也可以通訊。但是如此物理網卡被禁用了,則不能通訊。鏈路:Linux虛擬機器->物理網卡WINDOWS->物理網卡橋接可以使用靜態IP和動態IP,使用動態IP時,返回與物理網卡同一網段的地址(由物理網卡的網關來分配)。1、原理: Bridge
Time of Update: 2018-12-04
1、查看IP Ifconfig 2、配置IP的方法: A、 這種方法立即生效 但是重啟將不會儲存。(除了這個方法的其它方法都可以儲存下來) Ifconfig eth0 1.1.1.1 netmask 255.0.0.0 up Ifconfig eth0:1 1.1.1.3 up 設定一個網卡多個IP的方法(在設定虛擬機器主機時有用到) 啟用網卡:Ifconfig eth0 up 關閉網卡:Ifconfig eth0 down 動態擷取IP:Ifconfig
Time of Update: 2018-12-04
RHEL下yum更新出現This system is not registered with RHN解決辦法 說一下如何改用CentOS的yum軟體來升級未註冊的RHEL系統: 首先 rpm -qa|grep yum 查看 yum 服務相關的包 # rpm -qa|grep yum yum-security-1.1.16-13.el5_4.1 yum-3.2.22-33.el5 yum-updatesd-0.9-2.el5
Time of Update: 2018-12-04
文章目錄 1.1 定義 1.2 操作函數 1.3 讀者/寫者旗幟 linux驅動學習之訊號量和互斥體 在驅動程式中,當多個線程同時訪問相同的資源時(全域變數或硬體資源),可能會引發競態因此我們必須對共用資源進行並發控制。linux核心中解決並發控制的最常用方法是自旋鎖與訊號量。一 訊號量
Time of Update: 2018-12-04
wget是在Linux下開發的開放原始碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平台上。它有以下功能和特點:(1)支援斷點下傳功能;這一點,也是網路螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功能,那些網路不是太好的使用者可以放心了;(2)同時支援FTP和HTTP下載方式;儘管現在大部分軟體可以使用HTTP方式下載,但是,有些時候,仍然需要使用FTP方式下載軟體;(3)支援Proxy
Time of Update: 2018-12-04
Linux系統防火牆檢查、開啟和關閉ping測試必須在關閉Linux防火牆的條件下進行,否則可能失敗。查看防火牆資訊:#/etc/init.d/iptables status防火牆重啟:#/etc/init.d/iptables restart關閉開啟防火牆服務(不建議永久關閉防火牆):www.2cto.com 永久生效:chkconfig iptables on/off(重啟生效)即時生效:service iptables
Time of Update: 2018-12-04
文章目錄 1.定義2.相關函數 核心定時器是核心用來控制在未來某個時間點調度執行某個函數的一種機制,而且是處於中斷上下文中,所以調度函數必須遵守以下規則:1) 沒有 current 指標、不允許訪問使用者空間。因為沒有進程上下文,相關代碼和被中斷的進程沒有任何聯絡。2) 定時器函數必須是原子的,不能進行睡眠或者調度. 原子代碼不能調用 schedule 或者某種 wait_event, 也不能調用任何其他可能睡眠的函數. 例如, 調用
Time of Update: 2018-12-04
首先說明下系統,宿主機是Winxp,ip為192.168.1.18,通過vmware安裝了Fedora
Time of Update: 2018-12-04
文章目錄 3.1 管理調度其它的核心線程kthread 核心線程和普通的進程間的區別在於核心線程沒有獨立的地址空間,它只在 核心空間運行,從來不切換到使用者空間去;並且和普通進程一樣,可以被調度,也可以被搶佔。 一 線程的建立 struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const
Time of Update: 2018-12-04
在linux系統中用pkill命令踢出線上登入使用者:linux是一個多使用者多任務的作業系統,使用者可以在不同地方通過ssh連上LINUX伺服器,在系統中我們可以使用w命令來查看當前線上登入使用者。03:05:23 up 19 min, 3 users, load average: 0.00, 0.03, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 192.168.0.2 01:39 6:52 3.67s 3.43s /usr/
Time of Update: 2018-12-04
今天整理了一下字元裝置驅動的模板,工程分開3個檔案.main.c 驅動載入初始化工作。loadmod.c 提供安裝和卸載驅動的函數。fileops.c 檔案操作函數。Makefile#KERNELDIR = /home/fontlose/board/tx2416/kernelsom2416KERNELDIR = /usr/src/kernels/2.6.35.13-92.fc14.i686/PWD := $(shell pwd)#CC =