① linux驅動開發設備樹和匯流排之間的關系
在 Linux 系統中,設備樹(Device Tree)是一種數據結構,它用於描述硬體結構,幫助內核在啟動時確定硬體設備的位置和如何使用它們。在設備樹中,節點表示硬體設備,而邊表示設備之間的關系。
匯流排(Bus)是用於在計算機系統中傳輸數據的通道。它通常是一組連接設備的線路,並允許設備之間交換數據。在 Linux 中,匯流排也在設備樹中表示為節點,並且設備節點與匯流排節點之間存在邊。
因此,在 Linux 系統中,設備樹用於描述硬體結構,其中包含設備和匯流排,以及它們之間的關系。在驅動程序開發中,開發人員通常使用設備樹來確定特定設備的位置和如何與其通信。
② 嵌入式linux 修改dts文件同時需要修改preloader么
U-Boot 引入了扁平設備樹FDT 這樣的動態介面,使用一個單獨的FDT blob(二進制大對象,是一個可以存儲二進制文件的容器)存儲傳遞給內核的參數[3]。一些確定信息,例如cache 大小、中斷路由等直接由設備樹提供,而其他的信息,例如eTSEC 的MAC 地址、頻率、PCI 匯流排數目等由U-Boot 在運行時修改。U-Boot 使用扁平設備樹取代了bd_t,而且也不再保證對bd_t 的後向兼容。需要修改的,重新編譯dts文件。
③ fstab中tmpfs,sysfs分別有怎麼作用
tmpfs就是個文件系統(OS或是某些軟體會使用它,如oracle就使用了tmpfs),但是是基於內存的,也就是說文件系統是掛載內存上而不是硬碟上,這樣在tmpfs上文件的讀寫就效率超高。而tmpfs默認會設置為系統一半的內存,並且還有swap空間。具體tmpfs是使用內存還是swap就要看系統的負載了。以上是我個人的理解,歡迎各種討論~
sysfs我沒接觸過,網上有這樣的解答:
sysfs是Linux 2.6所提供的一種虛擬檔案系統。這個檔案系統不僅可以把裝置(devices)和驅動程式(drivers)的資訊從kernel space輸出到user space,也可以用來對裝置和驅動程式做設定。
sysfs的目的是把一些原本在procfs中的,關於裝置的部份獨立出來,以[裝置階層架構}(device tree)的形式呈現。這個檔案系統由Patrick Mochel所寫,稍後Maneesh Soni撰寫 "sysfs backing store path",以降低在大型系統中對內存的需求量。
sysfs一開始以ramfs為基礎,也是一個只存在於內存中的檔案系統。ramfs是在2.4核心處於穩定階段時加入的。ramfs是一個優雅的實做,證明了要在當時仍很新的虛擬檔案系統(VFS)下寫一個簡單的檔案系統是多麼容易的一件事。由於ramfs的簡潔以及使用了VFS,稍後的一些內存形式的檔案系統都以它作為開發基礎。
sysfs剛開始被命名成ddfs(Device Driver Filesystem),當初只是為了要對新的驅動程式模型除錯而開發出來的。它在除錯時,會把裝置架構(device tree)的資訊輸出到procfs檔案系統中。但在Linus Torvalds的急切督促下,ddfs被轉型成一個以ramfs為基礎的檔案系統。在新的驅動程式模型被整合進 2.5.1 核心時,ddfs 被改名成driverfs,以更確切描述它的用途。
在2.5核心開發的次年,新的『驅動程式模型』和『driverfs』證明了對核心中的其他子系統也有用處。kobjects被開發出來,作為核心物件的中央管理機制,而此時driverfs也被改名成sysfs。
正因為devfs上述這些問題的存在,在linux2.6內核以後,引入了一個新的文件系統sysfs,它掛載於/sys目錄下,跟devfs一樣它也是一個虛擬文件系統,也是用來對系統的設備進行管理的,它把實際連接到系統上的設備和匯流排組織成一個分級的文件,用戶空間的程序同樣可以利用這些信息以實現和內核的交互。
該文件系統是當前系統上實際設備樹的一個直觀反應,它是通過kobject子系統來建立這個信息的,當一個kobject被創建的時候,對應的文件和目錄也就被創建了,位於/sys下的相關目錄下,既然每個設備在sysfs中都有唯一對應的目錄,那麼也就可以被用戶空間讀寫了。用戶空間的工具udev就是利用了sysfs提供的信息來實現所有devfs的功能的,但不同的是udev運行在用戶空間中,而devfs卻運行在內核空間,而且udev不存在devfs那些先天的缺陷。很顯然,sysfs將是未來發展的方向。
④ 什麼是設備管理系統,都有哪些內容
設備管理系統(EquipmentManagementSystem)是將信息化了設備技術信息與現代化管理相結合,是實現研究級管理信息化的先導。設備管理軟體是設備管理模式與計算機技術結合的產物,設備管理的對象是研究所中各種各樣的設備。
隨著計算機技術的迅猛發展以及Internet進入商業和社會應用階段,設備的種類、數量越來越多,如何利用先進的網路技術和日新月異的計算機設備來有效地收集、處理這些設備,建立以信息化為核心的管理體制,減輕管理人員和業務人員的數據處理負擔,極大地提高設備管理效率和管理手段,己經成為當今社會的潮流。
在現代化大型研究所信息化管理體系建設中,設備管理系統被看作是重中之重。因為設備是工廠生產中的主體,隨著科學技術的不斷發展,生產設備日益機械化、自動化、大型化、高速化和復雜化,設備在現代工業生產中的作用和影響也隨之增大,在整個工業生產過程中對設備的依賴程度也越來越高。設備管理的各項制度、流程涉及的點多面廣。
設備管理系統則是一個以人為主導,利用計算機硬體、軟體、網路設備通信設備以及其他辦公設備,進行信息的收集、傳輸、加工、儲存、更新和維護,以戰略竟優、提高效率為目的,支持高層決策、中層控制、基層運作的集成化的人機系統。而設備管理是管理系統的一個子系統,它具有管理信息系統的共性,同時也具有其特殊性。設備是生產的生命線,對研究所正常生產起著決定性的作用。信息安全設備管理已成為現代研究所管理的一個重要組成部分。把信息安全設備管理納入研究所管理的重要組成部分己經成為一種趨勢。
設備管理系統的內容,設備管理系統一般都包括一下部分:
設備資產及技術管理:建立設備信息庫,實現設備前期的選型、采購、安裝測試、轉固;設備轉固後的移裝、封存、啟封、閑置、租賃、轉讓、報廢,設備運行過程中的技術狀態、維護、保養、潤滑情況記錄。
設備文檔管理:設備相關檔案的登錄、整理以及與設備的掛接。
設備缺陷及事故管理:設備缺陷報告、跟蹤、統計,設備緊急事故處理。
預防性維修:以可靠性技術為基礎的定期維修、維護,維修計劃分解,自動生成預防性維修工作單。
維修計劃排程:根據日程表中設備運行記錄和維修人員工作記錄,編制整體維修、維護任務進度的安排計劃,根據任務的優先順序和維修人員工種情況來確定維修工人。
工單的生成與跟蹤:對自動生成的預防性、預測性維修工單和手工錄入的請求工單,進行人員、備件、工具、工作步驟、工作進度等的計劃、審批、執行、檢查、完工報告,跟蹤工單狀態。
備品、備件管理:建立備件台帳,編制備件計劃,處理備件日常庫存事務(接受、發料、移動、盤點等),根據備件最小庫存量或備件重訂貨點自動生成采購計劃,跟蹤備件與設備的關系。
維修成本核算:憑借工作單上人員時間、所耗物料、工具和服務等信息,匯總維修、維護任務成本,進行實際成本與預算的分析比較。
缺陷分析:建立設備故障代碼體系,記錄每次故障發生的情況以進行故障分析。
統計報表:查詢、統計各類信息,包括設備的三率報表、設備維修成本報表、設備狀態報表、設備履歷報表、備件庫存周轉率、供應商分析報表等。
⑤ 如何在linux-3.x內核編譯設備樹
可以讓設備樹文件和內核一起編譯,單獨編譯的化,可以參考下面的文檔:
http://blog.csdn.net/woshigaoyuan/article/details/13996277
⑥ 怎麼看有沒有dtbo分區
在文件管理里就可以查看是否有DTBO分區。
在做Android8時,發現在dts中引入了dto。設備樹疊加層(DTO)可讓主要的設備樹(DTB)疊加到設備樹上。使用DTO的引導程序可以維護系統晶元(SOC)DT,並動態疊加針對特定設備的DT,從而向樹中添加節點並對先用樹中的屬性進行更改。
也就是SOC的設備節點作為DTB,其他設備作為DTO,DTO可以對DTB中的節點進行引用和修改。實現DTO包括分割設備樹,編譯,分區和運行。

