TMS320F280049C: Flash Driver 与主体应用程序分开,写入指定地址空间的实现方式和接口调用方法?

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE

客户要求,Flash Driver和主体应用程序的Flash存储位置是分开的,独立的;通过boot可以单独更新flash driver或者主题应用程序。

ST的案例操作方式:

ST提供每个Flash Driver接口函数对应的16进制数据,可以这些文件写入指定的Flash存储位置;主体应用程序上电时,再将指定位置的16进制数据读取到RAM内,进行Flash Driver接口函数的调用。

TI的Flash Driver以Lib库的形式提过给用户,请问我应该怎样操作?

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好

    客户正在寻找闪存内核来对应用代码进行编程。 我的理解是否正确?

  • 谢谢的关注;

    不是的,就是单单的将TI的Flash Driver库存与应用程序分开,分别存放,可以避免更新应用程序时破坏Flash Driver库。更新应用程序时,Flash Driver库可以不做任何改变。

  • 您好

    用户可以指定库和代码应放置在链接程序命令文件中的位置。

  • 您好

    用户可以指定库和代码应放置在链接程序命令文件中的位置。

  • 您好

    用户可以指定库和代码应放置在链接程序命令文件中的位置。

  • Flash Driver库在了指定的位置后,应用程序怎样调用Flash Driver库中的各个函数呢?

  • 您好

    有关详细信息,请参阅C2000ware中的闪存API示例,网址为"<C2000ware install path>\driverlib\f28003x\examples\flash\flashapi_ex1_programming"。

  • "<C2000ware install path>\driverlib\f28003x\examples\flash\flashapi_ex1_programming"。这个例程的形式是Flash Driver的各个函数和应用程序在一个工程里的,应用程序只需要直接调用Flash Driver的函数名就可以了。当Flash Driver库和应用程序分别存放在不同的位置后,显然应用程序是不可以直接通过调用Flash Driver的函数名来运行。不知道我的表述够不够清楚,你能不能理解我的意思。

  • 您好

    是的、您可以单独保存驱动程序并使用它来对应用程序进行编程。 您可以通过引导代码调用闪存 API 来对应用程序进行编程。

  • 您好

    是的、您可以单独保存驱动程序并使用它来对应用程序进行编程。 您可以通过引导代码调用闪存 API 来对应用程序进行编程。

  • 可以参考文档ZHCABP6 单CPU双项目开发

    思路如下:

    1.编译Flash Driver项目时生成 --xml_link_info 文件

    2.通过工具StrawBerry PERL 和 Code Gen Tools XML Perl scripts utility 生成Flash Driver项目对应的符号库信息文件,假设生成文件名flashdriver.lib
    2.通过工具StrawBerry PERL 和 Code Gen Tools XML Perl scripts utility 生成Flash Driver项目对应的符号库信息文件,假设生成文件名flashdriver.lib

    该符号库文件用于指定Flash Driver项目中的函数及其在FLASH中的绝对地址

    3.在主体应用程序中引用flashdriver.lib,并include Flash Driver项目中包含函数定义的h文件,编译项目即可

    至于将flashdriver.lib文件指定的函数代码拷贝到RAM的方式,Ti文档没有指明方法。以下信息仅代表个人想法

    flashdriver.lib中已包含各函数起始地址信息

    xml_link_info文件中可以找到各函数的Load_address,run_address,size信息

    已知地址和size后,在主体应用程序中可以手动搬移每个函数到RAM中。