Jump to content

    
Sign in to follow this  
Slash

Сколько точек останова у msp430f2132?

Recommended Posts

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

 

1) Где можно найти количество точек останова у msp430f2132? В Family User Guide написано, что device specific, в даташите на f2132 найти не могу.

 

2)У меня - Win7, MSP-FET430UIF, IAR C/C++ Compiler for MSP430 4.21.9 (4.21.9.59999) Процессор - msp430f2132.

Ставлю единственную точку останова (Run to main галка снята), точка ставится, IAR при этом пишет "Failed to set hardware breakpoint. All available resources are already in use. Виртуальные точки останова можно поставить там-то."

Это нормально?

 

3) Чем различаются software breakpoints - virtual oт emulated breakpoints?

 

 

 

 

Share this post


Link to post
Share on other sites

1. Аппаратных - две штуки. См. IAR Embedded Workbench Version 3+ for MSP430 User's Guide (Rev. S). Таблица оттуда.

2. IAR резервирует как минимум одну hardware breakpoint для своих нужд. Возможно вы не отключили какие-то опции, которые используют и вторую оставшуюся.

По п.3. не могу точно сказать, не разбирался досконально. Вроде software breakpoints реализуются заменой в коде программы на JMP с переходом на обработчик software breakpoints и эту же команду, но размещенные в ОЗУ. Уже там используется аппаратная точка останова. Поэтому количество программных точке останова зависит от доступного для C-CPY размера ОЗУ.

post-3882-1284387146_thumb.png

Share this post


Link to post
Share on other sites

Работал в IAR c 22xx. Ставится одна точка останова. Если IAR начинает протестовать против этого, то просто перезапускаю отладчик и точка ставится.

 

Вирутальными и прочими софтверными точками останова после одной попытки больше пользоваться никогда не буду. Одни раз очень долго не мог понять, почему не работает программа. Нашел ошибку в окне дизассемблера: там вместо BIS стояла команда AND (по-моему так, точно не помню). Посмотрел выходной ассемблерный код компилятора - там все правильно - BIS. Думал, кристалл накрылся - прошивается с ошибкой. Оказалось - это такая точка останова - ставится команда JMP, но дизассемблером и, естественно, ядром при исполнении программы, ее комбинация с предыдущей командой понимается совсем не так, как должно быть. Так что, пользоваться softvare breakpoints я зарекся и никому не советую.

Share this post


Link to post
Share on other sites
2. IAR резервирует как минимум одну hardware breakpoint для своих нужд. Возможно вы не отключили какие-то опции, которые используют и вторую оставшуюся.

Спасибо, буду разбираться.

 

Отлаживаю программный I2C (ничего не получается), попробовал ставить log breakpoints, очень удобно. Но от 1 точки останова толку мало. А поведение software breakpoints какое-то непонятное - неясно что глючит, отладчик или IAR.

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.

Sign in to follow this