This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
.test 程序空间太大,无法放在内部RAM中运行,flash 下载很慢而且烧写次数有限,希望把程序放在外部RAM中运行。查了很多资料也没有发现应该怎么做。
Zhide Zhang
我认为首先要配置芯片GPIO84~87引脚, 使其的引导模式为Jump to XINTF x16,这种模式下芯片会跑到jump to 0x10 0000开始执行代码,你需要将外部RAM的空间放在这个区间。
其次,修改CMD文件,将.text段放到XINTF zone6的区间,将BEGIN设为0x10 0000;
最后,建议程序中关于XINTF zone6的初始化,需要copy到RAM中运行。
然后就是Reset CPU, run main。
引导模式参考TMS320x2833x, 2823x Boot ROM userguide
Eric
你好。
你可以通过28335引脚的总线外扩一个SRAM。
然后,根据Datasheet上的Memery Map所示,改写相应的CMD文件配置,生成的.out直接下载就可以了。
你好,按照你说的方法已经编译成功。但是现在又有了新的问题:程序无法下载进去。下载时提示:
C28xx: File Loader: Data verification failed at address 0x00100000 Please verify target memory and memory map.
C28xx: GEL: File: F:\DSP\CCS_WORKSPACE\28335\UCGUI_2\Debug\UCGUI_398.out: a data verification error occurred, file load failed.
你好。
你的SRAM是扩展到Zone6吗?
能否发一下扩展SRAM部分的原理图看一下。
在下载程序前,建议先用CCS连上芯片,然后在Memory Browser窗口看一下扩展的SRAM能否看到。例如,你输入地址0x00100000,看窗口中是否可以看到数据。
您好,我想问下,用示波器观察发送程序时,是不是将示波器的探头和地线分别接CAN_H和CAN_L,观察到有波形,峰峰值显示是2.5V左右,
1.为什么是2.5V呢(隐性电平,逻辑1)?此时是隐性电平吗?因为没有处于发送can网络中,空闲状态是隐性电平。
2.为什么不是3.5v和1.5v(显性电平,逻辑0)呢?
还有就是我对隐性电平和显性电平不是很理解,书上只讲了最基本的特点,没有深入讲解。
Ming,
1. CANH和CANL都为2.5V代表隐性电平,空闲时为隐性电平,有数据发送时显性(H3.5V,L1.5V)覆盖隐性;
2. CAN的电气标准规定,具体建议查看CAN2.0协议。
非常感谢您的回复,
我想问您:
Ming,
这样用示波器直接测试CANH和CANL的电压差的方法是可以的,无信号时CANH和CANL都是2.5V(5V的CAN芯片),有信号时有2V的差值(3.5V-1.5V);
参考下TI的例程。谢谢!
谢谢您的回复,
这个程序,是自测模式下的,我也进行过修改,但就是不成功,我把附件加上,您看我的程序对不对?!谢谢。
还想问您,怎么用示波器测试单dsp的接收程序呢?!我想测试接收程序:但是一点击run,只显示一瞬间的波形,然后波形就回到0V了(波形图如附件所示),不知道这样的测试接收程序的方法对不对?为什么只显示一瞬间的波形呢?!
还请您建议一个正确的测试单一can接收程序的方法!Thanks.
另外我的QQ,1083176055,如果方便的话,我们qq聊吧。谢谢,期待您的回复,非常感谢您。。
非常感谢您的回复,我检查了一下,接收邮箱方向没错呀,
//设置邮箱16为接收邮箱
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD16 =1;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
//全局接受屏蔽,标示符位必须一一匹配
ECanaRegs.CANGAM.all=0;
谢谢,您能告诉我一下您qq吗?或者晚上您加我一下,谢谢。
RX:
ECanaMboxes.MBOX16.MID.all = 0x80C80000;
TX:
ECanaMboxes.MBOX0.MID.all = 0xA0C80000;
检查下,谢谢!
谢谢您的回复,您的意思是,要把ID配置为相同的号码吧?
我感觉这个是小问题,不知道其他还有没有问题了,Thanks.
期待您的回复,祝您工作顺利!天天好心情,快乐每一天!1083176055@qq.com邮箱
非常感谢您的回复,我的程序成功了。谢谢。
我通过观察相关的寄存器的窗口,发现了一个很奇怪的问题,就是发现:寄存器里的值与所编写的程序里的赋值正好相反!
不知道为什么,请您帮我解答一下,万分感谢,期待您的回复!1083176055@qq.com
相关程序语句:
EALLOW;
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
//工作在正常模式
ECanaShadow.CANMC.bit.STM = 0;
//工作在eCAN模式
ECanaShadow.CANMC.bit.SCM = 1;
//存储方向
ECanaShadow.CANMC.bit.DBO = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
EDIS;
非常感谢您的回复,我的程序成功了。谢谢。
我通过观察相关的寄存器的窗口,发现了一个很奇怪的问题,就是发现:寄存器里的值与所编写的程序里的赋值正好相反!
不知道为什么,请您帮我解答一下,万分感谢,期待您的回复!1083176055@qq.com
相关程序语句:
EALLOW;
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
//工作在正常模式
ECanaShadow.CANMC.bit.STM = 0;
//工作在eCAN模式
ECanaShadow.CANMC.bit.SCM = 1;
//存储方向
ECanaShadow.CANMC.bit.DBO = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
EDIS;
您好,看到您的这段话,我试着操作了一遍,但是在程序运行的过程中出现了停留在:“3FF9FA 6F00 SB 0,UNC”的现象,不知道您是否解答一下?
十分感谢。
下面是部分修改后的cmd文件:
page 0:
BEGIN : origin = 0x200000, length = 0x000002
ZONE7A : origin = 0x200003, length = 0x00FC00
section:
.text : > ZONE7A, PAGE = 0