📄 dbgu.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 01/Nov/2005 11:29:19 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\src\dbgu.c #
# Command line = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\src\dbgu.c -lC #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\FLASH_Debug\List\ -o #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\FLASH_Debug\Obj\ -z2 #
# --no_cse --no_unroll --no_inline --no_code_motion #
# --no_tbaa --no_clustering --no_scheduling --debug #
# --cpu_mode thumb --endian little --cpu ARM7TDMI #
# --stack_align 4 --interwork -e --fpu None #
# --dlib_config "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl4tptinl8f.h" -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\srcIAR\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\..\src\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\..\..\ -I #
# "D:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Kickstart\arm\INC\" #
# List file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\FLASH_Debug\List\dbgu #
# .lst #
# Object file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\FLASH_Debug\Obj\dbgu. #
# r79 #
# #
# #
##############################################################################
E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR430A-1_2\BasicAES-SAM7X\src\dbgu.c
1 //*----------------------------------------------------------------------------
2 //* ATMEL Microcontroller Software Support - ROUSSET -
3 //*----------------------------------------------------------------------------
4 //* The software is delivered "AS IS" without warranty or condition of any
5 //* kind, either express, implied or statutory. This includes without
6 //* limitation any warranty or condition with respect to merchantability or
7 //* fitness for any particular purpose, or against the infringements of
8 //* intellectual property rights of others.
9 //*----------------------------------------------------------------------------
10 //* File Name : dbgu.c
11 //* Object : DBGU routines written in C
12 //* Creation : JG 16/Aug/2004
13 //*----------------------------------------------------------------------------
14
15 // Include Standard files
16 #include "project.h"
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_PIO_CfgPeriph(AT91PS_PIO, unsigned int, unsigned int)
\ AT91F_PIO_CfgPeriph:
\ 00000000 0167 STR R1,[R0, #+0x70]
\ 00000002 4267 STR R2,[R0, #+0x74]
\ 00000004 131C MOV R3,R2
\ 00000006 0B43 ORR R3,R1
\ 00000008 4360 STR R3,[R0, #+0x4]
\ 0000000A 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_PMC_EnablePeriphClock(AT91PS_PMC, unsigned int)
\ AT91F_PMC_EnablePeriphClock:
\ 00000000 0161 STR R1,[R0, #+0x10]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_DBGU_CfgPIO(void)
\ AT91F_DBGU_CfgPIO:
\ 00000000 00B5 PUSH {LR}
\ 00000002 0022 MOV R2,#+0
\ 00000004 C021 MOV R1,#+0xC0
\ 00000006 4905 LSL R1,R1,#+0x15 ;; #+0x18000000
\ 00000008 0248 LDR R0,??AT91F_DBGU_CfgPIO_0 ;; 0xfffff400
\ 0000000A ........ _BLF AT91F_PIO_CfgPeriph,AT91F_PIO_CfgPeriph??rT
\ 0000000E 01BC POP {R0}
\ 00000010 0047 BX R0 ;; return
\ 00000012 C046 NOP
\ ??AT91F_DBGU_CfgPIO_0:
\ 00000014 00F4FFFF DC32 0xfffff400
17
18 //*--------------------------1--------------------------------------------------
19 //* \fn AT91F_DBGU_Printk
20 //* \brief This function is used to send a string through the DBGU channel (Very low level debugging)
21 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
22 void AT91F_DBGU_Printk( char *buffer)
23 {
\ AT91F_DBGU_Printk:
\ 00000000 10B5 PUSH {R4,LR}
24 AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
\ 00000002 .... LDR R3,??DataTable5 ;; 0xfffff200
\ 00000004 191C MOV R1,R3
25 unsigned int temp;
26
27 while(*buffer != '\0')
\ ??AT91F_DBGU_Printk_0:
\ 00000006 0378 LDRB R3,[R0, #+0]
\ 00000008 002B CMP R3,#+0
\ 0000000A 11D0 BEQ ??AT91F_DBGU_Printk_1
28 {
29 temp=0;
\ 0000000C 0023 MOV R3,#+0
\ 0000000E 1A1C MOV R2,R3
30
31 while (temp==0)
\ ??AT91F_DBGU_Printk_2:
\ 00000010 002A CMP R2,#+0
\ 00000012 09D1 BNE ??AT91F_DBGU_Printk_3
32 {
33 if ( (pDbgu->DBGU_CSR & 0x0200) == 0)
\ 00000014 4B69 LDR R3,[R1, #+0x14]
\ 00000016 8024 MOV R4,#+0x80
\ 00000018 A400 LSL R4,R4,#+0x2 ;; #+0x200
\ 0000001A 1C40 AND R4,R3
\ 0000001C 231C MOV R3,R4
\ 0000001E 002B CMP R3,#+0
\ 00000020 00D0 BEQ ??AT91F_DBGU_Printk_4
\ 00000022 0123 MOV R3,#+0x1
\ ??AT91F_DBGU_Printk_4:
\ 00000024 1A1C MOV R2,R3
34 temp=0;
\ 00000026 F3E7 B ??AT91F_DBGU_Printk_2
35 else
36 temp=1;
37 }
38
39 pDbgu->DBGU_THR = *buffer;
\ ??AT91F_DBGU_Printk_3:
\ 00000028 0378 LDRB R3,[R0, #+0]
\ 0000002A CB61 STR R3,[R1, #+0x1C]
40 buffer++;
\ 0000002C 401C ADD R0,#+0x1
\ 0000002E EAE7 B ??AT91F_DBGU_Printk_0
41 }
42 }
\ ??AT91F_DBGU_Printk_1:
\ 00000030 10BC POP {R4}
\ 00000032 01BC POP {R0}
\ 00000034 0047 BX R0 ;; return
43
44
\ In segment CODE, align 4, keep-with-next
45 void Init_DBGU_CLK(void)
46 {
\ Init_DBGU_CLK:
\ 00000000 00B5 PUSH {LR}
47 AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -