|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
13.05.2013, 11:30 | #31 | |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
|
|
13.05.2013, 11:54 | #32 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Обратите внимание на тот факт, что у вас всегда есть возможность задать вопрос, прежде чем требовать каких-либо изменений.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
13.05.2013, 13:03 | #33 | ||
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
Цитата:
Ну а теперь собственно вопросы: 1. Для каких случаев применяются упрощенные алгоритмы деления (умножения)? 2. Какие это алгоритмы? 3. Как зависит применимость упрощенных алгоритмов деления (умножения) от типа переменной? |
||
13.05.2013, 13:33 | #34 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Извините, лично я не вижу здесь никакого вопроса. Ни прямого, обозначенного специальным знаком - вопросительным знаком. Ни косвенного.
Цитата:
Если просто хотите поговорить "за жизнь", то согласен при выполнении всего одного условия: вы самостоятельно исследуете влияние операций умножения и/или деления на время выполнения ваших алгоритмов. Если это влияние окажется больше, чем хотя бы 5-10 миллисекунд, то будем вместе с вами думать, что с этим делать. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
13.05.2013, 14:05 | #35 | |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
|
|
13.05.2013, 14:11 | #36 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Нет, это так понимать не стоит.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
13.05.2013, 15:37 | #37 | |
Senior Member
Регистрация: Dec 2011
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
|
|
13.05.2013, 17:10 | #38 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Я ответил на ваш вопрос, ни больше, не меньше.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
13.05.2013, 19:30 | #39 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Распределение памяти в контроллере
Только что попробовал загрузить пиксель множеством операций умножения двух float значений (проект в архиве 3000 mul.zip).
Пиксель 25-й, прошивка 279-ая, Смарт не задействован, тип компоновки рабочий, подключения для отладки не производил. 3000 блоков умножения. 29,11 * 1 29,11 * -1 29,11 * 2 29,11 * 4 29,11 * 8 -29.11 * -1 8 * 8 занимают 177 мс 29,11 * 0 занимает 121 мс 29,11 * 0,1 29,11 * 10 29,11 * 100 29,11 * -10 29,11 * 29,13 29,11 * 7 занимают 174 мс Видно, что имеется разница между операциями умножения любого числа на степени двойки и остальными (а умножения на 0 вообще особняком стоит). Только странно, что при умножении на степени двойки затрачивается больше времени, чем при умножении на какое-либо иное число. При этом, знаки множителей не влияют (или это не заметно) на время выполнения операций. Так же тестировал время выполнения 3000 операций XOR с 32-разрядными числами (в частности, инвертировал старший бит числа - как бы имитация инверсии знака float переменной). Получилось 90 мс. Итого, время выполнения умножения на -1 действительно отличается от умножения на большинство вещественных чисел, но а) не в пользу умножения на -1 б) разница даже при 3000 операциях умножения столь мала, что не стоит ее учитывать. Сравнивать время выполнения 3000 MUL (float) 3000 XOR (long int) мне кажется не вполне корректно, но пусть даже если умножение float на -1 производилось бы операцией XOR, вряд ли бы это уменьшило время выполнения операции настолько значительно (в случае 3000 операций разница 84 мс, но в случае одной разница будет составлять 30 мкс, если я не ошибся в подсчетах). А часто ли нам требуется умножение именно на -1? И в заключение: tvf, вы ужасный зануда. |
13.05.2013, 21:32 | #40 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Распределение памяти в контроллере
Всего 84 мс - это уменьшение времени выполнения операции инвертирования почти в 2 раза или на 47%.
__________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
14.05.2013, 00:03 | #41 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Распределение памяти в контроллере
Если уж очень надо, можно воспользоваться операцией вычитания из 0.
3000 блоков выполняются за 108 мс. |
14.05.2013, 01:37 | #42 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
На настолько хорошо заданный вопрос очень легко ответить: введение "инверсии" для чисел с плавающей точкой действительно нецелесообразно. Потери времени также зависят и от второго множителя. Что наблюдается "торможение" степенях двойки - это связано с несколько более лучшим "ускорением" операций с остальными числами. В оригинальной мат. библиотеке для ядра AVR операция умножения в среднем выполняется в несколько раз медленнее, чем в нашей библиотеке. Я не помню точную величину, но раза в 4 дольше - это точно. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.09.2018, 22:57 | #43 | |
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
получил сообщение о нехватке памяти при загрузке проекта в режиме отладки. в рабочем режиме проект грузится, но хочется протестировать в режиме отладки. заказал дополнительный модуль памяти, поставил. результат - монопенисуально. напрасная потеря денег и времени, пока ждал память. Как на счет такого сценария? |
|
22.09.2018, 10:42 | #44 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 173
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
|
|
22.09.2018, 10:50 | #45 | |
Senior Member
Регистрация: Mar 2008
Адрес: Екатеринбург
Сообщения: 494
Благодарил(а): 50 раз(а)
Поблагодарили:
14 раз(а) в 13 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
Которого уже нету. |
|
24.09.2018, 10:37 | #46 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Распределение памяти в контроллере
Вы покупаете еепром, а не память под проект. Вот с ошибкой "недостаточно еепром" можно рассчитывать, что докупив модуль памяти - всё пойдёт.
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
24.09.2018, 11:17 | #47 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
http://dl.segnetics.com/WebHelp/SMLo...ock_eeprom.htm Вот прямо в первой строчке написано, что ничего заказывать и ждать не нужно __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 24.09.2018 в 11:32 |
|
24.09.2018, 21:52 | #48 | |||
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
Цитата:
Цитата:
P.S Изначально проект и был рассчитан под 2 Gi Но, увы... во первых проект пролежал на полке пару лет, во вторых в названиях контролера между 2Gi и 2G разница всего в одной маленькой буковке, которая и была благополучно проигнорированна при составлении спецификации и закупке оборудования |
|||
25.09.2018, 11:31 | #49 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Распределение памяти в контроллере
Цитата:
Контроллер и так сообщает, когда это действительно имеет значение. Если мало еепром, то так и говорит при загрузке программы, что мало еепром. Загрузке программы это не мешает. Вариативности, куда программа загружается, нет, поэтому нет смысла и уточнять. Программа либо влезает, либо не влезает. От еепром это не зависит, его докупка на это не влияет. Влияет только докупка более старшего контроллера или оптимизация программы. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 25.09.2018 в 11:56 |
|