ZYNQ 移植使用freeRTOS系统运行程序

ZYNQ可以移植多种操作系统,freeRTOS,RT-thread,wxworks,linux,UCOSII,这些操作系统可以单独运行,也可以使用openAMP双核模式两两组合运行,也可以和裸机SDK组合openAMP运行,具体看如何配置了;不太擅长使用 Linux操作系统的开发人员,建议大家还可以使用实时操作系统或者裸机运行,这样也有更大的灵活性。

一,freeRTOS系统启动流程

1,在系统上电的时候第一个执行的是启动文件里面由汇编编写的复位函数Reset_Handler(芯片上电默认进Reset_Handler)。SystemInit初始化时钟及中断向量映射。复位函数的最后会调用 C 库函数__main。__main 函数的主要工做是初始化系统的堆和栈。main函数入口中将硬件初始化,RTOS 系统初始化,最后启动任务调度器。最后调用 C 中的 main 函数,从而进入 C语言程序。

int main (void)
{
    /* 硬件初始化 */
    HardWare_Init(); (1)

    /* RTOS 系统初始化 */
    RTOS_Init(); (2)

    /* 建立任务 1,但任务 1 不会执行,由于调度器尚未开启 */ (3)
    RTOS_TaskCreate(Task1);

    /* 建立任务 2,但任务 2 不会执行,由于调度器尚未开启 */
    RTOS_TaskCreate(Task2);

    /* ......继续建立各类任务 */
    /* 启动 RTOS,开始调度 */
     RTOS_Start(); (4)
}

void Task1( void *arg ) (5)
{
    while (1)
    {
        /* 任务实体,必须有阻塞的状况出现 */
 

你可能感兴趣的:(操作系统)