📄 main.lst
字号:
138 AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, // CAN1 base address
139 AT91C_ID_CAN1, // CAN1 ID
140 AT91C_AIC_PRIOR_HIGHEST, // Max priority
141 AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, // Level sensitive
142 AT91F_CAN1_Handler); // C Handler
\ 000000C2 2348 LDR R0,??main_0+0x50 ;; AT91F_CAN1_Handler
\ 000000C4 01B4 PUSH {R0}
\ 000000C6 0023 MOV R3,#+0
\ 000000C8 0722 MOV R2,#+0x7
\ 000000CA 0521 MOV R1,#+0x5
\ 000000CC 201C MOV R0,R4
\ 000000CE ........ _BLF AT91F_AIC_ConfigureIt,AT91F_AIC_ConfigureIt??rT
143
144 AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_CAN1); //AIC中断允许
\ 000000D2 3E60 STR R6,[R7, #+0]
145
146 // Cfg CAN Baudrate to 1Mbit/s => BRP = 5
147 // We choose 8 Time Quanta (tCSC = 125ns): 8tCSC = tSYNC + tPRS + tPHS1 + tPHS2
148 // Cfg PHASE1 PHASE2 PROPAG and SYNC segment
149 // Delay of busdriver + delay of receiver circuit = 200ns
150 // Delay of bus line considered negligible = 0ns
151 // tPRS = 2*(200+0) = 400ns < 4tCSC => PROPAG = 3
152 // tSYNC = 1tCSC => 8tCSC = 1tCSC + 4tCSC + tPHS1 + tPHS2
153 // tPHS1 + tPHS2 = 3tCSC => Phase Segment 2 = Max(IPT=2TQ,Phase Segment 1) = 2TQ => PHASE2 = 2-1 = 1 => PHASE1 = 0
154 // tSJW = Min(4 TQ, Phase Segment 1) = 1TQ => SJW = 1-1 = 0
155
156 //AT91F_CAN_CfgBaudrateReg(AT91C_BASE_CAN0,0x007c3066); //config 1D3066= 100K,相互通讯的两个CAN的拨特率必须相同
157 //AT91F_CAN_CfgBaudrateReg(AT91C_BASE_CAN1,0x007c3066); //0x007c3066=24k
158
159 AT91F_CAN_CfgBaudrateReg(AT91C_BASE_CAN0,0x007c3066); //当 MCK 变为6mHz时 ,5K=0x004A3066
\ 000000D4 1F48 LDR R0,??main_0+0x54 ;; 0x7c3066
\ 000000D6 2049 LDR R1,??main_0+0x58 ;; 0xfff80014
\ 000000D8 0860 STR R0,[R1, #+0]
160 AT91F_CAN_CfgBaudrateReg(AT91C_BASE_CAN1,0x007c3066);
\ 000000DA 2049 LDR R1,??main_0+0x5C ;; 0xfff84014
\ 000000DC 0860 STR R0,[R1, #+0]
161
162 ///////////////////////////////////////////////////////////////////////////////////////////
163 // Enter Main Application
164 ///////////////////////////////////////////////////////////////////////////////////////////
165
166 AT91F_BasicTestSuite(); //进行一次测试
\ 000000DE ........ _BLF AT91F_BasicTestSuite,AT91F_BasicTestSuite??rT
\ 000000E2 1F4C LDR R4,??main_0+0x60 ;; ??datas
\ 000000E4 02B0 ADD SP,#+0x8
167
168 for(;;)
169 {
170 /**以100K的速率由 CAN0->Mailbox0 向 Can1->Mailbox0 发送数据**/
171
172 // for(int n=0;n<=32767;) //减慢发送速度,以使超级终端显示的数据让人眼睛看起来不闪烁
173 // for(int i=0;i<=30000;i++)
174 // for(int j=0;j<=12;j++)
175 //n++ ;
176
177 static int datas=1 ;
178 if(datas>=32767)
\ ??main_1:
\ 000000E6 2068 LDR R0,[R4, #+0]
\ 000000E8 790C LSR R1,R7,#+0x11
\ 000000EA 8842 CMP R0,R1
\ 000000EC 01DB BLT ??main_2
179 datas=1 ;
\ 000000EE 0120 MOV R0,#+0x1
\ 000000F0 2060 STR R0,[R4, #+0]
180 CanSendData((unsigned)(0x100),(unsigned)datas++) ;
\ ??main_2:
\ 000000F2 2168 LDR R1,[R4, #+0]
\ 000000F4 481C ADD R0,R1,#+0x1
\ 000000F6 2060 STR R0,[R4, #+0]
\ 000000F8 2801 LSL R0,R5,#+0x4
\ 000000FA ........ _BLF CanSendData,CanSendData??rT
\ 000000FE F2E7 B ??main_1
\ ??main_0:
\ 00000100 04FCFFFF DC32 0xfffffc04
\ 00000104 30FCFFFF DC32 0xfffffc30
\ 00000108 00FCFFFF DC32 0xfffffc00
\ 0000010C 10FCFFFF DC32 0xfffffc10
\ 00000110 70F4FFFF DC32 0xfffff470
\ 00000114 74F4FFFF DC32 0xfffff474
\ 00000118 04F4FFFF DC32 0xfffff404
\ 0000011C 0CF2FFFF DC32 0xfffff20c
\ 00000120 00F2FFFF DC32 0xfffff200
\ 00000124 20F2FFFF DC32 0xfffff220
\ 00000128 28F2FFFF DC32 0xfffff228
\ 0000012C 00F3FFFF DC32 0xfffff300
\ 00000130 04F2FFFF DC32 0xfffff204
\ 00000134 ........ DC32 `?<Constant "\\n\\n\\r==================...">`
\ 00000138 00F4FFFF DC32 0xfffff400
\ 0000013C 10F4FFFF DC32 0xfffff410
\ 00000140 34F4FFFF DC32 0xfffff434
\ 00000144 00F0FFFF DC32 0xfffff000
\ 00000148 ........ DC32 AT91F_CAN0_Handler
\ 0000014C 20F1FFFF DC32 0xfffff120
\ 00000150 ........ DC32 AT91F_CAN1_Handler
\ 00000154 66307C00 DC32 0x7c3066
\ 00000158 1400F8FF DC32 0xfff80014
\ 0000015C 1440F8FF DC32 0xfff84014
\ 00000160 ........ DC32 ??datas
181 }
182 }
\ In segment DATA_I, align 4, align-sorted
\ ??datas:
\ 00000000 DS8 4
\ 00000004 REQUIRE `?<Initializer for datas>`
\ In segment CODE, align 4, keep-with-next
\ ??DataTable3:
\ 00000000 ........ DC32 `?<Constant "%d">`
\ In segment CODE, align 4, keep-with-next
\ ??DataTable6:
\ 00000000 ........ DC32 _Stdout
\ In segment DATA_ID, align 4, align-sorted
\ `?<Initializer for datas>`:
\ 00000000 01000000 DC32 1
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "%d">`:
\ 00000000 256400 DC8 "%d"
\ 00000003 00 DC8 0
\ 00000004 5F5F5F5F5F5F DC8 5FH, 5FH, 5FH, 5FH, 5FH, 5FH, 49H, 6EH
\ 496E
\ 0000000C 746572727570 DC8 74H, 65H, 72H, 72H, 75H, 70H, 74H, 20H
\ 7420
\ 00000014 6E6F77206973 DC8 6EH, 6FH, 77H, 20H, 69H, 73H, 20H, 72H
\ 2072
\ 0000001C 656365697665 DC8 65H, 63H, 65H, 69H, 76H, 65H, 64H, 20H
\ 6420
\ 00000024 736F6D652064 DC8 73H, 6FH, 6DH, 65H, 20H, 64H, 61H, 74H
\ 6174
\ 0000002C 615F5F5F5F5F DC8 61H, 5FH, 5FH, 5FH, 5FH, 5FH, 5FH, 5FH
\ 5F5F
\ 00000034 5F5F5F5F5F00 DC8 5FH, 5FH, 5FH, 5FH, 5FH, 0
\ 0000003A 0000 DC8 0, 0
\ 0000003C 0D0A5F5F5F5F DC8 "\015\012______Interrupt received data,Low is:"
\ 5F5F496E7465
\ 727275707420
\ 726563656976
\ 656420206461
\ 74612C4C6F77
\ 2069733A00
\ 00000065 000000 DC8 0, 0, 0
\ 00000068 0D0A5F5F5F5F DC8 "\015\012_______Interrupt received data,High is:"
\ 5F5F5F496E74
\ 657272757074
\ 207265636569
\ 766564206461
\ 74612C486967
\ 682069733A00
\ 00000092 0000 DC8 0, 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "\\n\\n\\r==================...">`:
\ 00000000 0A0A0D3D3D3D DC8 "\012\012\015======================================\012\015"
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D0A
\ 0D00
\ 0000002C 415439315341 DC8 "AT91SAM7A3 Basic CAN\012\015"
\ 4D3741332042
\ 617369632043
\ 414E0A0D00
\ 00000043 00 DC8 0
\ 00000044 3D3D3D3D3D3D DC8 "======================================\012\015"
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D3D3D3D3D
\ 3D3D0A0D00
\ 0000006D 000000 DC8 0, 0, 0
183
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_AIC_ConfigureIt 20
AT91F_CAN0_Handler 20
AT91F_CAN1_CfgPIO 0
AT91F_CAN1_Handler 20
AT91F_PDC_Open 0
main 28
Segment part sizes:
Function/Label Bytes
-------------- -----
AT91F_AIC_ConfigureIt 44
AT91F_PDC_Open 36
AT91F_CAN1_CfgPIO 60
testCAN0 1
testCAN1 1
AT91F_CAN0_Handler 80
?Subroutine3 36
AT91F_CAN1_Handler 92
main 356
datas 4
??DataTable3 4
??DataTable6 4
?<Initializer for datas> 4
?<Constant "%d"> 148
?<Constant "\n\n\r==================...">
112
Others 112
800 bytes in segment CODE
260 bytes in segment DATA_C
4 bytes in segment DATA_I
4 bytes in segment DATA_ID
2 bytes in segment DATA_Z
24 bytes in segment INITTAB
572 bytes of CODE memory (+ 252 bytes shared)
264 bytes of CONST memory
6 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -