40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#define ARDUINO_MAIN
|
||
|
||
#include "Arduino.h"
|
||
|
||
// Weak empty variant initialization function.
|
||
// May be redefined by variant files.
|
||
void initVariant() __attribute__((weak));
|
||
void initVariant() { }
|
||
|
||
#include "mcu32_memory_map.h"
|
||
#include "mik32_hal_spifi_w25.h"
|
||
#define CLIMIT_NEW (2 * 256 * 1024) // Новый предел кэширования
|
||
|
||
// Объявляем, что эта функция исполняется из RAM
|
||
__attribute__((section(".ram_text"))) void updateCacheLimit(void)
|
||
{
|
||
uint32_t MCMDbackup = SPIFI_CONFIG->MCMD; // Прочитать текущие настройки из регистра MCMD
|
||
SPIFI_CONFIG->STAT |= SPIFI_CONFIG_STAT_RESET_M; // Сброс режима MCMD: установить бит RESET
|
||
SPIFI_CONFIG->CLIMIT = CLIMIT_NEW; // Установить новое значение CLIMIT
|
||
SPIFI_CONFIG->MCMD = MCMDbackup; // Вернуть обратно значение в регистр MCMD
|
||
}
|
||
|
||
|
||
extern "C" int main(void) __attribute__((weak));
|
||
int main()
|
||
{
|
||
Serial.begin(9600);
|
||
xprintf("old_climit = 0x%08lX\n", SPIFI_CONFIG->CLIMIT);
|
||
updateCacheLimit();
|
||
xprintf("new_climit = 0x%08lX\n", SPIFI_CONFIG->CLIMIT);
|
||
|
||
initVariant(); // for freeRTOS
|
||
setup();
|
||
post_init();
|
||
|
||
while (1)
|
||
{
|
||
loop();
|
||
}
|
||
} |