请教一下DSP加载、运行可执行文件的过程
大家好,请教几个问题:1. .bss段.stack需要分配内存空间,这个内存分配是在什么时候进行的?是可执行文件已经包含了编译器生成的这段初始化的代码了吗?
2. 如果我想把程序放在外部flash上,而希望放在外部ram中执行,可以生成boot table,使用片上bootloader来搬代码,请问搬代码需要先配置外部flash和ram,这个怎样实现?
3. 使用2中的方式执行代码,CMD中的section的设置loader address和execute address应该是一样的都设为外部RAM吧?
感谢大家的热心解答! 第2个问题已经找到答案:DSP的片上bootloader会默认使用最大的time delay, 也可以在生成boot table的时候也可以配置EMIF寄存器.
第1个和第3个问题有人帮忙回答吗? 1.编译完成,链接的时候会链接CMD文件,如果没有CMD文件,链接的时候会报错。
生成.out文件时会生成一个.map文件,里面有各个函数,变量和段的相关信息。
但是out文件里有没有我也不清楚,应该也有吧。 感谢楼上帮忙回答,可能我没表达清楚,这个map的过程我清楚,我想问的是比如我定义一个全局变量int array = {0},那array指向的这块内存会被初始化为0,这个初始化的过程是在什么时候?初始化的代码从哪里来的?还有c函数执行之前需要初始化stack段,这个过程是在什么时候?代码从哪里来的?
我猜想是编译器生成的代码加到了.out文件里,执行完这段代码后才会跳转到main函数,请问有人知道具体情况吗? 是的,进main函数前编译器帮忙干了很多事
页:
[1]