-
- А мне казалось, что к видеопамяти у CPU никогда не было доступа. - Ксения(06.12.2017 00:01)
- Шина памяти, по железу, не сильно отличается от пары индексный-регистр:регистр:данных. Скрипач(42 знак., 06.12.2017 00:13)
- Означает нахождение графической памяти в адресном пространстве обычной. В принципе ISA-шина позволяла это не только видеокартам, но и всему тому, что было в комп воткнуто. - Ксения(06.12.2017 00:25)
- И? Какая разница что в чем находится, если и то, и то - шина? Кэш? Так а нахрена видеоданным кэш? Частота квитирования шины? А она действительно выше? Скрипач(74 знак., 06.12.2017 09:30)
- Если видео-буфер не в памяти, то обращаться к нему придется через регистры: в один регистр пишешь адрес элемента буфера, а потом в другой регистр байт данных для него кладешь. Причем каждая из этих двух операций по сложности не проще, чем сама Ксения(110 знак., 06.12.2017 15:57)
- Повторяю, шине - все равно, памяти она или ввода-вывода :) Процесс одинаков. Скрипач(58 знак., 06.12.2017 16:28)
- а чего сложного то? для параллельной шины это вообще тривиальная операция, так как оно отображается на память. для spi чуть сложнее write_reg(regadr, adr); write_reg(regdata, data); причем разных готовых библиотек под разные экраны как грязи - AVF(06.12.2017 16:16)
- А если вспомнить, что write_reg(regadr, adr) и write_reg(regdata, data) - отдельные подпрограммы/функции, но и вовсе становится весело :) - Ксения(06.12.2017 16:28)
- ЗЫ: на самом деле основная сложность - краткость документации и всякие хитрые режимы направления разверток, ориентации и т.п., т.е. начальная инициализация, с которой приходится экспериментировать из-за краткости документации и непоняток как AVF(136 знак., 06.12.2017 16:36)
- А я вот смотрю сейчас на реализацию алгоритма Брезенхэма (проведение прямой на дискретном поле) и диву даюсь, как косолапо эта процедура для ARM'ов написана - везде, где требуется поставить следующую точку правее или выше, вызываются функции (!) Ксения(2216 знак., 06.12.2017 17:16 - 17:19, ссылка)
- Что-то я смотрю на код и нифига не понимаю. Evgeny_CD(137 знак., 06.12.2017 19:25)
- Говнокодеров спасла типизация в С. Evgeny_CD(1634 знак., 06.12.2017 21:40 - 21:50)
- Но ведь согласны же, что код - дерьмо, и что быстро работать он не может. Между тем этот код не просто "взят из интернета", а с cайта ARM. И он же в качестве образцового для данного МК приведен в examples пакета ARM MDK! Что уже очень серьезно. - Ксения(06.12.2017 21:53)
- Я категорически не могу понять, зачем в Брезенхеме, который в основе своей целочисленный алгоритм, плавучка? да еще и дабловая!? Да еще во встраиваемой системе? - Evgeny_CD(06.12.2017 21:58)
- Детский сад. Это же ARM, а роялти с ядра с плавучкой всякого выше, чем без. - she(06.12.2017 22:16)
- Тонкость в том, что только некоторые MCU имеют даблы - отдельные варианты Cortex-M7 и отдельные варианты PIC32. - Evgeny_CD(06.12.2017 22:30)
- В данном случае говнокод был написан для серии LPC17xx, которые Кортексы даже не M4, а M3. Полагаю, что плавучки у них вообще нет, даже float. Или есть? - Ксения(06.12.2017 23:17)
- Совершенно точно, LPC17xx плавучки не имеют! Evgeny_CD(06.12.2017 23:20)
- Может это часть бенчмарка под конкретный проц? Вот смотрите, ему глубоко пофигу молотить брезенхема в целых или в даблах:) - 1111111(06.12.2017 22:57)
- Тренировка самоубийц... - Evgeny_CD(06.12.2017 22:58)
- В данном случае говнокод был написан для серии LPC17xx, которые Кортексы даже не M4, а M3. Полагаю, что плавучки у них вообще нет, даже float. Или есть? - Ксения(06.12.2017 23:17)
- Я низко кланяюсь гению маркетинга и пристыженно уползаю под стол. - Evgeny_CD(06.12.2017 22:29)
- Тонкость в том, что только некоторые MCU имеют даблы - отдельные варианты Cortex-M7 и отдельные варианты PIC32. - Evgeny_CD(06.12.2017 22:30)
- Детский сад. Это же ARM, а роялти с ядра с плавучкой всякого выше, чем без. - she(06.12.2017 22:16)
- Я категорически не могу понять, зачем в Брезенхеме, который в основе своей целочисленный алгоритм, плавучка? да еще и дабловая!? Да еще во встраиваемой системе? - Evgeny_CD(06.12.2017 21:58)
- Канонический вариант Брезенхема. Работать будет, вероятно, на порядок быстрее говнокода -> - Evgeny_CD(06.12.2017 21:52, ссылка)
- Здесь уже проскакивала ссылка, где алгоритм был написан в целых числах. Этого вполне достаточно. => - Ксения(06.12.2017 22:00, ссылка)
- Но ведь согласны же, что код - дерьмо, и что быстро работать он не может. Между тем этот код не просто "взят из интернета", а с cайта ARM. И он же в качестве образцового для данного МК приведен в examples пакета ARM MDK! Что уже очень серьезно. - Ксения(06.12.2017 21:53)
- double delta, tx, ty; Код целиком по ссылке => - Ксения(06.12.2017 19:31 - 19:34, ссылка)
- Это интернет. Тут можно много какашек нарыть, особенно если специально их искать. Нужно искать перлы --> - SciFi(06.12.2017 20:07, ссылка)
- Говнокодеров спасла типизация в С. Evgeny_CD(1634 знак., 06.12.2017 21:40 - 21:50)
- не, ну криворуких то хватает :) - AVF(06.12.2017 19:15)
- Что-то я смотрю на код и нифига не понимаю. Evgeny_CD(137 знак., 06.12.2017 19:25)
- А я вот смотрю сейчас на реализацию алгоритма Брезенхэма (проведение прямой на дискретном поле) и диву даюсь, как косолапо эта процедура для ARM'ов написана - везде, где требуется поставить следующую точку правее или выше, вызываются функции (!) Ксения(2216 знак., 06.12.2017 17:16 - 17:19, ссылка)
- Можно "размотать" и оптимизировать. Только смысл? Возьмите молоток по-больше, не тратьте жизнь на ерунду :) - Скрипач(06.12.2017 16:35)
- не, ну если два байта через spi переслать проблема, то конечно, работа с индикатором неподъемная вещь - AVF(06.12.2017 16:32)
- ЗЫ: на самом деле основная сложность - краткость документации и всякие хитрые режимы направления разверток, ориентации и т.п., т.е. начальная инициализация, с которой приходится экспериментировать из-за краткости документации и непоняток как AVF(136 знак., 06.12.2017 16:36)
- А если вспомнить, что write_reg(regadr, adr) и write_reg(regdata, data) - отдельные подпрограммы/функции, но и вовсе становится весело :) - Ксения(06.12.2017 16:28)
- Если видео-буфер не в памяти, то обращаться к нему придется через регистры: в один регистр пишешь адрес элемента буфера, а потом в другой регистр байт данных для него кладешь. Причем каждая из этих двух операций по сложности не проще, чем сама Ксения(110 знак., 06.12.2017 15:57)
- И? Какая разница что в чем находится, если и то, и то - шина? Кэш? Так а нахрена видеоданным кэш? Частота квитирования шины? А она действительно выше? Скрипач(74 знак., 06.12.2017 09:30)
- Означает нахождение графической памяти в адресном пространстве обычной. В принципе ISA-шина позволяла это не только видеокартам, но и всему тому, что было в комп воткнуто. - Ксения(06.12.2017 00:25)
- о господи SciFi(42 знак., 06.12.2017 00:03)
- Шина памяти, по железу, не сильно отличается от пары индексный-регистр:регистр:данных. Скрипач(42 знак., 06.12.2017 00:13)
- А мне казалось, что к видеопамяти у CPU никогда не было доступа. - Ксения(06.12.2017 00:01)