Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 17:49:37

ROMan2947 писал(а):Массив структур имеете ввиду?

или указателей на структуры.
см. выше - ROMan2947 пытался, не вышло.

у него с EEPROM не вышло. А вообще вполне работает -

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 17:51:11

#include <avr/eeprom.h>?!
делал...

вам нужен массив структур
придется переписать :?

при работе с EEPROM точечная нотация не прокатит
это связано только с работой с EEPROM? точечная не идет а стрелочная как себя поведет?

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 17:59:24

стрелочная точно так же не пойдет: не умеет AVR-GCC работать так с EEPROM. при помощи функций eeprom_read_byte, eeprom_read_word, eeprom_read_dwod и eeprom_read_block (аналогично и для write) вы должны будете ручками считывать данные из EEPROM в переменную в обычном ОЗУ, и уже с нею работать, как принято.

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 18:00:24

это связано только с работой с EEPROM? точечная не идет а стрелочная как себя поведет?

точки для непосредственных значений, стрелки - для указателей. С EEPROM-ом не связано, что положите туда - с тем и работайте.

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 18:05:11

arkhnchul писал(а):С EEPROM-ом не связано
как раз связано: ни точечная, ни стрелочная нотация не будет работать с описанными в EEPROM переменными и указателями на них.

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 18:14:33

точки для непосредственных значений, стрелки - для указателей.
ну по поводу этого я в курсе,я и имел ввиду может при использовании указателей можно будет работать с EEPROM...оказалось нет...

Добавлено after 1 minute 9 seconds:
Спасибо Вам, суть понял, буду разбираться :beer:

Добавлено after 4 minutes 5 seconds:
Частенько начал сталкиваться с возможность и не возможностью компилятора, что нужно лопатить для изучения компилятора именно AVR-GCC.документация может или книга,где подробно описывалось бы как он работает и хотелось бы на русском....?

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 18:20:56

ни точечная, ни стрелочная нотация не будет работать с описанными в EEPROM переменными и указателями на них.

да, извиняюсь, забыл, как оно там в AVR. Привык к stm-ам)

Re: Вопросы по С/С++ (СИ)

Вт май 08, 2018 18:24:20

ROMan2947 писал(а):что нужно лопатить для изучения компилятора именно AVR-GCC.документация может или книга,где подробно описывалось бы как он работает и хотелось бы на русском....?
вот мои скромные потуги: https://simple-devices.ru/articles/7-so ... avr-studio

Re: Вопросы по С/С++ (СИ)

Вс июн 03, 2018 20:38:35

Добрый день, подскажите пожалуйста в каких случаях при программировании МК используется куча.

Re: Вопросы по С/С++ (СИ)

Пн июн 04, 2018 06:34:09

когда ОЗУ немеряно, а думать лень.

Re: Вопросы по С/С++ (СИ)

Пн июн 04, 2018 11:51:58

Сейчас в МК ОЗУ относительно не мало. В МК за 1.8$ может быть 64 КБ ОЗУ и больше (зависит от модели). Или можно подключить внешнюю микросхему ОЗУ на несколько десятков мегабайт.

Re: Вопросы по С/С++ (СИ)

Пн июн 04, 2018 12:03:29

когда ОЗУ немеряно, а думать лень.


Ну как же, оси сделаны для лохов а ARV д'артаньян...

Re: Вопросы по С/С++ (СИ)

Пн июн 04, 2018 21:56:04

А по сути, то что в осях выделяется память из кучи вкурсе, не в курсе какие преимущества.

Re: Вопросы по С/С++ (СИ)

Пн июн 04, 2018 23:05:22

ну букварь же. Вот прям по первой ссылке из гугла
Stack
very fast access
don't have to explicitly de-allocate variables
space is managed efficiently by CPU, memory will not become fragmented
local variables only
limit on stack size (OS-dependent)
variables cannot be resized

Heap
variables can be accessed globally
no limit on memory size
(relatively) slower access
no guaranteed efficient use of space, memory may become fragmented over time as blocks of memory are allocated, then freed
you must manage memory (you're in charge of allocating and freeing variables)
variables can be resized using realloc()
что-то перевести?
если говорим про контроллеры, то еще стоит помнить, что malloc штука достаточно дорогая.

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 01:20:27

Добрый день, подскажите пожалуйста в каких случаях при программировании МК используется куча.

Меня интересует в каких случаях???

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 02:46:52

когда:
а) неизвестно заранее, сколько памяти понадобится
б) но понадобится точно и сравнительно много

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 07:51:02

Меня интересует в каких случаях???


1) Если хочется сделать "смотри, как я умею".
2) Если возникло острое желание применить stl (тут на хабре Си++ 11 (хотя именно 11 я чего-то в коде не углядел) на stm32 запускали, так что, желание запустить stl тоже не будет противоестественным).
3) Хочется неопределённости работы программы в условиях ограниченных ресурсов (может, иногда хватит памяти и программа не упадёт?).

8) :)) Пожалуй, всё. :)

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 14:58:03

Stack
[...]
variables cannot be resized

Ох рассказать-бы им про alloca. :-) Ресайз из него, конечно небесспорный, но таки и далеко не всякий realloc вернёт тот-же участок памяти при нарастании аппетита.

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 15:42:27

далеко не всякий realloc вернёт тот-же участок памяти при нарастании аппетита.

он хотя бы освободит старый - или можно то же сделать руками, malloc-memcpy/memmove-free. С alloca я чеснговоря затруднюсь сказать, чего будет после free. В лучшем случае имхо предыдущий выделенный участок так и будет занимать стек.

Re: Вопросы по С/С++ (СИ)

Вт июн 05, 2018 15:48:58

alloca


Только этой функции нет в стандарте. :) Лучше не использовать.

С alloca я чеснговоря затруднюсь сказать, чего будет после free.


Ну что будет... упадёт программа. :)
Ответить