Dmitry
08.06.2017
19:10:11
Как исключить (или подтвердить) недостаток памяти?
И я не выделяю память динамически.
Serg
08.06.2017
19:34:32
в динамическом выделении памяти нет ничего криминального
только если это делать одноразово
Google
Serg
08.06.2017
19:37:18
иногда очень помогает
Кто как учитывает электронные компоненты? Что в наличии, купил - надо раскидать по наличию, отправил на монтаж - надо списать и т.д.
Petr
08.06.2017
19:47:46
на we.ee был былинный тред
поищи
777Andrej
08.06.2017
19:47:56
в голове :)
Konstantin
08.06.2017
19:47:57
Serg
08.06.2017
19:53:10
я не сравнивал скорость
мне некритично
Ivan
08.06.2017
20:25:58
Petr
08.06.2017
20:26:55
да есть такое
идите ищите тред на we.easyelectronics
Serg
08.06.2017
21:03:52
видел, все какой-то примитив
а если еще и с веб интерфейсом - вообще жопа
Google
Dmitry
09.06.2017
00:09:13
Alexander
09.06.2017
00:18:03
Неинициализированная переменная где-то или срыв стека? (Бесконечная рекурсия?)
Dmitry
09.06.2017
00:25:53
на неинициализированную оно бы ругалось варнингом.
рекурсии нет.
возможно, срыв стека — это всё случается где-то в части кода, где много вложенных вызовов.
но при этом оно может пару раз нормально отработать, а потом вот так упасть.
увеличил в два раза размер стека в задаче (до 256) — та же фигня.
xPortGetFreeHeapSize() стабильно показывает ~400 байт
Danil
09.06.2017
06:16:27
а что за РТОС у тебя? вроде есть во freeRTOS инструменты для контроля таких вещей встроенные и есть мануал , как отловить такие глюки. По всем симптомам похоже на переполнение стека. Может ещё переполнение буферов быть - например ты объявил буфер на 32 байта а по инкременту указателя залил 33 и блольше. Случается редко, но случается
и вообще printf оооочень жрущая стек штука
попробуй заметь на неформатированный тупой вывод и посмотри чтл будет
Serg
09.06.2017
06:40:57
kaktys
09.06.2017
06:51:10
при использовании формата - может рекурсивно
ОлегЪ
09.06.2017
06:53:08
Danil
09.06.2017
06:55:16
реализации sprintf и printf бывают разные. Есть специально оптимизированные под МК - на ee было несколько хороших постов на эту тему
можно для теста заменить форматированный вывод на тупой принт и проверить работу кода
ОлегЪ
09.06.2017
06:56:20
я использовал то, что было в codevision avr, могу скинуть асемблерный исходник, если интересно, он вроде там был
Serg
09.06.2017
06:57:31
ОлегЪ
09.06.2017
06:57:39
извиняюсь, не скину, он там бинарником
Danil
09.06.2017
06:58:12
я не против printf и sprintf - это проверено временем, удобно и стандартно. Но в условиях МК могут быть проблемы с ресурсами - такты и память
ОлегЪ
09.06.2017
07:01:40
с использованием строковых функций
Build: 263
22113 line(s) compiled
No errors
1 warning(s)
Bit variables area: 0x2 to 0x2
Bit variables size: 1 byte(s)
Data Stack area: 0x100 to 0x2FF
Data Stack size: 512 byte(s)
Estimated Data Stack usage: 81 byte(s)
RAM Global variables area: 0x300 to 0x36D
RAM Global variables size: 110 byte(s)
Hardware Stack area: 0x36E to 0x8FF
Hardware Stack size: 1426 byte(s)
Heap size: 0 byte(s)
EEPROM usage: 0 byte(s), 0,0% of EEPROM
Program size: 2989 words (5978 bytes), 18,2% of FLASH
с использованием sprintf
Build: 264
22113 line(s) compiled
No errors
2 warning(s)
Bit variables area: 0x2 to 0x2
Bit variables size: 1 byte(s)
Data Stack area: 0x100 to 0x2FF
Data Stack size: 512 byte(s)
Estimated Data Stack usage: 81 byte(s)
RAM Global variables area: 0x300 to 0x369
RAM Global variables size: 106 byte(s)
Hardware Stack area: 0x36A to 0x8FF
Hardware Stack size: 1430 byte(s)
Heap size: 0 byte(s)
EEPROM usage: 0 byte(s), 0,0% of EEPROM
Program size: 2948 words (5896 bytes), 18,0% of FLASH
4 байта разницы, если я правильно понял
вот это
sprintf(str, "%d,%d,%d", temp_ds18b20, temp_dht22, hum_dht22);
против этого
itoa(temp_ds18b20, uart_str); // преобразуем температуру ds18b20 в строку
strcat(uart_str, ","); // ставим запятую
itoa(temp_dht22, str); // преобразуем температуру dht22 в строку
strcat(uart_str, str); // дописываем в конец строки
strcat(uart_str, ","); // ставим запятую
itoa(hum_dht22, str); // преобразуем влажность dht22 в строку
strcat(uart_str, str); // дописываем в конец строки
Serg
09.06.2017
07:22:40
кстати, для безопасной работы со строками рекомендую https://www.sudo.ws/todd/papers/strlcpy.html
Google
Serg
09.06.2017
07:25:09
просто sprintf, strcat, strcpy запретил бы в embed, нет контроля размера буфера
https://ru.wikipedia.org/wiki/Strlcpy
Dmitry
09.06.2017
08:09:36
Danil
09.06.2017
08:23:18
да вроде может и сразу падать, а может и в другой раз. Зависит от того, что портится. Если я правильно помню то у каждой задачи свой стек и область памяти под переменные, т.к. каждая задача не работает как единственная в системе и все переключение контекста это работа ОС. Может поднасрать и соседней задаче тоже
Dmitry
09.06.2017
08:29:36
Rizvan
09.06.2017
22:08:38
А что это за терминал?
Dmitry
09.06.2017
22:13:20
Realterm
(это я в поисках нормального терминала пробую)
Dolphin
10.06.2017
03:40:51
Roman
10.06.2017
17:05:24
Привет, подскажите по феритам, можно ли заказать нужный размер феритового кольца по индивидуальным размерам или можно ли складывать два феритовых кольца, одно над другим?
Eugene
10.06.2017
17:07:56
возьми третье колечко, сотри его в порошок разведи с клеем и склей два оставшихся
а если просто так типа приложить друг к другу хз, врятли будет что хорошего
Антон
10.06.2017
17:09:24
Ребят
Просьба есть
У кого спуджер есть железный, самый популярный - какая длина у него, можете померять?
777Andrej
10.06.2017
17:12:14
kaisi-i8
Антон
10.06.2017
17:14:59
kaisi-i8
Только вопрос - это "стандартная" длина? Самая популярная?
kaktys
10.06.2017
17:17:22
777Andrej
10.06.2017
17:17:37
Roman
10.06.2017
17:18:06
Google
Антон
10.06.2017
17:19:33
777Andrej
10.06.2017
17:20:53
Danil
11.06.2017
09:04:27
Dmitry
11.06.2017
10:18:13
а SIM800c можно использовать только как BT модуль, не используя GSM?
Serg
11.06.2017
10:39:21
а почему нет, только какой смысл?
есть же подешевле варианты, или нет?
Dmitry
11.06.2017
10:40:20
ну оно 300р стоит.
в наличии, с поддержкой, с поддержанием наличия, от нормального производителя
Serg
11.06.2017
10:50:05
где оно 300 руб стоит?
Dmitry
11.06.2017
10:50:22
в мт системах
Serg
11.06.2017
10:51:52
аа, ну да, так и стоит
а hc-05 сколько стоит?
на али - 3 бакса
в два раза дешевле
Dmitry
11.06.2017
10:53:54
без поддержки, наличия на локальных складах и таможней, которая съест эту разницу
угу. но иногда глючит. особенно последняя версия
Serg
11.06.2017
10:54:33
тогда может лучше взять чип?
Dmitry
11.06.2017
10:56:21
сходу компетенций не хватит. но после SIM800 можно и чип.
kaktys
11.06.2017
11:02:32
Новости по моим cp2104 - купил другие, с платками сразу, передул на свои и все завелось, т.е. есть уже и ср2104 поддельные
Petr
11.06.2017
11:04:47
ну 2102 уже были
kaktys
11.06.2017
11:10:41
А 2104 пока нет
Google
Dmitry
11.06.2017
11:33:21
kaktys
11.06.2017
11:38:34
Вот теперь 2104
Rodion
11.06.2017
14:00:42
Привет всем! ??
Вопрос немного по электротехнике и больше по охране труда
Есть измеренные силы тока *прикосновения*, при которых возникают болевые ощущения, неотпускание и фибриляция. Но расчёты в основном встречаю на тему трёхфазного включения, и в итоге ничего не могу из этого подчерпнуть.
? А как преобразовать постоянную силу тока на контроллере в силу тока прикосновения, чтобы понять какой величины ток будет нести опасность?
Кстати, подскажите, пожалуйста, канал Telegram по электротехнике (или охране труда); всё-таки мой вопрос больше к ним относится
Danil
11.06.2017
16:43:04
про контроллер вообще не понятно что ты имел в виду
Eugene
11.06.2017
18:14:38
Sanchez
11.06.2017
19:55:18
ОлегЪ
11.06.2017
19:57:08
#ссылка
С молчаливого позволения админов накидаю свой обновленный список инженерных чатов:
@ru_arduino https://t.me/ru_arduino
@ru_electronics https://t.me/ru_electronics
@proembedded https://t.me/proembedded
@ru_raspberry https://t.me/ru_raspberry
@pro_esp8266 https://t.me/pro_esp8266
@ru_iot https://t.me/ru_iot
@telecatethysis https://t.me/telecatethysis
@ru_ASUTP https://t.me/ru_ASUTP
@ru_CAD https://t.me/ru_CAD