当前位置:首页 > 芯闻号 > 充电吧
[导读] 一点经验教训,与大家共享,希望大家少走弯路!

    本人为在校学生,前一段时间在外找了份兼职,任务是改动并移植两个电机的控制程序(在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方式.

      一点经验教训,与大家共享,希望大家少走弯路! 进入参与讨论。。。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