ARM
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено lamerok 18 августа 2004 г. 13:33
В ответ на: Пожалуйста, откомпилируйте кто чем может( С для МК ) файл по ссылке и покажите листинг, в картинке листинг для HT-PICC отправлено patton 18 августа 2004 г. 13:13


##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.10B/W32 EVALUATION 18/Aug/2004 13:30:26 #
# Copyright 1999-2004 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = C:\Мои документы\Main.c #
# Command line = -I "D:\Program Files\IAR Systems\Embedded Workbench #
# 4.10B\ARM\INC\" -lCN "C:\Мои документы\Debug\List\" #
# -o "C:\Мои документы\Debug\Obj\" -z3 --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 #
# "-D_DLIB_CONFIG_FILE=D:\Program Files\IAR #
# Systems\Embedded Workbench #
# 4.10B\ARM\LIB\dl4tptinl8n.h" "C:\Мои #
# документы\Main.c" #
# List file = C:\Мои документы\Debug\List\Main.lst #
# Object file = C:\Мои документы\Debug\Obj\Main.r79 #
# #
# #
##############################################################################

C:\Мои документы\Main.c
1

\ In segment CODE, align 4, keep-with-next
\ 00000000 CODE16
2 short test( char* src )
3 {
4 short result = *( short* )src;
\ test:
\ 00000000 0021 MOV R1,#+0x0
\ 00000002 405E LDRSH R0,[R0, R1]
5 return result;
\ 00000004 0004 LSL R0,R0,#+0x10 ;; SignExt R0,R0,#+0x10,#+0x10
\ 00000006 0014 ASR R0,R0,#+0x10
\ 00000008 7047 BX LR ;; return
6 }

\ In segment CODE, align 4, keep-with-next
\ 00000000 CODE16
7 short badtest( char* packet )
8 {
9 short result = packet[0] | (((signed char)packet[1])<<8);
\ badtest:
\ 00000000 0178 LDRB R1,[R0, #+0]
\ 00000002 0906 LSL R1,R1,#+0x18 ;; ZeroExt R1,R1,#+0x18,#+0x18
\ 00000004 090E LSR R1,R1,#+0x18
\ 00000006 4078 LDRB R0,[R0, #+1]
\ 00000008 0006 LSL R0,R0,#+0x18 ;; SignExt R0,R0,#+0x18,#+0x18
\ 0000000A 0016 ASR R0,R0,#+0x18
\ 0000000C 0002 LSL R0,R0,#+0x8
\ 0000000E 0843 ORR R0,R1
10 return result;
\ 00000010 0004 LSL R0,R0,#+0x10 ;; SignExt R0,R0,#+0x10,#+0x10
\ 00000012 0014 ASR R0,R0,#+0x10
\ 00000014 7047 BX LR ;; return
11 }

\ In segment CODE, align 4, keep-with-next
\ 00000000 CODE16
12 void main()
13 {
\ main:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 81B0 SUB SP,#+0x4
14 char buf[ 2 ];
15 short result, badresult;
16 *(short*)buf = 0x1234;
\ 00000004 6846 MOV R0,SP
\ 00000006 .... LDR R1,??main_0 ;; 0x1234
\ 00000008 0180 STRH R1,[R0, #+0]
17 while( 1 )
18 {
19 result = test( buf );
\ ??main_1:
\ 0000000A 6846 MOV R0,SP
\ 0000000C ........ BL test
\ 00000010 041C MOV R4,R0
20 badresult = badtest( buf );
\ 00000012 6846 MOV R0,SP
\ 00000014 ........ BL badtest
21 if( result != badresult )
\ 00000018 2404 LSL R4,R4,#+0x10 ;; SignExt R4,R4,#+0x10,#+0x10
\ 0000001A 2414 ASR R4,R4,#+0x10
\ 0000001C 0004 LSL R0,R0,#+0x10 ;; SignExt R0,R0,#+0x10,#+0x10
\ 0000001E 0014 ASR R0,R0,#+0x10
\ 00000020 8442 CMP R4,R0
\ 00000022 F2D0 BEQ ??main_1
22 break;
23 }
24 error:
25 goto error;
\ ??main_2:
\ 00000024 FEE7 B ??main_2
\ 00000026 C046 NOP
\ 00000028 DATA
\ ??main_0:
\ 00000028 34120000 DC32 0x1234
26 }
27
28
29

Maximum stack usage in bytes:

Function CSTACK
-------- ------
badtest 0
main 12
test 0


Segment part sizes:

Function/Label Bytes
-------------- -----
test 10
badtest 22
main 44
Others 24


100 bytes in segment CODE

76 bytes of CODE memory (+ 24 bytes shared)

Errors: none
Warnings: none


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru