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

📄 can_ex1.cod

📁 can bus 源代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
 000002B6  FCA8      BL          CAN_receive?T  ; T=0x0C09  (2)
 000002B8  2800      CMP         R0,#0x0 ; CAN_receive?T
 000002BA  D1F8      BNE         L_9  ; T=0x000002AE
  106:       LED_Byte (msg_rece.data[0]);
 000002BC  A801      ADD         R0,R13,#0x4
 000002BE  7800      LDRB        R0,[R0,#0x0] ; msg_rece+4
 000002C0  F000      BL          LED_Byte?T  ; T=0x0315  (1)
 000002C2  F828      BL          LED_Byte?T  ; T=0x0315  (2)
  108:   }
 000002C4  E7F3      B           L_9  ; T=0x000002AE
 000002C6            ; SCOPE-END
  109: }
 000002C6  B004      ADD         R13,#0x10
 000002C8            ; END 'task_rece_CAN?T'


*** Disassembly of Segment '?PR?get_AD?T?CAN_Ex1':
 FILE: 'CAN_Ex1.c'
 000002C8          get_AD?T:  ; FUNCTION START
  118: unsigned char get_AD (void)  {
 000002C8            ; SCOPE-START
  121:   ADCR |= 0x01000000;                 /* Start A/D Conversion                */
 000002C8  4A0A      LDR         R2,[R15,#40] ; PoolRef @0x2F4
 000002CA  480B      LDR         R0,[R15,#44] ; PoolRef @0x2F8
 000002CC  6801      LDR         R1,[R0,#0x0]
 000002CE  4311      ORR         R1,R2
 000002D0  6001      STR         R1,[R0,#0x0]
  123:   do  {
 000002D2          L_12:
  124:     val = ADDR;                       /* Read A/D Data Register              */
 000002D2  480A      LDR         R0,[R15,#40] ; PoolRef @0x2FC
 000002D4  6801      LDR         R1,[R0,#0x0]
 000002D6  ---- Variable 'val' assigned to Register 'R1' ----
  125:   } 
 000002D6  1C08      MOV         R0,R1 ; val
 000002D8  4A09      LDR         R2,[R15,#36] ; PoolRef @0x300
 000002DA  4210      TST         R0,R2 ; val
 000002DC  D0F9      BEQ         L_12  ; T=0x000002D2
  128:   ADCR &= ~0x01000000;                /* Stop A/D Conversion                 */
 000002DE  4B05      LDR         R3,[R15,#20] ; PoolRef @0x2F4
 000002E0  4805      LDR         R0,[R15,#20] ; PoolRef @0x2F8
 000002E2  6802      LDR         R2,[R0,#0x0]
 000002E4  439A      BIC         R2,R3
 000002E6  6002      STR         R2,[R0,#0x0]
  129:   val = (val >> 8) & 0xFF;            /* Extract AIN0 Value                  */
 000002E8  0A09      LSR         R1,R1,#0x8 ; val
 000002EA  20FF      MOV         R0,#0xFF
 000002EC  4001      AND         R1,R0
  131:   return val;
 000002EE  1C08      MOV         R0,R1 ; val
 000002F0            ; SCOPE-END
  132: }
 000002F0  4770      BX          R14
 000002F2            ; END 'get_AD?T'

 000002F2            ALIGN       4
 000002F4  01000000  DD          0x1000000		; POOL-Entry U=2
 000002F8  E0034000  DD          0xE0034000		; POOL-Entry U=2
 000002FC  E0034004  DD          0xE0034004		; POOL-Entry U=1
LARM LINKER/LOCATER V2.32a                                                            03/15/2007  08:58:24  PAGE 10


 00000300  80000000  DD          0x80000000		; POOL-Entry U=1

*** Disassembly of Segment '?PR?LED_Init?T?CAN_Ex1':
 FILE: 'CAN_Ex1.c'
 00000304          LED_Init?T:  ; FUNCTION START
   46: void LED_Init (void) {
   47:   IODIR1 = 0x00FF0000;                /* P1.16..22 defined as Outputs        */
 00000304  4901      LDR         R1,[R15,#4] ; PoolRef @0x30C
 00000306  4802      LDR         R0,[R15,#8] ; PoolRef @0x310
 00000308  6001      STR         R1,[R0,#0x0]
   48: }
 0000030A  4770      BX          R14
 0000030C            ; END 'LED_Init?T'

 0000030C  00FF0000  DD          0xFF0000		; POOL-Entry U=1
 00000310  E0028018  DD          0xE0028018		; POOL-Entry U=1

*** Disassembly of Segment '?PR?LED_Byte?T?CAN_Ex1':
 FILE: 'CAN_Ex1.c'
 00000314          LED_Byte?T:  ; FUNCTION START
   50: void LED_Byte (unsigned char LED_state) {
 00000314  1C01      MOV         R1,R0 ; LED_state
 00000316  ---- Variable 'LED_state' assigned to Register 'R1' ----
   51:   IOCLR1 = 0x00FF0000;
 00000316  4A06      LDR         R2,[R15,#24] ; PoolRef @0x330
 00000318  4806      LDR         R0,[R15,#24] ; PoolRef @0x334
 0000031A  6002      STR         R2,[R0,#0x0]
   52:   IOSET1 = ((unsigned int) LED_state) << 16 & 0x00FF0000;
 0000031C  1C08      MOV         R0,R1 ; LED_state
 0000031E  0601      LSL         R1,R0,#0x18 ; LED_state
 00000320  0E09      LSR         R1,R1,#0x18
 00000322  0409      LSL         R1,R1,#0x10
 00000324  4802      LDR         R0,[R15,#8] ; PoolRef @0x330
 00000326  4001      AND         R1,R0
 00000328  4803      LDR         R0,[R15,#12] ; PoolRef @0x338
 0000032A  6001      STR         R1,[R0,#0x0]
   53: }
 0000032C  4770      BX          R14
 0000032E            ; END 'LED_Byte?T'

 0000032E            ALIGN       4
 00000330  00FF0000  DD          0xFF0000		; POOL-Entry U=2
 00000334  E002801C  DD          0xE002801C		; POOL-Entry U=1
 00000338  E0028014  DD          0xE0028014		; POOL-Entry U=1

*** Disassembly of Segment '?PR?main?CAN_Ex1':
 FILE: 'CAN_Ex1.c'
 0000033C          ?C?INIT:  ; FUNCTION START
 0000033C  4814      LDR         R0,[R15,#80] ; PoolRef @0x390 ; ?C?CLRTAB
 0000033E          L_376:
 0000033E  C806      LDMIA       R0!,{R1-R2}
 00000340  1C0B      MOV         R3,R1
 00000342  4313      ORR         R3,R2
 00000344  D005      BEQ         L_378  ; T=0x0352
 00000346  2300      MOV         R3,#0x0
 00000348          L_377:
 00000348  700B      STRB        R3,[R1,#0x0]
 0000034A  1C49      ADD         R1,R1,#0x1
 0000034C  4291      CMP         R1,R2
 0000034E  D1FB      BNE         L_377  ; T=0x0348
 00000350  E7F5      B           L_376  ; T=0x0000033E
 00000352          L_378:
 00000352  4810      LDR         R0,[R15,#64] ; PoolRef @0x394 ; ?C?INITTAB
 00000354          L_379:
 00000354  1CC0      ADD         R0,R0,#0x3
LARM LINKER/LOCATER V2.32a                                                            03/15/2007  08:58:24  PAGE 11


 00000356  2303      MOV         R3,#0x3
 00000358  4398      BIC         R0,R3
 0000035A  C806      LDMIA       R0!,{R1-R2}
 0000035C  1C0B      MOV         R3,R1
 0000035E  4313      ORR         R3,R2
 00000360  D006      BEQ         L_381  ; T=0x0370
 00000362          L_380:
 00000362  7803      LDRB        R3,[R0,#0x0]
 00000364  1C40      ADD         R0,R0,#0x1
 00000366  700B      STRB        R3,[R1,#0x0]
 00000368  1C49      ADD         R1,R1,#0x1
 0000036A  4291      CMP         R1,R2
 0000036C  D1F9      BNE         L_380  ; T=0x0362
 0000036E  E7F1      B           L_379  ; T=0x00000354
 00000370          L_381:
  139: void main (void)  {                   /* Program execution starts here       */
 00000370          main:
 00000370  B500      PUSH        {LR}
  140:   ADCR   = 0x00270401;                /* Setup A/D: 10-bit AIN0 @ 3MHz       */
 00000372  4909      LDR         R1,[R15,#36] ; PoolRef @0x398
 00000374  4809      LDR         R0,[R15,#36] ; PoolRef @0x39C
 00000376  6001      STR         R1,[R0,#0x0]
  142:   LED_Init ();                        /* Initialize LED                      */
 00000378  F7FF      BL          LED_Init?T  ; T=0x0305  (1)
 0000037A  FFC4      BL          LED_Init?T  ; T=0x0305  (2)
  143:   LED_Byte (0);                       /* Turn the LED off                    */
 0000037C  2000      MOV         R0,#0x0
 0000037E  F7FF      BL          LED_Byte?T  ; T=0x0315  (1)
 00000380  FFC9      BL          LED_Byte?T  ; T=0x0315  (2)
  145:   os_sys_init (task_send_CAN);        /* Initialize and start task 1         */
 00000382  4807      LDR         R0,[R15,#28] ; PoolRef @0x3A0 ; task_send_CAN?T
 00000384  2200      MOV         R2,#0x0
 00000386  2100      MOV         R1,#0x0
 00000388  2300      MOV         R3,#0x0
 0000038A  F001      BL          os_sys_init_user?T  ; T=0x1A9D  (1)
 0000038C  FB87      BL          os_sys_init_user?T  ; T=0x1A9D  (2)
  146: }
 0000038E  BD00      POP         {PC}
 00000390            ; END 'main'

 00000390  00000188  DD          ?C?CLRTAB		; POOL-Entry U=1
 00000394  000001B8  DD          ?C?INITTAB		; POOL-Entry U=1
 00000398  00270401  DD          0x270401		; POOL-Entry U=1
 0000039C  E0034000  DD          0xE0034000		; POOL-Entry U=1
 000003A0  000001D9  DD          task_send_CAN?T		; POOL-Entry U=1

*** Disassembly of Segment '?PR?CAN_hw_setup?T?CAN_hw':
 FILE: 'CAN_hw.c'
 000003A4          CAN_hw_setup?T:  ; FUNCTION START
   81: CAN_ERROR CAN_hw_setup (void)  {
   83:     PINSEL1 &= 0xFFEBFFFF;            /* Reset CAN1 bits                     */
 000003A4  4A19      LDR         R2,[R15,#100] ; PoolRef @0x40C
 000003A6  481A      LDR         R0,[R15,#104] ; PoolRef @0x410
 000003A8  6801      LDR         R1,[R0,#0x0]
 000003AA  4391      BIC         R1,R2
 000003AC  6001      STR         R1,[R0,#0x0]
   84:     PINSEL1 |= 0x00040000;            /* Set CAN1 bits to 01                 */
 000003AE  4A19      LDR         R2,[R15,#100] ; PoolRef @0x414
 000003B0  4817      LDR         R0,[R15,#92] ; PoolRef @0x410
 000003B2  6801      LDR         R1,[R0,#0x0]
 000003B4  4311      ORR         R1,R2
 000003B6  6001      STR         R1,[R0,#0x0]
   87:     *(&VICVectAddr0 + VIC_NUM_CTRL1_TX) = (unsigned long) CAN_TX1_ISR;
 000003B8  4917      LDR         R1,[R15,#92] ; PoolRef @0x418 ; CAN_TX1_ISR?A
 000003BA  4818      LDR         R0,[R15,#96] ; PoolRef @0x41C
LARM LINKER/LOCATER V2.32a                                                            03/15/2007  08:58:24  PAGE 12


 000003BC  6001      STR         R1,[R0,#0x0]
   88:     *(&VICVectCntl0 + VIC_NUM_CTRL1_TX) = 0x20 | 20;
 000003BE  2134      MOV         R1,#0x34
 000003C0  4817      LDR         R0,[R15,#92] ; PoolRef @0x420
 000003C2  6001      STR         R1,[R0,#0x0]
   90:     *(&VICVectAddr0 + VIC_NUM_CTRL1_RX) = (unsigned long) CAN_RX1_ISR;       
 000003C4  4917      LDR         R1,[R15,#92] ; PoolRef @0x424 ; CAN_RX1_ISR?A
 000003C6  4818      LDR         R0,[R15,#96] ; PoolRef @0x428
 000003C8  6001      STR         R1,[R0,#0x0]
   91:     *(&VICVectCntl0 + VIC_NUM_CTRL1_RX) = 0x20 | 26;
 000003CA  213A      MOV         R1,#0x3A
 000003CC  4817      LDR         R0,[R15,#92] ; PoolRef @0x42C
 000003CE  6001      STR         R1,[R0,#0x0]
   93:     VICIntEnable = 0x04100000;        /* Enable CAN Tx1 and Rx1 Interrupt    */
 000003D0  4917      LDR         R1,[R15,#92] ; PoolRef @0x430
 000003D2  4818      LDR         R0,[R15,#96] ; PoolRef @0x434
 000003D4  6001      STR         R1,[R0,#0x0]
   96:     PINSEL1 &= 0xFFFC3FFF;            /* Reset CAN2 bits                     */
 000003D6  4A18      LDR         R2,[R15,#96] ; PoolRef @0x438
 000003D8  480D      LDR         R0,[R15,#52] ; PoolRef @0x410
 000003DA  6801      LDR         R1,[R0,#0x0]
 000003DC  4391      BIC         R1,R2
 000003DE  6001      STR         R1,[R0,#0x0]
   97:     PINSEL1 |= 0x00014000;            /* Set CAN2 bits to 11                 */
 000003E0  4A16      LDR         R2,[R15,#88] ; PoolRef @0x43C
 000003E2  480B      LDR         R0,[R15,#44] ; PoolRef @0x410
 000003E4  6801      LDR         R1,[R0,#0x0]
 000003E6  4311      ORR         R1,R2
 000003E8  6001      STR         R1,[R0,#0x0]
  100:     *(&VICVectAddr0 + VIC_NUM_CTRL2_TX) = (unsigned long) CAN_TX2_ISR;
 000003EA  4915      LDR         R1,[R15,#84] ; PoolRef @0x440 ; CAN_TX2_ISR?A
 000003EC  4815      LDR         R0,[R15,#84] ; PoolRef @0x444
 000003EE  6001      STR         R1,[R0,#0x0]
  101:     *(&VICVectCntl0 + VIC_NUM_CTRL2_TX) = 0x20 | 21;
 000003F0  2135      MOV         R1,#0x35
 000003F2  4815      LDR         R0,[R15,#84] ; PoolRef @0x448
 000003F4  6001      STR         R1,[R0,#0x0]
  103:     *(&VICVectAddr0 + VIC_NUM_CTRL2_RX) = (unsigned long) CAN_RX2_ISR;
 000003F6  4915      LDR         R1,[R15,#84] ; PoolRef @0x44C ; CAN_RX2_ISR?A
 000003F8  4815      LDR         R0,[R15,#84] ; PoolRef @0x450
 000003FA  6001      STR         R1,[R0,#0x0]
  104:     *(&VICVectCntl0 + VIC_NUM_CTRL2_RX) = 0x20 | 27;
 000003FC  213B      MOV         R1,#0x3B
 000003FE  4815      LDR         R0,[R15,#84] ; PoolRef @0x454
 00000400  6001      STR         R1,[R0,#0x0]
  106:     VICIntEnable = 0x08200000;        /* Enable CAN Tx2 and Rx2 Interrupt    */
 00000402  4915      LDR         R1,[R15,#84] ; PoolRef @0x458
 00000404  480B      LDR         R0,[R15,#44] ; PoolRef @0x434
 00000406  6001      STR         R1,[R0,#0x0]
  135:   return CAN_OK;
 00000408  2000      MOV         R0,#0x0
  136: }
 0000040A  4770      BX          R14
 0000040C            ; END 'CAN_hw_setup?T'

 0000040C  00140000  DD          0x140000		; POOL-Entry U=1
 00000410  E002C004  DD          0xE002C004		; POOL-Entry U=4
 00000414  00040000  DD          0x40000		; POOL-Entry U=1
 00000418  000009B4  DD          CAN_TX1_ISR?A		; POOL-Entry U=1
 0000041C  FFFFF12C  DD          0xFFFFF12C		; POOL-Entry U=1
 00000420  FFFFF22C  DD          0xFFFFF22C		; POOL-Entry U=1
 00000424  00000A28  DD          CAN_RX1_ISR?A		; POOL-Entry U=1
 00000428  FFFFF11C  DD          0xFFFFF11C		; POOL-Entry U=1
 0000042C  FFFFF21C  DD          0xFFFFF21C		; POOL-Entry U=1
 00000430  04100000  DD          0x4100000		; POOL-Entry U=1
LARM LINKER/LOCATER V2.32a                                                            03/15/2007  08:58:24  PAGE 13


 00000434  FFFFF010  DD          0xFFFFF010		; POOL-Entry U=2
 00000438  0003C000  DD          0x3C000		; POOL-Entry U=1
 0000043C  00014000  DD          0x14000		; POOL-Entry U=1
 00000440  00000A8C  DD          CAN_TX2_ISR?A		; POOL-Entry U=1
 00000444  FFFFF130  DD          0xFFFFF130		; POOL-Entry U=1
 00000448  FFFFF230  DD          0xFFFFF230		; POOL-Entry U=1
 0000044C  00000B00  DD          CAN_RX2_ISR?A		; POOL-Entry U=1
 00000450  FFFFF120  DD          0xFFFFF120		; POOL-Entry U=1
 00000454  FFFFF220  DD          0xFFFFF220		; POOL-Entry U=1
 00000458  08200000  DD          0x8200000		; POOL-Entry U=1

⌨️ 快捷键说明

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