1

Тема: Оптимизация использования RAM

Добрый день!
Пишу программу по работе со штатной панелью приборов Volkswagen по протоколу BAP.
В программе сейчас около четырёхсот блоков. При запуске дебаггера, он показывает, что занято 45 процентов RAM. Проект ещё будет расти.

Вопросы:
1) от чего зависит использование RAM, какие варианты оптимизации?
2) составные блоки одинакового содержания и одинакового названия расходуют память?
3) мне не нужно запоминать внутренее состояние составного блока, но нужен вход  En, как поступить?
Заранее благодарен за советы!

2

Re: Оптимизация использования RAM

1. Вопрос довольно обширный. Что конкретно вас интересует?
2. Расходуют.
3. Используйте управляющий вход nRST (см. здесь: https://canny.ru/docs/fbd/composite/com … sobennosti)


Модераторское: просьба не объединять несколько вопросов в одну тему. см.правила

3 (13-02-2023 21:12:41 отредактировано Witnessy)

Re: Оптимизация использования RAM

Понял по пунктам 2 и 3 понял, спасибо.

Если выходам или линиям связи присваиваю название это расходует RAM?
Скажем так, как экономичнее для памяти, проводить линии связи или присваивать им названия?

Прошу прощения, не знал, что нельзя объединять вопросы.

4

Re: Оптимизация использования RAM

Если выходам или линиям связи присваиваю название это расходует RAM?
Скажем так, как экономичнее для памяти, проводить линии связи или присваивать им названия?

Никакие надписи, названия, кол-во изгибов, разветвлений и разрывов линий не влияют на расход RAM или ROM контроллера никаким образом.

5

Re: Оптимизация использования RAM

Константин, CANNY пишет:

Если выходам или линиям связи присваиваю название это расходует RAM?
Скажем так, как экономичнее для памяти, проводить линии связи или присваивать им названия?

Никакие надписи, названия, кол-во изгибов, разветвлений и разрывов линий не влияют на расход RAM или ROM контроллера никаким образом.

Спасибо за ответ.

6 (08-09-2023 16:26:46 отредактировано Fakeloid)

Re: Оптимизация использования RAM

Добрый день.

В моем проекте заполненность RAM памяти уже 81%. Подскажите, пожалуйста, как можно оптимизировать проект(мне еще требуется процентов 40-50 для работы). Занимает ли дополнительный объем памяти то, что например в коммутаторах 1230 и 1231 все входы одинаковые или так как они одинаковые , это все считается за 2 байта памяти?
И подскажите, пожалуйста, какой вообще в котроллерах 7-ой серии объем RAM памяти, а то не нашел нигде такой информации? Может мне просто проще будет взять другой контроллер с большим объемом памяти....
Диаграмма в приложении.

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

Иконка вложения AS460_GAMMA_1.cfd 364.24 кб, скачивался 44 раз, последний раз 2023-09-08 

7

Re: Оптимизация использования RAM

Подскажите, пожалуйста, как можно оптимизировать проект

На первый взгляд - использовать такой прием: https://canny.ru/docs/tips_tricks/polyadic_logical_or/

И рассмотреть применение драйвера асинхронной передачи CAN: https://canny.ru/docs/c72gamma/acan/

Занимает ли дополнительный объем памяти то, что например в коммутаторах 1230 и 1231 все входы одинаковые или так как они одинаковые , это все считается за 2 байта памяти?

Каждая константа занимает только 2 байта RAM, вне зависимости от того, столько раз она используется на диаграмме.

мне еще требуется процентов 40-50 для работы

Рекомендую продолжать проект до завершения. В симуляторе он запустится даже при выходе за пределы доступных ресурсов контроллера. По окончании реализации посмотрим что можно будет оптимизировать. В крайнем случае - расширим объем доступной RAM. Есть резерв.

8

Re: Оптимизация использования RAM

Если программа становится большой и вам кажется что страдает ее быстродействие (или вы убедились в этом проверив в железе длительность одного цикла программы), то можно использовать два контроллера. Один для того же обмена данными с кан шиной, где важно чтобы не были пропущены пакеты. А другой контроллер ведет обсчет данных. Самый быстрый процессор насколько я помню у контроллера Canny 5.3MD. Соединить две платы можно удобным вам способом вроде UART.