Обсуждаем контроллеры компании Atmel.
Ответить

Re: AVR studio в вопросах и ответах

Сб окт 01, 2022 16:14:43

После компиляции становится активным Up/Download Memory в окне Debug. Выбираете EEPROM

Re: AVR studio в вопросах и ответах

Сб окт 01, 2022 17:32:50

akl, убейте, не понимаю, о каком окне идет речь (

Re: AVR studio в вопросах и ответах

Вс окт 02, 2022 02:00:29

Не знаю, какая студия у вас. Студия 4.19, к примеру, показывает так


Вложения
DEBUG_2.PNG
(52.89 KiB) Скачиваний: 96
DEBUG_1.PNG
(44.14 KiB) Скачиваний: 113

Re: AVR studio в вопросах и ответах

Вс окт 02, 2022 10:12:33

увы, у меня 7-я. Там такого пункта просто нет (
Изображение

Re: AVR studio в вопросах и ответах

Вс дек 04, 2022 14:38:15

Помогите я запарился прям руки опускаются. Atmel Studio 7 не работают точки останова и все тут. Код простой на картинке. Почему не хочет останавливаться? Оптимизатор выключен.
Причем в мануале начиная с 66 страницы типа все должно работать

Изображение
Вложения
Безымянный.jpg
(20.51 KiB) Скачиваний: 435

Re: AVR studio в вопросах и ответах

Вс дек 04, 2022 15:05:34

vitaminkvl, где то пробегало, что в пути к проекту не должно быть кириллических символов

Re: AVR studio в вопросах и ответах

Вс дек 04, 2022 17:30:23

vitaminkvl, где то пробегало, что в пути к проекту не должно быть кириллических символов

Проект по короткому пути "D:\AVR_project\Test_LEDS" уже студию переставил именно на ATMEL Studio 7, таже фигня не хочет останавливаться хоть на каждой строчке брекпоинты ставь. Уже все перепробовал все что нагуглил.

В видеоинструкции от Atmel в симуляторе спокойно ставят точки и они работают. Че студия от меня хочет не пойму.


Добавлено after 2 hours 14 minutes 23 seconds:
Заработало, я на это потратил 2а дня оставлю другим на заметку. Действительно виноваты русские буквы в пути до проекта. Но прочитав о том что такое может быть я папку с проектом перенес так чтоб путь был латиницей и все равно брекпоинты НЕ работали !!! ПРОЕКТ НАДО СОЗДАВАТЬ ЗАНОВО ЧТОБ ОН СРАЗУ БЫЛ ПО ПУТИ ЛАТИНИЦЕЙ!!!!

Re: AVR studio в вопросах и ответах

Вс дек 04, 2022 21:10:07

vitaminkvl писал(а):ПРОЕКТ НАДО СОЗДАВАТЬ ЗАНОВО ЧТОБ ОН СРАЗУ БЫЛ ПО ПУТИ ЛАТИНИЦЕЙ
Возможно, надо из проекта вынести все файлы и добавить их заново. (Справа, в окошке состава проекта)

Re: AVR studio в вопросах и ответах

Пт дек 23, 2022 10:59:52

Народ помогите разобраться, до фунции mein обьявлен массив buffer заполненный сразу. Останавливаю дебагер на первой строчке, никаких изменений buffer не произвожу еще. Но дебагер показывает какуюто чушь в этом массиве buffer, а не то что заказывал. Элемент массива с индексом 0 должен быть 0xFF а дебагер кажет 0х12 и тд. Что не так?

Изображение
Вложения
111.jpg
(67.64 KiB) Скачиваний: 351

Re: AVR studio в вопросах и ответах

Сб дек 24, 2022 16:08:53

Уперся в непонимание следующего , до функции main объявлены пару массивов один короткий mychar и один большой MYbuffer на 1024 байта они сразу заполнены
тут привел кусок большого массива чтоб покороче сообщение было.

char mychar[]="ASDFGH";

uint8_t MYbuffer[1024] =
{
0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
..............................

int main(void)
{

char Simb = mychar[3];
uint8_t B=MYbuffer[0];
uint8_t C=MYbuffer[1];


Массив Mychar попадает в ОЗУ читается начиная с адреса 0x0060 и обращение к массиву mychar[3] возвращает 0x46 что соответсвует букве F как и положено.

А вот большой массив MYbuffer не понимаю куда он попадает , и почему MYbuffer[0] и MYbuffer[1] возвращает чтото начина с адреса 0x0000 из памяти PROG FLASH,
а там лежит чтото другое тоесть
MYbuffer[0] должен возвращать 0xFF а прилетает 0х12
MYbuffer[1] должен возвращать 0x01 а прилетает 0хс0

Помогите разобраться

Re: AVR studio в вопросах и ответах

Сб дек 24, 2022 16:28:06

МК какой? Если данные в массиве не меняются, может лучше переместить MYbuffer во флеш (PROGMEM)?

Re: AVR studio в вопросах и ответах

Сб дек 24, 2022 16:54:12

Atmega8, массив будет постоянно меняться , мне бы вообще понять почему рядом обьявленные массивы попадают в разные места . я не могу достучаться до большого массива, при компилировании ошибок нет.

Re: AVR studio в вопросах и ответах

Вс дек 25, 2022 01:41:09

vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ.
А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ?
А ведь еще где то надо стек положить.....

Re: AVR studio в вопросах и ответах

Вс дек 25, 2022 11:25:30

Оптимизатор есть, попытался уменьшить объем памяти (и ему это удалось ... по-своему). Выключите, или с помощью volatile к данным.

Но наверняка будет другая проблема: данные не собираются в памяти :). А потом вперед, к другим МК.
Или оптимизировать данные - напр. с "есть повторяющиеся данные, почему записаны в нескольких местах одинаковые?".

Re: AVR studio в вопросах и ответах

Вс дек 25, 2022 17:12:16

vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ.
А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ?
А ведь еще где то надо стек положить.....

Да действительно это мое непонимание того что надо следить за заполнением памяти.
И да компилятор ничего не говорит если включен оптимизатор.

Re: AVR studio в вопросах и ответах

Вс дек 25, 2022 22:26:23

Вообще странно, что при объявлении статических переменных объемом, превышающим доступное ОЗУ, компилятор не ругается.
Вот попробовала, пустой проект , седьмая студия, настройки проекта по умолчанию, оптимизация О1
Массив 1025 байт.

Код:
#include <avr/io.h>

uint8_t arr[1025] = { 0x00 };

int main(void)
{
   
   for (uint16_t i = 0; i<1025; i++) arr[i] = i & 0xFF;
    while (1)
    {
    }
}


Error Program Memory Usage : 100 bytes 1,2 % Full
Data Memory Usage : 1025 bytes 100,1 % Full (Memory Overflow) dummy8a dummy8a 0

Добавлено after 9 minutes 28 seconds:
Попробовала при объявленном массиве в 1024 байта объявить в функции локальный массив в 100 байт и попробовать посмотреть на выполнение в отладчике студии. При оптимизации О0 и О1 проект собирается.
При выполнении:
Заполняется в ОЗУ массив 1024 байта.
А потом, поскольку локальные переменные живут на стеке - начал заполняться этот временный массив данными, затирая верхнюю часть объявленного массива.
Так что за объемом памяти надо следить самостоятельно. И помнить, сколько ОЗУ в МК и сколько нужно программисту.

Re: AVR studio в вопросах и ответах

Пн дек 26, 2022 00:52:13

Та же программа, ATmega8 через MiniCore:
Код:
Скетч использует 98 байт (1%) памяти устройства. Всего доступно 7680 байт.
Глобальные переменные используют 1025 байт (100%) динамической памяти, оставляя -1 байт для локальных переменных. Максимум: 1024 байт.data section exceeds available space in board

Not enough memory; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing your footprint.
Ошибка компиляции для платы ATmega8.


PIC16F1829 в CCS с тем же кодом:
Код:
Compiling C:\Users\aaa\Desktop\blink\main on 25-äåê-22 at 23:49
*** Error 74 "C:\Users\aaa\Desktop\blink\main.c" Line 24(1,2): Not enough RAM for all variables
      1 Errors,  0 Warnings.
Build Failed.

---
С уменьшением данных: MiniCore с уменьшенным стеком предупреждает, что могут быть конфликты, CCS в том же случае не позволяет: Not enough RAM for all variables
Последний раз редактировалось veso74 Пн дек 26, 2022 01:14:04, всего редактировалось 1 раз.

Re: AVR studio в вопросах и ответах

Пн дек 26, 2022 01:13:21

veso74, А если вот такой код для атмеги?
Код:
#include <avr/io.h>

uint8_t arr[1024] = { 0x00 };
   
   void xxx(uint16_t n){
      uint8_t xarr[100];
      for(uint8_t i = 0; i < 100; i++) xarr[n+i] = n & 0xFF;
      for(uint8_t i = 0; i < 100; i++) arr[n+i] ^= xarr[i];
   }

int main(void)
{
   
   for (uint16_t i = 0; i<1024; i++) arr[i] = i & 0xFF;
    while (1)
    {
      xxx(1);
      xxx(2);
    }
}


У меня в симуляторе он работает, но гадит в верхние адреса массива, поскольку стек накладывается на массив.....

Re: AVR studio в вопросах и ответах

Пн дек 26, 2022 01:14:59

Код:
Скетч использует 220 байт (2%) памяти устройства. Всего доступно 7680 байт.
Глобальные переменные используют 1024 байт (100%) динамической памяти, оставляя 0 байт для локальных переменных. Максимум: 1024 байт.
Недостаточно памяти, программа может работать нестабильно.

но код компилируется.

Re: AVR studio в вопросах и ответах

Пн дек 26, 2022 01:16:57

"Недостаточно памяти, программа может работать нестабильно" xDDD

тестовая программа сделает вид, что она работает. Реальная, активно работающая с массивом - загнется из-за срыва стека.
Ответить