原创 內核數據結構--哈希鏈表

Linux內核中,除了有通用了雙向鏈表list,還有通用的哈希鏈表hlist。後者定義與前者有些不同。因爲通常一個哈希表的表頭要佔用很大空間,而如果每個表頭都用一個雙向鏈表來做的話,就顯得太浪費了。只用一個指針可以實現相同的功能,並且可以

原创 U-boot移植(一)--基本概念

Bootloader基本概念:Bootloader是系統上電後,需要運行的第一段程序。主要完成硬件的初始化、準備軟件環境,調用系統內核。Bootloader具有很強的硬件依賴性,根據不同的CPU和具體的硬件平臺,需要做相對應的配置,移植是

原创 MCR/MRC學習

MCR指令將ARM處理器的寄存器中的數據傳送到協處理器的寄存器中。如果協處理器不能成功地執行該操作,將產生未定義的指令異常中斷。 指令的語法格式: MCR    {<cond>,}    p15,  <opcode_1>, <Rd>,

原创 MTD原始設備與FLASH硬件驅動的對話-續

轉自:luofuchong http://www.cnitblog.com/luofuchong/archive/2007/09/04/32939.html 上一個貼由下到上的介紹了FLASH硬件驅動是如何與MTD原始設備建立聯繫的,現

原创 常見字符串哈希算法實現

常用字符串哈希函數有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。 具體C語言實現: // SDBMHash unsigned int SDB

原创 飛思卡爾處理器K60學習筆記(一)---------M4內核概要

本人前段時間簡單學習了一款飛思卡爾的基於Cortex-M4內核的芯片-----MK60DN512ZVLL10。由於實驗進度和時間的限制,沒有對這款芯片進行深入學習,就嘗試和體驗了一些簡單的外設,這裏做一下簡單的整理。這是第一篇,所有文字資

原创 飛思卡爾處理器K60學習筆記(二)---------Cortex-M內核比較

本文主要分析Cortex-M系列處理器的異同點,在上一篇的基礎上增加對Cortex-M4的認識和了解。所謂無圖無真相,直接上圖說話。 圖1:CORTEX-M0/M1------>  CORTEX-M3 --------->CORTEX-M

原创 LDR僞指令和LDR指令學習

全文摘自:http://www.linuxso.com/linuxrumen/16306.html ARM是RISC結構,數據從內存到CPU之間的移動只能通過L/S指令來完成,也就是ldr/str指令。比如想把數據從內存中某處讀取到寄存器

原创 飛思卡爾處理器K60學習筆記(三)---------DSP擴展的使用(CMSIS庫的應用)

很意外,由於系統原因,Codewarrior103.的軟件被卸載了,估計將來很長的時間內都不會在用Codewarrior做開發。所以也就不再安裝它了,具體內容也就只能轉載別人的,不做詳細使用指導了。 但本章節的內容,個人認爲還是很重要的,

原创 U-Boot移植(二)——U-Boot編譯過程分析(2)

繼續 U-Boot編譯過程分析(1) ,上面已經看了頂層Makefile文件下的命令,現在看mkconfig文件的作用: 在文件一開始的註釋中寫了: # Script to create header files and links t

原创 立即數方式(ARM)——徹底解析

有問題找狗找度娘------站在巨人的肩膀上,深深體會到了。全文轉載自:找到原作者,但是作者所有博文裏好像沒有這篇文章,也就不指出鏈接了。 爲什麼會有這個疑問呢,還是在看U-BOOT第一階段啓動代碼裏發現的: mrc p1

原创 linux-3.12.6 移植yaffs2文件系統記錄

這裏主要是由於內核中一些接口的改變造成的。 1、問題:fs/yaffs2/yaffs_vfs.c:1786:2: error: unknown field 'readdir' specified ininitializer.      

原创 linux系統移植時出現問題記錄

1、啓動時提示tmp目錄掛載不成功 mount: mounting tmpfs on /tmp failed: Invalid argumentmount: mounting tmpfs on /dev failed: Invalid

原创 關於U-BOOT中.balignl 16,0xdeadbeef的理解

記錄下:u-boot很久前就看了,也做了移植。這次重新看到U-BOOT的代碼,是由於昨晚上頭上一個裸機的小應用,基礎裸機程序的開發要告一段落了,正式去學習linux的驅動。爲此想把自己寫的或者網上抄的代碼整理下,做成一個比較合理的項目工程

原创 linux環境下製作windows/linux系統啓動盤(個人的嘗試過程)

這兩天整理了一個盤的資料,騰出30G左右的空間,給自己裝了個linux,整了個雙系統。原因不必多說,學習lilnux驅動從習慣開始,然後最大程度上熟練VIM的使用(正在各種度娘)。然後在安裝階段遇到了如題所述的需求。 起因:由於是硬盤安裝