Я работаю над большим проектом на своем чипе Cortex M3, и мне не хватает оперативной памяти. Моя предложенная идея заключается в том, что мне нужно освободить место в моей оперативной памяти, удалив глобальные переменные в коде загрузчика, чтобы ОЗУ очищалось в регионе после перехода загрузчика к коду приложения. У меня нет прямого доступа к коду загрузчика в чипе, поэтому я должен изменить эти глобальные переменные в коде приложения. Как я могу удалить эти глобальные переменные с помощью функции custom_delete()
или любого другого кода. Я использую ARM Cortex M3 (LPC1769).
Подводя итог, в основном то, что я запускаю, это:
Custom_Delete ( ? ){
??
}
int foo[1000];
int main(){
/*
Bootloader Code
*/
Custom_Delete ( foo ) // I'm trying to remove the "foo" variable once the bootloader code is executed and the application code is run.
SCB->VTOR = (APP_START_ADDRESS) & 0x1FFFFF80 // jump to application code
}
int
и им подобных. Замените их соответствующими переменными фиксированного размера из stdint.h. - person Lundin   schedule 13.08.2020malloc
, который позволит вам добавлять блоки свободной памяти на арену (например,free
, но ранее блок не обязательно должен бытьmalloc
d). Как только вы закончите сfoo
, вы добавите его на аренуmalloc
. - person n. 1.8e9-where's-my-share m.   schedule 13.08.2020