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

📄 dm642init.asm

📁 这是DM642(EVM开发板)的视频采集和视频输出到网络调用的一个很好的例子原代码,用CCS3.3可以打开,调试通过.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,B10,B11,SP,A16,A17,A18,A19,A20,   *
;*                           A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,B16, *
;*                           B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28, *
;*                           B29,B30,B31                                      *
;*   Local Frame Size  : 32 Args + 0 Auto + 16 Save = 48 byte                 *
;******************************************************************************
_DM642EMAC_getConfig:
;** --------------------------------------------------------------------------*

           STW     .D2T1   A11,*SP--(48)     ; |64| 
||         MV      .L1X    SP,A31            ; |64| 

           MV      .L2     B3,B11            ; |64| 
||         STW     .D1T1   A10,*-A31(12)     ; |64| 
||         STDW    .D2T2   B11:B10,*+SP(40)  ; |64| 

$C$DW$25	.dwtag  DW_TAG_formal_parameter, DW_AT_name("pMacAddr")
	.dwattr $C$DW$25, DW_AT_TI_symbol_name("_pMacAddr")
	.dwattr $C$DW$25, DW_AT_type(*$C$DW$T$28)
	.dwattr $C$DW$25, DW_AT_location[DW_OP_reg4]
$C$DW$26	.dwtag  DW_TAG_formal_parameter, DW_AT_name("pIntVector")
	.dwattr $C$DW$26, DW_AT_TI_symbol_name("_pIntVector")
	.dwattr $C$DW$26, DW_AT_type(*$C$DW$T$29)
	.dwattr $C$DW$26, DW_AT_location[DW_OP_reg20]
           MVKL    .S1     _bMacAddr,A3
           MVKH    .S1     _bMacAddr,A3
           MV      .L1     A3,A11            ; |65| 
           LDBU    .D1T2   *A11,B5           ; |65| 
           LDBU    .D1T1   *+A11(1),A8       ; |65| 
           LDBU    .D1T1   *+A11(2),A7       ; |65| 

           LDBU    .D1T1   *+A11(3),A6       ; |65| 
||         MVKL    .S1     $C$SL7+0,A5       ; |65| 

           LDBU    .D1T1   *+A11(4),A4       ; |65| 
||         MVKL    .S2     _printf,B4        ; |65| 
||         MVKH    .S1     $C$SL7+0,A5       ; |65| 
||         MV      .L1     A4,A10            ; |64| 
||         MV      .L2     B4,B10            ; |64| 

           STW     .D2T1   A5,*+SP(4)        ; |65| 
||         MVKH    .S2     _printf,B4        ; |65| 

           CALL    .S2     B4                ; |65| 
||         STW     .D2T2   B5,*+SP(8)        ; |65| 
||         LDBU    .D1T1   *+A11(5),A3       ; |65| 

           STW     .D2T1   A8,*+SP(12)       ; |65| 
           STW     .D2T1   A7,*+SP(16)       ; |65| 
           STW     .D2T1   A6,*+SP(20)       ; |65| 
           STW     .D2T1   A4,*+SP(24)       ; |65| 

           ADDKPC  .S2     $C$RL4,B3,0       ; |65| 
||         STW     .D2T1   A3,*+SP(28)       ; |65| 

$C$RL4:    ; CALL OCCURS {_printf}           ; |65| 
;** --------------------------------------------------------------------------*
           MVKL    .S2     _mmCopy,B5        ; |70| 
           MVKH    .S2     _mmCopy,B5        ; |70| 
           CALL    .S2     B5                ; |70| 
           ADDKPC  .S2     $C$RL5,B3,3       ; |70| 

           MV      .L1     A10,A4            ; |70| 
||         MV      .L2X    A11,B4            ; |70| 
||         MVK     .S1     0x6,A6            ; |70| 

$C$RL5:    ; CALL OCCURS {_mmCopy}           ; |70| 
;** --------------------------------------------------------------------------*
           MVK     .L2     15,B4             ; |71| 

           MV      .L2     B11,B3            ; |72| 
||         STW     .D2T2   B4,*B10           ; |71| 
||         MV      .L1X    SP,A31            ; |72| 

           RET     .S2     B3                ; |72| 
||         LDW     .D1T1   *+A31(36),A10     ; |72| 
||         LDDW    .D2T2   *+SP(40),B11:B10  ; |72| 

           LDW     .D2T1   *++SP(48),A11     ; |72| 
	.dwpsn	file "dm642init.c",line 72,column 1,is_stmt
           NOP             4
           ; BRANCH OCCURS {B3}              ; |72| 
	.dwattr $C$DW$24, DW_AT_TI_end_file("dm642init.c")
	.dwattr $C$DW$24, DW_AT_TI_end_line(0x48)
	.dwattr $C$DW$24, DW_AT_TI_end_column(0x01)
	.dwendtag $C$DW$24

;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
$C$SL1:	.string	"No Link",0
$C$SL2:	.string	"10Mb/s Half Duplex",0
$C$SL3:	.string	"10Mb/s Full Duplex",0
$C$SL4:	.string	"100Mb/s Half Duplex",0
$C$SL5:	.string	"100Mb/s Full Duplex",0
$C$SL6:	.string	"Link Status: %s",10,0
$C$SL7:	.string	"Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02x",10,0
;*****************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                             *
;*****************************************************************************
	.global	_printf
	.global	_mmCopy
	.global	_EVMDM642_init
	.global	_EVMDM642_LED_init
	.global	_MDIO_phyRegWrite

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************
$C$DW$T$3	.dwtag  DW_TAG_pointer_type
	.dwattr $C$DW$T$3, DW_AT_address_class(0x20)

$C$DW$T$21	.dwtag  DW_TAG_subroutine_type
	.dwattr $C$DW$T$21, DW_AT_language(DW_LANG_C)
$C$DW$27	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$3)
$C$DW$28	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$3)
$C$DW$29	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$20)
	.dwendtag $C$DW$T$21


$C$DW$T$24	.dwtag  DW_TAG_subroutine_type
	.dwattr $C$DW$T$24, DW_AT_language(DW_LANG_C)
$C$DW$30	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$23)
	.dwendtag $C$DW$T$24


$C$DW$T$25	.dwtag  DW_TAG_subroutine_type
	.dwattr $C$DW$T$25, DW_AT_language(DW_LANG_C)

$C$DW$T$30	.dwtag  DW_TAG_subroutine_type
	.dwattr $C$DW$T$30, DW_AT_language(DW_LANG_C)
$C$DW$31	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$28)
$C$DW$32	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$29)
	.dwendtag $C$DW$T$30


$C$DW$T$31	.dwtag  DW_TAG_subroutine_type
	.dwattr $C$DW$T$31, DW_AT_language(DW_LANG_C)
$C$DW$33	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$20)
$C$DW$34	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$20)
	.dwendtag $C$DW$T$31

$C$DW$T$4	.dwtag  DW_TAG_base_type, DW_AT_name("bool")
	.dwattr $C$DW$T$4, DW_AT_encoding(DW_ATE_boolean)
	.dwattr $C$DW$T$4, DW_AT_byte_size(0x01)
$C$DW$T$5	.dwtag  DW_TAG_base_type, DW_AT_name("signed char")
	.dwattr $C$DW$T$5, DW_AT_encoding(DW_ATE_signed_char)
	.dwattr $C$DW$T$5, DW_AT_byte_size(0x01)
$C$DW$T$6	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned char")
	.dwattr $C$DW$T$6, DW_AT_encoding(DW_ATE_unsigned_char)
	.dwattr $C$DW$T$6, DW_AT_byte_size(0x01)
$C$DW$T$27	.dwtag  DW_TAG_typedef, DW_AT_name("UINT8")
	.dwattr $C$DW$T$27, DW_AT_type(*$C$DW$T$6)
	.dwattr $C$DW$T$27, DW_AT_language(DW_LANG_C)
$C$DW$T$28	.dwtag  DW_TAG_pointer_type, DW_AT_type(*$C$DW$T$27)
	.dwattr $C$DW$T$28, DW_AT_address_class(0x20)

$C$DW$T$42	.dwtag  DW_TAG_array_type, DW_AT_type(*$C$DW$T$27)
	.dwattr $C$DW$T$42, DW_AT_language(DW_LANG_C)
	.dwattr $C$DW$T$42, DW_AT_byte_size(0x08)
$C$DW$35	.dwtag  DW_TAG_subrange_type
	.dwattr $C$DW$35, DW_AT_upper_bound(0x07)
	.dwendtag $C$DW$T$42

$C$DW$T$7	.dwtag  DW_TAG_base_type, DW_AT_name("wchar_t")
	.dwattr $C$DW$T$7, DW_AT_encoding(DW_ATE_signed_char)
	.dwattr $C$DW$T$7, DW_AT_byte_size(0x02)
$C$DW$T$8	.dwtag  DW_TAG_base_type, DW_AT_name("short")
	.dwattr $C$DW$T$8, DW_AT_encoding(DW_ATE_signed)
	.dwattr $C$DW$T$8, DW_AT_byte_size(0x02)
$C$DW$T$9	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned short")
	.dwattr $C$DW$T$9, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr $C$DW$T$9, DW_AT_byte_size(0x02)
$C$DW$T$47	.dwtag  DW_TAG_typedef, DW_AT_name("Uint16")
	.dwattr $C$DW$T$47, DW_AT_type(*$C$DW$T$9)
	.dwattr $C$DW$T$47, DW_AT_language(DW_LANG_C)
$C$DW$T$10	.dwtag  DW_TAG_base_type, DW_AT_name("int")
	.dwattr $C$DW$T$10, DW_AT_encoding(DW_ATE_signed)
	.dwattr $C$DW$T$10, DW_AT_byte_size(0x04)

$C$DW$T$51	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*$C$DW$T$10)
	.dwattr $C$DW$T$51, DW_AT_language(DW_LANG_C)
$C$DW$36	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$50)
$C$DW$37	.dwtag  DW_TAG_unspecified_parameters
	.dwendtag $C$DW$T$51

$C$DW$T$11	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned int")
	.dwattr $C$DW$T$11, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr $C$DW$T$11, DW_AT_byte_size(0x04)
$C$DW$T$20	.dwtag  DW_TAG_typedef, DW_AT_name("uint")
	.dwattr $C$DW$T$20, DW_AT_type(*$C$DW$T$11)
	.dwattr $C$DW$T$20, DW_AT_language(DW_LANG_C)
$C$DW$T$29	.dwtag  DW_TAG_pointer_type, DW_AT_type(*$C$DW$T$20)
	.dwattr $C$DW$T$29, DW_AT_address_class(0x20)

$C$DW$T$56	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*$C$DW$T$20)
	.dwattr $C$DW$T$56, DW_AT_language(DW_LANG_C)
$C$DW$38	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$20)
$C$DW$39	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$20)
$C$DW$40	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$47)
	.dwendtag $C$DW$T$56

$C$DW$T$23	.dwtag  DW_TAG_typedef, DW_AT_name("Uint32")
	.dwattr $C$DW$T$23, DW_AT_type(*$C$DW$T$11)
	.dwattr $C$DW$T$23, DW_AT_language(DW_LANG_C)
$C$DW$T$12	.dwtag  DW_TAG_base_type, DW_AT_name("long")
	.dwattr $C$DW$T$12, DW_AT_encoding(DW_ATE_signed)
	.dwattr $C$DW$T$12, DW_AT_byte_size(0x08)
	.dwattr $C$DW$T$12, DW_AT_bit_size(0x28)
	.dwattr $C$DW$T$12, DW_AT_bit_offset(0x18)
$C$DW$T$13	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned long")
	.dwattr $C$DW$T$13, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr $C$DW$T$13, DW_AT_byte_size(0x08)
	.dwattr $C$DW$T$13, DW_AT_bit_size(0x28)
	.dwattr $C$DW$T$13, DW_AT_bit_offset(0x18)
$C$DW$T$14	.dwtag  DW_TAG_base_type, DW_AT_name("long long")
	.dwattr $C$DW$T$14, DW_AT_encoding(DW_ATE_signed)
	.dwattr $C$DW$T$14, DW_AT_byte_size(0x08)
$C$DW$T$15	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned long long")
	.dwattr $C$DW$T$15, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr $C$DW$T$15, DW_AT_byte_size(0x08)
$C$DW$T$16	.dwtag  DW_TAG_base_type, DW_AT_name("float")
	.dwattr $C$DW$T$16, DW_AT_encoding(DW_ATE_float)
	.dwattr $C$DW$T$16, DW_AT_byte_size(0x04)
$C$DW$T$17	.dwtag  DW_TAG_base_type, DW_AT_name("double")
	.dwattr $C$DW$T$17, DW_AT_encoding(DW_ATE_float)
	.dwattr $C$DW$T$17, DW_AT_byte_size(0x08)
$C$DW$T$18	.dwtag  DW_TAG_base_type, DW_AT_name("long double")
	.dwattr $C$DW$T$18, DW_AT_encoding(DW_ATE_float)
	.dwattr $C$DW$T$18, DW_AT_byte_size(0x08)
$C$DW$T$48	.dwtag  DW_TAG_base_type, DW_AT_name("signed char")
	.dwattr $C$DW$T$48, DW_AT_encoding(DW_ATE_signed_char)
	.dwattr $C$DW$T$48, DW_AT_byte_size(0x01)
$C$DW$T$49	.dwtag  DW_TAG_const_type
	.dwattr $C$DW$T$49, DW_AT_type(*$C$DW$T$48)
$C$DW$T$50	.dwtag  DW_TAG_pointer_type, DW_AT_type(*$C$DW$T$49)
	.dwattr $C$DW$T$50, DW_AT_address_class(0x20)
$C$DW$T$63	.dwtag  DW_TAG_pointer_type, DW_AT_type(*$C$DW$T$48)
	.dwattr $C$DW$T$63, DW_AT_address_class(0x20)

$C$DW$T$64	.dwtag  DW_TAG_array_type, DW_AT_type(*$C$DW$T$63)
	.dwattr $C$DW$T$64, DW_AT_language(DW_LANG_C)
	.dwattr $C$DW$T$64, DW_AT_byte_size(0x14)
$C$DW$41	.dwtag  DW_TAG_subrange_type
	.dwattr $C$DW$41, DW_AT_upper_bound(0x04)
	.dwendtag $C$DW$T$64

	.dwattr $C$DW$CU, DW_AT_language(DW_LANG_C)

;***************************************************************
;* DWARF REGISTER MAP                                          *
;***************************************************************

$C$DW$42	.dwtag  DW_TAG_TI_assign_register, DW_AT_name("A0")
	.dwattr $C$DW$42, DW_AT_location[DW_OP_reg0]
$C$DW$43	.dwtag  DW_TAG_TI_assign_register, DW_AT_name("A1")

⌨️ 快捷键说明

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