[英]How bootloader or uboot load application to run
Mini2440或S3C2440 ARM9板載ARM處理器,當從NOR閃存啟動時,可以直接從NOR閃存運行,該閃存加載一個名為“ super vivi”的小型啟動加載程序,並提供“下載並運行”選項。
我嘗試編譯一個閃光燈LED C程序和相關的匯編代碼以加載C主要功能。
編譯后,我創建了一個bin文件,將其加載到supervivi。
鏈接腳本為:
ENTRY(_start)
SECTIONS
{
. = 0x30000000;
/* code and constants */
.text :{
*(.text)
}
. = ALIGN(32);
.data :{
*(.data)
}
. = ALIGN(32);
.bss :{
*(.bss)
}
}
我的問題是如何分配內存,supervivi(bootloader)從0x0000000開始,我的LED閃存程序從0x30000000開始,這是正確的嗎?
supervivi將具有一些數據或堆棧,它們位於何處?
如果我的鏈接腳本從“。= 0x30000000;”更改為 到“。= 0x0;”,會發生什么?
我的應用程序能否讀取NAND閃存並將其復制到RAM,例如從內核存儲位置0x60000讀取,並從RAM運行內核? 如果可以,應該在哪里使用RAM位置?
抱歉,有太多問題,我想它們是相關的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.