Time of Update: 2018-12-03
Time of Update: 2018-12-03
start_armboot函數在lib_arm/board.c中定義,是U-Boot第二階段代碼的入口。U-Boot啟動第二階段流程如下: U-Boot第二階段執行流程1)gd_t結構體U-Boot使用了一個結構體gd_t來儲存全域資料區的資料,這個結構體在include/asm-arm/global_data.h中定義如下:typedef struct global_data {bd_t *bd;unsigned long flags;unsigned long
Time of Update: 2018-12-03
Framebuffer是把記憶體中視頻資料輸出的裝置驅動程式,Linux的framebuffer是獨立的硬體抽象層,它可以把顯示裝置抽象為框架緩衝區,並把自己當作顯示記憶體的一個映像,開發人員可以通過這個映像映射到進程地址空間,直接進行讀寫操作。簡單的說它把硬體抽象化後,可使上層不再關心硬體是如何操作,只是完成映像的顯示功能,該驅動的裝置檔案一般是/dev/fb0、/dev/fb1,framebuffer最多支援32個裝置。說明了Framebuffer在Linux系統的位置,它高於一般的驅動程式
Time of Update: 2018-12-03
1.實模式定址 80x86中除8086/8088隻能在實模式下工作外,其他微處理器均可在實模式或保護模式下工作。 實模式下允許的最大定址空間為1M位元組。這是由於8086/8088的地址匯流排為20位,因此段基址必須4位對齊(末4位為0)。dos工作在實模式下。 記憶體定址方式為:段式定址,即物理地址=段地址*16 + 段內位移地址 可定址任意地址,所有指令都相當於工作在特權級。 2.保護模式定址
Time of Update: 2018-12-03
合理的利用零散時間不單是技巧的結合,而是一種生活習慣,平時就準備好,遇到空閑時間直接就用不用考慮直接就行動:1、隨身帶本書,定期更換2、身上帶著平板或Kindle,充好電,裝滿書和視頻,比如TED、公開課3、準備個Mp3,裝滿英語或有聲書4、隨身帶筆記本和筆,有空的時候,記些想法,列一些待辦事項清單5、準備個電話清單,都是要打電話的人。比如公司客戶、家人、朋友,空閑時打個電話交流下感情7、利用幾分鐘的時間,做個擴充運動,鍛煉下身體。8、觀察周圍的人,看看著裝、表情、姿態和口氣,如果你觀察時間長一
Time of Update: 2018-12-03
分頁單元的作用是從線性地址到物理地址轉換,為了效率起見,線性地址被分成以固定長度為單位的組,又被稱為頁,頁內連續的線性地址被映射到連續的物理地址中。而把線性地址映射到物理地址的資料結構叫做頁表(page
Time of Update: 2018-12-03
好了,前面的準備工作都做完了,我們就進入進程調度的主體程式——schedule()函數。函數schedule()實現發送器。它的任務是從運行隊列的鏈表rq中找到一個進程,並隨後將CPU分配給這個進程。schedule()可以由幾個核心控制路徑調用,可以採取直接調用或延遲調用(可延遲的)的方式。下面,我們就來詳細介紹。1
Time of Update: 2018-12-03
Time of Update: 2018-12-03
Jenkins是一個CI工具。它可以根據設定持續定期編譯,運行相應代碼;運行UT或整合測試;將運行結果發送至郵件,或展示成報告。。。這樣做的最終目的是:讓項目保持健康的狀態。如果任何checkin
Time of Update: 2018-12-03
真是太不關注Linux Kernel發展,今天一大早抽了時間把initrd和initramfs的概念區分了一下,終於有點眉目,不敢獨享。都知道Linux有個Ram Disk的概念,很早就有了,至少2.4的時候就有,再早我也不瞭解。那麼initrd,就如他的名字,initial ram disk,很好理解,就是為了root fs。initramfs無非也如他的名字,initial ram file
Time of Update: 2018-12-03
我在地鐵裡、公交車上、甚至路邊,隨時都可以看到有人盯著手機或者ipad螢幕,忘我的閱讀著電子書。現在的人節奏都已經被調的很快,就算是身體可以閑下來了,但節奏不停的告訴他:“hi~別閑著,要做點什麼!”,所以我們的片段時間就被填滿了其實我倒是建議既然都那麼累了,能休息的時候還是徹底休息為好~回到主題,不管怎麼樣,現在越來越多的人選擇閱讀電子書,在美國42%的人在電腦上閱讀,其中20%的人閱讀過電子書我自己也蠻喜歡閱讀電子書的,今天和大家分享一下我閱讀電子書的方法(流程):電子書全部放在快盤我的電子
Time of Update: 2018-12-03
Linux 傳統的處理序間通訊有很多,如各類管道、訊息佇列、記憶體共用、訊號量等等。但它們都無法介於核心態與使用者態使用,原因如表通訊方法無法介於核心態與使用者態的原因管道(不包括具名管道)局限於父子進程間的通訊。訊息佇列在硬、非強制中斷中無法無阻塞地接收資料。訊號量無法介於核心態和使用者態使用。記憶體共用需要訊號量同步輔助,而訊號量又無法使用。訊號又稱非強制中斷,只有訊號是非同步其餘都是同步訊號處理流程
Time of Update: 2018-12-03
轉自:tar 解壓縮命令tar-c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔檔案末尾追加檔案-u:更新原壓縮包中的檔案這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。-z:有gzip屬性的-j:有bz2屬性的-Z:有compress屬性的-v:顯示所有過程-O:將檔案解開到標準輸出下面的參數-f是必須的-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。# tar -cf
Time of Update: 2018-12-03
關於i++,++i效率的問題!!下一篇blog打算寫一下自訂類的自增效率問題。我事先在vc上運行過。其實必然是與編譯器有著千絲萬縷的聯絡,這裡我們只針對vc。答案是效率一樣,以下是我的反組譯碼結果:之後偶然的機會在北郵人論壇上找到了討論類似問題的一些回複,對方比我考慮的周到,所以這裡就轉載一篇人家的結論。對方可以說應該考慮的都考慮了!首先聲明,簡單的比較首碼自增運算子和尾碼自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。 首先考慮內建資料類型的情況: 如果自增運算運算式的結
Time of Update: 2018-12-03
如果你想用微軟的romimage工具產生image,那麼你一定要在你的exe檔案中定義下面這個全域變數:ROMHDR * volatile const pTOC = (ROMHDR
Time of Update: 2018-12-03
轉自:http://rongjih.blog.163.com/blog/static/3357446120107111449543/get ready: sudo apt-get install git-svn按如下步驟操作就可以將SVN倉庫完整的轉換為Git倉庫:1) 將遠程SVN倉庫搬到本地(這一步主要是為了提高轉換的速度,也可以忽略) 參考這篇文章:http://rongjih.blog.163.com/blog/static/335744612010620105546475/
Time of Update: 2018-12-03
Time of Update: 2018-12-03
原理: Nginx預設不支援CGI,但是支援FastCGI,所以可以用FastCGI替代CGI。準備條件: 1、安裝perl:略 2、 安裝FCGI-ProcManage simba@simba-laptop:~/tmp$ wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.19.tar.gz simba@simba-laptop:~/tmp$ tar -
Time of Update: 2018-12-03
u-boot 的stage1代碼通常放在start.S檔案中,他用組合語言寫成,其主要代碼部分如下:(1)定義入口。由於一個可執行檔Image必須有一個進入點,並且只能有一個全域入口,通常這個入口放在ROM(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器指令碼來完成。(2)設定異常向量(ExceptionVector)。(3)設定CPU 的速度、時鐘頻率及終端控制寄存器。(4)初始化記憶體控制器。(5)將ROM 中的程式複製到RAM
Time of Update: 2018-12-03
command + F:檔案內尋找文字command + L: 快速跳轉到某行代碼command + up/down:游標跳轉到檔案頭/尾command + left/right:游標跳轉到行首/行尾command + shift + F:工程內尋找文字command + shift + L: 跳轉到所選代碼command + control + up/down: 切換實現檔案與標頭檔command + control + left/right: 檔案向前/向後command + shift +