Time of Update: 2018-12-05
子曰:按套路出牌。的確,什麼東西都有套路,泡妞有泡妞的套路,花前月下不如花錢日下。打麻將有打麻將的套路,少吃少碰少放炮,多摸多杠多發財。星際有星際的套路,linux也有linux的套路。劉濤姐姐的故事再一次告訴我們,年齡不是問題,身高不是距離,有cai就行。我們不妨看看 modprobe ehci-hcd 之後發生了什麼事情。ehci-hcd是一個驅動程式,不知您記不記得我在sysfs中談論過裝置模型。有兩個重要的鏈表掛在bus上,一個是裝置device鏈表,一個是驅動driver鏈表。
Time of Update: 2018-12-05
博主按:下文原作者在linux2.4.0基礎上分析的,我現在的核心是2.6.32。在有區別的地方我會用紅色文字標出,作為對原文的一些補充吧。3.2.4 尋找可用資源 函數find_resource()用於在一顆資源樹中尋找未被使用的、且滿足給定條件的(也即資源長度大小為size,且在[min,max]區間內)的資源。其函數原始碼如下:/** Find empty slot in the resource tree given range andalignment.*/static int
Time of Update: 2018-12-05
GPIO是與硬體體系密切相關的,linux提供一個模型來讓驅動統一處理GPIO,即各個板卡都有實現自己的gpio_chip控制模組:request, free, input,output, get,set,irq... 然後把控制模組註冊到核心中,這時會改變全域gpio數組:gpio_desc[]. 當使用者請求gpio時,就會到這個數組中找到,並調用這個GPIO對應的gpio_chip的處理函數。 gpio實現為一組可用的 gpio_chip,
Time of Update: 2018-12-05
開發的過程中,經常會發現虛擬機器的硬碟不夠用了,這時候需要給虛擬機器擴充硬碟,可以使用如下方法。 (1)在VM——Settings——Hard disk——add ,可以選擇建立一塊新硬碟或者加入一塊已經存在的硬碟。 (2)啟動系統後在終端中使用fdisk -l /dev/sd* 可以列出新加入的硬碟,比如是sdb,假設使用的是SCSI硬碟。 (3)fdisk /dev/sdb,進入fdisk操作介面“Command (m for
Time of Update: 2018-12-05
3.6 訪問I/O記憶體資源 儘管I/O連接埠空間曾一度在x86平台上被廣泛使用,但是由於它非常小,因此大多數現代匯流排的裝置都以記憶體映射方式(Memory-mapped)來映射它的I/O連接埠(指I/O寄存器)和外設記憶體。基於記憶體映射方式的I/O連接埠(指I/O寄存器)和外設記憶體可以通稱為“I/O記憶體”資源(I/OMemory)。因為這兩者在硬體實現上的差異對於軟體來說是完全透明的,所以驅動程式開發人員可以將記憶體映射方式的I/O連接埠和外設記憶體統一看作是“I/O記憶體”資源。
Time of Update: 2018-12-05
博主按:下文原作者在linux2.4.0基礎上分析的,我現在的核心是2.6.32。在有區別的地方我會用紅色文字標出,作為對原文的一些補充吧。3.2
Time of Update: 2018-12-05
博主按:下文原作者在linux2.4.0基礎上分析的,我現在的核心是2.6.32。在有區別的地方我會用紅色文字標出,作為對原文的一些補充吧。 本文主要從核心實現的角度分析linux2.4.0核心IO子系統中對IO連接埠資源的管理的實現原理。本文是為那些想要深入分析Linux的IO子系統的讀者和裝置驅動程式開發人員而寫的。 Copyright ?0? 2002 by 詹榮開 E-mail:zhanrk@sohu.com linux-2.4.0 Version 1.0.0,2002-10-1
Time of Update: 2018-12-05
作者:劉洪濤,華清遠見嵌入式學院進階講師,ARM公司授權ATC講師。在上篇《利用udev、sys動態建立裝置結點》的記錄中,裝置驅動中主要依靠下面兩個功能完成的:1、在/sys/class下建立farsight_class類 my_class =class_create(THIS_MODULE, "farsight_class"); 2、在farsight_class中建立新的class裝置 class_device_create(my_class,NULL, devno,
Time of Update: 2018-12-05
原文連結:http://21cnbao.blog.51cto.com/109393/336263 1.1
Time of Update: 2018-12-05
3.4
Time of Update: 2018-12-05
【什麼是FrameBuffer】FrameBuffer直譯就是,幀緩衝。Frame幀:你所看到的螢幕的映像,或者在一個視窗中的映像,就叫一幀。Buffer緩衝:一段RAM,用來暫存映像資料,這些資料會被直接寫入到顯示裝置。幀緩衝就相當於介於 圖形操作 和 映像輸出中間的一個中間人。將程式對圖形資料的處理操作,反饋到顯示輸出上。顯卡(顯存中的資料) <-> 幀緩衝(程式對其中的資料進行處理) <->
Time of Update: 2018-12-05
我的Linux自動mount NTFS分區時,在我解壓檔案夾時總用一些檔案報錯。 我用ls -lia命令查看了一下許可權,發現自動mount的NTFS分區的所有人是root,屬於plugdev這個組。 雖然我仍然可以自由copy、remove、edit檔案, 但是解壓總是報錯。 我試圖使用chmod和chown對整個NTFS分區的檔案和檔案夾修改屬主為我,修改許可權為777。雖然程式提示執行成功,但是執行ls -lia命令發現這兩個命令根本沒起作用。
Time of Update: 2018-12-05
linux低功耗研究也有一段時間了,基本把低功耗的實現方式想清楚了(主要分成機制和策略),這段時間的工作主要在機制上。暫時想實現的主要的機制有:cpu級,裝置驅動級,系統平台級。管理顆粒度不斷遞增,形成三駕馬車齊驅的形勢。 cpu級:主要實現比較容易的在系統處於目標在於頻繁發生、更高粒度的電源狀態改變,主要的實現方式為idle,包括今天的主要想講的動態主頻。裝置驅動級:主要實現對單個裝置驅動的管理(suspend,resume等),通過系統監測將閑置的裝置,通過從使用者態對sys檔案目錄動態進行
Time of Update: 2018-12-05
悄悄地進入Linux核心調試(一) 本文基址:http://blog.csdn.net/cugxueyu/archive/2007/12/21/1957740.aspx※ 調試工作艱苦,是核心級開發區別於使用者級開發的一個顯著特點。※ 駕馭核心調試的能力,很大程度上取決於經驗和對整個作業系統的把握。 一、調試前的準備 核心級bug具有行為不可靠,定義不清晰或者說很難再現的諸多特定,為核心級的bug跟蹤和調試帶來了很大的困難。 ※
Time of Update: 2018-12-05
access(判斷是否具有存取檔案的許可權)相關函數 stat,open,chmod,chown,setuid,setgid表標頭檔 #include<unistd.h>定義函數 int access(const char * pathname,int mode);函數說明 access()會檢查是否可以讀/寫某一已存在的檔案。參數mode有幾種情況組合, R_OK,W_OK,X_OK
Time of Update: 2018-12-05
linux下的關機和重啟流程對於一般的案頭應用和網路伺服器來說並不重要,但是在使用者自己定義的嵌入式系統核心中就有一定的研究意義,通過瞭解Linux
Time of Update: 2018-12-05
1. 核心啟動地址1.1. 名詞解釋ZTEXTADDR解壓代碼啟動並執行開始地址。沒有物理地址和虛擬位址之分,因為此時MMU處於關閉狀態。這個地址不一定時RAM的地址,可以是支援讀寫定址的flash等儲存中介。Start address of decompressor. here's no point in talking about virtual or physical addresses here, since the MMU will be off at the
Time of Update: 2018-12-05
做嵌入式 linux 驅動的時候,難免會遇到clock,今天上網查閱關於clock的資料,發現網上大多數資料都是關於linux核心的時鐘機制,而不是關於Linux裝置驅動的時鐘。於是將自己今天學習的經驗寫出來,跟大家交流交流,有不對的地方希望高手們指出。我會以三星的smdkc220開發板為例。分析代碼,
Time of Update: 2018-12-05
本帖大體上描述Linux
Time of Update: 2018-12-05
核心的引導步驟如下:(1)用U-boot 的mkimage 工具處理核心映像zImage。(2)通過網路、串口、USB 磁碟機、SD 記憶卡等方式將處理過的核心映像傳輸到SDRAM 的一定位置(一般使用0x30008000)(3)然後使用”bootm"等核心引導命令來啟動核心。 為什麼要用U-boot 的mkimage 工具處理核心映像zImage?因為在用bootm 命令引導核心的時候,bootm 需要讀取一個64