Time of Update: 2018-12-05
寫在前面,我的客戶中有很多都對嵌入式作業系統的即時性非常關注。即時性對於某些電子裝置非常重要,如雷達、汽車電子等等,我們需要裝置在限定的時間內做出反應,這個時間也並不是越快越好,要考慮到實際要求、成本等各方面。 著名的即時性作業系統vxworks可以達到數十us的任務響應,但是vxwork的費用較為昂貴(年金USD 50,000,當然也有精簡的收費方式會便宜些)。Montavista Linux作為著名的Linux作業系統供應商也可以提供滿足較高即時性要求的Linux版本,價格據說在RMB10
Time of Update: 2018-12-05
原創文章,轉載請註明出處,謝謝! 作者:清林,部落格名:飛空靜渡 @page { margin: 2cm }P { margin-bottom: 0.21cm }-->我用一個程式來說明在structperson中增加了structlist_head變數後怎麼來操作這樣的雙向鏈表。 #include <stdio.h>#include "list.h"struct person{int age;int weight;struct
Time of Update: 2018-12-05
轉載請註明出處:http://blog.csdn.net/z2007b,請勿未經本人許可用於商業用途。著作權歸無為和尚所有。 LINUX核心大講堂系列(序論) 其實我也是過來人,深知沒有接觸過核心開發的同志在無人指導的情況下獨自學習LINUX裝置驅動的感受。都是買書,看BLOG,自已調個小程式,很難有同志能夠堅持下去,市面上的書籍也不是說寫的不好,只是大家的基礎都不一樣,另外我感覺有一點就是那些書籍在看了之後始終感覺有一層捅不破的紙,看書的時候感覺啥都會,書一關,好像又啥都不懂了。其實我進書店看
Time of Update: 2018-12-05
成為一名精通 Linux 程式設計的進階程式員一直是不少朋友孜孜以求的目標。根據中華英才網統計資料,北京地區 Linux 程式員月薪平均為 Windows 程式員的 1.8 倍、Java 程式員的 2.6 倍, Linux 程式員年終獎金平均為 Windows 程式員的 2.9 倍。同時資料顯示,隨著工作經驗的增長, Linux 程式員與 Windows 程式員的收入差距還有擴大的趨勢。Denis 認為,要學好 Linux 環境下的編程,關鍵是要看對、選對、學會正確的書籍。可以說,如果你選對了
Time of Update: 2018-12-05
可能把驅動模型放在第一章講會會有點難度,但是只要能跨過這道坎,後面就會輕鬆很多,驅動模型是整個linux裝置驅動的基石。大部分人把驅動模型叫做裝置模型,但是我查了linux的協助文檔,就是在下載源碼路徑下的Documentation目錄中找到driver-model這個目錄,裡麵包含的檔案就是我在本章中所要講述的東西,也就是我所說的驅動模型。因此本文都會用驅動模型這個術語(如果各位覺得這種叫法是錯誤的,請在評論中指出,並給出理由,本人非常誠懇的接受各位善意的批評與指正)。驅動模型的核心結構就是我
Time of Update: 2018-12-05
串口編程查詢硬體的方式:查詢方式、中斷方式、DMA方式。串口很多是使用中斷方式,這種方式一般來講對CPU比較有效。UART的操作主要包括以下幾個部分: 資料發送;資料接受;產生中斷;產生傳輸速率;Loopback模式;紅外模式;自動流控模式; 串口參數的配置主要包括:傳輸速率、資料位元、停止位、流控協議。在linux下操作串口與操作檔案相同。在使用串口之前必須設定相關配置,包括:傳輸速率、資料位元、校正位、停止位等。串口設定由下面結構體實現。 Struct
Time of Update: 2018-12-05
開發板與虛擬機器linux通過網路相連。在虛擬機器linux啟動後,若是網路斷了後重新串連(插拔網線),虛擬機器與外界的網路會變慢,很不穩定,此時nfs服務就不能保證。在板子上mount nfs服務,運行以下命令測試nfs服務:time dd if=/dev/zero of=/mnt/nfs/temp/testfile bs=8k count=81920通過speedometer軟體可以觀察到。 建議虛擬機器linux與hub相連,不要與開發板直連(否則換板子造成斷網)。 虛擬機器版本7.01.
Time of Update: 2018-12-05
首先,要有一個穩定版本的核心源碼,我開始用的一個RC版的,結果總出錯。。。cd 到核心代碼目錄下,/usr/src/linux-x.x.x好像不行,我是用自己下的linux-2.6.33.3然後執行 make mandocs大約半小時後產生好執行 sudo make installmandocs 安裝好這樣就可以用man查看核心功能了。 注意要實現安裝xmlto軟體包核心還擁有大量從代碼自動產生的文檔。它包含核心內部API的全面介紹以及如何妥善處理加鎖的規則。產生的文檔會放在
Time of Update: 2018-12-05
1.在應用程式菜單中建立起動器:我們拿openoffice3做示範。 應用程式->附件->開啟終端 在命令列中輸入如下命令: sudo gedit /usr/share/applications/openoffice3.desktop #sudo是以超級使用者權限執行後面命令 #gedit是開啟文字編輯器,後面的路徑標識要編輯的檔案
Time of Update: 2018-12-05
Linux核心中的的原子變數分析Linux核心中有幾個東西是比較常見的,原子變數就是其中之一。其實之前我也沒有專門去折騰過這些東西,畢竟就那麼幾行代碼,只要知道這個意思就行了。也就僅限於知道有一條彙編指令叫lock。用這個可以保證資料操作的原子性。但前幾天因為某些原因翻了一下RCU的代碼,RCU的代碼在指標賦值的時候並未lock。所以有些奇怪。經過一翻折騰,終於有了一些答案。現寫出來與大家一起分享,高手就不用看了,屬於小菜級的文章。首先我們從一小段代碼入手:2 int
Time of Update: 2018-12-05
1. 下載開發包解壓。分別下載jrtplib-3.7.1.tar.gz和jthread-1.2.1.tar.gz。為:http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.7.1.tar.gz和http://research.edm.uhasselt.be/jori/jthread/jthread-1.2.1.tar.gz2. 將源檔案放到如下任意目錄中,這裡假設放到主目錄下:/home/jrtplib/。分別解壓#
Time of Update: 2018-12-05
Linux核心大講堂 (二) 傳說中的字元裝置(1)就當我還在學校的時候,我就曾在一個裝機群裡聽一位裝機聖手說,驅動程式的安裝沒你想的那麼簡單,分類型的,分為字元裝置驅動和塊裝置驅動。我當時就納悶了,我說我裝機的時候好像沒看到啊,我就把光碟片放過去然後就一直點下一步,然後重啟就好了啊。後面我在群裡被幾位高手圍攻,敗下陣來,時過境遷,哥現在也算是道上混的兄弟了,再也沒那麼容易被蒙了。就算你DIY再牛,你也不要和我說裝驅動要分類。否則我就和你講核心,講暈你再說。看誰更能吹,哈哈。我得意的笑。我發現學
Time of Update: 2018-12-05
Linux核心大講堂 (三)督脈之虛擬檔案系統(1)在上一節<<Linux核心大講堂
Time of Update: 2018-12-05
轉載請註明出處:http://blog.csdn.net/z2007b,請勿未經本人許可用於商業用途。著作權歸無為和尚所有。 實在是讓大家久等了,因為最近離職,所以繁鎖的事情很多,今天終於把離職手續給辦完了,不過還有一堆事情沒有做,如果更新的慢的話,請大家多多包涵。言歸正傳。俗話說的好:光說不練假把式。很明顯本帥哥不是假把式。為了讓大家一起對驅動模型有直觀的認識,小弟花了一點點時間寫了幾個小例子(目前只有一個)。就是為了讓大家領會最神秘的驅動模型,有了這些小例子,結合我前面兩篇源碼分析的文章,哥
Time of Update: 2018-12-05
先給出函數原型:struct platform_device *platform_device_alloc(const char *name, int id){ struct platform_object *pa; pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL); if (pa) { strcpy(pa->name, name); pa->pdev.name =
Time of Update: 2018-12-05
管道的一些特點如下:它只能用於有親緣關係的進程之間的通訊(父子進程或兄弟進程)它是一個半雙工的通訊模式,有固定讀端、寫端管道可以看成一種特殊的檔案,讀寫可以使用普通的read、write等函數 1.管道建立prototype : int pipi(int fd[2])input : fd[2],管道的兩個檔案描述符,成功建立管道之後可以直接操作output: 0 —— success -1 —— failure 例子:#include
Time of Update: 2018-12-05
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/z2007b/archive/2011/05/19/6433003.aspx//*************************************************************************Linux核心大講堂 (一) 裝置驅動的基石驅動模型(7)終於快講完了,這一節其實就是讓上節我們所說的四大天王露下小臉。源碼分析請自行完成吧。我建議大家可以試著先看一下代碼,如果能看懂,那就把
Time of Update: 2018-12-05
好書推薦:《鳥哥的Linux私房菜 基礎學習篇》(第三版) 鳥哥 著 王世江 改編 人民郵電出版社 我在2、3個月前開始學習linux,剛開始四齣找書,上網找資料,像《深入理解Linux核心》、《Linux裝置驅動程式》、《...情景分析》之類的經典書籍,熱心的網友介紹不少,好評如潮。但當我在圖書館找了這幾本傳說中的扛鼎之作時,內心不由自主地產生恐懼吖!
Time of Update: 2018-12-05
本想自己寫一篇記錄exec函數族的小文章,但是在我學習相關知識的時候,發現網上一篇文章已經對其介紹得比較周詳。故採用他山之石啦。以下將摘錄出自http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part3/index.html其中關於exec函數族部分。 1.10
Time of Update: 2018-12-05
Linux 下常用的 SVN 命令 1、將檔案checkout到本地目錄 svn checkout path(path是伺服器上的目錄) 例如:svn checkout svn://192.168.1.1/pro/domain 簡寫:svn co 2、往版本庫中添加新的檔案 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加目前的目錄下所有的php檔案) 3、將改動的檔案提交到版本庫 svn commit -m