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

DSP28335 程序的.ebss段下载进外扩的RAM里面了,运行时出现错误

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

peng xu:

回复 Forrest:

谢谢您给的建议,我的板子用ti公司给的例程测试外部的RAM没有问题,而且当代码量不大在片内RAM运行时也是没有问题的,现在的程序的.ebss段100多k,在线仿真的话内部RAM不够用,因此我给写到外面了,您给的建议我会试试的,祝好!

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

peng xu:

回复 Forrest:

谢谢您给的建议,我的板子用ti公司给的例程测试外部的RAM没有问题,而且当代码量不大在片内RAM运行时也是没有问题的,现在的程序的.ebss段100多k,在线仿真的话内部RAM不够用,因此我给写到外面了,您给的建议我会试试的,祝好!

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

peng xu:

回复 Jones Chen:

谢谢您,我先试一下吧,

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

Jones Chen:

回复 peng xu:

记得反馈一下您的测试结果,给大家分享一下,谢谢!

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

peng xu:

回复 Jones Chen:

我测试了一下,根据您给的建议在Code Start Branch中增加如下代码

WD_DISABLE .set 1;set to 1 to disable WD, else set to 0

   .ref _c_int00

   .global code_start

.ref _InitSysCtrl  ;开外设

   .ref _init_zone7  ;初始化XINTF总线为16BIT(用户的系统硬件设计相关)

然后变异通过,并下载进DSP里面,结过还是在运行完我的初始化函数后程序就运行不正确了,具体来说是运行完

void InitSysCtrl(void)

{

  // Disable the watchdog

  DisableDog();

  // Initialize the PLL control: PLLCR and DIVSEL

  // DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2833x_Examples.h

  InitPll(DSP28_PLLCR,DSP28_DIVSEL);

  init_zone7();

  // Initialize the peripheral clocks

  InitPeripheralClocks();

}这个函数,就是ti自带的,只不过我在里面加了一个初始化init_zone7();

运行完这个函数后有时程序会跑去再接着运行global code_start

初始化函数的下一行不会被执行到,还有就是有的时候就是在main函数的init()前面设置一个断点,并没有while循环,但是程序运行时会一直进入这个断点处停止,期待您的回答

另,有个老师说也许是我的程序在内部的RAM和外部的RAM中,由于速度不匹配造成的这种结果,

由于程序量过大,我啊程序里面的.ebss段下载进外扩的RAM里面了,其他的还保留在内部的RAM里面,在线仿真时可以进入主函数,在调用主函数里面的初始化的时候程序有时在我所用的库函数里面的boot部分循环,有时在rom那块的程序循环,有时就直接跑飞了,请各位高手给我点提示,非常感谢

peng xu:

回复 Jones Chen:

您好,Mr Chen,

我按照您的方法在Code Start Brach.asm里面加上你给我写的那段程序,因为我的初始化函数名称和您的不一样就修改了下函数名,但是编译的时候提示如下错误

"DSP2833x_CodeStartBranch.asm", ERROR!   at EOF: [E0300] The following symbols

                                                        are undefined:

1 Assembly Error, No Assembly Warnings

 init

 init_zone7

Errors in Source – Assembler Aborted

是什么原因啊,我的函数都是定义的全局的,期待您的回答

赞(0)
未经允许不得转载:TI中文支持网 » DSP28335 程序的.ebss段下载进外扩的RAM里面了,运行时出现错误
分享到: 更多 (0)