解析 STM32 的启动过程.pdf

  • 浏览量:1031
  • 下载量:1
  • 资料大小:0 B
  • 日期:2015-12-07
  • 上传者:蒙娜丽石
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    system文件部分(一)


    先让我把这个图记一下(以后提醒自己多用堆栈窗口和内存窗口调试程序)





    启动代码:





    原子哥教程里面看到这句话,刚好有这方面的资料,资料对startup_stm32f10x_hd.s里面的200多行的汇编代码进行了详细的讲解,附件在底下,强烈建议看一下!

    时钟树:经常要去找挺麻烦的,贴上以后直接在这看了









    hse时钟
    高速外部时钟信号(hse)由以下两种时钟源产生:
    ● hse外部晶体/陶瓷谐振器
    ● hse用户外部时钟
    为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠
    近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。


    hsi时钟


    hsi时钟信号由内部8mhz的rc振荡器产生,可直接作为系统时钟或在2分频后作为pll输入。
    hsi rc振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比hse晶体振
    荡器短。然而,即使在校准之后它的时钟频率精度仍较差。


     pll


    内部pll可以用来倍频hsi rc的输出时钟或hse晶体输出时钟。
    pll的设置(选择his振荡器除2或hse振荡器为pll的输入时钟,和选择倍频因子)必须在其被激
    活前完成。一旦pll被激活,这些参数就不能被改动。
    如果pll中断在时钟中断寄存器里被允许,当pll准备就绪时,可产生中断申请。
    如果需要在应用中使用usb接口, pll必须被设置为输出48或72mhz时钟,用于提供48mhz的
    usbclk时钟。


    lse时钟


    lse晶体是一个32.768khz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供
    一个低功耗且精确的时钟源。
    lse晶体通过在备份域控制寄存器(rcc_bdcr)里的lseon位启动和关闭。
    在备份域控制寄存器(rcc_bdcr)里的lserdy指示lse晶体振荡是否稳定。在启动阶段,直
    到这个位被硬件置’1’后, lse时钟信号才被释放出来。如果在时钟中断寄存器里被允许,可产
    生中断申请。


    lsi时钟


    lsi rc担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和
    自动唤醒单元提供时钟。 lsi时钟频率大约40khz(在30khz和60khz之间)。进一步信息
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换