繁体   English   中英

引导程序或uboot如何加载应用程序以运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM