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

📄 sdhal.lst

📁 针对at91sam7a3为主芯片开发板开发的spi口应用程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   0000000C   0006               LSL         R0,R0,#+0x18       ;; ZeroExt     R0,R0,#+0x18,#+0x18
   \   0000000E   000E               LSR         R0,R0,#+0x18
   \   00000010   7047               BX          LR                 ;; return
    177          }
    178          
    179          
    180          /*******************************************************************************************************************
    181          ** 函数名称: void SPI_CS_Assert()				Name:	  void SPI_CS_Assert()
    182          ** 功能描述: 片选SPI从机						Function: select the SPI slave
    183          ** 输   入: 无									Input:	  NULL
    184          ** 输   出: 无									Output:	  NULL
    185          ********************************************************************************************************************/
    186          /* 片选SPI从机  ,即是置 CS 为低电平 SPI_CS_CLR();  */

   \                                 In segment CODE, align 4, keep-with-next
    187          void SPI_CS_Assert(void)
    188          {
   \                     SPI_CS_Assert:
   \   00000000   00B5               PUSH        {LR}
    189              AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PA14_SPI0_NPCS3) ;	//SD卡使用的是 CS3信号	   					
   \   00000002   8021               MOV         R1,#+0x80
   \   00000004   C901               LSL         R1,R1,#+0x7        ;; #+0x4000
   \   00000006   ....               LDR         R0,??DataTable11   ;; 0xfffff400
   \   00000008   ........           _BLF        AT91F_PIO_SetOutput,AT91F_PIO_SetOutput??rT
    190          }
   \   0000000C   01BC               POP         {R0}
   \   0000000E   0047               BX          R0                 ;; return
    191          
    192          
    193          /*******************************************************************************************************************
    194          ** 函数名称: void SPI_CS_Deassert()				Name:	  void SPI_CS_Deassert()
    195          ** 功能描述: 不片选SPI从机						Function: not select the SPI slave
    196          ** 输   入: 无									Input:	  NULL
    197          ** 输   出: 无									Output:	  NULL
    198          ********************************************************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    199          void SPI_CS_Deassert(void)
    200          {
   \                     SPI_CS_Deassert:
   \   00000000   00B5               PUSH        {LR}
    201          	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PA14_SPI0_NPCS3) ;	//SD卡使用的是 CS3信号	
   \   00000002   8021               MOV         R1,#+0x80
   \   00000004   C901               LSL         R1,R1,#+0x7        ;; #+0x4000
   \   00000006   ....               LDR         R0,??DataTable11   ;; 0xfffff400
   \   00000008   ........           _BLF        AT91F_PIO_ClearOutput,AT91F_PIO_ClearOutput??rT
    202          }
   \   0000000C   01BC               POP         {R0}
   \   0000000E   0047               BX          R0                 ;; return
    203          
    204          //*******************************************************************************************************************
    205          //** 函数名称: void SD_ChkCard()					
    206          //** 功能描述: 检测卡是否完全插入 ,插入返回 1 			
    207          
    208          /* 读取插入检测口的状态 ,在SD中,其检测口为MCDA3 ,也就是 CS3 */

   \                                 In segment CODE, align 4, keep-with-next
    209          INT8U SD_ChkCard(void)
    210          {
   \                     SD_ChkCard:
   \   00000000   10B5               PUSH        {R4,LR}
    211          uint32 Get_PIO_Data ;
    212                  Get_PIO_Data=AT91F_PIO_GetInput(AT91C_BASE_PIOA) ;
   \   00000002   ....               LDR         R0,??DataTable11   ;; 0xfffff400
   \   00000004   ........           _BLF        AT91F_PIO_GetInput,AT91F_PIO_GetInput??rT
   \   00000008   041C               MOV         R4,R0
    213          
    214          	if ((Get_PIO_Data & AT91C_PA14_SPI0_NPCS3)==0)
   \   0000000A   201C               MOV         R0,R4
   \   0000000C   8021               MOV         R1,#+0x80
   \   0000000E   C901               LSL         R1,R1,#+0x7        ;; #+0x4000
   \   00000010   0140               AND         R1,R0
   \   00000012   081C               MOV         R0,R1
   \   00000014   0028               CMP         R0,#+0
   \   00000016   00D0               BEQ         ??SD_ChkCard_0
   \   00000018   0120               MOV         R0,#+0x1
   \                     ??SD_ChkCard_0:
   \   0000001A   0006               LSL         R0,R0,#+0x18       ;; ZeroExt     R0,R0,#+0x18,#+0x18
   \   0000001C   000E               LSR         R0,R0,#+0x18
    215          		return 0;	 							/* 未完全插入 not insert entirely */
   \   0000001E   10BC               POP         {R4}
   \   00000020   02BC               POP         {R1}
   \   00000022   0847               BX          R1                 ;; return
    216          	else
    217          		return 1;								/* 完全插入 insert entirely */
    218          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable4:
   \   00000000   3C00FEFF           DC32        0xfffe003c

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   1000FEFF           DC32        0xfffe0010

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable8:
   \   00000000   0800FEFF           DC32        0xfffe0008

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable11:
   \   00000000   00F4FFFF           DC32        0xfffff400
    219          
    220          /*******************************************************************************************************************
    221          ** 函数名称: void SD_ChkCardWP()  功能描述: 检测卡写保护						
    222          ********************************************************************************************************************/
    223          /*INT8U SD_ChkCardWP(void)
    224          {
    225          	if (SD_WP_STATUS() != 0)
    226          		return 1;								// 卡写保护
    227          	else
    228          		return 0;								// 卡未写保护
    229          }
    230          */
    231          
    232          
    233          
    234          
    235          
    236          
    237          

   Maximum stack usage in bytes:

     Function                    CSTACK
     --------                    ------
     AT91F_PIO_CfgOutput             0
     AT91F_PIO_CfgPeriph             0
     AT91F_PIO_ClearOutput           0
     AT91F_PIO_GetInput              0
     AT91F_PIO_OutputEnable          0
     AT91F_PIO_SetOutput             0
     AT91F_PMC_EnablePeriphClock     0
     AT91F_SPI0_CfgPIO               4
     AT91F_SPI0_CfgPMC               4
     SD_ChkCard                      8
     SD_HardWareInit                 4
     SPI_CS_Assert                   4
     SPI_CS_Deassert                 4
     SPI_Clk400k                     0
     SPI_ClkToMax                    0
     SPI_RecByte                     0
     SPI_SendByte                    0


   Segment part sizes:

     Function/Label              Bytes
     --------------              -----
     AT91F_PIO_CfgPeriph           12
     AT91F_PIO_CfgOutput            6
     AT91F_PIO_GetInput             4
     AT91F_PIO_SetOutput            4
     AT91F_PIO_ClearOutput          4
     AT91F_PIO_OutputEnable         4
     AT91F_PMC_EnablePeriphClock    4
     AT91F_SPI0_CfgPMC             20
     AT91F_SPI0_CfgPIO             24
     SD_HardWareInit               64
     SPI_Clk400k                    8
     SPI_ClkToMax                   8
     SPI_SendByte                  28
     ??SPI_RecByte_0               18
     SPI_CS_Assert                 16
     SPI_CS_Deassert               16
     SD_ChkCard                    36
     ??DataTable4                   4
     ??DataTable7                   4
     ??DataTable8                   4
     ??DataTable11                  4
      Others                      136

 
 428 bytes in segment CODE
 
 210 bytes of CODE memory (+ 218 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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