Например TDA7294

Форум РадиоКот • Просмотр темы - CooCox STM32F303 быстрое чтение порта
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 17, 2024 01:24:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 18:04:38 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
Использую COOCOX,как можно организовать самое быстрое чтение порта за целое количество тактов?
Сейчас у меня так-
Код:
unsigned int x;
    x=0;
         Buffer[x++]=GPIOB->IDR ;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;//10
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;//20
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
     ......

но появляется откуда то странная неравномерность в каждом отсчете по количеству тактов
Никаких таймеров и прерываний в программе не задействованы,тактовая 72 МГц


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:19:16 
Электрический кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 135
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 1020
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Конвейер захлебывается.

_________________
IVL ex UA6PJ OSC_F303


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:32:37 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
как можно организовать самое быстрое чтение порта за целое количество тактов?

Чтобы F3 читал за целое число тактов должно быть выставлено 0WS, для 72 MHz этого можно добиться выполняя код из CCM RAM, будет 2 такта если компилятор все скомпилит в LDR + STR. По нормальному нужно сразу на ассме и писать:
Код:
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");

Из флеша будет 2.5 такта и больше, в зависимости от величины WS.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:35:25 
Электрический кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 135
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 1020
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Вот почитай https://radiokot.ru/forum/viewtopic.php?f=59&t=160643

_________________
IVL ex UA6PJ OSC_F303


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 20:57:45 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
240265, я это читал,толком не понятно как считать быстро-одни рассуждения )))

Добавлено after 51 minute 37 seconds:
Попробовал так
Код:
uint16_t arr[300];
const uint32_t idr = (uint32_t)&GPIOB->IDR;

      asm("PUSH {R0, R1, R2}");

      asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizacii-v-staticheskih-i-dinamicheskih-kompilyatorah-i-ih-primenenie-na-primere-gcc-llvm-javascriptdvizhkov.html
      asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
      asm("MOVT R1, %0" : : "n" (idr >> 16));

        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        ......
        asm("POP {R0, R1, R2}");


Почему то буфер не заполняется данными с порта B

Добавлено after 9 minutes 15 seconds:
Стоп!arr это адрес буфера а не переменная?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 21:00:46 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Стоп!arr это адрес буфера а не переменная?

Все там правильно, единственное если используешь LDRB/STRB, то массив должен быть uint8_t. Или пиши LDRH...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 21:32:16 
Электрический кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 135
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 1020
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
В майне обьявляю volatile uint8_t buffer[1024];
.
.
Затем вызываю ReadADC((uint32_t)&buffer[0], Band );

Добавлено after 56 seconds:
Но это в Кейле.


Вложения:
ReadADC.c [60.16 KiB]
Скачиваний: 433

_________________
IVL ex UA6PJ OSC_F303
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 22:08:08 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
У меня ошибки...
СпойлерC:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:48:2: error: unknown type name 'LDRB'
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:48:12: error: expected identifier or '(' before '[' token
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:48:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:49:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:50:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:51:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:52:13: error: stray '#' in program
[cc] ^
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:54:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:53:29: error: stray '#' in program
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:55:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:56:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:57:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:58:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:59:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:60:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:61:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:62:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:63:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:64:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:65:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:66:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:67:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:68:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:69:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:70:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:71:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:72:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:73:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:74:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:75:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:76:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:77:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:78:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:79:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:82:13: error: stray '#' in program
[cc] ^
[cc] LDRB rez,[#0x48000411]
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:83:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:84:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:85:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:86:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:87:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:88:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:89:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:90:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:91:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:92:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:93:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:94:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:95:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:96:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:97:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:98:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:99:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:100:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:101:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:102:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:103:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:104:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:105:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:106:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:107:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] STRB rez,[addressbuffer], #1
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:109:29: error: stray '#' in program
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:108:13: error: stray '#' in program
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:110:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:112:13: error: stray '#' in program
[cc] ^
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] STRB rez,[addressbuffer], #1
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:111:29: error: stray '#' in program
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:113:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:116:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:117:29: error: stray '#' in program
[cc] ^
[cc] STRB rez,[addressbuffer], #1
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:118:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:119:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:120:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:121:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] LDRB rez,[#0x48000411]
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:122:13: error: stray '#' in program
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:123:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:124:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:125:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:126:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:127:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:128:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:129:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:130:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:131:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:132:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:134:13: error: stray '#' in program
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:133:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] LDRB rez,[#0x48000411]
[cc] ^
......\OSC F303 LS020 021\main.c:1297:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1298:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1299:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1300:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1301:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1302:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1303:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1306:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1307:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1308:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1309:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1310:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1311:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1312:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1313:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1314:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1315:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1316:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1317:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1318:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1319:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1320:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1321:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1322:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1323:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1324:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1325:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1326:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1327:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1328:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1329:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1330:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1331:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1332:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1333:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1334:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1335:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1336:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1337:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1340:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1341:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1342:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1343:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1344:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1345:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1346:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1347:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1348:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1349:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1350:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1351:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1352:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1353:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1354:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1355:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1356:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1357:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1358:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1359:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1360:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1361:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1362:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1363:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1364:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1365:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1366:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1367:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1368:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1369:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1370:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1371:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1374:13: error: stray '#' in program
[cc] LDRB rez,[#0x48000411]
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\OSC F303 LS020 021\main.c:1375:29: error: stray '#' in program
[cc] STRB rez,[addressbuffer], #1


Добавлено after 17 minutes 27 seconds:
исходник пока такой


Вложения:
main.c [19.56 KiB]
Скачиваний: 559
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 08:24:13 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: -2
У меня ошибки...
исходник пока такой
Столько ошибок в элементарном коде.... :shock: Надо всё-таки мануалы читать перед тем как что-то писать. Если конечно не чукча... :)))
Цитата:
asm("PUSH {R0, R1, R2}");
Это зачем? В чём смысл? Читайте раздел про Calling conventions для своего компилятора.
Цитата:
asm("MOV R2, %0" : : "r" (arr));
Разве arr у вас внутри функции - в регистре?
Цитата:
asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizaci ... zhkov.html
asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
asm("LDRH R0, [R1]");
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?
Сам синтаксис asm-оператора сделан так, чтобы в него включить весь код, на входе - загрузив все нужные регистры из переменных, на выходе - выгрузив в переменные. А между двумя соседними асм-операторами сохранность регистров не гарантируется.
И вообще - зачем использовать явно-указанные регистры R0,R1,R2? Синтаксис asm-оператора позволяет этого не делать избегая таким образом конфликтов с окружающим си-кодом.
И что такое "(idr & 0xFFFF)"? Зачем? :shock:
Цитата:
asm("STRH R0, [R2], #1");
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.
И почему нет указания компилятору что данные асм-операторы обращаются к памяти? Читайте описание синтаксиса оператора asm!

PS: Да и вообще - такой код лучше в отдельном асм-файле писать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 12:19:10 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Это зачем? В чём смысл? Читайте раздел про Calling conventions для своего компилятора.

Novice user взял мой пример кода из старой темы, Calling conventions тут не при чем, регистры нужно сохранять потому что компилятор не отслеживает какие из них меняются в случае использования инлайн ассемблера.

Цитата:
asm("MOV R2, %0" : : "r" (arr));

Разве arr у вас внутри функции - в регистре?

Arr не обязана быть в регистре, "r" указывает на то, что вместо %0 должен быть подставлен регистр. Конкретно этот код скомпилируется в :
Код:
ldr r3, [pc, #764]
mov r2, r3


Цитата:
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?
Сам синтаксис asm-оператора сделан так, чтобы в него включить весь код, на входе - загрузив все нужные регистры из переменных, на выходе - выгрузив в переменные. А между двумя соседними асм-операторами сохранность регистров не гарантируется.

Согласен, надежнее сделать все в виде одного asm оператора, хотя если у него нет выходных операндов, то все asm() неявно являются volatile и не оптимизируются.

Цитата:
И вообще - зачем использовать явно-указанные регистры R0,R1,R2? Синтаксис asm-оператора позволяет этого не делать избегая таким образом конфликтов с окружающим си-кодом.

Обычно такой код используют во всяких осциллах, там важны тайминги и если вместо регистров подставлять что-то другое, то может получится как с загрузкой arr, когда была вставлена дополнительная инструкция, а добавить PUSH/POP вроде как не проблема.

Цитата:
И что такое "(idr & 0xFFFF)"? Зачем? :shock:

В половину регистра 32-х битное значение не запихнешь, да компилятор это и не позволит, если оставить просто idr, то получим ошибку: immediate value out of range.

Цитата:
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.
И почему нет указания компилятору что данные асм-операторы обращаются к памяти? Читайте описание синтаксиса оператора asm!

Да, должно быть
Код:
STRH R0, [R2], #2


В итоге сейчас бы я написал, наверно, так:
Спойлер
Код:
asm(
   "PUSH {R0, R1, R2}\n"
   "MOV R2, %0\n"
   "MOVW R1, %1\n"
   "MOVT R1, %2\n"

   "LDRH R0, [R1]\n"
   "STRH R0, [R2], #2\n"
   .....

   "POP {R0, R1, R2}"
   : : "r" (arr), "g" (idr & 0xFFFF), "g" (idr >> 16)
);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 15:26:20 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 1
Novice user взял мой пример кода из старой темы, Calling conventions тут не при чем, регистры нужно
сохранять потому что компилятор не отслеживает какие из них меняются в случае использования инлайн ассемблера.

Не отслеживает он потому, что написано через одно место. Не надо внутри asm() использовать явно заданные регистры. И тогда компилятор всё нормально отследит.
Ну по крайней мере в IAR так.

Согласен, надежнее сделать все в виде одного asm оператора, хотя если у него нет выходных операндов, то все asm() неявно являются volatile и не оптимизируются.
Оптимизация тут не при чём. Причину Вы сам привели выше. Когда в предыдущем asm() не указали явно как грузить адрес arr и компилятор сделал это через доп. регистр. Повезло что R3 до этого не был использован в предыдущих asm(). Иначе - попортил бы его, возможно.

Обычно такой код используют во всяких осциллах, там важны тайминги и если вместо регистров подставлять что-то другое, то может получится как с загрузкой arr, когда была вставлена дополнительная инструкция, а добавить PUSH/POP вроде как не проблема.

Так я же говорю не про подстановку "чего-то другого", а про подстановку тех же регистров, но без явного указания номера регистра. Чтобы компилятор сам его выбирал, не конфликтуя с окружающим си-кодом.

В половину регистра 32-х битное значение не запихнешь, да компилятор это и не позволит, если оставить просто idr, то получим ошибку: immediate value out of range.
Ничего не понял. :shock: Причём тут половина регистра?? В idr вроде как - адрес порта GPIO. Что делает "asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));"?
Берёт от адреса младшие 16 бит и потом с получившегося адреса пытается читать? И что будет? :dont_know:

Добавлено after 7 minutes 7 seconds:
В итоге сейчас бы я написал, наверно, так:
Явные регистры лучше не использовать. Тем более что все возможности для этого есть.
А также не указано, что внутри этого asm() есть обращение к памяти. А это очень важно при использовании оптимизации.
Вот пример как я делаю:
Код:
inline u32 AtomicAnd(u32 volatile *ptr, u32 arg)
{
  u32 r, i;
  asm(
    "p01: LDREX    %0, [%2]    \n"
    "     ANDS     %1, %0, %3  \n"
    "     STREX    %1, %1, [%2]\n"
    "     CMP      %1, #0      \n"
    "     BNE      p01           "
    : "=&r"(r), "=&r"(i)
    : "r"(ptr), "r"(arg)
    : "cc", "memory");
  i = i;
  return r;
}

Как видно - нет никаких завязок на явные регистры. Также прописано "cc", "memory".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 15:54:01 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Код:
volatile uint16_t buf[1024];

template<unsigned N>
void inline Foo(volatile uint16_t *p) __attribute__((always_inline))
{
  if constexpr (N)
  {
    *p++=*(volatile uint16_t *)&GPIOB->IDR;
    Foo<N-1>(p);
  }
}

int main()
{
  Foo<50>(buf);
  Foo<100>(buf+50);
  Foo<100>(buf+150);
}

Оно? :)
Спойлер
Код:
//   23   Foo<50>(buf);
        LDR.W    R2,??DataTable1  ;; 0x48000410
        LDR.W    R1,??DataTable1_1
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+0]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+2]
        LDRH     R4,[R2, #+0]
        STRH     R4,[R1, #+4]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+6]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+8]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+10]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+12]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+14]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+16]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+18]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+20]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+22]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+24]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+26]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+28]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+30]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+32]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+34]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+36]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+38]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+40]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+42]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+44]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+46]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+48]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+50]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+52]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+54]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+56]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+58]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+60]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+62]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+64]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+66]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+68]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+70]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+72]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+74]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+76]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+78]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+80]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+82]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+84]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+86]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+88]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+90]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+92]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+94]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+96]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+98]
//   24   Foo<100>(buf+50);
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+100]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+102]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+104]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+106]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+108]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+110]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+112]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+114]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+116]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+118]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+120]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+122]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+124]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+126]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+128]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+130]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+132]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+134]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+136]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+138]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+140]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+142]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+144]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+146]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+148]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+150]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+152]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+154]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+156]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+158]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+160]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+162]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+164]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+166]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+168]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+170]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+172]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+174]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+176]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+178]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+180]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+182]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+184]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+186]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+188]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+190]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+192]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+194]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+196]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+198]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+200]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+202]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+204]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+206]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+208]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+210]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+212]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+214]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+216]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+218]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+220]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+222]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+224]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+226]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+228]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+230]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+232]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+234]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+236]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+238]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+240]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+242]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+244]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+246]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+248]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+250]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+252]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+254]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+256]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+258]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+260]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+262]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+264]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+266]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+268]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+270]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+272]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+274]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+276]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+278]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+280]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+282]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+284]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+286]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+288]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+290]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+292]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+294]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+296]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+298]
//   25   Foo<100>(buf+150);
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+300]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+302]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+304]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+306]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+308]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+310]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+312]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+314]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+316]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+318]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+320]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+322]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+324]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+326]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+328]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+330]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+332]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+334]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+336]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+338]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+340]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+342]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+344]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+346]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+348]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+350]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+352]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+354]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+356]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+358]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+360]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+362]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+364]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+366]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+368]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+370]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+372]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+374]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+376]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+378]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+380]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+382]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+384]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+386]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+388]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+390]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+392]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+394]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+396]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+398]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+400]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+402]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+404]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+406]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+408]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+410]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+412]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+414]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+416]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+418]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+420]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+422]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+424]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+426]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+428]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+430]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+432]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+434]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+436]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+438]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+440]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+442]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+444]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+446]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+448]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+450]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+452]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+454]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+456]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+458]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+460]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+462]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+464]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+466]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+468]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+470]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+472]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+474]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+476]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+478]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+480]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+482]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+484]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+486]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+488]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+490]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+492]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+494]
        LDRH     R3,[R2, #+0]
        STRH     R3,[R1, #+496]
        LDRH     R0,[R2, #+0]
        STRH     R0,[R1, #+498]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:02:20 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
У меня ошибки...
исходник пока такой
Столько ошибок в элементарном коде.... :shock: Надо всё-таки мануалы читать перед тем как что-то писать. Если конечно не чукча... :)))


PS: Да и вообще - такой код лучше в отдельном асм-файле писать.

я смотрю вы ас в обвинениях,и по вашему чукча-не человек?
я понятия не имею как встроить asm в coocox,мне написали-

я оттуда и взял код
прошу воздержаться от ответов в этой теме-толку от вас нет,уважаемый ЧЕЛОВЕК!!!или дайте конкретный ответ по теме,если на что-то способны кроме как обозвать обезъяной или что вы там имеете ввиду

Добавлено after 14 minutes 6 seconds:
Re: CooCox STM32F303 быстрое чтение порта
Прошу администраторов закрыть тему
Буду прорываться сам,всех благодарю за участие (и ЧЕЛОВЕКУ jcxz в особенности)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:08:31 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 1
я оттуда и взял код
прошу воздержаться от ответов в этой теме-толку от вас нет,уважаемый ЧЕЛОВЕК!!!или дайте конкретный ответ по теме,если на что-то способны кроме как обозвать обезъяной или что вы там имеете ввиду

Странно... вроде помогал, писал, пояснял... :dont_know: В ответ - какие-то обиды, да ещё 4 минуса влепили. Причём по всему форуму похоже прошли чтобы найти мои сообщения. И не лень было хе$#@й заниматься? Может лучше стоило это время потратить на хотя бы минимальное изучения вопроса и поднятия своего уровня компетенции с уровня плинтуса?
Или у вас критические дни??
Все остальные поняли мои посты, но до вас похоже так и не дошло. После таких "благодарностей" и желания никакого нет помогать таким как вы - бродите и дальше в своих 3-х соснах...
адье!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:14:56 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
и чем вы помогли? обозвали обезъяной? ваш срач после той строки даже читать не стал
насчет минусов-вы заслужили,если вы себя считаете ЧЕЛОВЕКОМ,а всех остальных обезъянами или кем там,плюса вы точно не заслужили

Добавлено after 1 minute 57 seconds:
буду лепить FIFO буфер,с такими ЧЕЛОВЕКАМИ как jcxz далеко не уедешь


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:18:32 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 1
и чем вы помогли? обозвали обезъяной? ваш срач после той строки даже читать не стал
насчет минусов-вы заслужили,если вы себя считаете ЧЕЛОВЕКОМ,а всех остальных обезъянами или кем там,плюса вы точно не заслужили

"уважаемый" у вас с головой всё в порядке?? Где я вас или кого-то ещё обезьяной назвал? Или ещё как-то обзывал?
А то что вы изволили назвать "срачем" - была попытка помочь вам же. Если у вас не хватает ума осмыслить советы - я тут не виноват. Да, грешен, больше помогать не буду пытаться.

PS: Похоже точно - критические дни.... :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:21:07 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
jcxz, то рабочий код, он работал когда я его показывал в другой теме и сегодня я тоже его проверял. Соответственно никакой MOVW ничего там не читает из 16-ти битного адреса, MOVW и MOVT работают с 16-ти битными константами, константа туда и передается(после компиляции будет: movw r1, #1040). Просто там все делается явно, но конечно можно дать компилятору распределять регистры самостоятельно, это должно быть проще и пару байт он на этом должен сэкономить :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:23:53 
Это не хвост, это антенна

Карма: 10
Рейтинг сообщений: 78
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 1395
Откуда: Мелеуз
Рейтинг сообщения: 0
то есть обозвать обезъяной или кем там-помощь? странная у вас помощь,Бог вам судья,уважаемый ЧЕЛОВЕК!!
тема закрыта!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:25:04 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 1
jcxz, то рабочий код, он работал когда я его показывал в другой теме и сегодня я тоже его проверял. Соответственно никакой MOVW ничего там не читает из 16-ти битного адреса, MOVW и MOVT работают с 16-ти битными константами, константа туда и передается

Читает не MOVW, а LDR после него. В том недоразумении, которое трудно назвать кодом, выложенном этим несчастным обиженным человеком.
Вы откройте тот файл, что он сюда постил - увидите. Я говорил про тот код.

Про Ваш код я ничего не говорил, у Вас с адресом всё нормально.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y