Mini2440或S3C2440 ARM9板具有ARM处理器,当从NOR闪存启动时,它可以直接从NOR闪存运行,这会加载一个名为“ super vivi”的小型启动加载程序,并提供“下载并运行”选项。 / p>
我试图编译一个Flash LED C程序和相关的汇编代码以加载C main函数。
编译后,我创建了一个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位置?
抱歉,有太多问题,我想它们是相关的。