
这样的问题确实挺让人头痛的,往往这种情况还不报错,非常让人郁闷。28335我没用过。如果你用的是2812我能立即给你解决了。28335的话,我给你说一下我调试的经验吧。
1看看编译的时候有没有错误。如果有错的话,对应的去网上搜一下,往往都能找到一些方法。
2跑个例程看看,如果例程都不能跑通的话。先查查硬件有没有问题。
3例程跑通之后,将你的程序改小,然后将程序刷进去看看。一般就是按例程那样先一个模块一个模块的跑。如果加上某个模块不工作了,你看看有没有明显错误。如果没有,单独跑一下这个模块。如果单独可以跑的话。很有可能是cmd段分配和ccs设置的问题了。你可以试试在项目中右击,选择Properties(Alt+Enter),在如下图所示的选项卡中选择Optimization level,将其设置为off即不优化。
4下载进去之后,再在线调一下。在main开始处打个断点试试。如果程序是跑飞的进不了main以2812为例,我建议你检查一下你的Boot ROM是不是选择的从内部启动。2812上有个引脚MP/MC(微处理器模式/微计算机模式),如果这个引脚为0说明被设置为从内部boot启动,你看一下28335有没有类似的引脚,建议你出现ram中能运行,flash中不能运行的问题时,首先检查这引脚的状态。
5检查你的flash cmd文件,建议你先从Debug文件夹下的map文件看起。map文件是十分用于的。它包含了你编译出的所有段和定义的所有段的所有信息,包括段的起始地址、长度、使用长度和未使用长度。包括编译生成的test、cinint等段的信息,如果你发现某个段定义了但没有使用,很有可能是因为你这个段长度太小了,它放不进去就不放了。你了解一下cmd的编写对应看map文件改改看。
ps:我的版本是ccs55,工程项目以在ccs33下创建的为例。map文件部分截图如下:
我学的是DSP2812,中断向量表我都是直接从范例工程中拷过来用,需要哪个中断就在哪个里面编写中断服务程序。
编程的初始化程序这些都是拷过来做少量修改甚至不用修改,用就可以了,寄存器的配置一般都是拷过来修改值就行,运算逻辑程序需要用自己编。
你先看看范例程序,找找各范例程序的区别,你会发现很多都只需复杂过来组合上用就可以了。
以太网为例:数据包封装解析的程序都是有的,复制过来几乎不修改就可以用,以太网的范例程序里面的以太网寄存器初始化部分一般都是单独的子函数,你看懂了复制过来用就可以了。。。。
我用DSP做:eCAN、以太网、液晶显示、PWM这些都是这样做的,你看懂范例程序后找程序之间的区别就懂了。
不知道对你有帮助没,呵呵
新建一个目标连接文件,后缀为ccxml,然后右键launch this setting》然后进入debug界面,连接芯片,然后tool》load program 直接找到out文件。以上回答出于本人多年经验累积,如果满意请设为最佳答案,谢谢
以上就是关于用ccs3.3 烧写 dsp 28335 flash 问题全部的内容,包括:用ccs3.3 烧写 dsp 28335 flash 问题、如何烧写DSP程序用JTAG线采用CCS3.3软件。、请教,CCS5中如何只烧写OUT文件,而没有或看不到原文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)