Добрый день, есть у кого нить опыт написания кода на ассемблере, для амперки на джиэсе? Нужно реализовать функции отрисовки в драйвере ILI9341: Код (Javascript): setPixel:function(x,y,c){ ce.reset(); spi.write(0x2A,dc); spi.write(x>>8,x,(x+1)>>8,x+1); spi.write(0x2B,dc); spi.write(y>>8,y,(y+1)>>8,y+1); spi.write(0x2C,dc); spi.write(c>>8,c); ce.set(); }, fillRect:function(x1,y1,x2,y2,c){ ce.reset(); spi.write(0x2A,dc); spi.write(x1>>8,x1,x2>>8,x2); spi.write(0x2B,dc); spi.write(y1>>8,y1,y2>>8,y2); spi.write(0x2C,dc); spi.write({data:String.fromCharCode(c>>8,c), count:(x2-x1+1)*(y2-y1+1)}); ce.set(); } Гордон говорит, что это должно ускорить время отрисовки.
это не ассемблер это джиэс, надо реализовать этот код на ассемблере. Это юмор у вас такой? https://ru.wikipedia.org/wiki/Espruino Отличное решение! Но мне не подходит, потому что у меня искра джиэс и потому что я не знаю Си, впрочем как и ассемблер.
Насколько я знаю, Javascript для ARM это интерпретатор. В Еspruino есть возможность делать вставки на ассемблере? В интернете есть статьи о подключении ILI9341 в одноплатникам, там на них спокойно выводиться окружение рабочего стола. Если передача просто по SPI, то чего тут ускорять. Скорость передачи у вас какая?
разница в том, что на Си нет возможности сделать такой функционал, а на ассемблере есть: http://www.espruino.com/Assembler#stm32f4-espruino-pico- Возможность как раз таки есть - E.asm(callspec, assemblycode,...), скорость максимальная, подобрал опытным путем. Про увеличении скорости на ассемблере, написал Гордон (для тех кто не знает или снова захочет потролить это создатель Espruino).
Чего на Си "нет возможности"? Записать в GPIO ? -вы бредите Слушайте. если вы в Си, по вашим же словам. валенок - откуда вы взяли что на нем можно, а что нельзя? По вашей же ссылке упомянуты регистры BSRR и BRR, писать в которые на Си можно напрямую. Вот эта одна строка эквивалентна тому ассемблерному коду, что показан по ссылке: Код (C++): GPIOA->BSRR = (1<<13)|(1<<14)|(1<<15);
есть подозрение, что встраивать ассемблер в искру-js умеют на планете, кроме самого Гордона. человек 20... А на Си для STM32 пишут миллионы.
Возможно. Но если делать, как предлагаете вы, надо: - поменять контроллер - сесть за изучение Си - переписать код который уже имеется. В другом случае надо всего лишь добавить в драйвер немного кода. Да, тоже придется разобраться с ассемблером, но не надо будет переделывать весь скетч. Вроде проще же, не?
Возможность есть на всём. Проблема не в том, что нет возможности, а в том, что Вы этого не умеете ни на Си, ни на ассемблере :-(
Посмотрел. Используется нестандартный JIT-ассемблер. Адресация к данным JS - прямая (а у них очень непростой формат). В общем, это фича для профи. Если Вы думаете, что чуток поковыряетесь методом тыка и освоите - Вы ошибаетесь. Впрочем, ковыряйтесь. Или через пару лет Вы станете профи, или Вам это надоест раньше. Но удовольствие получите.
Если бы я знал Си, то я бы купил ардуину)))). Самый простое решение, это смириться и юзать как есть )))).
Не покупайте Ардуино. У покупки, кроме изучения Си, много косвенных последствий. Некоторые проявились даже в этой теме.
увы, программирование не пишется опытным путём. Сперва составляется алгоритм работы и только потом пишется код. это так не работает.