數據結構:
dt_table_header 僅適用於 dtb/dtbo 分區;您不能在 image.gz 末尾處附加此格式。如果您有一個 DTB/DTBO,則仍必須使用此格式(並且,dt_table_header 中的 dt_entry_count 為 1)。
#define DT_TABLE_MAGIC 0xd7b7ab1e。
struct dt_table_header {。
uint32_t magic; // DT_TABLE_MAGIC。
uint32_t total_size; // includes dt_table_header + all dt_table_entry。
// and all dtb/dtbo。
uint32_t header_size; // sizeof(dt_table_header)。
uint32_t dt_entry_size; // sizeof(dt_table_entry)。
uint32_t dt_entry_count; // number of dt_table_entry。
uint32_t dt_entries_offset; // offset to the first dt_table_entry。
⑦ 1.嵌入式開發板哪個好
嵌入式是現在發展最快的IT技術之一了,很多人都選擇了嵌入式這一行業,對於嵌入式來說,他掙得多,前景也很不錯,學習嵌入式,開發板是最離不開的了,很多初入嵌入式行業的人對於嵌入式開發板,不知道,應該怎麼選。
其實嵌入式開發板的選擇也不用過於糾結,對於開發板來說,你應該首先要了解嵌入式linux開發板,嵌入式開發板(Embedded development board)就是半導體行業分工合作的載體之一,它為開發產品的廠商提供基本的底層硬體、系統和驅動等資源,使得用戶不需要再投入人力和時間來完成這些底層的工作。
對於嵌入式linux開發板來說,就和軟體外包是很類似的,就像嵌入式產品的硬體、引導代碼、驅動程序、文件系統、協議層、基本應用軟體這些方面,都是電子產品的公共和通用部分,並不是產品能夠形成差異化的關鍵技術,在這個講求分工合作的時代,如果是這部分的工作量比較大,或者是廠商沒有相關的開發人員的時候,就能夠選擇由第三方完成這些軟體開發的工作,加快產品研發的進程,實現產品的迅速上市,搶占市場先機。
那麼了解了嵌入式linux開發板後,那就是如何選擇的問題了,選擇linux開發板其實簡單的說就是有5個方法,根據這些方式選擇,那再好不過了。
第一,就是要看形式了,看看現在什麼用的最多了,很多地方都在用,如果我們選擇現在都不用的,那不就白學了,所以把握趨勢很重要。
第二,選擇開發板 要注意硬體資源(包括:CPU、ROM、RAM、各種介面)其中NanD Flash、Nor Flash和SDRAM的大小一定要滿足自已開發的要求。我們要做到花最少的錢學習最多的東西,這才是我們要實現的目標。或者我們看一下可擴展的介面是否充足。
第三,軟體資源對一個初學者來說也是很重要的,因為不同的開發板提供的軟體資源差別很大。一般必須包括:嵌入式開發操作系統以及相應的驅動(最好有源代碼)、開發工具、調試工具、學慣用源代碼、底板原理圖、有相應的技術支持等等。現在的開發板一般的都可以提供豐富的代碼,資料從網上一搜也是一大堆,原理圖什麼的也都提供。
第四,我們為什麼會用到嵌入式linux開發板,不就是技術支持,初學者在學習嵌入式的時候,可能 一個簡單的燒寫系統的過程可能都要弄好幾天(有過這個經歷的人一定有同感),所以更別說做開發了。其實初學者遇到 的問題在有一些基礎的人看來可能是非常容易的一件事情,因為不太清楚其中的原理,所以不知道錯在什麼地方了,所以要注意這個點。
第五,就是價格問題了,現在大部分使用開發板的用戶是學生,學生沒有多少錢的,買一塊開發板好幾百,半個月的生活費呢,不過這個投入我認為是值得的,這一次的投入可能會改變我們以後的一生的職業,我們學到的是以後工作中用到的實實在在的技術,現在做技術的很值錢的,我們可以上網上搜一下,現在的嵌入式工程師的薪水怎麼樣,就是讓人羨慕嫉妒恨的。所以我們不應該只看眼前的利益,把眼光放長遠一些。
說了這么多都是如何來選擇嵌入式linux開發板,還沒給你們推薦幾個,下面重點來了,對於一些初學者來說,想學嵌入式linux的,如果手頭寬裕,cortex-A8,cortex-A9的想買什麼自己去挑,文檔資料源碼齊全就行,如果不寬裕的,買個mini2440開發板就行了,買ARM9的不用太糾結,資料多就行了,還有就是訊為的4412板子也是不錯的,當然不止這些,還有TI AM335X,NXP IMX6Q和Samsung 4412。這些都是很適合初學的人來用的。
看了這么多,對linux嵌入式開發板有很大了解了吧,抓緊時間去選吧。