TI中文支持网
TI专业的中文技术问题搜集分享网站

cmd及存储

关于28335的存储,有几个问题想咨询下:

1、什么是大寄存器模式?

2、存储区域中,高64K和低64K有什么区别?高64K的SARAM L0~L3做什么用?

3、代码只能在SARAM L0~L3运行吗?L4~L7不可以吗?

4、关于.bss(为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中),

这里的程序上电具体什么时候?是跳转到_c_int00之后,执行main之前吗?

5、.ebss和.bss(类似还有.econst和.const)有什么区别?如果说.bss存放低64K,.ebss可以任何位置,那么直接使用.ebss不是更好?

问题有点多,谢谢!

Eric Ma:

我的回答如下:

1. 没听过,你是在哪里看到的。

2. 我理解的应该只是汇编代码里面寻址指令的区别,用C语言的话,我认为没什么区别。L0~L3只是双地址映射而已,选择一个地址用即可。至于为何要搞成双映射,有可能是方便兼容以前老的芯片。

3. 代码可以放在L4~L7. 不过一般代码是放在flash,如果你有些函数想运行在RAM,需要复制一下。

4. code_start.asm 里面有个跳转指令,跳转到_c_int00,在这个函数里面就会执行这个copy工作,然后会再跳转到main.

5. 你说的对,所以最新的CMD都是用ebss.

Eric

关于28335的存储,有几个问题想咨询下:

1、什么是大寄存器模式?

2、存储区域中,高64K和低64K有什么区别?高64K的SARAM L0~L3做什么用?

3、代码只能在SARAM L0~L3运行吗?L4~L7不可以吗?

4、关于.bss(为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中),

这里的程序上电具体什么时候?是跳转到_c_int00之后,执行main之前吗?

5、.ebss和.bss(类似还有.econst和.const)有什么区别?如果说.bss存放低64K,.ebss可以任何位置,那么直接使用.ebss不是更好?

问题有点多,谢谢!

zdc:

回复 Eric Ma:

第一个问题是在

http://bbs.ednchina.com/BLOG_ARTICLE_3031541.HTM

里面关于.ebss介绍的时候写的。

另外追加一个问题:

现在调试是高压的,所以JTAG就没有方法使用了。目前是自己写了一个Bootloader,固化在flash一个区域,用can通信,通过Bootloader将应用程序下载到flash中,然后运行。

但是在调试期间,这里会存在反复的擦除flash。自己有个想法,就是通过Bootloader,将应用程序下载到外部ram,发现运行不了。

对于不能运行,我的理解是,虽然在Bootloader中配置了外部ram,在应用程序下载完成之后,PC指针也能够跳转到外部ram的指定位置,但是在运行应用程序的时候,跳转到_c_int00之后,main之前,又将系统初始化,而系统配置的是从flash启动,所以无法在外部ram中运行了。

不知道我这样的理解对不?谢谢!

关于28335的存储,有几个问题想咨询下:

1、什么是大寄存器模式?

2、存储区域中,高64K和低64K有什么区别?高64K的SARAM L0~L3做什么用?

3、代码只能在SARAM L0~L3运行吗?L4~L7不可以吗?

4、关于.bss(为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中),

这里的程序上电具体什么时候?是跳转到_c_int00之后,执行main之前吗?

5、.ebss和.bss(类似还有.econst和.const)有什么区别?如果说.bss存放低64K,.ebss可以任何位置,那么直接使用.ebss不是更好?

问题有点多,谢谢!

Eric Ma:

回复 zdc:

首先,为什么调试高压,JTAG就用不了?我经常用JTAG口调试高压板。不要炸机就好了。要是怕炸坏电脑,在JTAG口那儿加个隔离,很多这种工具的啊。

其次, 你要写bootloader, 是用来升级代码还是用来烧写裸片?建议可以借鉴一下TI最新发布的通过串口烧写或升级的例程,自己消化一下。

C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\f2803x_flash_kernel

Eric

关于28335的存储,有几个问题想咨询下:

1、什么是大寄存器模式?

2、存储区域中,高64K和低64K有什么区别?高64K的SARAM L0~L3做什么用?

3、代码只能在SARAM L0~L3运行吗?L4~L7不可以吗?

4、关于.bss(为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中),

这里的程序上电具体什么时候?是跳转到_c_int00之后,执行main之前吗?

5、.ebss和.bss(类似还有.econst和.const)有什么区别?如果说.bss存放低64K,.ebss可以任何位置,那么直接使用.ebss不是更好?

问题有点多,谢谢!

zdc:

回复 Eric Ma:

谢谢!

因为高压调试,和结构设计有关,没有办法使用JTAG。

赞(0)
未经允许不得转载:TI中文支持网 » cmd及存储
分享到: 更多 (0)