Помогите понять, CodeVisionAVR не загружает в Arduino

Обсуждаем контроллеры компании Atmel.
Ответить
Shumaher
Родился
Сообщения: 4
Зарегистрирован: Чт мар 17, 2022 11:07:24

Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Shumaher »

Очень странная ситуация. CodeVisionAVR не выгружает в Arduino. Есть два проекта близнеца, в одном выгружает в другом нет. Пробовал создать новый, та же история. Что это может быть? Грешу на WIN8. Предыдущий проект из под 7-ки. Не понятно. И ничего не говорит, просто ничего не происходит.

Добавлено after 4 hours 33 minutes 13 seconds:
Ещё поигрался, копирую рабочий проект, заменяю основной файл и перестаёт работать. Уже тупо скопировал текст и заменил некоторые заголовочные файлы и опять перестало работать. Мистика((
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

А зачем CodeVisionAVR для адуринок, если есть ардуиноIDE??
:shock:
Тем более, что основа ардуиноIDE С++ (допускается и простой Си но тяготеющий к авр студио - GCC)...
:roll:
Реклама
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Карбофос »

А чё вы все так вперлись в этот кодвижнавр? Вам пообещали x3 быстродействие? На той-же тактовой? Так не бывает.

Какие-то старые nano только 57600 понимали, uno 115200, в чем между ними разница хз.
Может, загрузчик из новой версии IDE обновить?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

У "стандартных" нанок было две версии бутлоадера, устанавливаемого при изготовлении.
Какой конкретно в конкретной платке - смотреть самостоятельно надо.
Но актуально это только для перепрограммирования через бутлоадер.
Оба варианта бутлоадера можно прошить через ISP из-под самой IDE.
:roll:
Реклама
Эиком - электронные компоненты и радиодетали
Shumaher
Родился
Сообщения: 4
Зарегистрирован: Чт мар 17, 2022 11:07:24

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Shumaher »

[uquote="Карбофос",url="/forum/viewtopic.php?p=4200085#p4200085"]А чё вы все так вперлись в этот кодвижнавр? Вам пообещали x3 быстродействие? На той-же тактовой? Так не бывает.

Какие-то старые nano только 57600 понимали, uno 115200, в чем между ними разница хз.
Может, загрузчик из новой версии IDE обновить?[/uquote]

Извините, проблема в другом. Он мне кажется удобным. Посоветуйте IDE с выгрузкой в Ардуино.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

АрдуиноIDE 1.8.19
Любая IDE генерирующая интел хекс8 для МК при последующей загрузке через программатор через ISP.
Однако... следует учитывать установленные в адуринке при изготовлении комплекты фузов и бутлоадер.
Или переустанавливать их самостоятельно вручную под текущий проект.
8)
Реклама
Shumaher
Родился
Сообщения: 4
Зарегистрирован: Чт мар 17, 2022 11:07:24

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Shumaher »

[uquote="BOB51",url="/forum/viewtopic.php?p=4200279#p4200279"]АрдуиноIDE 1.8.19
Любая IDE генерирующая интел хекс8 для МК при последующей загрузке через программатор через ISP.
Однако... следует учитывать установленные в адуринке при изготовлении комплекты фузов и бутлоадер.
Или переустанавливать их самостоятельно вручную под текущий проект.
8)[/uquote]
Это понятно, мне нравилось через USB выгружать. Только расслабился с программаторами). А тут такая непонятка. И она действительно зависит от самого содержимого программы. Буду дальше копать.

Да нет ребята, фигня какая то, просто копирую текст в исходники и трындец. Даже не компилируется. Я маму....
Ну похоже это баг винды и AD. Я давно 8ку ненавижу аж спать не могу. Права слетают.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

Копирование исходников тоже свои хитрости имеет...
:wink:
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Карбофос »

Shumaher писал(а):просто копирую текст в исходники и трындец. Даже не компилируется
Чудесно.
Вот бы уехать к вам.
А откуда вы?
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Dimon456 »

К примеру, что первое попалось:
avr-gcc
Спойлер

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h>

typedef struct{
   volatile uint8_t * port;
   uint8_t            and;
   uint8_t            or;
} seg_pin_t;

#define pn(p,b) {&PORT ## p, ~_BV(b), _BV(b)}

#define A   _BV(0)
#define B   _BV(1)
#define C   _BV(2)
#define D   _BV(3)
#define E   _BV(4)
#define F   _BV(5)
#define G   _BV(6)
#define H   _BV(7)

#define DIG0   (A+B+C+D+E+F)
#define DIG1   (B+C)
#define DIG2   (A+B+G+E+D)
#define DIG3   (A+B+C+D+G)
#define DIG4   (B+F+G+C)
#define DIG5   (A+F+G+C+D)
#define DIG6   (A+C+D+E+F+G)
#define DIG7   (A+B+C)
#define DIG8   (A+B+C+D+E+F+G)
#define DIG9   (A+B+C+D+F+G)

const __flash seg_pin_t pins[8] = {
  pn(B,0),
  pn(C,0),
  pn(D,0),
  pn(B,2),
  pn(C,2),
  pn(D,2),
  pn(B,4),
  pn(C,4)
};

const __flash seg_pin_t commons[4] = {
  pn(D,1),
  pn(D,4),
  pn(B,1),
  pn(C,1)
};

uint8_t scr[4] = {DIG5,DIG2,DIG3,DIG4};

ISR(TIMER0_OVF_vect){
   static uint8_t com;

   const __flash seg_pin_t *p = commons+com;

   *p->port &= p->and;

   if(++com >= 4) com = 0;

   uint8_t d = scr[com];
   d = ~d;

   p = pins;
   for(uint8_t i=0; i<8; i++, d>>=1){
      *p->port = (*p->port & p->and) | (d & 1 ? p->or : 0);
      p++;
   }

   p = commons+com;
   *p->port |= p->or;
}

int main(void){
   DDRB = 255;
   DDRC = 255;
   DDRD = 0x7F;
   PORTD = 0x80;

   TCCR0 = 4;
   TIMSK = _BV(TOIE0);
   sei();

   while(1);
}

Код: Выделить всё

AVR Memory Usage
----------------
Device: atmega16

Program:     432 bytes (2.6% Full)
(.text + .data + .bootloader)

Data:          5 bytes (0.5% Full)
(.data + .bss + .noinit)
cvavr
Спойлер

Код: Выделить всё

#include <mega16.h>
// Declare your global variables here

#define uint8_t unsigned char

typedef struct {
   volatile uint8_t * port;
   uint8_t            and;
   uint8_t            or;
} seg_pin_t;

#define pn(p,b) {&PORT ## p, ~_BV(b), _BV(b)}

#define _BV(bit) (1 << (bit))

#define A   _BV(0)
#define B   _BV(1)
#define C   _BV(2)
#define D   _BV(3)
#define E   _BV(4)
#define F   _BV(5)
#define G   _BV(6)
#define H   _BV(7)

#define DIG0   (A+B+C+D+E+F)
#define DIG1   (B+C)
#define DIG2   (A+B+G+E+D)
#define DIG3   (A+B+C+D+G)
#define DIG4   (B+F+G+C)
#define DIG5   (A+F+G+C+D)
#define DIG6   (A+C+D+E+F+G)
#define DIG7   (A+B+C)
#define DIG8   (A+B+C+D+E+F+G)
#define DIG9   (A+B+C+D+F+G)

flash const seg_pin_t pins[8] = {
  pn(B,0),
  pn(C,0),
  pn(D,0),
  pn(B,2),
  pn(C,2),
  pn(D,2),
  pn(B,4),
  pn(C,4)
};

flash const seg_pin_t commons[4] = {
  pn(D,1),
  pn(D,4),
  pn(B,1),
  pn(C,1)
};

