Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 23.01.2014, 21:04   #71
seanta
Частый гость
 
Регистрация: 24.03.2008
Сообщений: 38
Сказал спасибо: 4,145
Сказали Спасибо 39 раз(а) в 13 сообщении(ях)
seanta на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Уважаемые! Так что насчет 2.60 или старше, есть у кого пролеченные?
Реклама:
seanta вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 09:41   #72
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
volatile принудительно заставляет компилятор хранить переменную в памяти.
Сообщение от _Артём_ Посмотреть сообщение
Чушь порете...
Сообщение от _Артём_ Посмотреть сообщение
Это вот (из мануала на CodeVision):
Цитата:
Variables declared as volatile will not be allocated to registers.
- просто особенности CV (а может и не только CV), не суть.
Вы уже сами себе противоречите. Или всё-таки первый раз сами чушь написали?
Godzilla82 вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 10:46   #73
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
Вы уже сами себе противоречите.
В чём же я себе противоречу?
Сообщение от Godzilla82 Посмотреть сообщение
Или всё-таки первый раз сами чушь написали?
Это вы про то где CV хранит volatile-переменные? Так это вопрос второстепенный.
_Артём_ вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 12:00   #74
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
Не совсем так. При наличии свободных регистров, он в них помещает глобальные переменные, сколько поместятся.
Докажите. Приведите пример любой сложности. Пусть будет даже 4 переменных, прерывание, две процедуры.
От вас требуется:
1. Исходник.
2. Ассемблерный файл.
3. Map файл.
SasaVitebsk вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 14:46   #75
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Сообщение от SasaVitebsk Посмотреть сообщение
Докажите.
PHP код:
#include ‹mega16.h›

unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVFvoid timer0_ovf_isr(void)
{
a++;
b--;
c=a+b;
^= 1;
}

void main(void)
{
DDRA    0b00001111;
PORTA   0b00000000;

DDRB    0b00000000;
PORTB   0b00000000;

DDRC    0b00000000;
PORTC   0b00000000;

DDRD    0b00000000;
PORTD   0b00000000;

// Timer Period: 0,016 ms
TCCR0   = (0‹‹WGM00) | (0‹‹COM01) | (0‹‹COM00) | (0‹‹WGM01) | (0‹‹CS02) | (0‹‹CS01) | (1‹‹CS00);
TCNT0   0x00;
OCR0    0x00;

TIMSK   = (1‹‹TOIE0);

ACSR    = (1‹‹ACD) | (0‹‹ACBG) | (0‹‹ACO) | (0‹‹ACI) | (0‹‹ACIE) | (0‹‹ACIC) | (0‹‹ACIS1) | (0‹‹ACIS0);

#asm("sei")

begin:
if(
== 100)    PINA |= 1;
if(
== 200)    PINA |= 2;
if(
== 75)     PINA |= 4;
if(
== 1)      PINA |= 8;
goto 
begin;

Код:
	.DEF _a=R5
	.DEF _b=R4
	.DEF _c=R7
	.DEF _d=R6

_timer0_ovf_isr:
	ST   -Y,R30
	IN   R30,SREG
	ST   -Y,R30
;a++;
	INC  R5
;b--;
	DEC  R4
;c=a+b;
	MOV  R30,R4
	ADD  R30,R5
	MOV  R7,R30
;d ^= 1;
	LDI  R30,LOW(1)
	EOR  R6,R30

	LD   R30,Y+
	OUT  SREG,R30
	LD   R30,Y+
	RETI
Код:
RAM Allocation [bytes]
Variable                                                          Address   Size
--------------------------------------------------------------------------------

EEPROM Allocation [bytes]
Variable                                                          Address   Size
--------------------------------------------------------------------------------

Register Allocation
Variable                                                          Register  Size
--------------------------------------------------------------------------------
a                                                                 R5           1
b                                                                 R4           1
c                                                                 R7           1
d                                                                 R6           1

FLASH Allocation [words]
Function                                                          Address   Size
--------------------------------------------------------------------------------
timer0_ovf_isr                                                    0x00048     14
Вложения:
Тип файла: zip Example.zip (4.7 Кб, 26 просмотров)
Godzilla82 вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 17:16   #76
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
[PHP]
#include ‹mega16.h›

unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
a++;
b--;
c=a+b;
d ^= 1;
}
[/CODE]
В проекте оптимизация включена? Если включена, то какой уровень?
_Артём_ вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 17:33   #77
Арктур
Почётный гражданин KAZUS.RU
 
Аватар для Арктур
 
