khlenar 7 January 5 Posted January 5 · Report post Здравствуйте все. В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0. Осциллографом проверялось. Через некоторое время этот же код выполнялся уже за 60 мксек. Путем оптимизации в свойствах, скорость выполнения снизилось до 2мксек. На сл. день код выполнения опять стал 60 мксек. Что то совсем не пойму. В чем дело. Интересно из питания CPU в 1,87В. в место 1,9 может быть такое? Quote Share this post Link to post Share on other sites More sharing options...
_4afc_ 40 January 8 Posted January 8 · Report post On 1/5/2025 at 6:56 PM, khlenar said: В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0. Вы уверены, что монстры типа TMS320F28335 могут качественно переключать выход 1/0 с детерминированной точностью? Вроде у таких уже скорость меряют в РТОС чарез отладчик. Ну или запустите код раз 100 между переключением ног. Quote Share this post Link to post Share on other sites More sharing options...
ELEKTROS 0 January 9 Posted January 9 · Report post On 1/5/2025 at 6:56 PM, khlenar said: Здравствуйте все. В начале некий код выполнялся за 600нсек. Проверялось с помощью выхода. Т.е. на входе кода на вывод устанавливалась 1 на выходе кода 0. Осциллографом проверялось. Через некоторое время этот же код выполнялся уже за 60 мксек. Путем оптимизации в свойствах, скорость выполнения снизилось до 2мксек. На сл. день код выполнения опять стал 60 мксек. Что то совсем не пойму. В чем дело. Интересно из питания CPU в 1,87В. в место 1,9 может быть такое? Измерить можно в отладке через "тики", можно завести для этого таймер и по порту слать массив из времён выполнения (так получите хоть какую то статистику на за несколько периодов). Ну осцилом тоже можно., муторно только. Где код выполняется: в фоне, в прерывании, используются ли вообще прерывания, используются ли "вложеные" прерывания (механизм настройки не такой прям как в том же stm32, но можно)? Quote Share this post Link to post Share on other sites More sharing options...
khlenar 7 January 9 Posted January 9 · Report post В 08.01.2025 в 15:21, _4afc_ сказал: Вы уверены, что монстры типа TMS320F28335 могут качественно переключать выход 1/0 с детерминированной точностью? Вроде у таких уже скорость меряют в РТОС чарез отладчик. Ну или запустите код раз 100 между переключением ног. Переключение выхода 200нсек. 8 часов назад, ELEKTROS сказал: Измерить можно в отладке через "тики", можно завести для этого таймер и по порту слать массив из времён выполнения (так получите хоть какую то статистику на за несколько периодов). Ну осцилом тоже можно., муторно только. Где код выполняется: в фоне, в прерывании, используются ли вообще прерывания, используются ли "вложеные" прерывания (механизм настройки не такой прям как в том же stm32, но можно)? Да. Прерывания есть. Я при начале вычисления отключаю все прерывания потом включаю. Сейчас стабильно вычисление блока если программа загружена в ОЗУ 7мкс. и если загружена в флэш 40мкс. Разница очень большая. Quote Share this post Link to post Share on other sites More sharing options...
somebody111 2 January 10 Posted January 10 · Report post Вы при работе с осциллографом сами развертку выставляли ... ну 60нc/дел или автоустановкой?) Очень похоже на то, что вы имеете дело с теоремой Котельникова-) Quote Share this post Link to post Share on other sites More sharing options...
ELEKTROS 0 January 10 Posted January 10 (edited) · Report post 16 hours ago, khlenar said: Переключение выхода 200нсек. Да. Прерывания есть. Я при начале вычисления отключаю все прерывания потом включаю. Сейчас стабильно вычисление блока если программа загружена в ОЗУ 7мкс. и если загружена в флэш 40мкс. Разница очень большая. В общем говорить, о чем то не видя того сложно. Для flash там включить контейнер ускоряющий надо (или как то так он называется, судя по разницы в 5-6 раз для 150 МГц наверное он включён всё же), хотя это не сравнить с переносом в ОЗУ. А вообще "заявленые" 600нс можно и ручками посчитать (для 150МГц не много тактов, по 6.67нс, меньше 100 должно быть) так ли оно вообще , глядя в дизасемблер. Edited January 10 by ELEKTROS Quote Share this post Link to post Share on other sites More sharing options...
khlenar 7 January 10 Posted January 10 · Report post Как то странно. При одинаковых частотах в 150МГц TMS320F28335 из под ОЗУ натуральный логарифм ln(x) float выполняет за 2,5 мкс., а STM32G474 за 1,7 мкс. из под флэш., а использовав CORDIC 400нс. со всеми преобразованиями во float. Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 31 February 2 Posted February 2 · Report post Код в студию. Quote Share this post Link to post Share on other sites More sharing options...