⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysinit.lst

📁 Cortex-M4+example
💻 LST
📖 第 1 页 / 共 3 页
字号:
    173              return pll_freq;
   \   000000F0   0800               MOVS     R0,R1
   \   000000F2   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \                     ??pll_init_1:
   \   000000F4   02BD               POP      {R1,PC}          ;; return
    174          }
    175          
    176          //-------------------------------------------------------------------------*
    177          //函数名: set_sys_dividers                                                 *
    178          //功  能: 设置系系统分频器                                                 * 
    179          //参  数: 预分频值   							   *	
    180          //返  回: 无                                                               *
    181          //说  明: 此函数必须放在RAM里执行,否则会产生错误e2448。当FLASH时钟分频改变* 
    182          //        时,必须禁止FLASH的预取功能。在时钟分频改变之后,必须延时一小段时*
    183          //	 间才可以从新使能预取功能。                                        * 
    184          //-------------------------------------------------------------------------*

   \                                 In section .textrw, align 4, keep-with-next
    185          __ramfunc void set_sys_dividers(uint32 outdiv1, uint32 outdiv2, uint32 outdiv3, uint32 outdiv4)
    186          {
   \                     set_sys_dividers:
   \   00000000   70B4               PUSH     {R4-R6}
    187              uint32 temp_reg;
    188              uint8 i;
    189              //保存FMC_PFAPR当前的值
    190              temp_reg = FMC_PFAPR;
   \   00000002   104C               LDR.N    R4,??set_sys_dividers_0  ;; 0x4001f000
   \   00000004   2468               LDR      R4,[R4, #+0]
    191              
    192              //通过M&PFD置位M0PFD来禁止预取功能
    193              FMC_PFAPR |= FMC_PFAPR_M7PFD_MASK | FMC_PFAPR_M6PFD_MASK | FMC_PFAPR_M5PFD_MASK
    194                               | FMC_PFAPR_M4PFD_MASK | FMC_PFAPR_M3PFD_MASK | FMC_PFAPR_M2PFD_MASK
    195                               | FMC_PFAPR_M1PFD_MASK | FMC_PFAPR_M0PFD_MASK;
   \   00000006   0F4D               LDR.N    R5,??set_sys_dividers_0  ;; 0x4001f000
   \   00000008   2D68               LDR      R5,[R5, #+0]
   \   0000000A   55F47F05           ORRS     R5,R5,#0xFF0000
   \   0000000E   0D4E               LDR.N    R6,??set_sys_dividers_0  ;; 0x4001f000
   \   00000010   3560               STR      R5,[R6, #+0]
    196              
    197              //给时钟分频器设置期望值  
    198              SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(outdiv1) | SIM_CLKDIV1_OUTDIV2(outdiv2) 
    199                                | SIM_CLKDIV1_OUTDIV3(outdiv3) | SIM_CLKDIV1_OUTDIV4(outdiv4);
   \   00000012   0906               LSLS     R1,R1,#+24
   \   00000014   11F07061           ANDS     R1,R1,#0xF000000
   \   00000018   51EA0070           ORRS     R0,R1,R0, LSL #+28
   \   0000001C   1105               LSLS     R1,R2,#+20
   \   0000001E   11F47001           ANDS     R1,R1,#0xF00000
   \   00000022   0843               ORRS     R0,R1,R0
   \   00000024   1904               LSLS     R1,R3,#+16
   \   00000026   11F47021           ANDS     R1,R1,#0xF0000
   \   0000002A   0843               ORRS     R0,R1,R0
   \   0000002C   0649               LDR.N    R1,??set_sys_dividers_0+0x4  ;; 0x40048044
   \   0000002E   0860               STR      R0,[R1, #+0]
    200              
    201              //等待分频器改变
    202              for (i = 0 ; i < outdiv4 ; i++)
   \   00000030   0020               MOVS     R0,#+0
   \   00000032   00E0               B.N      ??set_sys_dividers_1
   \                     ??set_sys_dividers_2:
   \   00000034   401C               ADDS     R0,R0,#+1
   \                     ??set_sys_dividers_1:
   \   00000036   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000038   9842               CMP      R0,R3
   \   0000003A   FBD3               BCC.N    ??set_sys_dividers_2
    203              {}
    204              
    205              //从新存FMC_PFAPR的原始值
    206              FMC_PFAPR = temp_reg; 
   \   0000003C   0148               LDR.N    R0,??set_sys_dividers_0  ;; 0x4001f000
   \   0000003E   0460               STR      R4,[R0, #+0]
    207              
    208              return;
   \   00000040   70BC               POP      {R4-R6}
   \   00000042   7047               BX       LR               ;; return
   \                     ??set_sys_dividers_0:
   \   00000044   00F00140           DC32     0x4001f000
   \   00000048   44800440           DC32     0x40048044
    209          }

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3:
   \   00000000   38800440           DC32     0x40048038

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_1:
   \   00000000   ........           DC32     core_clk_mhz

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_2:
   \   00000000   ........           DC32     core_clk_khz

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_3:
   \   00000000   44800440           DC32     0x40048044

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_4:
   \   00000000   ........           DC32     periph_clk_khz

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_5:
   \   00000000   04800440           DC32     0x40048004

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_6:
   \   00000000   18900440           DC32     0x40049018

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_7:
   \   00000000   40800440           DC32     0x40048040

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_8:
   \   00000000   0CB00440           DC32     0x4004b00c

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_9:
   \   00000000   01400640           DC32     0x40064001

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_10:
   \   00000000   34800440           DC32     0x40048034

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_11:
   \   00000000   08C00740           DC32     0x4007c008

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_12:
   \   00000000   00400640           DC32     0x40064000

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_13:
   \   00000000   06400640           DC32     0x40064006

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_14:
   \   00000000   04400640           DC32     0x40064004

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable3_15:
   \   00000000   05400640           DC32     0x40064005
    210          
    211          
    212          
    213          
    214          
    215          

   Maximum stack usage in bytes:

     Function         .cstack
     --------         -------
     fb_clk_init           0
     pll_init              8
     set_sys_dividers     12
     sysinit               8
     trace_clk_init        0


   Section sizes:

     Function/Label   Bytes
     --------------   -----
     core_clk_khz        4
     core_clk_mhz        4
     periph_clk_khz      4
     sysinit            72
     trace_clk_init     22
     fb_clk_init        22
     pll_init          246
     set_sys_dividers   76
     ??DataTable3        4
     ??DataTable3_1      4
     ??DataTable3_2      4
     ??DataTable3_3      4
     ??DataTable3_4      4
     ??DataTable3_5      4
     ??DataTable3_6      4
     ??DataTable3_7      4
     ??DataTable3_8      4
     ??DataTable3_9      4
     ??DataTable3_10     4
     ??DataTable3_11     4
     ??DataTable3_12     4
     ??DataTable3_13     4
     ??DataTable3_14     4
     ??DataTable3_15     4

 
  12 bytes in section .bss
 426 bytes in section .text
  76 bytes in section .textrw
 
 502 bytes of CODE memory
  12 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -