原创 C程序運行過程

在C程序運行時,內存被劃分爲了三個區:1、代碼區;2、靜態數據區;3、動態數據區。 C程序經過編譯鏈接之後,在執行運行程序時,程序的一系列指令就被讀取到所鏈接的內存地址上,然後通過eip寄存器來指向要運行的下一條指令;而靜態數據區

原创 NAND驅動分析--(二)

在上一篇nand驅動分析中,大概描述了nand flash驅動加載時的初始化流程,接下來對其調用的一些函數進行進一步的闡述。 首先,上一篇說到調用了fsl_elbc_chip_init()函數,此函數還是在drivers\mtd\

原创 Linux系統spi驅動程序分析---(二)

上一章敘述了關於spi驅動的主控制器層的內容,接下來這一章將敘述spi驅動的從設備層。 我們首先從下圖中梳理一下spi驅動的初始化流程: 由上圖可知,在驅動初始化的最後一步就是通過調用spi從設備驅動層的spi_probe來完成的。 首

原创 linux系統調用

系統調用在用戶空間進程(應用程序)和硬件設備之間添加了一箇中間層,這樣做的好處在於將用戶空間進程和硬件設備進行隔離。linux系統有一套標準的系統調用接口,然後硬件驅動會去實現這一系列標準的系統調用接口,而用戶空間進程只需去調用這些標準系

原创 NAND驅動分析--(一)

因爲nand flash驅動是採用了MTD技術,所以首先對nand硬件驅動層進行分析(以ppc架構爲例進行分析,nand flash採用了Micron公司的512MB、2K頁大小、的flash芯片)。 ppc架構的cpu芯片並沒有集成專用

原创 NAND驅動分析--(三)

系統調用add_mtd_partitions(&priv->mtd, p1020_partition_info, 3)函數創建新分區的調用關係如下所示: ->add_mtd_partitions(&priv->mtd, p1020_par