您好!
我正在编写具有以下配置的应用程序:
CPU 访问引导 ROM 中的闪存 API 代码。
2802x_FlashAPI_BootROMSymbols_v2.01.lib 已链接
SECTIONS
{
/* Allocate program areas: */
/* The Flash API functions can be grouped together as shown below.
The defined symbols _Flash28_API_LoadStart, _Flash28_API_LoadEnd
and _Flash28_API_RunStart are used to copy the API functions out
of flash memory and into SARAM */
.cinit : > BOOT_IMAGE PAGE = 0
.pinit : > BOOT_IMAGE, PAGE = 0
.text : > BOOT_IMAGE PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = BOOT_IMAGE,
RUN = RAMM1,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); MemCopy(&RamTimerfuncsLoadStart, &RamTimerfuncsLoadEnd, &RamTimerfuncsRunStart);
闪存扇区 A -->用户引导加载程序
闪存扇区 B、C、D ->应用程序代码
用户引导加载程序具有以下特性:
-读取并写入扇区 B、C、D。 不是
- UART protocoll ,中断驱动
-基本定时器中断
-不使用闪存 API 回调
通常、在引导加载程序中、我会将所有内容都放在 RAM 中。
#pragma CODE_SECTION(mainLoop, "ramfuncs");
我为每个函数和 ISR 例程重复此代码。
第一个问题是:如果 Flash_API 驻留在 ROM 中、我真的需要将所有内容放在 RAM 中吗?
尤其是在我写入不同的扇区时。
也许我只需要在 RAM 中放置 ISR?
第二个问题是:CODE_SECTION 只会在 RAM 中放置命名的函数、还是在其实现中调用的函数?
