elbear_arduino_bsp/cores/arduino/main.cpp

40 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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();
}
}