官方给出的flashAPI例程,里面做了一系列的演示;
但只是将API函数库中的所有API函数拷贝至内存运行、还有ramfuncs段放的函数拷贝至内存运行;
CMD如下:
Flash28_API:
{
-lFlash28335_API_V210.lib(.econst) -lFlash28335_API_V210.lib(.text)
} LOAD = FLASHA,
RUN = RAML0, LOAD_START(_Flash28_API_LoadStart),
LOAD_END(_Flash28_API_LoadEnd),
RUN_START(_Flash28_API_RunStart),
PAGE = 0
.cinit : > FLASHA, PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA, PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHA,
RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
我的问题是:
1. 我根据项目需求改了例程,测试发现在仿真器中运行良好,程序能正常的烧写,但脱离仿真器就跑不起来了,调试发现一个局部数据里面的数据是错误的(但仿真器下是好的),这个数组就是API函数的一个参数,用来写入flash的。 所以我现在想把它改为全局数组,不知道可不可行?
2. 比如全局变量存于flashA(.cint) API调用时不会出现问题吗?一个在flash里,一个在内存里;
3. 有必要把所有的工程内容(全局变量、所有API函数、普通函数)都放到内存吗?
在线等待回复~
scott scott:
没人吗 给点力啊
官方给出的flashAPI例程,里面做了一系列的演示;
但只是将API函数库中的所有API函数拷贝至内存运行、还有ramfuncs段放的函数拷贝至内存运行;
CMD如下:
Flash28_API:
{
-lFlash28335_API_V210.lib(.econst) -lFlash28335_API_V210.lib(.text)
} LOAD = FLASHA,
RUN = RAML0, LOAD_START(_Flash28_API_LoadStart),
LOAD_END(_Flash28_API_LoadEnd),
RUN_START(_Flash28_API_RunStart),
PAGE = 0
.cinit : > FLASHA, PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA, PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHA,
RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
我的问题是:
1. 我根据项目需求改了例程,测试发现在仿真器中运行良好,程序能正常的烧写,但脱离仿真器就跑不起来了,调试发现一个局部数据里面的数据是错误的(但仿真器下是好的),这个数组就是API函数的一个参数,用来写入flash的。 所以我现在想把它改为全局数组,不知道可不可行?
2. 比如全局变量存于flashA(.cint) API调用时不会出现问题吗?一个在flash里,一个在内存里;
3. 有必要把所有的工程内容(全局变量、所有API函数、普通函数)都放到内存吗?
在线等待回复~
xiansheng yang1:
回复 scott scott:
你好,你的28335在线升级解决了吗
官方给出的flashAPI例程,里面做了一系列的演示;
但只是将API函数库中的所有API函数拷贝至内存运行、还有ramfuncs段放的函数拷贝至内存运行;
CMD如下:
Flash28_API:
{
-lFlash28335_API_V210.lib(.econst) -lFlash28335_API_V210.lib(.text)
} LOAD = FLASHA,
RUN = RAML0, LOAD_START(_Flash28_API_LoadStart),
LOAD_END(_Flash28_API_LoadEnd),
RUN_START(_Flash28_API_RunStart),
PAGE = 0
.cinit : > FLASHA, PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA, PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHA,
RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
我的问题是:
1. 我根据项目需求改了例程,测试发现在仿真器中运行良好,程序能正常的烧写,但脱离仿真器就跑不起来了,调试发现一个局部数据里面的数据是错误的(但仿真器下是好的),这个数组就是API函数的一个参数,用来写入flash的。 所以我现在想把它改为全局数组,不知道可不可行?
2. 比如全局变量存于flashA(.cint) API调用时不会出现问题吗?一个在flash里,一个在内存里;
3. 有必要把所有的工程内容(全局变量、所有API函数、普通函数)都放到内存吗?
在线等待回复~
Xiaohuang Li:
所有可以用于运行的变量,函数都必须运行于SRAM 中;