我调试2407的一点经验之谈!
扫描二维码
随时随地手机看文章
本人为在校学生,前一段时间在外找了份兼职,任务是改动并移植两个电机的控制程序(在240平台上)到2407平台(他们已搭好)上,老板刚交代任务的时候觉得还算简单,结果拿到板子一看傻眼了.因为上边没有扩展的PROGRAM RAM.公司里以前没有人搞过2407,他们设计好的板子也从来没有人用过,让我来搞八成是考虑我还是学生,反正报酬也不多,也不会影响他们的正常工作,顺便检验一下板子设计的对不对.
接下来的两个月我可惨了,调试程序只能一遍接一遍将程序烧到Flash里面,然后运行看现象,再判断那里需要改动,然后改完再烧......就这样花了九牛二虎之力搞定了.老板很满意,于是在这块2407平台基础上又加了好多功能,板子重新设计,要我来做.我想这次可得加RAM,否则打死我也不干了.
我以前搞过C32,也看过54X和C6000的一些资料,这些器件的中断向量表是可以重定位的.但是2407的中断向量表是不可重定位的,必须是程序存储区的0000H-0040H,我设计板子的时候只是考虑了一下,没有深想,觉得仿真的话我把程序调到RAM里应该是可以的,再这将来程序肯定要烧到Flash里面,所以我就直接把MP&/MC引脚直接拉到地上了.
结果这次又挂了:(.我拿到新板子后,开始调试,发现根本不进中断,弄了一天不知所以然,后来就怀疑MP/MC方式了,因为MP模式存储器必须是外部的,于是我想割线跳线了,但是根本不行,因为板子是四层板,而MP/MC引脚引出的导线偏偏在DSP芯片下面,没有办法割,除非换芯片.
我极度郁闷,以为完蛋了!还得一遍遍烧flash了!后来查资料看到MP/MC模式可以通过软件设定,但是程序运行之前的上电复位状态是MC没法改,所以我想了个办法还挺有效:
先在程序代码里将MP/MC位置1,然后运行一下(此时DSP运行在MC模式,片外Program RAM从8000H开始,CMD文件里的Program区从8000H开始即程序放置在外部RAM)将MP/MC位的状态改成1,然后千万不要复位DSP(括CC的复位操作),再将CMD文件里的Program区改为从0000H开始即可.然后将.out文件load到RAM里运行,呵呵,随你设断点,中断一样很正常能进.
不过大家如果要设计2407,最好还是在MP/MC引脚接入处加跳线为妙,这样在调试时拉高为MP方式,调定后拉低为MC方式.
一点经验教训,与大家共享,希望大家少走弯路! 进入参与讨论。。。