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

 
 
> 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, 03:11
Сообщение #2


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

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



Цитата(scifi @ Jul 11 2017, 18:30) *
Такое ощущение, что помешались на оптимизации, и теперь пожинаете грабли в отладке.

Увы решаю задачу ЦОС, надо оценить сколько тактов остается на запас, да и проанализировать за сколько тактов выполняются фильтры. До написания фильтров на ассемблере ещё не дошел, но если понадобиться то приодеться. Но в принципе сишный код не плохо компилируется.




Go to the top of the page
 
+Quote Post
k155la3
сообщение Jul 12 2017, 05:40
Сообщение #3


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

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



Цитата(pokk @ Jul 12 2017, 06:11) *
Увы решаю задачу ЦОС, надо оценить сколько тактов остается на запас, да и проанализировать за сколько тактов выполняются фильтры. До написания фильтров на ассемблере ещё не дошел, но если понадобиться то приодеться. Но в принципе сишный код не плохо компилируется.

Если Вы создаете проект на ASM, в очень-очень жестком реалтайме, на сотню мегагерц тактовой, то
считать такты - дело благородное.
Если же проеект на С, а то и С++, то это, IMHO, тупик.
Если приходится "ужимать" время на выполнение процедур - надо брать более мощный процессор.
Или использовать специализированные средства (SW-HW), которые будут считать все "накладные расходы" вместо Вас.
-----
В редчайших случаях, когда мне необходимо просчитать (!) время работы какой-либо процедуры,
я использую или таймер, который "уже есть", или вывожу "рамочный" строб на вывод порта, который абсолютно точно
меряется осцилографом или даже лог. анализатором.



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
|- - jcxz   Цитата(pokk @ Jul 12 2017, 06:11) Увы реш...   Jul 12 2017, 12:58
- - pokk   Цитата(k155la3 @ Jul 12 2017, 09:40) Если...   Jul 12 2017, 09:14
- - megajohn   Цитата(pokk @ Jul 12 2017, 12:14) Это как...   Jul 12 2017, 13:29
- - k155la3   Цитата(pokk @ Jul 12 2017, 12:14) . . . ....   Jul 12 2017, 15:57
- - AHTOXA   Чтобы найти в ассемблерном листинге место, куда по...   Jul 12 2017, 17:17


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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 01:58
Рейтинг@Mail.ru


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