原创 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