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.

C2000如何向flash区存储数据,保持掉电后仍能保留输入?

Other Parts Discussed in Thread: CONTROLSUITE

需要做一个可以调整参数的东西,要求掉电后参数仍能保持,如何做到?

期待大家的指点!谢谢!

  • Di Jiao,

    C2000 支持对 Flash 的擦除、烧写等功能,具体的操作方法请参考 controlSUITE 中的相关技术文档和示例代码。

    (查找的路径为 \...\controlSUITE\controlSUITE\libs\utilities\flash_api\2803x\v100a\doc)

     

    对于 Flash API 函数具体的调用方法,可以参考 ControlSUITE 中的示例代码,例如 flash_f28069 ,主要有以下几个步骤包括:

    (1)在 .cmd 文件中定义代码搬移的相应区域:

     

    (2)定义函数 Example_CallFlashAPI(),其中包含 Flash API 操作;将其地址空间定义在 ramfuncs 中:

     

    (3)在 main() 中调用 Example_CallFlashAPI() 函数之前,需要先执行代码搬移函数,将在 ramfuncs 中定义的代码从 Flash 搬移到 RAM 中,此时Example_CallFlashAPI() 才真正被搬移至 RAM 中:

    (4)最后,执行 Example_CallFlashAPI() 函数,在其中调用相应的 Flash API 函数:

     

     

  • 您好!看了您的细心解答后我很感动!谢谢您!

    不过,应该是我的问题没有描述清楚。我想表达的不是程序存储是flash中,而是数据的存储。比如我做了一个PID控制,我通过调整程序整定好了参数,我希望这个参数的数据保存下来。这个数据在下次cpu上电后不是我程序烧录时的数据,而是我整定好保存的数据。

    我在别的芯片上发现有指定的flash区可以存取数据,不知道c2000可不可以?

    祝好!

  • 以上就是在 C2000 上实现 Flash 存储数据的方法!需要调用相应的 Flash API 函数,并在 RAM 中执行该函数。可能看起来有些复杂,建议你先阅读一下技术手册。