SystemInit()函数的结构分析

发布者:CrystalRose最新更新时间:2016-01-11 来源: eefocus关键字:SystemInit()函数  结构分析 手机看文章 扫描二维码
随时随地手机看文章
系统函数调用顺序startup_stm32f10x_cl.s→ SystemInit() → SetSysClock()→ SetSysClockTo72()

总结:开始是在keil4里看代码,很混乱,后来把他粘到Notepad编辑器,一点击就可以看出这个子函数到哪结束

 

[cpp] view plaincopy
 
  1. #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)  
  2. /* #define SYSCLK_FREQ_HSE    HSE_VALUE */  
  3.  #define SYSCLK_FREQ_24MHz  24000000  
  4. #else  
  5. /* #define SYSCLK_FREQ_HSE    HSE_VALUE */  
  6. /* #define SYSCLK_FREQ_24MHz  24000000 */   
  7. /* #define SYSCLK_FREQ_36MHz  36000000 */  
  8. /* #define SYSCLK_FREQ_48MHz  48000000 */  
  9. /* #define SYSCLK_FREQ_56MHz  56000000 */  
  10. #define SYSCLK_FREQ_72MHz  72000000  
  11. #endif  

 

下面定义的SystemCoreClock 变量是为了方便取出几种情况下系统时钟的实际值,例SYSCLK_FREQ_24MHz 也就是24000000。

 

[cpp] view plaincopy
 
  1. #ifdef SYSCLK_FREQ_HSE  
  2.   uint32_t SystemCoreClock         = SYSCLK_FREQ_HSE;        /*!< System Clock Frequency (Core Clock) */  
  3. #elif defined SYSCLK_FREQ_24MHz  
  4.   uint32_t SystemCoreClock         = SYSCLK_FREQ_24MHz;        /*!< System Clock Frequency (Core Clock) */  
  5. #elif defined SYSCLK_FREQ_36MHz  
  6.   uint32_t SystemCoreClock         = SYSCLK_FREQ_36MHz;        /*!< System Clock Frequency (Core Clock) */  
  7. #elif defined SYSCLK_FREQ_48MHz  
  8.   uint32_t SystemCoreClock         = SYSCLK_FREQ_48MHz;        /*!< System Clock Frequency (Core Clock) */  
  9. #elif defined SYSCLK_FREQ_56MHz  
  10.   uint32_t SystemCoreClock         = SYSCLK_FREQ_56MHz;        /*!< System Clock Frequency (Core Clock) */  
  11. #elif defined SYSCLK_FREQ_72MHz  
  12.   uint32_t SystemCoreClock         = SYSCLK_FREQ_72MHz;        /*!< System Clock Frequency (Core Clock) */  
  13. #else /*!< HSI Selected as System Clock source */  
  14.   uint32_t SystemCoreClock         = HSI_VALUE;        /*!< System Clock Frequency (Core Clock) */  
  15. #endif  

 

 

[cpp] view plaincopy
 
  1. static void SetSysClock(void)  
  2. {  
  3. #ifdef SYSCLK_FREQ_HSE  
  4.   SetSysClockToHSE();  
  5. #elif defined SYSCLK_FREQ_24MHz  
  6.   SetSysClockTo24();  
  7. #elif defined SYSCLK_FREQ_36MHz  
  8.   SetSysClockTo36();  
  9. #elif defined SYSCLK_FREQ_48MHz  
  10.   SetSysClockTo48();  
  11. #elif defined SYSCLK_FREQ_56MHz  
  12.   SetSysClockTo56();    
  13. #elif defined SYSCLK_FREQ_72MHz  
  14.   SetSysClockTo72();  
  15. #endif  
  16.    
  17.  /* If none of the define above is enabled, the HSI is used as System clock 
  18.     source (default after reset) */   
  19. }  

 

 

[cpp] view plaincopy
 
  1. #ifdef SYSCLK_FREQ_HSE  
  2. /** 
  3.   * @brief  Selects HSE as System clock source and configure HCLK, PCLK2 
  4.   *         and PCLK1 prescalers. 
  5.   * @note   This function should be used only after reset. 
  6.   * @param  None 
  7.   * @retval None 
  8.   */  
  9. static void SetSysClockToHSE(void)  
  10. {  
  11.      ......  
  12. }  

 

 

[cpp] view plaincopy
 
  1. #elif defined SYSCLK_FREQ_24MHz  
  2. /** 
  3.   * @brief  Sets System clock frequency to 24MHz and configure HCLK, PCLK2  
  4.   *         and PCLK1 prescalers. 
  5.   * @note   This function should be used only after reset. 
  6.   * @param  None 
  7.   * @retval None 
  8.   */  
  9. static void SetSysClockTo24(void)  
  10. {  
  11.       ........  
  12. }  

 

 

[cpp] view plaincopy
 
  1. #elif defined SYSCLK_FREQ_36MHz  
  2. /** 
  3.   * @brief  Sets System clock frequency to 36MHz and configure HCLK, PCLK2  
  4.   *         and PCLK1 prescalers.  
  5.   * @note   This function should be used only after reset. 
  6.   * @param  None 
  7.   * @retval None 
  8.   */  
  9. static void SetSysClockTo36(void)  
  10. {  
  11.     ......  
  12. }  
省略几个......

 

 

