uart_div_modify(0, (APB_CLK_FREQ << 4) / 115200);
ets_setup_syscalls();
do_global_ctors();
+#if !CONFIG_FREERTOS_UNICORE
esp_crosscore_int_init();
+#endif
esp_ipc_init();
spi_flash_init();
xTaskCreatePinnedToCore(&main_task, "main",
//A pointer to the correct reason array item is passed to this ISR.
volatile uint32_t *myReason=arg;
#else
- //Does not work yet, the interrupt code needs work to understand two separate interrupt and argument
- //tables...
+ //The previous line does not work yet, the interrupt code needs work to understand two separate interrupt and argument
+ //tables... this is a valid but slightly less optimal replacement.
volatile uint32_t *myReason=&reason[xPortGetCoreID()];
#endif
//Clear the interrupt first.
* Initialize the crosscore interrupt system for this CPU.
* This needs to be called once on every CPU that is used
* by FreeRTOS.
+ *
+ * If multicore FreeRTOS support is enabled, this will be
+ * called automatically by the startup code and should not
+ * be called manually.
*/
void esp_crosscore_int_init();
* currently running task in favour of a higher-priority task
* that presumably just woke up.
*
+ * This is used internally by FreeRTOS in multicore mode
+ * and should not be called by the user.
+ *
* @param coreID Core that should do the yielding
*/
void esp_crosscore_int_send_yield(int coreId);