
對于一個系統(tǒng)來講,會有很多的外設(shè),那么這些外設(shè)的管理都是通過CPU完成。那么CPU在這個過程中是如何找到外設(shè)的呢?
我們知道默認(rèn)外設(shè)I/O資源是不在Linux內(nèi)核空間中的(如sram或硬件接口寄存器等),若需要訪問該外設(shè)I/O資源,必須先將其地址映射到內(nèi)核空間中來,然后才能在內(nèi)核空間中訪問它。Linux內(nèi)核訪問外設(shè)I/O內(nèi)存資源的方式有兩種:動態(tài)映射(ioremap)和靜態(tài)映射(map_desc)。
本文介紹了此RFID安檢系統(tǒng)的硬件框架和軟件設(shè)計,實(shí)現(xiàn)了RFID安檢系統(tǒng)基于嵌入式Linux下的串口通信以及數(shù)據(jù)庫的應(yīng)用。最后通過實(shí)驗(yàn)證明并確定了其在速率、穩(wěn)定性方面的可行性,對于當(dāng)今大多數(shù)RFID安檢系統(tǒng)的開發(fā)具有一定的參考價值。
視頻監(jiān)控系統(tǒng)一直是監(jiān)控領(lǐng)域中的熱點(diǎn),它以直觀、方便、信息內(nèi)容豐富而在各個行業(yè)得到廣泛應(yīng)用,如:交通、電力、通信、石油、碼頭、倉庫、金融、政府機(jī)關(guān)企事業(yè)單位辦事窗口,和軍隊(duì)、公安、監(jiān)獄、水利/水廠、民航等要害部門。
很多人喜歡爭論什么什么編程語言好,我認(rèn)為這個話題如果不限定應(yīng)用范圍,就毫無意義。 每種編程語言必然有其優(yōu)點(diǎn)和缺點(diǎn),這也決定了它有適合的應(yīng)用場景和不適合的應(yīng)用場景?,F(xiàn)代軟件行業(yè),想一門編程語言包打天下是不現(xiàn)實(shí)的。這中現(xiàn)狀也造成了一種現(xiàn)象,一個程序員往往要掌握多種編程語言。
對于初學(xué)者來說,gzip 工具主要用于壓縮或者展開文件。解壓時,在 gzip 命令后添加 -d 選項(xiàng)即可,使用示例如下: gzip -d [compressed-file-name]
學(xué)習(xí)如何在 Linux 終端使用命令行工具 speedtest 測試網(wǎng)速,或者僅用一條 python 命令立刻獲得網(wǎng)速的測試結(jié)果。 我們都會在連接到一個新的網(wǎng)絡(luò)或者 WIFI 的時候去測試網(wǎng)絡(luò)帶寬。 為什么不用我們自己的服務(wù)器!下面將會教你如何在 Linux 終端測試網(wǎng)速。
Linux的同步機(jī)制從2.0到2.6以來不斷發(fā)展完善。從最初的原子操作,到后來的信號量,從大內(nèi)核鎖到今天的自旋鎖。這些同步機(jī)制的發(fā)展伴隨Linux從單處理器到對稱多處理器的過渡。 伴隨著從非搶占內(nèi)核到搶占內(nèi)核的過度。Linux的鎖機(jī)制越來越有效,也越來越復(fù)雜。
嵌入式Linux設(shè)備驅(qū)動開發(fā)之驅(qū)動分層/分離思想 我們在學(xué)習(xí)I2C、USB、SD驅(qū)動時,有沒有發(fā)現(xiàn)一個共性,就是在驅(qū)動開發(fā)時,每個驅(qū)動都分層三部分,由上到下分別是: 1、XXX 設(shè)備驅(qū)動 2、XXX 核心層 3、XXX 主機(jī)控制器驅(qū)動
互斥量從本質(zhì)上說就是一把鎖, 提供對共享資源的保護(hù)訪問。
微軟首次發(fā)布了自己的定制 Linux 內(nèi)核和發(fā)行版。在舊金山舉行的新聞發(fā)布會上,微軟宣布了 針對物聯(lián)網(wǎng)設(shè)備的解決方案 Azure Sphere。
Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對各類文件系統(tǒng) 進(jìn)行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(Virtual File System),為各類文件系統(tǒng)提供一個統(tǒng)一的操作界面和應(yīng)用編程接口。
一直以來寫linux驅(qū)動,都是按照固定格式,定義一個初始化和退出函數(shù),書上告訴我這兩個函數(shù)會被調(diào)用,至于為什么會被調(diào)用,在哪調(diào)用,一直不清楚。
在嵌入式系統(tǒng)中,延時是經(jīng)常需要使用的一種手段,延時的方法可以通過使用類似于\"NOP\"的指令來實(shí)現(xiàn),但是如果延時的時間比較長,如果使用太多的\"NOP\" 指令則會消耗過多的儲存空間,最好的方法是使用子程序(匯編語言中)或子函數(shù)(高級語言中)。當(dāng)然這里并不打算討論如果使用定時器中斷來實(shí)現(xiàn)延時。下面就在C語言中使用子函數(shù)實(shí)現(xiàn)延時的幾個問題做些討論,當(dāng)然討論高級語言的延時就需要考慮編譯器和處理器,這里為了討論的方便,而且不失一般性,可以用標(biāo)準(zhǔn)51單片機(jī)作處理器和uVision2作為編譯環(huán)境,晶振為12MHz
在Linux中,先后出現(xiàn)了音頻設(shè)備的兩種框架OSS和ALSA,本節(jié)將在介紹數(shù)字音頻設(shè)備及音頻設(shè)備硬件接口的基礎(chǔ)上,展現(xiàn)OSS和ALSA驅(qū)動的結(jié)構(gòu)。
SELinux帶給Linux的主要價值是:提供了一個靈活的,可配置的MAC機(jī)制。
在Linux中,僅等待CPU時間的進(jìn)程稱為就緒進(jìn)程,它們被放置在一個運(yùn)行隊(duì)列中,一個就緒進(jìn)程的狀 態(tài)標(biāo)志位為TASK_RUNNING。一旦一個運(yùn)行中的進(jìn)程時間片用完, Linux 內(nèi)核的調(diào)度器會剝奪這個進(jìn)程對CPU的控制權(quán),并且從運(yùn)行隊(duì)列中選擇一個合適的進(jìn)程投入運(yùn)行。
當(dāng)一個進(jìn)程結(jié)束了運(yùn)行或在半途中終止了運(yùn)行,那么內(nèi)核就需要釋放該進(jìn)程所占用的系統(tǒng)資源。這包括進(jìn)程運(yùn)行時打開的文件,申請的內(nèi)存等。
初學(xué)時最好從命令行入手,這樣可以熟悉從編寫程序、編譯、調(diào)試和執(zhí)行的整個過程。編寫程序可以用vi或其它編輯器編寫。
如果從應(yīng)用層的應(yīng)用開發(fā)出發(fā),建議先熟悉API函數(shù)。如果從應(yīng)用層的界面開發(fā)出發(fā),則建議學(xué)習(xí)Qt,WinCE或Android等。