Форум Микро-Чип

Форум Микро-Чип (http://www.microchip.su/index.php)
-   Продукция MICROCHIP (http://www.microchip.su/forumdisplay.php?f=6)
-   -   Нужна помощь по asm для dsPIC (http://www.microchip.su/showthread.php?t=12058)

hubble 20.06.2011 21:40

Нужна помощь по asm для dsPIC
 
Ребята, необходима помощь.
Помощь по asm.
Дело в том, что последний раз писал давно для PIC16F628 и подобных. Затем все время использовал Си. Сейчас пришлось столкнуться с асмом снова для программирования dsPIC`ов. Да не там-то было. Куча новых инструкций, директив и т.д.
Ну, вот, например.
1. Инструкции, которые часто встречаются в программах - mov.v, sub.w (и еще кое-какие, которые мне повстречались) никак не могу найти в даташите на используемый микроконтроллер.
2. Что обозначает строка mov.w [BaseW0+PI_qInMeas],WorkW5, вернее если в строке есть квадратные скобки?
3. В файле .inc к контроллеру нашел такую строку .equiv ACCBLL, _ACCBL. Что такое ACCBL тоже нашел, но без знака подчеркивания впереди. Что означает подчеркивание?
4. И еще куча вопросов.

Подскажите, пожалуйста, литературу, какую можно почитать по асму. Сначала, желательно на русском, потом и с даташитом потихоньку разберусь. А пока ... даже такие вышеуказанные элементарные вопросы у меня вызывают вопросы.

alexem 20.06.2011 22:06

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от hubble (Сообщение 137528)
Подскажите, пожалуйста, литературу, какую можно почитать по асму. Сначала, желательно на русском, потом и с даташитом потихоньку разберусь. А пока ... даже такие вышеуказанные элементарные вопросы у меня вызывают вопросы.

Лучше, конечно сразу к даташиту, но если уж сложно, то можно поискать в сети Ю.С.Магда "Микроконтроллеры PIC: архитектура и программирование".
Там немного, насколько достоверно - сказать не могу (сам не пробовал).

master19 20.06.2011 23:22

Re: Нужна помощь по asm для dsPIC
 
в общем случае в квадратных скобках указатель, т.е. строка
mov.w [BaseW0+PI_qInMeas],WorkW5
означает что переменная лежащая по адресу который записан в W0 + PI_qInMeas кладется в W5. а вот BaseW0 WorkW5 судя по всему псевдонимы W0 W5 соответственно. PI_qInMeas - какая то переменнная или константа, надо в контексте смотреть.
вообще читайте не даташит, а документ
dsPIC30F/33F Programmer's Reference Manual про mov страницы 5.145-5.158

GANY 21.06.2011 02:14

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от hubble (Сообщение 137528)
Ребята, необходима помощь.
Помощь по asm.
Дело в том, что последний раз писал давно для PIC16F628 и подобных. Затем все время использовал Си. Сейчас пришлось столкнуться с асмом снова для программирования dsPIC`ов. Да не там-то было. Куча новых инструкций, директив и т.д.
Ну, вот, например.
1. Инструкции, которые часто встречаются в программах - mov.v, sub.w (и еще кое-какие, которые мне повстречались) никак не могу найти в даташите на используемый микроконтроллер.
2. Что обозначает строка mov.w [BaseW0+PI_qInMeas],WorkW5, вернее если в строке есть квадратные скобки?
3. В файле .inc к контроллеру нашел такую строку .equiv ACCBLL, _ACCBL. Что такое ACCBL тоже нашел, но без знака подчеркивания впереди. Что означает подчеркивание?
4. И еще куча вопросов.

Подскажите, пожалуйста, литературу, какую можно почитать по асму. Сначала, желательно на русском, потом и с даташитом потихоньку разберусь. А пока ... даже такие вышеуказанные элементарные вопросы у меня вызывают вопросы.

Если умеете писать на СИ то мне кажется лучше скачать родной компилятор. Или нужно именно ДСЦ ядро использовать? Тогда ничего другого не остается как писать на АСМ.

Вова 21.06.2011 07:15

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от master19 (Сообщение 137540)
означает что переменная лежащая по адресу который записан в W0 + PI_qInMeas кладется в W5.

Стало вдруг интересно, а почему в ассемблере для PIC-ов принято направление команд слева направо, а не справа налево, как в ассемблере i8086?..

LeoN 21.06.2011 12:24

Re: Нужна помощь по asm для dsPIC
 
На русском ты вряд ли что-либо найдешь...
Сначала изучай dsPIC30F/33F Family Reference Manual, затем Programmer's Reference Manual, и уж затем даташит на чип.
Вот это тебе в помощь.
Да прибудет с тобой сила! ;)

Machine slave 21.06.2011 14:17

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от hort (Сообщение 137551)
Стало вдруг интересно, а почему в ассемблере для PIC-ов принято направление команд слева направо, а не справа налево, как в ассемблере i8086?..

А какая разница. По мне логичнее слева направо.

hubble 23.06.2011 01:12

Re: Нужна помощь по asm для dsPIC
 
Спасибо всем.
Хотя бы уже есть от чего оттолкнуться.

Bill 23.06.2011 08:54

Ну, наверное, потому, что
 
Цитата:

Сообщение от hort (Сообщение 137551)
Стало вдруг интересно, а почему в ассемблере для PIC-ов принято направление команд слева направо, а не справа налево, как в ассемблере i8086?..

в PDP-11 было принято направление слева направо. :) Или нет?
PS: Кстати, в MSP430 аналогично.

Velocity 24.06.2011 18:30

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от hubble (Сообщение 137528)
Ребята, необходима помощь.
Помощь по asm.
Дело в том, что последний раз писал давно для PIC16F628 и подобных. Затем все время использовал Си. Сейчас пришлось столкнуться с асмом снова для программирования dsPIC`ов. Да не там-то было. Куча новых инструкций, директив и т.д.
Ну, вот, например.
1. Инструкции, которые часто встречаются в программах - mov.v, sub.w (и еще кое-какие, которые мне повстречались) никак не могу найти в даташите на используемый микроконтроллер.
2. Что обозначает строка mov.w [BaseW0+PI_qInMeas],WorkW5, вернее если в строке есть квадратные скобки?
3. В файле .inc к контроллеру нашел такую строку .equiv ACCBLL, _ACCBL. Что такое ACCBL тоже нашел, но без знака подчеркивания впереди. Что означает подчеркивание?
4. И еще куча вопросов.

Подскажите, пожалуйста, литературу, какую можно почитать по асму. Сначала, желательно на русском, потом и с даташитом потихоньку разберусь. А пока ... даже такие вышеуказанные элементарные вопросы у меня вызывают вопросы.

Инструкции mov.w не существует. Есть mov.b - байт, mov - слово, mov.d - 2 слова. - см. dsPIC30F/33F Programmer’s Reference Manual (дока DS70157B-page 3-3)

После изучения вышеуказанных доков посмотрите немного здесь на начало описания проги: http://www.microchip.su/showthread.php?t=4079

Освоив dsPIC asm получите массу удовольствия по сравнению с PIC16 ИМХО. Прочесть правда придется полторы тысячи страниц для начала, уж очень в dsPIC мозгов много.

Марк 24.06.2011 21:13

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от Velocity (Сообщение 137821)
Инструкции mov.w не существует...

Еще как существует... ;)
Попробуйте открыть Программ Мемори и взглянуть на дизассемблер...
Ну или написать эту "несуществующую" синтаксическую конструкцию в своем коде.
Просто отсутствие данного суффикса лишь означает его дефолтное применение.
:rolleyes:

Velocity 24.06.2011 21:58

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от Марк (Сообщение 137832)
Еще как существует... ;)
Попробуйте открыть Программ Мемори и взглянуть на дизассемблер...
Ну или написать эту "несуществующую" синтаксическую конструкцию в своем коде.
Просто отсутствие данного суффикса лишь означает его дефолтное применение.
:rolleyes:

Это для тех, кто получает зарплату от количества набранных символов? Забавно, я что-то не встречал нигде такого написания.

Victor72 25.06.2011 07:04

Re: Нужна помощь по asm для dsPIC
 
Попробуйте найти книгу "Microcontrollers: From Assembly Language to C Using the PIC24" это то, что доктор прописал!
Тут http://my.safaribooksonline.com/book...Q1MDU4MzkvMTIz есть превьюшная редакция (если у кого есть хороший скан или ссылочка, ткните носом...).
П.С. А насчет ASM я уже два раза задавал аналогичную тему и здесь и на казусе, тишина. От гуру вразумительных ссылок не получил, кроме тех что и вам советуют...:rolleyes: наверно не хотят растить себе конкурентов...:)

Марк 25.06.2011 08:52

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от Velocity (Сообщение 137836)
Это для тех, кто получает зарплату от количества набранных символов? Забавно, я что-то не встречал нигде такого написания.

Насчет "нигде" я сказал в предыдущем посте.
Смысл моего прошлого коммента, если Вы еще не догадались сами, состоит в том, что сказанное Вами относительно суффикса .w - неправда. Этот суффикс существует, он есть в описании ASM30, т.е. ДОКУМЕНТИРОВАН. Для этого нужно, прежде чем писать пост, ознакомится с оным транслятором. ;)
Читаем упомянутый Вами документ DS70157D на странице 56 внизу. Цитирую:
Цитата:

Note: Instructions that operate in Word mode are not required to use an instruction extension. However, they may be specified with an optional “.w” or “.W” extension, if desired. For example, the following instructions are valid forms of a word clear
operation:
CLR W0
CLR.w W0
CLR.W W0

Velocity 26.06.2011 17:44

Re: Нужна помощь по asm для dsPIC
 
Действительно есть такое, только стр 4-16. Как-то не обратил внимания.

Industrialniy 09.02.2012 19:48

Re: Нужна помощь по asm для dsPIC
 
Подскажите, есть непонятки по командам PIC24FJ128GB106. Компилятор С30 выдаёт команды mov.b, к примеру mov.b w0,[w14], mov.b [w0+1],w1, mov.b 0x0815,w0. Но ASM30 эти команды не признаёт, и в документации их нет. В чём подвох?
И где можно глянуть описание машинных кодов команд для PIC24F?

d-f-m 09.02.2012 20:29

Re: Нужна помощь по asm для dsPIC
 
Цитата:

Сообщение от Industrialniy (Сообщение 153474)
И где можно глянуть описание машинных кодов команд для PIC24F?

16-bit MCU and DSC Programmer's Reference Manual

Industrialniy 09.02.2012 23:17

Re: Нужна помощь по asm для dsPIC
 
Спасибо, то что я искакал!
Теперь ясно с этими командами:
вместо mov.b w0,[w14], mov.b 0x0815,w0 нужно писать mov.b wreg,[w14], mov.b 0x0815,wreg


Часовой пояс GMT +3, время: 17:00.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot