Страница 6 из 9
Re: Программистские задачки и хитрости
Добавлено: 21 апр 2020, 15:30
MX_Master
Ну что, товарищи
механизм общей памяти с программными
spinlock'ами таки обогнал по скорости систему двунаправленного буфера. Самый увесистый кусок кода удерживает общую память
не дольше 2-3 микросекунд. В системе сообщений (два буфера) аналогичный обмен данными мог занимать
десятки микросекунд.
Следующий шаг - проверка скорости передачи с аппаратными
spinlock'ами...
Re: Программистские задачки и хитрости
Добавлено: 21 апр 2020, 18:35
Duhas
ежели объем тот же - что-то ой разница. я думаю большой вопрос в корректности реализации или еще каких нюансах.
Re: Программистские задачки и хитрости
Добавлено: 22 апр 2020, 12:17
MX_Master
Вощём, с аппаратными
spinlock'ами ещё быстрее на
200-300 нсек. Что ожидаемо
Duhas писал(а):ежели объем тот же - что-то ой разница. я думаю большой вопрос в корректности реализации или еще каких нюансах.
Система сообщений (2 буфера) даже в теории имеет больше накладных расходов. Просто, за счёт двойного копирования данных. Сначала в буфер, а потом из него по конкретным местам. Накладывается ещё и поиск непрочитанных сообщений. Ну и кривая реализация от автора тоже добавляет накладных
Re: Программистские задачки и хитрости
Добавлено: 22 апр 2020, 16:35
Duhas
дык оно происходит в разных процессах )
хотя вопрос как там доступ к памяти реализован и т.д. ну если все хорошо, то все хорошо )
Re: Программистские задачки и хитрости
Добавлено: 25 май 2020, 17:34
Serg
Кто в теме IP: почему работает?
Код: Выделить всё
$ ping -c 5 192.168.1.555
...
--- 192.168.1.555 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4128ms
rtt min/avg/max/mdev = 0.214/0.294/0.334/0.042 ms
Re: Программистские задачки и хитрости
Добавлено: 25 май 2020, 19:37
Duhas
переполнение байтовой переменной?
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 00:09
Serg
Duhas писал(а):переполнение байтовой переменной?
Нет. IPv4 адрес - это uint32_t практически во всех реализациях.
Надо ширше мыслить!
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 00:22
Duhas
ну я в кишки не заглядывал даже ) так пальцем в небо,
шо, резолвится в 192,168,3,43?
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 02:19
Serg
Нет. Адрес в сети 192.168.1.0/24
Задачка не совсем про программирование, а про IP и на сообразительность, просто более подходящей темы нет.
С другой стороны программист, мыслящий стандартами - так себе программист, скорее просто кодер.
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 05:23
wldev
Адрес 192.168.1.138
1000101011-555
10001010-138
Префикс 24бита.
Далее отбрасывается 2бита.
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 05:56
merkwurdigliebe
UAVpilot писал(а):почему работает?
echo 127.0.0.1 192.168.1.555 >>/etc/hosts
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 09:42
nevkon
Оно не обязательно должно быть где-то объявлено. Помню было на обучении, но в чем прикол уже не помню.
Re: Программистские задачки и хитрости
Добавлено: 26 май 2020, 13:28
Serg
merkwurdigliebe писал(а):echo 127.0.0.1 192.168.1.555 >>/etc/hosts
Re: Программистские задачки и хитрости
Добавлено: 08 дек 2020, 10:30
Duhas
сложно назвать задачкой, однако:
пишу библиотечку для дисплея, хочу выводить или не выводить лидирующие нули: "030" или " 30"
для этой задачи в классе дисплея заведена переменная uint8_t _leadingZeroes.
она инициализирована нулем в конструкторе и имеет функцию для доступа элементарного вида:
void HD44780::LeadingZeroes(uint8_t on)
{
_leadingZeroes = on;
}
А вот дальше начинается интересное, в процессе написания было поймано интересное поведение компилятора
если из него вырезать последний else
получается
такое приключение (для просмотра содержимого нажмите на ссылку)HD44780.o: In function `HD44780::SendNumber(signed char)':
C:\!AVR\I2C_display\I2C_display\Debug/.././HD44780.cpp:407:(.text._ZN7HD4478010SendNumberEa+0xcc): relocation truncated to fit: R_AVR_7_PCREL against `no symbol'
collect2.exe(0,0): error: ld returned 1 exit status
на другую переменную в условии реагирует нормально, собственно не знаю зачем тут это, просто не понимаю чего собственно может не нравится
ПС Atmel Studio 7, AVR8/GNU C Compiler : 5.4.0
Re: Программистские задачки и хитрости
Добавлено: 08 дек 2020, 18:41
Serg
Ничёго не понял:
Какой именно "else"? Покажи вариант с ним и без него.
На какую именно переменную, в куске кода их две.
Строка 407 - это какая именно?
Значение у "on" какое?
И почему-бы не упростить до такого?
Код: Выделить всё
if (Ts || !_leadingZeroes)
Send_Data(Ts+0x30)
else
Send_Data(' ');
P.S. Используй теги
[code] [/code]
Re: Программистские задачки и хитрости
Добавлено: 08 дек 2020, 19:02
alex_sar
Duhas писал(а): ↑
просто не понимаю чего собственно может не нравится
https://www.technovelty.org/c/relocatio ... t-wtf.html
Re: Программистские задачки и хитрости
Добавлено: 09 дек 2020, 00:47
calabr
Duhas писал(а): ↑
C:\!AVR\I2C_display\I2C_display\Debug/.././HD44780.cpp:407:(.text._ZN7HD4478010SendNumberEa+0xcc): relocation truncated to fit: R_AVR_7_PCREL against `no symbol'
Вот более близкое к AVR описание проблемы:
https://www.avrfreaks.net/forum/error-r ... ncated-fit
Думаю нужно поиграться с опциями линкера -relax, -no-relax,
Поменять порядок объявлнгия переменных в коде...
Re: Программистские задачки и хитрости
Добавлено: 09 дек 2020, 02:49
Serg
Порядок объявления переменных тут скорее всего не при чем - по твоей-же ссылке есть объяснение.
Нужно больше подробностей, особенно с вариантами экспериментов и полный текст самой функции SendNumber. А ещё лучше ассемблерный код, который получается (avr-gcc -S).
Странно, что сам компилятор с этим сам не справляется, хотя его версия довольно древняя. По любому полный текст функции нужен.
Re: Программистские задачки и хитрости
Добавлено: 09 дек 2020, 07:57
kochevnik
Может кто с esp32 играется?
Столкнулся с проблемой загрузки файлов через веб интерфейс, даже дефолтный пример глючит, если в файле пара строк текста и в конце три дефиса "---"
Может кто сталкивался и как то решили?
Re: Программистские задачки и хитрости
Добавлено: 09 дек 2020, 10:13
alex_sar
игрался, но upload не пробовал.
а как конкретно глючит? в консоли через monitor что показывает в этот момент?