各位专家,关于启动一直有几个疑惑希望能帮忙解答一下
1.EMIF NOR启动后从0x70000000开始执行,那0x70000000这个地址位的代码是什么呢?是必须放_C_int00吗?如果是用汇编编写的代码,如何保证汇编代码的第一条指令恰好处于0x70000000这个位置上?
2.二级BOOT代码,我在论坛里找到了一个EMIF NOR启动的例子(program_write和GPIO_for_core0那个),关于GPIO_for_core0这个工程里有一段汇编代码,看的出是用来搬移应用代码到内存中的,这个代码是怎么保证汇编部分烧写到0x70000000的?是在工具中要刻意指定一下吗?
3.代码搬移,我理解是应该按段搬移,为什么例子中的代码只是单纯的把flash中的数搬到L2中,并没有解析段和地址,包括SRIO启动的例子也是一样,并没有按段搬移,这里我一直很疑惑,boot_table格式的文件不是应该按段搬移才可以吗?
以上三个问题,很关键,希望专家抽空解答一下,感激不尽!
HG:
1、这种启动模式就约定该地址。
2、汇编和配置文件一起做的事情。
3、代码搬移与L1 L2没有关系
baoyu yan:
回复 HG:
感谢你的回复 可能我表述的不清楚现在补充一下
第二个问题,可以可以简单提示一下,应该把汇编那一段代码bootload段指定到什么位置?是0x70000000还是0x00800000,指定到70000000我能理解,为什么论坛里下的例程指定到了00800000?
第三个问题,我是想问把代码从flash搬到内存里的时候,到底要不要按段搬?我看很多例子都是直接把flash里的内容从头到尾不加解析的copy到内存中 并没有按照段搬 这是为什么呢 以mcsdk里的srio启动例子为例
以上还是希望能指点迷津 非常感谢!