Board_initCfg中的BOARD_INIT_DEFAULT不是很理解. - AM57x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4535|回复: 2
打印 上一主题 下一主题

[已解决] Board_initCfg中的BOARD_INIT_DEFAULT不是很理解.

[复制链接]

9

主题

24

帖子

8万

积分

金牌会员

Rank: 6Rank: 6

积分
82453
跳转到指定楼层
楼主
发表于 2017-5-26 18:03:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cl17726 于 2017-5-26 18:14 编辑

我看工程里面是定义:

typedef uint32_t Board_initCfg;
#define BOARD_INIT_ALL                  (0xFFFFFFFFU)
#define BOARD_INIT_UNLOCK_MMR           (1 << 1U)
#define BOARD_INIT_PLL                  (1 << 2U)
#define BOARD_INIT_MODULE_CLOCK         (1 << 3U)
#define BOARD_INIT_DDR                  (1 << 4U)
#define BOARD_INIT_WATCHDOG_DISABLE     (1 << 5U)
#define BOARD_INIT_PINMUX_CONFIG        (1 << 6U)
#define BOARD_INIT_UART_STDIO           (1 << 7U)
#define BOARD_INIT_ICSS_PINMUX          (1 << 8U)
#define BOARD_INIT_ETH_PHY              (1 << 9U)
#define BOARD_INIT_ECC                  (1 << 10U)
#define BOARD_INIT_PLL_OPP_HIGH         (1 << 11U)
#define BOARD_INIT_PLL_OPP_OD           (1 << 12U)
#define BOARD_INIT_PLL_OPP_NOM          (1 << 13U)
#define BOARD_INIT_DEFAULT              BOARD_INIT_ALL


然后这跟板有关吗,这不是CPU相关吗,只要CPU型号相同就可以用这个配置,不是吗?

另外这些定义具体说明在哪里,像BOARD_INIT_PLL_OPP_HIGH和BOARD_INIT_PLL_OPP_NOM岂不是冲突,但是BOARD_INIT_DEFAULT也就是BOARD_INIT_ALL是全部定义,那么究竟PLL配置是怎样了?

我把GPIO_LedBlink_evmAM572x_armTestProject初始化换成BOARD_INIT_DEFAULT程序就飞了.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

31

帖子

1402

积分

创龙

Rank: 8Rank: 8

积分
1402
沙发
发表于 2017-5-27 14:55:23 | 只看该作者
Board_initCfg 作为标志位,在evmAM572x.c中的Board_init()函数会根据判断这个标准位去初始化不同的外设:
Board_STATUS Board_init(Board_initCfg cfg)
{
    Board_STATUS ret = BOARD_SOK;

    if (cfg & BOARD_INIT_UNLOCK_MMR)
        ret = Board_unlockMMR();
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_PLL)
        ret = Board_PLLInit(OPP_NOM);
    else if(cfg & BOARD_INIT_PLL_OPP_HIGH)
        ret = Board_PLLInit(OPP_HIGH);
    else if(cfg & BOARD_INIT_PLL_OPP_OD)
        ret = Board_PLLInit(OPP_OD);
    else if(cfg & BOARD_INIT_PLL_OPP_NOM)
        ret = Board_PLLInit(OPP_NOM);
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_MODULE_CLOCK)
        ret = Board_moduleClockInit();
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_PINMUX_CONFIG)
        ret = Board_pinmuxConfig();
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_DDR)
        ret = Board_DDR3Init();
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_WATCHDOG_DISABLE)
        ret = Board_watchdogDisable();
    if (ret != BOARD_SOK)
        return ret;

    if (cfg & BOARD_INIT_UART_STDIO)
        ret = Board_uartStdioInit();
    if (ret != BOARD_SOK)
        return ret;

    return ret;
}
回复 支持 反对

使用道具 举报

9

主题

24

帖子

8万

积分

金牌会员

Rank: 6Rank: 6

积分
82453
板凳
 楼主| 发表于 2017-5-29 14:36:08 | 只看该作者
544864579 发表于 2017-5-27 14:55
Board_initCfg 作为标志位,在evmAM572x.c中的Board_init()函数会根据判断这个标准位去初始化不同的外设:
...

这个我也看到了,但是具体意义不明白.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-28 04:52 , Processed in 0.035387 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表