[cpp] view plaincopy
 
  1. #elif defined SYSCLK_FREQ_72MHz  
  2. /** 
  3.   * @brief  Sets System clock frequency to 72MHz and configure HCLK, PCLK2  
  4.   *         and PCLK1 prescalers.  
  5.   * @note   This function should be used only after reset. 
  6.   * @param  None 
  7.   * @retval None 
  8.   */  
  9. static void SetSysClockTo72(void)  
  10. {  
  11.      .......  
  12. }  
这样结构就很明晰了。
关键字:SystemInit()函数  结构分析 引用地址:SystemInit()函数的结构分析

上一篇:端口复用和重映射
下一篇:STM32嵌入式微控制器快速上手——笔记

推荐阅读最新更新时间:2024-03-16 14:43

安全气囊系统原理及结构分析
  自上世纪80年代开始逐步在民用车辆上采用之后,安全气囊时下已经成为了非常重要的汽车被动安全设备,安全气囊的数量已经成为衡量车辆安全性的参照之一,安全气囊的结构和原理到底怎样?安全气囊需要什么条件才能打开?它有哪些缺点?在使用的过程中需要注意什么?下面就为大家一一解说。   安全气囊的原理及结构   安全气囊是“辅助约束系统”(SRS)的一部分,主要是为了防止汽车碰撞时车内乘员和车内部件间发生碰撞而造成的伤害,它通常是作为安全带的辅助安全装置出现,二者共同作用。安全气囊的保护原理是:当汽车遭受一定碰撞力量以后,气囊系统就会引发某种类似微量炸药爆炸的化学反应,隐藏在车内的安全气囊就在瞬间充气弹出,在乘员的身体与车内零部件碰
[嵌入式]
光波分复用(WDM)技术原理及结构分析
      简要介绍光波分复用系统的基本原理、结构组成、功能配置、关键技术部件和技术特点,说明光波分复用WDM系统是今后光通信发展的方向。     一、光波分复用(WDM)技术     光波分复用(Wavelength Division Multiplexing,WDM)技术是在一根光纤中同时同时多个波长的光载波信号,而每个光载波可以通过FDM或TDM方式,各自承载多路模拟或多路数字信号。其基本原理是在发送端将不同波长的光信号组合起来(复用),并耦合到光缆线路上的同一根光纤中进行传输,在接收端又将这些组合在一起的不同波长的信号分开(解复用),并作进一步处理,恢复出原信号后送入不同的终端。因此将此项技术称为光波长分割复用,简
[网络通信]
关于电子停车辅助系统主要结构分析
电子停车辅助系统(简称EPB)具有布置灵活、省空间的优点;借助电子控制系统和CAN网络,电控机械驻车制动具有如自动驻车或动态起步辅助等辅助功能和更高的舒适性。 1 EPB系统的主要结构 1.1 离合器位置传感器 离合器位置传感器的代号是G476,它安装在离合器主缸上,用来监测离合器踏板是否被踩下。离合器主缸(见图1)安装在发动机舱内,踩下离合器踏板时,推杆推动主缸的活塞。活塞的最前端有一块永久磁铁,永久磁铁可以随着活塞的移动而运动,与永久磁铁相关的三个霍尔传感器就会向控制单元发出离合器踏板的位置信号(见图2)。 图1 离合器主缸 图2 离合器位置传感器信号 1.2 驻车制动执行机构 制动执行机构(见图3)是实现驻车动力
[嵌入式]
关于电子停车辅助系统主要<font color='red'>结构</font><font color='red'>分析</font>
微创机器人从手结构的设计及运动学分析
引言 近20年来,在微创外科及其市场需求的驱动下,将先进机器人技术、计算机技术、控制技术、远程通讯技术、图形图像技术等有机结合起来的计算机辅助机器人微创手术系统得到了迅速的发展。与人类相比,机器人具有状态稳定、定位准确、灵巧性好、工作范围大、不怕辐射和病菌感染等优势 。这将给2l世纪外科手术领域带来一场新的技术革命。 微创外科手术是指外科医生在病人身体上开四个孔(1cm),一个用于插入内窥镜,另两个用于插入细长的手术工具 ,剩下的一个孔用于辅助操作。该技术可以实现手术的最少损伤、减少手术并发症、缩短手术后康复时间,降低医疗费用。因此,受到医生和患者的普遍欢迎,是外科手术发展的必然趋势,具有广阔的应用前景。 由于受到工作空间的限制
[嵌入式]
网络分析仪的工作原理、结构及信号测试的方法
网络分析仪一种能在宽频带内进行扫描测量以确定网络参量的综合性微波测量仪器。可直接测量有源或无源、可逆或不可逆的双口和单口网络的复数散射参数,并以扫频方式给出各散射参数的幅度、相位频率特性。 网络分析仪的原理:它是一个综合激励和接收的闭环测试系统,采用窄带调谐接收机的矢量网络分析仪工作时,信号源产生激励信号,接收机应在相同频率对被测件响应信号进行处理,激励源和接收机工作频率的变化应该是同步变化的。网络分析仪是依靠 锁 相方法来完成该功能。 网络分析仪的内部结构包含: 1.激励信号源:提供被测件激励输入信号 2.信号分离装置:含功分器和定向耦合器件,分别提取被测试件输入和反射信号 3.接收机:对被测件的反射,传输,输入信号
[测试测量]
网络<font color='red'>分析</font>仪的工作原理、<font color='red'>结构</font>及信号测试的方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved