Попробовал разместить критичные, с точки зрения времени выполнения, функции в RAM. До этого не пользовался, но сравнения для )
Keil 4.11, использовал следующие комбинации для кода и скаттера:
1.
Код
Код
#pragma arm section code = "ramfunc"
тело
#pragma arm section code
scatter
Код
LR_IROM1 0x00000000 0x00080000 { ; load region size_region
ER_IROM1 0x00000000
{; load address = execution address
STARTUP.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x40000000 0x00010000 {; RW data
*(ramfunc)
.ANY (+RW +ZI)
}
}
2.
По совету, найденному в примерах Keil, добавил для всего С-файла в свойствах "Memory Assignment->Code/Const->IRAM1(0x40000000-0x4000FFFF)" и собрал все со сгенеренным scatter'ом
Код - убрал прагмы
scatter
Код
LR_IROM1 0x00000000 0x00080000 { ; load region size_region
ER_IROM1 0x00000000 0x00080000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x40000000 0x00010000 { ; RW data
mscuser.o (+RO)
.ANY (+RW +ZI)
}
}
Итого
Размер используемой RAM при компиляции не изменяется никак.
Так должно быть (с объемом), или я что-то сделал не так и компилятор с линкером мне
должны сказать (хотя бы по количеству), что RAM пользуется больше?