uint8_t scr[4] = {DIG5,DIG2,DIG3,DIG4};

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{  uint8_t d; uint8_t i;
   static uint8_t com;

   flash const seg_pin_t *p = commons+com;

   *p->port &= p->and;

   if(++com >= 4) com = 0;

   d = scr[com];
   d = ~d;

   p = pins;
   for(i=0; i<8; i++, d>>=1){
      *p->port = (*p->port & p->and) | (d & 1 ? p->or : 0);
      p++;
   }

   p = commons+com;
   *p->port |= p->or;
}


void main(void)
{
   DDRB = 255;
   DDRC = 255;
   DDRD = 0x7F;
   PORTD = 0x80;

   TCCR0 = 4;
   TIMSK = _BV(TOIE0);
   
   #asm("sei")

   while(1);
}

Код: Выделить всё

Program size: 254 words (508 bytes), 3,1% of FLASH
11 words (22 bytes), 4,2% reduced by Code Compression
Shumaher
Родился
Сообщения: 4
Зарегистрирован: Чт мар 17, 2022 11:07:24

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Shumaher »

[uquote="BOB51",url="/forum/viewtopic.php?p=4200334#p4200334"]Копирование исходников тоже свои хитрости имеет...
:wink:[/uquote]
В общем на этом проекте он рожал не корректный файл .epp из за того, что переменные не были инициализированы при объявлении.
То есть что, это считается обязательным?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

У каждого компилятора (или того же шпротеуса) свои правила.
Их вычитывать надо весьма внимательно и долго
8)
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Dimon456 »

Shumaher писал(а):То есть что, это считается обязательным?
Нет, необязательным.
А для шпротеуса не достаточно просто подкинуть файлик .epp, нужно еще выполнить Debug -> Reset persistent model data.
И .epp шпротеус не принимает, нужен бинарник, бинарник делается с помощью средств cvavr Run the chip programmer, File load eeprom, выбрать тип .epp, File save eeprom, выбрать тип .bin, потом в шпротеусе скармливаем наш .bin файлик, выполняем Debug -> Reset persistent model data, запускаем отладку, выбираем Debug -> AVR -> Eprom memory и любуемся происходящим.
PE4ENbKA_173
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср фев 23, 2022 15:40:56

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение PE4ENbKA_173 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4200057#p4200057"]Тем более, что основа ардуиноIDE С++ (допускается и простой Си но тяготеющий к авр студио - GCC)...
:roll:[/uquote]
Не соглашусь с этим утверждением. Попытка использовать классы а не структуры привела к сообщению что АВР мк не поддерживает с++ языки. Основа может и С++ но для работы не с АВР
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

Это относительно компилятора ардуиноIDE классы не применяются?...
:shock:
Или относительно того компилятора, что в АВР студио имеется?
За АВР/микрочип студио компилятор не скажу - не пользовался, а вот у ардуиноIDE основной вариант самодельных библиотек именно в виде классов делается.
В то же время и Си вариант вполне работоспособен (единственно файлы также с расширением *.cpp использовать надо).
Как сам компилятор устроен и дополнительные настройки - это уже больше специалистов глубокозакопания интерес.
На практике и того что есть вполне достаточно для перекрытия большинства практических задач.
8)
Аватара пользователя
Alex_641
Поставщик валерьянки для Кота
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Alex_641 »

А коде вижион и ардуино , чем связаны ?
Не спрашивай по ком звонит колокол, он звонит по тебе !
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение BOB51 »

Вероятно только загрузчиком *.hex файла программы.
Или второй вариант - взята платка адуринки, но программа разрабатывается и компилируется в CodeVisionAVR.
Только вот в этом случае саму программу и прошивку надо делать также по правилам CodeVisionAVR через ISP да предварительно удалив штатный бутлоадер ардуинки, дабы не создавал лишних проблем.
8)
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Помогите понять, CodeVisionAVR не загружает в Arduino

Сообщение Dimon456 »

BOB51 писал(а):Только вот в этом случае саму программу и прошивку надо делать также по правилам CodeVisionAVR через ISP да предварительно удалив штатный бутлоадер ардуинки,
Ерунду не несите.
https://youtu.be/qRG39L_sCJc
Ответить

Вернуться в «AVR»