嵌入式linux開發人員需要了解的幾個重要的指令

2021-06-26 17:10:04 字數 1683 閱讀 2705

拿到乙個嵌入式裝置之後,

我想看看這個裝置的分割槽情況:cat /proc/mtd 回車

我想看看它各分割槽掛載的檔案系統是什麼:mount 回車

我想看看它的arm版本及主頻:cat /proc/cpuinfo 回車

我想看看整個外界記憶體晶元的容量:

我想看看linux os占用的整個記憶體容量: cat  /proc/meminfo |grep  memtotal  回車

我想看看booloader給核心的啟動命令內容:cat /proc/cmdline 回車

我想看看它支援的檔案系統:cat /proc/filesystems 回車

我想看看各個裝置模組的中斷情況:cat /proc/interrupts 回車

我想看看各個系統硬體設io mem位址空間的資源劃分情況:cat /proc/iomem 回車 【對應開發中的ioremap,reques_mem_region,重要

我想看看各個外圍裝置的io埠空間的劃分況情況:cat /proc/ioports 回車 【ioports是x86裡面的io管理設計思想,在arm裡可以忽略】

我想看看整個flash晶元的大小:dmesg |grep  size

對於開發驅動的人來講,乙個驅動是不是載入成功,甚至是這個裝置是不是都已經被核心所識別,那就請把目光移到這裡:

這種檢視的方法的前提是必須遵從linux裝置驅動模型來開發的,那從這個出發點來講,我們說在linux裝置模型下進行裝置驅動開發,一般遵從驅動開發三步曲:

(1)匯流排裝置及匯流排驅動註冊,(2)待開發裝置新增到匯流排;(3)待開發裝置的驅動註冊到匯流排。完事。

所以我們想想看看我們要開發的驅動是不是正常,可以按部就班的先檢視下,這個裝置所在的匯流排是不是已經註冊到核心(或者說新增到platform bus上):

ls /sys/bus 回車,或ls /sys/devices/platform/  回車,看是否有相應的匯流排介面卡裝置在裡面;

繼續,再檢視下這個裝置是不是已經新增到匯流排:

ls /sys/devices/platform/***_bus/ 回車 或 ls /sys/bus/***_bus/device/  回車 檢視該匯流排下的子裝置是不是有我們新增的裝置名。

最後,我想看看我要開發驅動是不是已經註冊到匯流排(:

ls /sys/bus/***_bus/driver/  回車 檢視該匯流排下的驅動鏈表裡,是不是有我們新增的驅動,或直接到/dev/***_node找我們要使用的裝置節點檔案在不在。

如果不是以裝置驅動模型區開發的,那麼就直接檢視:

/proc/devices是不是有對應的主裝置號及次裝置號。

記憶體方面:

虛擬記憶體vm是linux很重要的概念在linux核心中vm分為ram部分和swap部分,linux的虛擬記憶體子系統就是負責在後台對ram和swap進行維護管理,分配資源的。

塊裝置方面:

mtdcheck ,mtddebug,nandread ,nandwrite,nandscrup,flash_erase,nm等工具要經常使用

檔案系統方面:

看似平台墮入linux檔案系統組織結構下,每個平凡的目錄節點下可能掛載的是乙個不甘寂寞的檔案系統:包括了建立在塊裝置上的,以及建立在ram上的:

比如jffs2,squash,yaffs2,建立在ram上的如proc,sys,tmpfs等,建立在虛擬磁碟上的ramdisk,如jffs2等等均可選擇。 

開發人員選擇linux

最開始,聽說紅旗linux適合中國人,於是安裝了紅旗,那個麻煩勁就別提了。你需要把紅旗7的所有iso中的檔案全部解壓到跟目錄才能裝上,應該說他的安裝過程並沒有掛載iso。進入系統後,恩,還行設計思想確實還能接受,比如其他fat32分割槽和u盤,自動掛載,但是系統非常的不穩定,卡死是經常。然後我又換了...

Linux開發人員奇貨可居

軟體測試持續 高燒 top大雜燴 日新月異的it產業,沒有永不變質的乳酪。隨著軟體市場的日益成熟,中國軟體產品在功能和效能測試領域方面存在的不足開始逐漸顯現出來,以往 重開發輕測試 的現象發生了巨大轉變,用人單位開始不惜重金聘用專業的軟體測試人才,但是,軟體測試人才職場卻正面臨著 有人沒活幹,有活沒...

開發人員需要知道 How,What,Why

原文 http www.oschina.net news 12662 developers should know how what and why 你是否工作在這樣的乙個大公司裡 他們工作效率緩慢,會議無窮無盡?你是否有被告訴去完成乙個任務,去開發乙個api,但你的不知道它會用在 怎麼用?你只是按...