1

Тема: Не достаточно оперативной памяти

Здраствуйте.

Есть задача принимать пакет данных по RS232, проверять контрольную сумму, делать пересчет данных и отправлять в CAN.
Но после составления диаграмм, так как я это вижу, программа пишет что не достаточно оперативной памяти.
Не могилы бы вы подсказать как лучше оптимизировать процесс пересчета CRC.

Вложений в сообщении

Иконка вложения c53pico_CRC_fail.cfd 361.03 кб, скачивался 118 раз, последний раз 2022-02-16 

Иконка вложения vks.pdf 187.77 кб, скачивался 194 раз, последний раз 2022-02-16 

2

Re: Не достаточно оперативной памяти

Для разделения данных регистров на отдельные байты лучше использовать другой подход (см. вложение c53pico_CRC_fail.cfd Составной блок 1). В этом случае симулятор запускается.
Группа блоков "Сдвиг влево" (на 8) + "Сдвиг вправо" (на 8) очевидно используется для выделения младшей части (байта) 16-битного регистра. Это можно заменить одним блоком "Побитовое И" со значением 0x00FF.
В разных составных блоках, внутри одного общего, применяется большое количество одинаковых конструкций (отличающихся 1 элементом), которые можно либо вынести наружу (сделать общими), либо объединить эти блоки в один, с некоторой доработкой. Так, например, мог бы выглядеть блок "CycleX" (см. c53pico_CRC_fail_cycle.cfd).

Вложений в сообщении

Иконка вложения c53pico_CRC_fail.cfd 354.86 кб, скачивался 118 раз, последний раз 2022-02-16 

Иконка вложения c53pico_CRC_fail_cycle.cfd 3.28 кб, скачивался 110 раз, последний раз 2022-02-16 

3

Re: Не достаточно оперативной памяти

Спасибо!