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

Обсуждаем контроллеры компании Atmel.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

После компиляции становится активным Up/Download Memory в окне Debug. Выбираете EEPROM
Land
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

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

Сообщение Land »

akl, убейте, не понимаю, о каком окне идет речь (
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Не знаю, какая студия у вас. Студия 4.19, к примеру, показывает так
СпойлерИзображение
СпойлерИзображение
Land
Прорезались зубы
Сообщения: 217
Зарегистрирован: Ср янв 11, 2012 11:55:51

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

Сообщение Land »

увы, у меня 7-я. Там такого пункта просто нет (
Изображение
Аватара пользователя
vitaminkvl
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Сб фев 20, 2010 17:33:02

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

Сообщение vitaminkvl »

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

Изображение
Вложения
Безымянный.jpg
(20.51 КБ) 628 скачиваний
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

vitaminkvl, где то пробегало, что в пути к проекту не должно быть кириллических символов
Белая и Пушистая
Аватара пользователя
vitaminkvl
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Сб фев 20, 2010 17:33:02

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

Сообщение vitaminkvl »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4331231#p4331231"]vitaminkvl, где то пробегало, что в пути к проекту не должно быть кириллических символов[/uquote]
Проект по короткому пути "D:\AVR_project\Test_LEDS" уже студию переставил именно на ATMEL Studio 7, таже фигня не хочет останавливаться хоть на каждой строчке брекпоинты ставь. Уже все перепробовал все что нагуглил.

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


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

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

Сообщение Just_Fluffy »

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

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

Сообщение vitaminkvl »

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

Изображение
Вложения
111.jpg
(67.64 КБ) 567 скачиваний
Аватара пользователя
vitaminkvl
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Сб фев 20, 2010 17:33:02

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

Сообщение vitaminkvl »

Уперся в непонимание следующего , до функции 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

Помогите разобраться
veso74
Поставщик валерьянки для Кота
Сообщения: 1905
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

МК какой? Если данные в массиве не меняются, может лучше переместить MYbuffer во флеш (PROGMEM)?
Аватара пользователя
vitaminkvl
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Сб фев 20, 2010 17:33:02

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

Сообщение vitaminkvl »

Atmega8, массив будет постоянно меняться , мне бы вообще понять почему рядом обьявленные массивы попадают в разные места . я не могу достучаться до большого массива, при компилировании ошибок нет.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ.
А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ?
А ведь еще где то надо стек положить.....
Белая и Пушистая
veso74
Поставщик валерьянки для Кота
Сообщения: 1905
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

Но наверняка будет другая проблема: данные не собираются в памяти :). А потом вперед, к другим МК.
Или оптимизировать данные - напр. с "есть повторяющиеся данные, почему записаны в нескольких местах одинаковые?".
Аватара пользователя
vitaminkvl
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Сб фев 20, 2010 17:33:02

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

Сообщение vitaminkvl »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4342523#p4342523"]vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ.
А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ?
А ведь еще где то надо стек положить.....[/uquote]
Да действительно это мое непонимание того что надо следить за заполнением памяти.
И да компилятор ничего не говорит если включен оптимизатор.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

Вообще странно, что при объявлении статических переменных объемом, превышающим доступное ОЗУ, компилятор не ругается.
Вот попробовала, пустой проект , седьмая студия, настройки проекта по умолчанию, оптимизация О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 байта.
А потом, поскольку локальные переменные живут на стеке - начал заполняться этот временный массив данными, затирая верхнюю часть объявленного массива.
Так что за объемом памяти надо следить самостоятельно. И помнить, сколько ОЗУ в МК и сколько нужно программисту.
Белая и Пушистая
veso74
Поставщик валерьянки для Кота
Сообщения: 1905
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Та же программа, 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 раз.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

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);
    }
}
У меня в симуляторе он работает, но гадит в верхние адреса массива, поскольку стек накладывается на массив.....
Белая и Пушистая
veso74
Поставщик валерьянки для Кота
Сообщения: 1905
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

Скетч использует 220 байт (2%) памяти устройства. Всего доступно 7680 байт.
Глобальные переменные используют 1024 байт (100%) динамической памяти, оставляя 0 байт для локальных переменных. Максимум: 1024 байт.
Недостаточно памяти, программа может работать нестабильно.
но код компилируется.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

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

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

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