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.

SM470R1B1M-HT: 如何将部分--readonly库函数--手动搬移到RAM

Part Number: SM470R1B1M-HT

TI大神好,

问题描述:问题类似于将一个常用C函数放到RAM执行。

    我希望在程序运行中,通过ICF文件initialize manually的方式,在某些特定时刻,调用程序将部分库函数搬移到RAM上运行,具体是希望搬移<flash470.h>提供的函数。在测试中用文档给的方法可以正确manually initialize自己创建的任何函数,但是无法搬移readonly的库函数。 原因似乎是看不到函数原型,没办法定义库函数的section,无论在头文件或外部引用处定义其section都无效(就像试图给memcpy这种函数定义section一样)。请问有没有解决方案呢?

注:希望实现manually,而不是initialize by copy。后者经尝试可以将readonly或所需函数的.o文件放入RAM来实现,但不能实时自主控制。

  • 您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢。

  • 您好,十分抱歉我们目前没有熟悉 SM470R1B1M 的工程师。

    通过ICF文件initialize manually的方式,在某些特定时刻,调用程序将部分库函数搬移到RAM上运行,具体是希望搬移<flash470.h>提供的函数。在测试中用文档给的方法可以正确manually initialize自己创建的任何函数,但是无法搬移readonly的库函数。 原因似乎是看不到函数原型,没办法定义库函数的section,无论在头文件或外部引用处定义其section都无效(就像试图给memcpy这种函数定义section一样)

    请问您指的搬移具体是什么功能?此外您能否提供下您参考的是哪个文档中的哪一部分?

    对工程师更熟悉的其他器件来说,如果想从 RAM 运行代码,需要手动将代码从闪存复制到 RAM ,然后将程序计数器设置为 RAM 来从 RAM 运行代码。