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