有關(guān)ARM9:Machine ID問題總結(jié)
要選擇上S3C2410這個選項。說是如果不選擇這個,編譯會出錯、或者不通過。可是大家有沒有考慮這是為什么?我要做的是S3C2440的我為什么要選擇2410的啊~帶著這個疑問。我將其根源找到~~下面帶大家來瞧瞧這個東西。
本文引用地址:http://2s4d.com/article/201611/317168.htm在啟動代碼我用的是uboot,在進行傳參數(shù)給內(nèi)核的時候,會把cpu的ID 傳遞給內(nèi)核。但是在uboot中這個ID 是由uboot編譯的時候自動生成的。我覺得這個ID還是可以更改的,目前不準備繼續(xù)研究這個問題。這里假設(shè)是固定生成的!
S3C2410的ID是0xc1 s3c2440的ID是0x7cf(這里我要說明一下,我在啟動內(nèi)核的時候上面顯示的是這個,有的是0x16A)
這樣需要在內(nèi)核文件的arch/arm/kernel/head.S文件中做一個修改:
如果是S3C2410 那么需要添加的是
mov r1,#0xc1
如果要是S3C2440的話,你要是添加mov r1,0x7cf那么編譯會報錯。
下面需要讓你填寫的要多一條語句,由于mov指令只能傳遞char型的也就是8位二進制數(shù)
所以這里稍有不同:
mov r1,0xcf
orr r1, r1,#0x700
這樣既可,這樣啟動的時候就不會停留在:
Uncompressing Linux................................................................................................................................... done, booting the kernel.
這樣你所添加的程序驅(qū)動都可以添加到/arch/arm/mach-s3c2440/mach-smdk2440.c這里了。之前我選S3C2410的時候我還需要向/arch/arm/mach-s3c2410/mach-smdk2410.c這里進行添加。麻煩的要命。
這樣就可以了~~~~
評論