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

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

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


##############################################################################
# #
# IAR Atmel AVR C/EC++ Compiler V2.28A/WIN, Evaluation Version18/Aug/2004 13:36:45 #
# Copyright 1996-2002 IAR Systems. All rights reserved. #
# #
# Source file = C:\Мои документы\Main.c #
# Command line = -v0 -mt -o "C:\Мои документы\Debug\Obj\" -I #
# "D:\PROGRAM FILES\IAR SYSTEMS\EW23 EVALUATION #
# VERSION\AVR\SRC\CLIB\INC\" -lCN "C:\Мои #
# документы\Debug\List\" -e --initializers_in_flash -z3 #
# --no_cse --no_inline --no_code_motion --no_cross_call #
# --no_clustering --debug "C:\Мои документы\Main.c" #
# List file = C:\Мои документы\Debug\List\Main.lst #
# Object file = C:\Мои документы\Debug\Obj\Main.r90 #
# #
# #
##############################################################################

1

\ In segment CODE, align 2, keep-with-next
2 short test( char* src )
3 {
4 short result = *( short* )src;
\ __nearfunc short test(char *);
\ test:
\ 00000000 2FE0 MOV R30,R16
\ 00000002 8100 LD R16,Z
\ 00000004 8111 LDD R17,Z+1
5 return result;
\ 00000006 9508 RET
6 }
7

\ In segment CODE, align 2, keep-with-next
8 short badtest( char* packet )
9 {
10 short result = packet[0] | (((signed char)packet[1])<<8);
\ __nearfunc short badtest(char *);
\ badtest:
\ 00000000 2FE0 MOV R30,R16
\ 00000002 8120 LD R18,Z
\ 00000004 E030 LDI R19,0
\ 00000006 2FE0 MOV R30,R16
\ 00000008 8111 LDD R17,Z+1
\ 0000000A E000 LDI R16,0
\ 0000000C 2B02 OR R16,R18
\ 0000000E 2B13 OR R17,R19
11 return result;
\ 00000010 9508 RET
12 }

\ In segment CODE, align 2, keep-with-next
13 void main()
14 {
\ __nearfunc void main();
\ main:
\ 00000000 .... RCALL ?PROLOGUE2_L09
\ 00000002 50C2 SUBI R28,2
15 char buf[ 2 ];
16 short result, badresult;
17 *(short*)buf = 0x1234;
\ 00000004 E304 LDI R16,52
\ 00000006 E112 LDI R17,18
\ 00000008 8308 ST Y,R16
\ 0000000A 8319 STD Y+1,R17
18 while( 1 )
19 {
20 result = test( buf );
\ ??main_0:
\ 0000000C 2F0C MOV R16,R28
\ 0000000E .... RCALL test
\ 00000010 2F80 MOV R24,R16
\ 00000012 2F91 MOV R25,R17
21 badresult = badtest( buf );
\ 00000014 2F0C MOV R16,R28
\ 00000016 .... RCALL badtest
22 if( result != badresult )
\ 00000018 1780 CP R24,R16
\ 0000001A 0791 CPC R25,R17
\ 0000001C F3B9 BREQ ??main_0
23 break;
24 }
25 error:
26 goto error;
\ ??main_1:
\ 0000001E CFFF RJMP ??main_1
27 }
28
29
30

Maximum stack usage in bytes:

Function CSTACK RSTACK
-------- ------ ------
badtest 0 0
main 4 2
-> test 4 2
-> badtest 4 2
test 0 0


58 bytes in segment CODE

58 bytes of CODE memory

Errors: none
Warnings: none


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

Ответы



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

E-mail: info@telesys.ru