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

 
 
> из-за чего не встает breack point в switch -case ?
Метценгерштейн
сообщение Apr 13 2015, 11:49
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



http://c2n.me/3g0Fl2O
там где стрелочка, не хочет ставится бряка. Хотя эта ф-я возвращает в реальности корректное значение.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
aaarrr
сообщение Apr 13 2015, 11:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Из-за высокого уровня оптимизации, например.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 11:56
Сообщение #3


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



нулевой стоял уровень оптимизации.
Синтаксис корректный же?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2015, 11:58
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



На вид все корректно.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 11:59
Сообщение #5


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



может такие глюки отладчика кейла?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Apr 13 2015, 12:01
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Да много ииза чего. Например количесво брекпойнтов закончилось, надо гдето удалить брекпойнт, чтоб можно было еще добавить.
Не понятно ни что за компайлер, ни что за микроконтроллер.
Потому и не работает, что даже вопрос не задан в полной мере.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 12:02
Сообщение #7


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



брэкпоинт один.
компилятор- keil
МК- Nordic

только такие глюки никак не связаны с типом МК.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Apr 13 2015, 12:12
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Посмотрите на дизассемблер. Как вариант: нет прямого соответствия исходного и машинного кода, поскольку компилятор в этом месте просто прыгает на финальный возврат


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2015, 12:13
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Метценгерштейн @ Apr 13 2015, 15:02) *
только такие глюки никак не связаны с типом МК.

Это не глюк, а особенность работы оптимизатора. Скорее всего, "return i" в результате оптимизации совмещен с "return -1", т.е. физически отсутствует в коде как отдельный оператор. Странно только, что это наблюдается на нулевом уровне.
Если хотите получить возможность поставить точку останова на этом месте, добавьте какой-нибудь не подлежащий оптимизации оператор перед return:
Код
__nop();
return [i];
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 12:27
Сообщение #10


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079




нет, не помогло.
Самое интересное, что корректно возвращает i- я его получаю дальше по коду
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2015, 12:28
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Метценгерштейн @ Apr 13 2015, 15:27) *
нет, не помогло.

На __nop() не устанавливается?
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 12:31
Сообщение #12


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



на noop ставится. Я думал, что на return надо.
А что нам noop дает?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2015, 12:40
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Метценгерштейн @ Apr 13 2015, 15:31) *
А что нам noop дает?

Возможность установить breakpoint, что же еще?
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Apr 13 2015, 12:47
Сообщение #14


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



да, точно. Установка перед return. Только что проверил- пошаговая отладка встает на
__nop();
затем перепрыгивает return и тд.
но значение дальше по коду принимается.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 13 2015, 13:06
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Наверное, i сразу загружается в R0, и при выходе никакой дополнительной команды не требуется.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:09
Рейтинг@Mail.ru


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