Ассемблерная вставка в FLProg

Создаем свой блок. Вопросы, помощь знатоков.
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

так компилит

Код: Выделить всё

bool I1_264253028_1 = false;
bool I2_264253028_1 = false;
bool O_264253028_1 = false;

void setup() {
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, OUTPUT);
}

void loop() {
  I1_264253028_1 = digitalRead(2);
  I2_264253028_1 = digitalRead(3);

  asm volatile (
    "lds r24, %[input1] \n\t"
    "lds r25, %[input2] \n\t"
    "and r24, r25      \n\t"
    "sts %[output], r24 \n\t"
    :
    : [input1] "m" (I1_264253028_1),
      [input2] "m" (I2_264253028_1),
      [output] "m" (O_264253028_1)
    : "r24", "r25"
  );

  digitalWrite(4, O_264253028_1);
}
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 2 раза.
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

это снова решили поднять вопрос о вдохнуть жизнь больших проектов в маленькие мк ?
ну на асемблере вы может и понаделаете блоки которые пошустрее будут и полегче но они же спецефичные под мк заточены будут
а экоинс борется за многоплатформеность и ваша тематика как и предыдущие останется попытки других

обьём тот же потомучто это не чистый асемблер а лиш вставки без всяких регистров и оптимизаций
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
fedor37
Рядовой
Сообщения: 25
Зарегистрирован: 27 фев 2025, 20:26
Имя: Федор
Благодарил (а): 4 раза

Re: Ассемблерная вставка в FLProg

Сообщение fedor37 »

dstrufanov писал(а): 20 мар 2025, 10:53
fefar51702 писал(а): 20 мар 2025, 10:24 так компилит
Попробовал. Да, компилируется. Объем получается почти такой же, как у штатного блока 2И. Надо пробовать еще сделать входы и выход на ассемблере, только разобраться бы в этом китайском синтаксисе :D
а для чего это нужно?
в чем профит?
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

асемблер это несовсем ко мне
я с ним знаком самоучкой во времена когда нам ещё пытались в голову запихать мёртвый бейсик когда в других технарях уже паскаль крутили
мне больше с++ но и то по интересующей меня тематики какого нить проекта углубиться

вы выдернули кусок асемблера связь переменных с памятью
м потомучто лежит в памяти если было р то в регистре
в конце потомучто структура такая написания
пустое потомучто туда надо было запихать выходной операнд из входных
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 3 раза.
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 1 раз.
Аватара пользователя
Phazz
Полковник
Сообщения: 3109
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: Ассемблерная вставка в FLProg

Сообщение Phazz »

dstrufanov писал(а): 20 мар 2025, 13:38 Кстати, кто-нибудь в курсе как в FLProg хранятся булевы переменные? Они занимают байт, слово? Хранятся в младшем бите?
Занимают байт.
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

в чистом после ставится
тут перед

а поповоду уменьшить память то я делал себе блок на меморифри и он мне слал в монитор порта оставшуюся память оперативы
и так контролируя её после каждого именения кода выбирал альтернативные участки которые менее её пожирают ну или старался их обойти
у меня была задумка как то большой текст хранить в епроме всё таки 1кб халявы а вызывать его только помере необходимости и в моменты несильно нагруженой памяти но пока не до неё но в процессе обдумывания находится
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

да и вообще подумываю создать блок который бы следил за утечкой оперативной памяти из за дырявого кода а там уже решать обход что вызвало её
Аватара пользователя
Phazz
Полковник
Сообщения: 3109
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: Ассемблерная вставка в FLProg

Сообщение Phazz »

fefar51702 писал(а): 20 мар 2025, 15:41 да и вообще подумываю создать блок который бы следил за утечкой оперативной памяти из за дырявого кода а там уже решать обход что вызвало её
Сделать такой блок не сложно совсем. А вот найти почему утекает, это задача посложнее
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Ассемблерная вставка в FLProg

Сообщение fefar51702 »

но подождите мы же говорим о постепенном написании кода и постоянным мониторингом
и как всё поплыло то откатываемся и проверям по новой и пробуем обойти этот момент альтернативой
там вроде как от стринга она начинает дырявиться упоминалось что лучшим решением использовать чар вместо стринг ибо фиксировано будет чем динамически да ещё с фрагментацией
fedor37
Рядовой
Сообщения: 25
Зарегистрирован: 27 фев 2025, 20:26
Имя: Федор
Благодарил (а): 4 раза

Re: Ассемблерная вставка в FLProg

Сообщение fedor37 »

память утекает когда динамически создается массив из кучи heap.
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 1 раз.
Аватара пользователя
Phazz
Полковник
Сообщения: 3109
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: Ассемблерная вставка в FLProg

Сообщение Phazz »

dstrufanov писал(а): 21 мар 2025, 19:22 Сделал блоки входов и выхода на ассемблере:
asm_and.png
Схема 2И на асме занимает 534 байта памяти программ и 15 байт ОЗУ, схема 2И на штатных блоках занимает 942 байта памяти программ и 9 байт ОЗУ:
flp_and.png
А как меняется расход памяти при увеличении количества блоков?
dstrufanov
Сержант
Сообщения: 195
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 23 раза
Поблагодарили: 35 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:21, всего редактировалось 1 раз.
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: mrGoReC и 4 гостя