Регистрация: 29.10.2012
Сообщений: 3,015
Сказал спасибо: 7
Сказали Спасибо 3,494 раз(а) в 1,783 сообщении(ях)
Арктур на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Не просто оптимизация !

Цитата:
Собираешься размер сравнивать, так и настраивай на оптимизацию по размеру. Только у CV видел хитрые приемы оптимизации, когда три команды в подпрограмму выделяются, и вместо них один call добавляется. Ну и ret к тем трем командам. Так 2 байта экономят, а то что код в два раза медленней стал там не никто не волнуется. Ни IAR, ни GCC такой извращенной оптимизации не имеют. Да это уже и не оптимизация, а скорее метод сжатия без потерь, архив в своем роде. RLE по сути.
http://forum.ixbt.com/post.cgi?id=print:48:2550&page=5
Арктур вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 17:53   #78
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Арктур, сделайте пожалуйста переменные unsigned int. И одну переменную "a" сделайте long long int. И скиньте пожалуйста то же самое, если вас не затруднит

В данный момент получается что реальность не согласуется с их же документацией.
SasaVitebsk вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 18:15   #79
Арктур
Почётный гражданин KAZUS.RU
 
Аватар для Арктур
 
Регистрация: 29.10.2012
Сообщений: 3,015
Сказал спасибо: 7
Сказали Спасибо 3,494 раз(а) в 1,783 сообщении(ях)
Арктур на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

long long int версия CV не поддерживает. Сделал long int.

Код:
_timer0_ovf_isr:
	ST   -Y,R22
	ST   -Y,R23
	ST   -Y,R26
	ST   -Y,R27
	ST   -Y,R30
	ST   -Y,R31
	IN   R30,SREG
	ST   -Y,R30
a++;
	LDI  R26,LOW(_a)
	LDI  R27,HIGH(_a)
	CALL __GETD1P_INC
	__SUBD1N -1
	CALL __PUTDP1_DEC
b--;
	MOVW R30,R4
	SBIW R30,1
	MOVW R4,R30
c=a+b;
	MOVW R30,R4
	LDS  R26,_a
	LDS  R27,_a+1
	ADD  R30,R26
	ADC  R31,R27
	MOVW R6,R30
d ^= 1;
	LDI  R30,LOW(1)
	EOR  R8,R30

	LD   R30,Y+
	OUT  SREG,R30
	LD   R31,Y+
	LD   R30,Y+
	LD   R27,Y+
	LD   R26,Y+
	LD   R23,Y+
	LD   R22,Y+
	RETI

-----------------------

	.MACRO __SUBD1N
	SUBI R30,LOW(@0)
	SBCI R31,HIGH(@0)
	SBCI R22,BYTE3(@0)
	SBCI R23,BYTE4(@0)

__GETD1P_INC:
	LD   R30,X+
	LD   R31,X+
	LD   R22,X+
	LD   R23,X+
	RET

__PUTDP1_DEC:
	ST   -X,R23
	ST   -X,R22
	ST   -X,R31
	ST   -X,R30
	RET
Код:
RAM Allocation
Variable                                  Address   Size
--------------------------------------------------------
a                                           0x0160       4

EEPROM Allocation
Variable                                  Address   Size
--------------------------------------------------------

Register Allocation
Variable                                  Register  Size
--------------------------------------------------------
b                                           R4,R5        2
c                                           R6,R7        2
d                                           R8,R9        2

Последний раз редактировалось Арктур; 24.01.2014 в 18:31.
Арктур вне форума   Ответить с цитированием
Непрочитано 24.01.2014, 18:42   #80
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от nahimovv Посмотреть сообщение
А что, в CV ещё и оптимизация есть?
Ну вы это - пользователей CV за людей-то хоть считаете? Нельзя же так резко, имхо...

Сообщение от nahimovv Посмотреть сообщение
Тогда интересно, а как в CV обстоят дела с code reordering?
Пользователи CV могут доказать, что code reordering сделан в CV лучше всех, но нам не дано понять их доказательств...
_Артём_ вне форума   Ответить с цитированием
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeVisionAVR selevo Embedd С 11 26.02.2016 22:16
SD и CodeVisionAvr 2.04.4a sersne Микроконтроллеры, АЦП, память и т.д 29 24.03.2010 18:39
CodeVisionAVR V2.03.2 dimonbest Микроконтроллеры, АЦП, память и т.д 253 29.09.2009 22:37
New CodeVisionAVR 1.25.8 dimonbest Микроконтроллеры, АЦП, память и т.д 15 07.02.2008 12:56
Help CodeVisionAVR Serg79 Микроконтроллеры, АЦП, память и т.д 3 15.12.2005 23:32


Часовой пояс GMT +4, время: 13:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot