GCC при оптимизации -Os генерит практически одинаковый код, одинаковой длиной.HHIMERA писал(а):на 17% ...HHIMERA писал(а): и работает быстрее...
CooCox + STM32 + дисплей от S65 = не запускается
Re: CooCox + STM32 + дисплей от S65 = не запускается
- Реклама
Re: CooCox + STM32 + дисплей от S65 = не запускается
1:0 ... в пользу Кейла... 
"Я не даю готовых решений, я заставляю думать!"(С)
Re: CooCox + STM32 + дисплей от S65 = не запускается
Но если вынести определение переменных за функцию main, то на 4 байта меньше с 32.HHIMERA писал(а):1:0 ... в пользу Кейла...
Re: CooCox + STM32 + дисплей от S65 = не запускается
Заменил все uint16_t на uint32_t. Сделал картинку uint32_t. Записал данные для каждого пикселя в 32-х битном виде. Объем кода абсолютно не изменился.
Только добавился гемор с выводом картинки на экран. Инициализация проходит, а вот картинку так толком и не могу вывести, что то не понимаю как пересчитать вывод под такой формат. Вместо картинки на весь экран у меня выводится на полэкрана 2 картинки, каждая размером в четверть экрана
Код: Выделить всё
const uint32_t picture[11616] = {
0x09481148, 0x09480948, 0x09480948, 0x09480948, 0x09480948, 0x09480948, 0x11680948, 0x09480948,
0x09480948, 0x09480948, 0x09480948, 0x09480948, 0x11681168, 0x11681168, 0x11691169, 0x11691169 ...
Код: Выделить всё
void LCD_Picture(const uint32_t *pic) {
uint32_t i;
LCD_CMD(0xEF90);
LCD_CMD(0x0504); // ориентация
LCD_CMD(0x0800); // координата X1
LCD_CMD(0x0983); // координата X2 (83 в hex равно 131 в dec)
LCD_CMD(0x0A00); // координата Y1
LCD_CMD(0x0BAF); // координата Y2 (AF в hex равно 175 в dec)
CS_Low;
RS_Low;
for(i=0; i<11616; i++) {
SPI_Send(pic[i]);
}
CS_Hi;
}
Нельзя всё знать, достаточно понимать.
Re: CooCox + STM32 + дисплей от S65 = не запускается
Да, действительно... приношу извинения... только что проверил...
Где-то что-то я напутал... (((
Эффект "удвоения" ловил точно... но навскидку вспомнить не могу... сорри...
Где-то что-то я напутал... (((
Эффект "удвоения" ловил точно... но навскидку вспомнить не могу... сорри...
"Я не даю готовых решений, я заставляю думать!"(С)
- Реклама
Re: CooCox + STM32 + дисплей от S65 = не запускается
Проект в CooCox прикрепляю. Там 2 картинки поочередно выводятся на экран с интервалом 20 сек. Всем спасибо за ответы, особенно HHIMERA.
P.S. Как приедет китайский дисплей 3.2" с Ebay - начну его мучить.
P.S. Как приедет китайский дисплей 3.2" с Ebay - начну его мучить.
Нельзя всё знать, достаточно понимать.
Re: CooCox + STM32 + дисплей от S65 = не запускается
Да, и ещё. Если вдруг кто то будет повторять, выкладываю печатку преобразователя 5В -> 11,5 В для питания подсветки дисплея от USB. На микросхеме MC34063. Резисторы типоразмера 0805. На выходе преобразователя 11,5В с током до 30 мА. Диод должен быть из серии "супер быстрый". Я поставил BAS321. Всё прекрасно работает.
Нельзя всё знать, достаточно понимать.
Re: CooCox + STM32 + дисплей от S65 = не запускается
Аналогичный вопрос мучает. Расскажите пожалуйста, знающие люди, или пальцем ткните где смотреть. В документации на Кокос ничего об этом не нашел. Да и самой документации собственно особо не нашел, кроме как картинок на сайте.mr_smit писал(а):1. CooCox при компиляции выдает:
Как понять сколько flash из общего объема 128 Кб занято? 50928 байт? И что за поля text и data ?Program Size:
text data bss dec hex filename
49816 84 1028 50928 c6f0 S65_Display.elf
BUILD SUCCESSFUL
Total time: 0 seconds
P.S. Просто CodeVisionAVR пишет прям в процентах. Например 62% flash занято


