AM335X UBOOT(以UART为例分析UBOOT主要流程)

 UBOOT2016.05

                        UART初始化及设置

  1. SPL阶段

第一部分C函数

|- s_init //(arch/arm/cpu/armv7/am33xx/board.c)

     |- set_uart_mux_conf(\board\ti\am335x\board.c会用到Kconfig文件中的CONFIG_CONS_INDEX来初始化对应的UART)

         |-enable_uart0_pin_mux(\board\ti\am335x\Mux.c)

            |-configure_module_pin_mux    (src\arch\arm\cpu\armv7\am33xx\Mux.c进行PINMUX设置)

     |-setup_clocks_for_console(\arch\arm\cpu\armv7\am33xx\Clock_am33xx.c初始化各个UART控制器时钟)

     |-uart_soft_reset(\arch\arm\cpu\armv7\am33xx\board.c   会用到\arch\arm\include\asm\arch-am33xx\Hardware.h的#define DEFAULT_UART_BASE  UART0_BASE   

进一步的定义在arch\arm\include\asm\arch-am33xx\Hardware_am33xx.h    #define UART0_BASE          0x44E09000 )

第二部分C函数

 |- board_init_f //(arch/arm/cpu/armv7/am33xx/board.c)
       |- board_early_init_f //(arch/arm/cpu/armv7/am33xx/board.c)
           |- prcm_init(\arch\arm\cpu\armv7\am33xx\Clock.c)

             |-enable_basic_clocks(\arch\arm\cpu\armv7\am33xx\Clock_am33xx.c 外设单元时钟域初始化)

             |-scale_vcores(\arch\arm\cpu\armv7\am33xx\Clock.c  暂无作用?);

             |-setup_dplls(\arch\arm\cpu\armv7\am33xx\Clock.c  暂时理解为各单元PLL初始化)

             |-timer_init(src\arch\arm\cpu\armv7\omap-common\Timer.c 不确定???)

         |-set_mux_conf_regs(\board\ti\am335x\ Board.c);

             |-enable_board_pin_mux(\board\ti\am335x\ Mux.c 根据板子类型进行PINUMUX配置,注意,这里根据板子类型,第二次设置了串口的PINMUX)

                |-configure_module_pin_mux(src\arch\arm\cpu\armv7\am33xx\Mux.c   进行PINMUX设置 这里设置了mmc0_pin

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值