реклама на сайте
подробности

 
 
> IAR оптимизация, выключить для куска
pokk
сообщение Jul 11 2017, 09:12
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Добрый день подскажите как выключить оптимизацию для куска кода внутри функции ?

Дело в том что надо определить точное выполнение кода при максимальной оптимизации использую
Код
    SCB_DEMCR |= 0x01000000;
    DWT_CONTROL|= 1; // enable the counter
    DWT_CYCCNT  = 0;

и потом считываю DWT_CYCCNT, но проблема в том что при максимальной оптимизации, программа пролетает breakpoint, который я установил
и не понятно какой кусок кода выполнился.

Так вот как установить NOP, что бы при максимальной оптимизации он остался, и на него можно было повесить breakpoint ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
pokk
сообщение Jul 12 2017, 09:14
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Цитата(k155la3 @ Jul 12 2017, 09:40) *
Если приходится "ужимать" время на выполнение процедур - надо брать более мощный процессор.

Да на си, но теоретически запас, в 2 раза должен был остаться, а он хоп и исчез вот и приходится искать, что же все время сьело.
А вывод стробом уже имеется, но больше в % на глаз дает информацию.

Цитата(k155la3 @ Jul 12 2017, 09:40) *
Или использовать специализированные средства (SW-HW), которые будут считать все "накладные расходы" вместо Вас.

Это какие к примеру?
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jul 12 2017, 15:57
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(pokk @ Jul 12 2017, 12:14) *
. . . .
Это какие к примеру?

Из доступных моему интеллекту - симулятор и профайлер sm.gif
Хотя я имел ввиду специализированные для ЭТОГО компиляторы и HW отладчики.

Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 12 2017, 17:17
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Чтобы найти в ассемблерном листинге место, куда поставить точку останова, можно поставить в это место пару-тройку nop-ов. Поскольку они volatile, компилятор их не имеет права переставлять.
Или более простой вариант - скопировать результат замера в переменную, и выдать её на печать. Тут уж пусть компилятор как хочет всё переставляет, всё равно это не помешает вам увидеть результат.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pokk   IAR оптимизация   Jul 11 2017, 09:12
- - 0men   Цитата(pokk @ Jul 11 2017, 12:12) Добрый ...   Jul 11 2017, 09:48
- - pokk   Да это я уже нашёл, но как я понял она только в фу...   Jul 11 2017, 10:03
|- - 0men   Цитата(pokk @ Jul 11 2017, 13:03) Да это ...   Jul 11 2017, 10:06
- - scifi   Цитата(pokk @ Jul 11 2017, 12:12) и потом...   Jul 11 2017, 10:08
- - SSerge   Цитата(pokk @ Jul 11 2017, 16:12) Так вот...   Jul 11 2017, 12:00
- - pokk   Цитата(0men @ Jul 11 2017, 13:06) Менять ...   Jul 11 2017, 14:03
|- - scifi   Цитата(pokk @ Jul 11 2017, 17:03) Дело в ...   Jul 11 2017, 15:30
- - Kabdim   А после этого оптимизировать понадобилось, да вот ...   Jul 11 2017, 15:39
|- - scifi   Цитата(Kabdim @ Jul 11 2017, 18:39) А пос...   Jul 11 2017, 19:03
|- - Kabdim   Цитата(scifi @ Jul 11 2017, 22:03) 1) А в...   Jul 12 2017, 09:52
- - pokk   Цитата(scifi @ Jul 11 2017, 18:30) Такое ...   Jul 12 2017, 03:11
|- - k155la3   Цитата(pokk @ Jul 12 2017, 06:11) Увы реш...   Jul 12 2017, 05:40
|- - jcxz   Цитата(pokk @ Jul 12 2017, 06:11) Увы реш...   Jul 12 2017, 12:58
- - megajohn   Цитата(pokk @ Jul 12 2017, 12:14) Это как...   Jul 12 2017, 13:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 05:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016