原创 6. Linux設備樹前置基礎

一. 知識點: 我們在uboot啓動的時候,會下載zImage內核,.dtb文件,這裏面的 .dtb文件就是設備樹文件 1. 什麼是設備樹: 將這個詞分開就是“設備”和“樹”,描述設備樹的文件叫做 DTS(Device Tree

原创 Linux驅動相關的基礎知識

1. 什麼是Linux驅動? 在各種書上都有對於驅動程序的介紹,大致的意思都爲 處於內核與硬件之間的,由操作系統管理的,控制硬件設備的程序;是硬件和內核之間的橋樑 我們這裏所說的驅動都是軟件驅動的概念,是用來驅動硬件,或是提供

原创 三維 揹包問題:DP求解

題目: 小v是公司的運維工程師,現有一個有關應用程序部署的任務如下: 1、一臺服務器的磁盤空間、內存是固定的,現在有N個應用程序要部署; 2、每個應用程序所需要的磁盤、內存不同,每個應用程序允許訪問的用戶數也不同,且同一個應用程序

原创 解決:開發板uboot無法從ubuntu下載,網絡異常,無法啓動

uboot下載系統失敗,卡在下載,無法下載 1. 可能是ip地址問題 首先排除ip地址重複的問題(保證ubuntu和開發板在一個網段內的ip地址唯一性) 方法: 將開發板關掉,在ubuntu下ping開發板的ip地址;若ping

原创 扁平化多級雙向鏈表(利用DFS建立新的鏈表)

題目: 多級雙向鏈表中,除了指向下一個節點和前一個節點指針之外,它還有一個子鏈表指針,可能指向單獨的雙向鏈表。 這些子列表也可能會有一個或多個自己的子項,依此類推,生成多級數據結構,如下面的示例所示。 給你位於列表第一級的頭節點

原创 3.第一個字符設備驅動(虛擬設備)框架搭建、驅動模塊加載、驅動函數實現、應用程序編寫;

一、字符設備驅動框架 具體的對應關係見上一篇文章,這裏只對需要實現的部分進行說明 2.字符設備驅動開發基礎(一個虛擬的字符設備驅動開發流程) 字符設備驅動編寫,主要工作就是驅動對應的open close read write函數的

原创 兩數相加(鏈表綜合練習:在一個while中分治處理各個鏈表;)

題目: 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除了

原创 設計鏈表(雙鏈表)

題目: 設計鏈表的實現。您可以選擇使用單鏈表或雙鏈表。單鏈表中的節點應該具有兩個屬性:val 和 next。val 是當前節點的值,next 是指向下一個節點的指針/引用。如果要使用雙向鏈表,則還需要一個屬性 prev 以指示鏈表

原创 1. linux驅動開發與裸機開發的區別

裸機開發 底層,跟寄存器打交道,有些MCU提供了庫 linux驅動開發 linux下驅動開發直接操作寄存器,不現實 根據Linux下的各種驅動框架,進行開發;一定要滿足框架,也就是linux下各種驅動框架的掌握; 在linu

原创 2.字符設備驅動開發基礎(一個虛擬的字符設備驅動開發流程)

應用程序與驅動的交互原理 驅動程序:用來與硬件打交道,獲取硬件的數據; 應用程序:通過系統調用與驅動程序打交道,藉助驅動程序完成對硬件的操作; 在單片機中,驅動程序和應用程序的區分並不明顯,因爲沒有操作系統的存在,因此在單片中將驅

原创 《像哲學家一樣生活》 讀書筆記

第四章:消極想象,能發生的最壞結果是什麼? 論點1 / 心裏技巧1: 預想可能發生在我們身上發生的壞事情 理由: 對於一些事情,能夠阻止發生,比如防盜,預防疾病等; 如果我們考慮過這些事情,就能夠減輕他們的影響; 人類的不幸福很

原创 環形鏈表I II,判斷鏈表是否有環(代碼實現)

理論推導見 之前的:快慢指針判斷鏈表是否有環,找到環的入口,公式推導; 題目1: 給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 po

原创 判斷迴文鏈表(方1:用vector存儲每個結點的指針 方2:翻轉鏈表前半段)

題目: 請判斷一個鏈表是否爲迴文鏈表。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true 思路: 方一: 遍歷整個鏈表一次,利用vector存儲每個鏈表結點元

原创 移除鏈表中的某個元素(簡單的哨兵作爲僞頭結點的思想)

題目: 刪除鏈表中等於給定值 val 的所有節點。 示例: 輸入: 1->2->6->3->4->5->6, val = 6 輸出: 1->2->3->4->5 思路: 方法一:設置一個pre結點,指向當前結點的前一個結點,

原创 刪除鏈表的倒數第N個節點(方1:利用vector存儲位置 方2:利用雙指針間隔N)

題目: 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5. 說明: 給定的