Chinaunix首页 | 论坛 | 博客
  • 博客访问: 866523
  • 博文数量: 190
  • 博客积分: 7021
  • 博客等级: 少将
  • 技术积分: 1752
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 19:26
文章分类

全部博文(190)

文章存档

2014年(9)

2011年(32)

2010年(149)

我的朋友

分类: LINUX

2010-06-07 11:16:19

int main(int argc, char *argv[])
{
    int ret;

    GPFDAT = 0x10;
    /* NB: MMU off state */
    /*
     * Step 1:
     * print banner
     */

    putstr("\r\n");
    putstr(vivi_banner);

    reset_handler();

    /*
     * Step 2:
     * Board initialize
     */

    ret = board_init();
    GPFDAT = 0x20;
    if (ret) {
        putstr("Failed a board_init() procedure\r\n");
        error();
    }

    /*
     * Step 3:
     * 4G linear mapping, flash mapping
     * MMU on
     */

    mem_map_init();
    mmu_init();
    putstr("Succeed memory mapping.\r\n");


    /*
     * Now, vivi is running on the ram. MMU is enabled.
     */


    /*
     * Step 4:
     * dynamic memory can be used in bootloader
     */

    /* initialize the heap area*/
    ret = heap_init();
    if (ret) {
        putstr("Failed initailizing heap region\r\n");
        error();
    }

    /* Step 5:
     * MTD initialize
     * read MTE partition info.
     */

    ret = mtd_dev_init();

    /* Step 6:
     * read bootloader parameter
     */

    init_priv_data();

    /* Step 7:
     * misc treatment
     */

    misc();

    init_builtin_cmds();

// putstr("Change Speed from 400Mhz to 533Mhz\r\n");

// change_sys_clks(533,5);

    /* Step 8:
     * boot or vivi.
     */

    boot_or_vivi();

    return 0;
}

在main函数中,条理非常的清晰,一步一步来(一共八步)
下面我们就按照main函数中的顺序来一次分析各个步骤
阅读(1630) | 评论(0) | 转发(0) |
0

上一篇:vivi-stage2-step1

下一篇:vivi-stage2-step2

给主人留下些什么吧!~~