// ***************** main.c ****************************************** // Sample: sample_arm_2_cores // // Описание: // Пример демонстрирует запуск двух задач на двух ARM-ядрах // // Алгоритм работы: // - Каждое ядро печетает на UART-терминал уникальное сообщение // Сообщения от ядра 0: "core0 task is running..." // Сообщения от ядра 1: "core1 task is running..." // // Описание точек останова: // // ******************************************************************* #include #include "mcom_runtime/armv7support.h" #include "mcom_runtime/uart.h" volatile int uart_state = 0; int main() { int dsp_ret = 0; if (ArmGetCpuID() == 0) { if(uart_state == 0) { uart_config(0, get_l3comm_freq(), 115200); uart_state = 1; } } if (ArmGetCpuID() == 0) { // core0 code while (1) { if(uart_state==1) { uart_puts(0, "core0 task is running... \r\n"); // core0_task(); uart_state = 2; } } // dsp_ret = task_sync(); } else { // core1 code while (1) { if(uart_state==2) { uart_puts(0, "core1 task is running... \r\n"); // core1_task(); uart_state = 1; } } // } // reset r0.l values while (1) ; return 0; };