客户要求,Flash Driver和主体应用程序的Flash存储位置是分开的,独立的;通过boot可以单独更新flash driver或者主题应用程序。
ST的案例操作方式:
ST提供每个Flash Driver接口函数对应的16进制数据,可以这些文件写入指定的Flash存储位置;主体应用程序上电时,再将指定位置的16进制数据读取到RAM内,进行Flash Driver接口函数的调用。
TI的Flash Driver以Lib库的形式提过给用户,请问我应该怎样操作?
您好
有关详细信息,请参阅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的函数名来运行。不知道我的表述够不够清楚,你能不能理解我的意思。
可以参考文档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中。