Jump to content
    

Меняется производительность TMS320F28335

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

В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0. Осциллографом проверялось. Через некоторое время этот же код выполнялся уже за 60 мксек. Путем оптимизации в свойствах, скорость выполнения снизилось до 2мксек. На сл. день код выполнения опять стал 60 мксек. Что то совсем не пойму. В чем дело. Интересно из питания CPU в 1,87В. в место 1,9 может быть такое? 

Share this post


Link to post
Share on other sites

On 1/5/2025 at 6:56 PM, khlenar said:

В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0.

Вы уверены, что монстры типа TMS320F28335 могут качественно переключать выход 1/0 с детерминированной точностью?

Вроде у таких уже скорость меряют в РТОС чарез отладчик.

 

Ну или запустите код раз 100 между переключением ног.

Share this post


Link to post
Share on other sites

On 1/5/2025 at 6:56 PM, khlenar said:

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

В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0. Осциллографом проверялось. Через некоторое время этот же код выполнялся уже за 60 мксек. Путем оптимизации в свойствах, скорость выполнения снизилось до 2мксек. На сл. день код выполнения опять стал 60 мксек. Что то совсем не пойму. В чем дело. Интересно из питания CPU в 1,87В. в место 1,9 может быть такое? 

Измерить можно в отладке через "тики", можно завести для этого таймер и по порту слать массив из времён выполнения (так получите хоть какую то статистику на за несколько периодов). Ну осцилом тоже можно., муторно только. Где код выполняется: в фоне, в прерывании, используются ли вообще прерывания, используются ли "вложеные" прерывания (механизм настройки не такой прям как в том же stm32, но можно)?

Share this post


Link to post
Share on other sites

В 08.01.2025 в 15:21, _4afc_ сказал:

Вы уверены, что монстры типа TMS320F28335 могут качественно переключать выход 1/0 с детерминированной точностью?

Вроде у таких уже скорость меряют в РТОС чарез отладчик.

 

Ну или запустите код раз 100 между переключением ног.

Переключение выхода 200нсек.

8 часов назад, ELEKTROS сказал:

Измерить можно в отладке через "тики", можно завести для этого таймер и по порту слать массив из времён выполнения (так получите хоть какую то статистику на за несколько периодов). Ну осцилом тоже можно., муторно только. Где код выполняется: в фоне, в прерывании, используются ли вообще прерывания, используются ли "вложеные" прерывания (механизм настройки не такой прям как в том же stm32, но можно)?

Да. Прерывания есть. Я при начале вычисления отключаю все прерывания потом включаю. 

Сейчас стабильно вычисление блока если программа загружена в ОЗУ 7мкс. и если загружена в флэш 40мкс. Разница очень большая.  

Share this post


Link to post
Share on other sites

Вы при работе с осциллографом сами развертку выставляли ... ну 60нc/дел или автоустановкой?) Очень похоже на то, что вы имеете дело с теоремой Котельникова-)

Share this post


Link to post
Share on other sites

16 hours ago, khlenar said:

Переключение выхода 200нсек.

Да. Прерывания есть. Я при начале вычисления отключаю все прерывания потом включаю. 

Сейчас стабильно вычисление блока если программа загружена в ОЗУ 7мкс. и если загружена в флэш 40мкс. Разница очень большая.  

В общем говорить, о чем то не видя того сложно. Для flash там включить контейнер ускоряющий надо (или как то так он называется, судя по разницы в 5-6 раз для 150 МГц наверное он включён всё же), хотя это не сравнить с переносом в ОЗУ. А вообще "заявленые" 600нс можно и ручками посчитать (для 150МГц не много тактов, по 6.67нс, меньше 100 должно быть) так ли оно вообще ,  глядя в дизасемблер.

Edited by ELEKTROS

Share this post


Link to post
Share on other sites

Как то странно. При одинаковых частотах в 150МГц TMS320F28335 из под ОЗУ натуральный логарифм ln(x) float  выполняет за 2,5 мкс., а STM32G474 за 1,7 мкс. из под флэш., а использовав CORDIC 400нс. со всеми преобразованиями во float. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...