<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 有關(guān)ARM9:Machine ID問題總結(jié)

          有關(guān)ARM9:Machine ID問題總結(jié)

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          最近在做一個Android for Linux內(nèi)核的移植,準(zhǔn)備其移植到S3C2440中。在網(wǎng)上多數(shù)遇到移植的都是S3C2410,就算是有S3C2440的,也都沒能把所有的東西詳盡說明一下,只是你看看我的移植,我看看你的移植。有的地方不對的。也沒有做深入的研究。比如說在內(nèi)核的配置上。很多網(wǎng)友們都提出來在配置內(nèi)核的時候要選上:

          要選擇上S3C2410這個選項。說是如果不選擇這個,編譯會出錯、或者不通過??墒谴蠹矣袥]有考慮這是為什么?我要做的是S3C2440的我為什么要選擇2410的啊~帶著這個疑問。我將其根源找到~~下面帶大家來瞧瞧這個東西。

          本文引用地址:http://www.ex-cimer.com/article/201611/317168.htm

          在啟動代碼我用的是uboot,在進行傳參數(shù)給內(nèi)核的時候,會把cpu的ID 傳遞給內(nèi)核。但是在uboot中這個ID 是由uboot編譯的時候自動生成的。我覺得這個ID還是可以更改的,目前不準(zhǔn)備繼續(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這里進行添加。麻煩的要命。

          這樣就可以了~~~~



          關(guān)鍵詞: ARM9MachineI

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();