看板 C_and_CPP 關於我們 聯絡資訊
想請教一下BootLoader的一開始啟動的機制, 就是我現在在看 U-Boot的啟動方式, 就是他是燒在Nandflash內, 開機後會先啟動 第一段 (start.S) 會將BootLoader載入到 Ram內的預設位置.. 並且reloacate然後就開始在RAM的位置段執行了.. 第二段開始就是載入kernel, 與u-boot的一些cmd互動介面 都在第二段裡面實做. 我上面講的恐怕有些模糊, 但這只是我目前的理解而已 .. 我知道目前有nor flash / nandflash可存放bootloader / kernel / fs等 但比較好奇時, 一開機的第一段code (start.S)會在哪邊執行? 我現在看感覺好像cpu一開機就知道去哪邊搬這段code並載入ram讓他執行.. 可是cpu為啥知道要去哪邊搬這段? 這位置是固定的嗎, 還是可以設定的? 要怎樣設定呢? 如果是在nor flash, 是可透過XIP的技術直接執行這段嗎?? 還是一樣要先載入到RAM, 才能做接下來的事情? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.72.220.129
suhorng:可以說一下是什麼平台嗎? 07/29 16:48
pilipalabon:arm.. 07/29 17:12
pilipalabon:arm11 wm8650 07/29 17:12
saxontai:CPU datasheet 應該會有相關資訊。 07/29 22:58
chiwa:應該反過來,你會先知道CPU會去某個位址讀,就是燒在那裏 07/29 23:09
pilipalabon:所以每種cpu的讀取位址都是固定的?我們可以改變嘛? 07/30 09:21
suhorng:要看CPU的詳細資料 如果以x86系列(PC常見)來說 不能改變 07/30 10:12
suhorng:所以可能的話去查arm11 wm8650的資料比較有幫助 07/30 10:12
madoka82:你去抓幾顆 MPU 的 datasheet 來看看就知道了...有些東西 07/30 22:38
madoka82:是訂死的 你想正常 boot 就乖乖把該填的東西 填到特定位 07/30 22:39
madoka82:址去 沒什麼好商量的餘地... 可以找 NXP LPC1114,LPC1342 07/30 22:39
madoka82:或是 2xxx 系列的 Datasheet 來看看... 07/30 22:40
madoka82:每顆處理器放的地方不同...這種東西屬於你依據你手上拿到 07/30 22:40
madoka82:哪顆 IC 就去看那顆 IC 關於 Boot Sequence 的範疇... 07/30 22:41