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.

请教两个问题 关于28335flash api 还有看门狗复位

一直想弄清28335的两个问题:

1、使用FLASH_API的时候是不是只能将API函数搬移到RAM执行,而不能将所有代码均搬移到RAM运行?

2、看门狗复位是使DSP得CPU复位吗?这个复位时间大概有多长?

谢谢

  • 1、使用FLASH_API的时候是不是只能将API函数搬移到RAM执行,而不能将所有代码均搬移到RAM运行?

      如果只能API搬出去的话,会有将程序擦除掉的风险啊!

    2、看门狗复位是使DSP得CPU复位吗?这个复位时间大概有多长?

      可以复位,两种方式:看门狗定时器溢出复位(时间可调整);WDKEY(没记错的话)写入错误值(立即复位,具体时间参数可以参考数据手册)

  • 很感谢你的回答

    关于问题1的风险指的是什么?擦除是按块区来的,不会影响程序啊

    关于复位时间我翻看了能找到的资料都没有发现明确的说明,不知道是看的不细致还是资源有限,能否指引一下是哪个文档会写?因为TI的datasheet众多,实在是不好找。

    再次感谢

  • Mike,

    1, 你可以只搬移Flash API到RAM中,因为任何对Flash操作的代码都必须放到RAM中,其他的代码如上位机通信等,你只要保证在擦除时,别擦除掉这个扇区就可以了。

    2, 你可以擦除F28335主页下面的2833x System Control and Interrupts.pdf, 里面有降到看门狗,我刚进一步确认了一下,对WDKEY写一个错误的值应该不会导致芯片马上复位,效果跟没写key一样,都是需要经过一定的时间才能够复位的。如果看门狗复位,则会拉低XRS引脚512 OSCCLK的周期。

    Eric

  • Thanks Eric

        我记得关于flash api的文档中说运行api函数的时候RAM中不能运行其他程序,我想知道在使用flash api的时候还可以将全部程序搬移到RAM吗,因为我全部搬移的时候烧写总是不成功,部分搬移的时候却能够烧写成功。

                                                                     

  • Mike,

    我认为是可以将flash api 和 其他函数,如跟PC通信的代码都搬到RAM中运行,只要RAM足够大就没问题。你可以再检查一下看到底再那一个函数出现问题,然后检查。在调用Flash API烧写的时候,一样是可以通过CCS调试的。

    另外一点,如果其他函数的实时性要求不是很高,如串口通信,那放在flash也没什么关系。

    Eric

  • 需要注意,当执行FlashAPI的时候,所有其它中断都是需要关闭的,所以即便实现了搬移,同时也要确保这些功能代码不会产生中断。

  • 嗯,我的确是这样做的,但是还是每次烧写都失败,没有找到原因,所以在想是不是使用API的时候别的程序是需要留在flash运行。说到这,除了关闭全局中断还有别的注意事项吗?我翻看了文档好像没有别的了。