2410上NAND的初始化及驅動流程

2021-05-21 23:13:09 字數 940 閱讀 3351

2410上nand的初始化及驅動流程

一 nand裝置及資源的定義和註冊

我們通過machine_start定義了smdk2410的machine_desc物件,這個物件裡面有個init_machine的函式指標, 這裡指向smdk_machine_init(), 我們的nand裝置就是在這個函式裡註冊到系統的.

void __init smdk_machine_init(void)

s3c_device_nand.dev.platform_data = &smdk_nand_info;

platform_add_device(smdk_devs, array_size(smdk_devs));  //這裡就把裝置註冊到系統裡去了

static struct platform_device __initdata *smdk_devs =

&s3c_device_nand,    //這樣在上面的函式裡我們的nand裝置就註冊好了.

其他裝置我們也可以在這裡註冊進系統.

struct platform_device s3c_device_nand =

.name = 「s3c2410-nand」,  /*名字很重要*/

.id = -1,

. num_resources = array_size(s3c_nand_resource),

.resource = s3c_nand_resource,  //這個是nand占用的資源.

static struct s3c2410_platform_nand smdk_nand_info = else else {

chip->ecc.mode      = nand_ecc_soft;

nand驅動剩下的就是實現上面這個函式裡初始化的各個函式指標了.而這些函式就是實實在在的對nand硬體的操作了, 大家可以對照著2410的nand部分的datasheet來看這些**

關於初始化及初始化順序

首先,類的成員變數會被自動初始化,並且會在構造器被呼叫前發生,如下 public class testinitialization public static void main string args 如下 主類 public class staticinitialization 呼叫main之前...

系統初始化 上電

讀核心源 是一件很有意思的事。它像一條線,把作業系統,編譯原理,組合語言,計算機組成原理,c 語言,資料結構與演算法,計算機系統結構等等計算機的基礎課程串起來。而分析 linux 的啟動很重要,因為牽涉到硬體的初始化和核心各模組初始化環境的搭建,所以我們就針對 linux arch x86 下的 對...

初始化 關於tensorflow的初始化

在寫mnist手寫體識別任務 已放github 時遇到的 問題 我們都知道在session run的時候需要初始化。但是初始化在什麼位置是至關重要的。來看下這段 sess tf.session sess.run tf.global variables initializer mnist model ...