我在CCS v8上使用,之前使用28335复制部分程序到RAM都没有问题,我在往28035上移植,但是发现跑flash就出现了问题。总是跑死在delay的循环里。然后我用controlsuite里最新的版本试了下flash工程示例,切换编译器,删掉-cdebug_asm后编译通过,还是会出现跑死的现象,我用debug跟踪,就发现卡在delay里了。
这个delay应该是被搬到ram里了,不知道这是什么原因,一直就出不去。
Susan Yang:请问您是如何移植的?
您可以先看一下 e2echina.ti.com/…/112808
我在CCS v8上使用,之前使用28335复制部分程序到RAM都没有问题,我在往28035上移植,但是发现跑flash就出现了问题。总是跑死在delay的循环里。然后我用controlsuite里最新的版本试了下flash工程示例,切换编译器,删掉-cdebug_asm后编译通过,还是会出现跑死的现象,我用debug跟踪,就发现卡在delay里了。
这个delay应该是被搬到ram里了,不知道这是什么原因,一直就出不去。
Suke Wang:
回复 Susan Yang:
我只是开发了个PWM的控制和串口接收的控制,所以我只把相关的我写的程序挪来,变更了寄存器,其他全部从controlsuite里2803x那里复制,这里按理讲不该有什么问题的。我新建了个工程,我的程序在RAM中可以正常工作,但是把Flash cmd加进来,就出问题了。为了测试我是不是弄错了什么,所以我直接加载了controlsuite里的flash例程,也就出现了我上面表述的问题。这我就懵逼了。我自己打的板,boot 方面,GPIO34 和GPIO37上拉了10K接到了VDDIO上,我也发现不了硬件出了什么问题。
我在CCS v8上使用,之前使用28335复制部分程序到RAM都没有问题,我在往28035上移植,但是发现跑flash就出现了问题。总是跑死在delay的循环里。然后我用controlsuite里最新的版本试了下flash工程示例,切换编译器,删掉-cdebug_asm后编译通过,还是会出现跑死的现象,我用debug跟踪,就发现卡在delay里了。
这个delay应该是被搬到ram里了,不知道这是什么原因,一直就出不去。
mangui zhang:
回复 Suke Wang:
你先把delay函数替换为你自己写的比如for– 去延时看看
flash能正常擦除烧写不?
我在CCS v8上使用,之前使用28335复制部分程序到RAM都没有问题,我在往28035上移植,但是发现跑flash就出现了问题。总是跑死在delay的循环里。然后我用controlsuite里最新的版本试了下flash工程示例,切换编译器,删掉-cdebug_asm后编译通过,还是会出现跑死的现象,我用debug跟踪,就发现卡在delay里了。
这个delay应该是被搬到ram里了,不知道这是什么原因,一直就出不去。
Suke Wang:
回复 Susan Yang:
我用controlsuite 官方例程v130版本, flash_f28035 去跑,然后发现会卡死在delay中,具体如下:
在这里进入delay,
然后就运行跳转,
然后就直接跑到了下面:
运行到3ff8cd就挂在那了。
我估计是delay 定义位置是在ramfuncs,但是程序没有复制。按理来讲TI的例程应该有加载吧,不该出这样的问题。因为我的功能需要,我也挺需要把函数复制到RAM运行的。我是不是加载启动ASM出了问题。
加载的startbranch.asm代码如下:
我在CCS v8上使用,之前使用28335复制部分程序到RAM都没有问题,我在往28035上移植,但是发现跑flash就出现了问题。总是跑死在delay的循环里。然后我用controlsuite里最新的版本试了下flash工程示例,切换编译器,删掉-cdebug_asm后编译通过,还是会出现跑死的现象,我用debug跟踪,就发现卡在delay里了。
这个delay应该是被搬到ram里了,不知道这是什么原因,一直就出不去。
Suke Wang:
回复 mangui zhang:
这是一个方案,我昨天试过,但我昨天做了之后,就会进入异常中断,我今天分析了一下,发现我的晶振用的频率过高,所以我需要重新改分频系数,这样试过后,可以过了,不过我仍就好奇,原始例程是怎么回事,是不是加载asm加载错了文件,那么它原始定议的该是怎样的,还是TI的bug,在memcopy前就调用了需要在RAM中的函数。