Ещё один вариант с использованием всей памяти под стек.
Стартуем на микро стеке. Включаем память. Перед запуском app переключаемся на "большой" стек.
Стартуем на микро стеке. Включаем память. Перед запуском app переключаемся на "большой" стек.
C:
uint32 small_stack[64]; // в bss
//======== init_config(void)===========//
//save the app initial_sp which will be used in wakeupProcess 20180706 by ZQ
pGlobal_config[INITIAL_STACK_PTR] = (uint32_t)&small_stack;
//======== wakeupProcess1(void)===========//
__set_MSP(pGlobal_config[INITIAL_STACK_PTR]);
HAL_CRITICAL_SECTION_INIT();
//==== 20180416 commented by ZQ
// to enable flash access after wakeup
// current consumption has been checked. No big different
//rom_set_flash_deep_sleep();
//=======fix sram_rent issue 20180323
hal_pwrmgr_RAM_retention_clr();
//subWriteReg(0x4000f01c,21,17,0);
...
__set_MSP(uint32_t)&g_top_irqstack);
// app could add operation after wakeup
app_wakeup_process();
// uart_tx0(" 111 ");
ll_debug_output(DEBUG_WAKEUP);