MPLAB X IDE

Поклонники продукции Microchip Technology Inc тусуются тут.
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

Так я ничего и не резервирую.
Я инициализиркю указатель на адрес регистра.
В старом лабе он сразу виден в окне регистров под именем которое я ему дал.
В новом лабе так не происходит.
Так как за это отвечает препроцессор, клпать надо в заголовочных файлах.
Непосредственно из кода define и equ результата не даёт.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="andrey13",url="/forum/viewtopic.php?p=4142858#p4142858"]Так я ничего и не резервирую.
Я инициализиркю указатель на адрес регистра.[/uquote]
Вы ничего не инициализируете. Вы просто присваиваете имя константе. Поэтому ассемблер и среда не считают эти имена ни памятью, ни переменными.
И не надо фантазировать. Нужно просто открыть мануал на ассемблер и прочесть в нем как резервируется память.
Резервируется она ТОЛЬКО В ПЕРЕМЕЩАЕМОМ РЕЖИМЕ директивой ассемблера udata.
Синтаксис выглядит так:

Код: Выделить всё

com_var	udata 0x20
currPeltier		   res 2
setTemp			res 2
tempRad			res 2
tempPeltier		res 2
tempBox			res 2
startTimer		   res 1

		udata_shr
flags			res 1
;--------------------
data_ready	equ	0
two_sec_req	equ	1
first_time		equ	2
alarm_req		equ	3
;--------------------
muxADC			res 1
muxDataADC		res 1

Этот пример из реального проекта.
com_var udata 0x20 содержит имя секции неинициализированных данных com_var (выбирается произвольно) и начальный адрес 0х20.
udata_shr является директивой выделения общего для всех банков сегмента памяти.
директива res резервирует количество байт указанных после нее. res 1 - один байт.
tempBox res 2 резервирует 2 байта. Обращение к ним в коде будет как tempBox и tempBox+1
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

И я не нашёл в ассемблере операнда или дерективы res
Так же нет такой дерективы udata
Мы вобще про какой ассемблер ведём речь?
Я про pic-as
Я создаю прямой указатель на регистр данных
COUNT EQU 0x10h
Далее использую этот COUNT как указатель в коде в место адреса, стандартный приём, во всех даташитах он как пример используется.
Всё прекрасно работает и в старом мплабе и новом.
В новом я естественно делаю этот указатель в нужном псекте.
PSECT udata,reloc = 10h,abs,ovrld
COUNT EQU 0x10h
Всё прекрасно работает, но метка на адрес не отображается в окне файловых регистров.
Вот и всё, просто неудобно.

Добавлено after 33 minutes 24 seconds:
Спасибо ответившим котам.
В старом и новом мплабе ассемблеры немного разные.
Там много отличий как раз по выделению памяти.
Скорее всего я не правильно работаю с памятью.
Пойду перечитввать весь мануал подробно.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="andrey13",url="/forum/viewtopic.php?p=4142937#p4142937"]Я про pic-as
Я создаю прямой указатель на регистр данных
COUNT EQU 0x10h
Далее использую этот COUNT как указатель в коде в место адреса, стандартный приём, во всех даташитах он как пример используется.
Всё прекрасно работает и в старом мплабе и новом.[/uquote]
Тююю..., милейший!
Да вы оригинал. Причем тут старый/новый MPLAB?
Какие вы называете старым или новым?
Под "старым" MPLAB называют СРЕДУ РАЗРАБОТКИ (MPLAB IDE) версии 8.92 и ниже. А под "новым" - версию X (MPLABX IDE).
Вы же пытаетесь говорить об АССЕМБЛЕРЕ. Ассемблер не имеет отношения к среде разработки.
У Микрочипа для 8-битных МК семейства PIC есть ДВА ассемблера: mpasm (mpasmx) и pic-as. Последней версией СРЕДЫ содержащей в своем пакете установки mpasmx была MPLABX IDE ver. 5.35. Версии 5.45 и последняя 5.50 уже не имеют старого ассемблера mpasm (mpasmx) - Микрочип перестал его поддерживать. Вместо него надлежит использовать pic-as, который является ЧАСТЬЮ С-компилятора XC8 и входит в его пакет установки.
Синтаксис этих ассемблеров радикально отличается.
В pic-as переменные резервируются в секции udata, но синтаксис выделения памяти выглядит так:

Код: Выделить всё

name_var:       DS 1
DS - директива ассемблера выделяющая байты ОЗУ (Reserves storage). В мануале обозначена в таблице директив.
Однако непонятно зачем вам этот геморрой? С какой целью вы перешли на версии среды не поддерживающие mpasmx? У вас применяются какие то суперновые чипы?
Но даже если вы это сделали осмысленно, нужно отдавать себе отчет в том, что в сложившейся ситуации нет никакого смысла объявлять переменные в асм-файле. Проще это сделать в Си, а код можно писать на АСМе. У вас будет смешанный проект.
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

В pic-as переменные резервируются в секции udata, но синтаксис выделения памяти выглядит так:

Код: Выделить всё

name_var:       DS 1
DS - директива ассемблера выделяющая байты ОЗУ (Reserves storage). В мануале обозначена в таблице директив.
Однако непонятно зачем вам этот геморрой? С какой целью вы перешли на версии среды не поддерживающие mpasmx? У вас применяются какие то суперновые чипы?
Но даже если вы это сделали осмысленно, нужно отдавать себе отчет в том, что в сложившейся ситуации нет никакого смысла объявлять переменные в асм-файле. Проще это сделать в Си, а код можно писать на АСМе. У вас будет смешанный проект.
Перешёл потому что старый на линуксе не работает.

Пробоовал и DB и DS и DABS
Не получается.

Мне для отладки нужно видеть что пишется в регистры, а когда они безымянные то сложно визуально выделать нужный.
Когда их будет десяток, это будет просто ад.
В старом мплабе, который с ассемблером mpasm эти метки появлялись автоматически после запуска дебагера.
А в новом теперь такого нет.
Вот скрин
Изображение
Последний раз редактировалось andrey13 Пт дек 17, 2021 14:26:41, всего редактировалось 2 раза.
Аватара пользователя
Родэрик
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы
Контактная информация:

Re: MPLAB X IDE

Сообщение Родэрик »

[uquote="andrey13",url="/forum/viewtopic.php?p=4142937#p4142937"]PSECT udata,reloc = 10h,abs,ovrld[/uquote]
Я так понимаю, эта специфичная строчка как раз из этого самого нового pic-as. Что она означает и где-нибудь вообще есть полноценный документ по этому асму (вроде известного mpasm.pdf) ?
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

[uquote="Родэрик",url="/forum/viewtopic.php?p=4143247#p4143247"][uquote="andrey13",url="/forum/viewtopic.php?p=4142937#p4142937"]PSECT udata,reloc = 10h,abs,ovrld[/uquote]
Я так понимаю, эта специфичная строчка как раз из этого самого нового pic-as. Что она означает и где-нибудь вообще есть полноценный документ по этому асму (вроде известного mpasm.pdf) ?[/uquote]

Вот
Вложения
MPLAB XC8 PIC Assembler User's Guide 50002974A.pdf
(681.11 КБ) 1326 скачиваний
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="andrey13",url="/forum/viewtopic.php?p=4143243#p4143243"]Перешёл потому что старый на линуксе не работает.[/uquote]
Не выдумывайте. Версия 5.35 работает с Линуксом.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: MPLAB X IDE

Сообщение Аlex »

Что-то я не пойму. Заглянул сейчас в папку с установленным MPLAB X, а там есть папочка MPASM Suite. Всё есть, всё устанавливается....
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

Версия у вас какая?
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4143258#p4143258"][uquote="andrey13",url="/forum/viewtopic.php?p=4143243#p4143243"]Перешёл потому что старый на линуксе не работает.[/uquote]
Не выдумывайте. Версия 5.35 работает с Линуксом.[/uquote]

Не знал, надо попробовать.
Тем не менее, теперь придётся жить с новым ассемблером, и всё равно переходить на новую среду.
Тем более новый ассемблер хорош, мне нравится их фишка с псектами.

У меня один и тот же код в обоих средах.
И вот такое мальенькое неудобство в новой среде.
Аватара пользователя
Родэрик
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы
Контактная информация:

Re: MPLAB X IDE

Сообщение Родэрик »

[uquote="andrey13",url="/forum/viewtopic.php?p=4143271#p4143271"]....
Тем не менее, теперь придётся жить с новым ассемблером, и всё равно переходить на новую среду ......[/uquote]
Придётся? Это ещё кто так сказал? Должны быть какие-то веские причины.

Если, например, говорить конкретней - вот, скажем, сижу я на 8.92 и пишу под 18f46k22...
Вопрос: есть хоть один весомый аргумент, чтобы переехать на pic-as? Как именно он упростит мне задачу, сократит время.....?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

Не, я отказался в новых 8-битных чипах от чистого асма. Либо Си, либо смешанный код.
А старые чипы, где написано на mpasmx, я поддерживаю на версии 5.35.
andrey13
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн ноя 11, 2013 03:50:13

Re: MPLAB X IDE

Сообщение andrey13 »

Дело в том что вы уже крутые коты и давно сидите на микроконтррллерах, у вас уже всё устоялось, вы познали дзен.
Я только второй месяц как начал их изучать, а если ты новичёк то зачем разрываться на несколько сред.
Если ты с нуля, то лучше взять самую свежую среду, она поддерживает все контроллеры от самых старых до самых новых.
И ассемблер тоже без разницы какой изучать, если нулевой уровень, логично изучить тот который в самой свежей среде, он же скорее всего и будет основным на долгое время.

У меня было так, мне отдали ноубук где стоит какая то предыдущая версия лаба, где mpasm ассемблер.
Я что то там пытался делать.
Ноутбук попросили вернуть.
Я пытался на домашнем компе под вайном в линуксе запустить такую же как на ноутбуке, у меня что то не получилось (я думал что мплаб только под винду).
Я зашёл на сайт микрочипа и скачал последний лаб на линукс.
Установил и теперь на нём.

В принципе всё устаривает, нет меток в эмуляторе, ну и ладнно, не смертельно, буду смотреть регистры данных по их адресам, делов то.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: MPLAB X IDE

Сообщение Аlex »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4143264#p4143264"]Версия у вас какая?[/uquote]5.45
Аватара пользователя
Родэрик
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы
Контактная информация:

Re: MPLAB X IDE

Сообщение Родэрик »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4143313#p4143313"]... либо смешанный код. ...[/uquote]asm вставки?
А допустим, если наоборот, - в основе асм, но некоторые функции делать на си, компилировать и уже полученный фрагмент вставлять. Такое вообще практикуется, или это плохая идея?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="Родэрик",url="/forum/viewtopic.php?p=4143547#p4143547"]asm вставки?[/uquote]
Нет, не вставки. Речь идет о совместной компиляции .c/.h и .s/.inc файлов в любом их соотношении.
[uquote="Аlex",url="/forum/viewtopic.php?p=4143516#p4143516"][uquote="КРАМ",url="/forum/viewtopic.php?p=4143264#p4143264"]Версия у вас какая?[/uquote]5.45[/uquote]
Мне кажется вы что то путаете. Вот папка установленного 5.45:
Изображение Изображение Изображение
А вот папка более ранних версий. Они даже в другую папку Винды устанавливаются:
Изображение Изображение Изображение
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: MPLAB X IDE

Сообщение Аlex »

Вот, у мну на работе :
СпойлерИзображение
2021-12-18_08-12-15.png
(88.46 КБ) 839 скачиваний
Изображение
2021-12-18_08-14-02.png
(67.09 КБ) 849 скачиваний
Но тут у меня 5.35, давно не обновлялся.
Всё в одной папке - "C:\Program Files (x86)\Microchip". Трудно здесь что-то напутать.
Дома тоже самое. Вроде бы :roll: :)))
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

Так о том и речь, что 5.35 содержит MPASM, а 5.45 уже НЕ содержит.
И, начиная с версии 5.45, все инструменты Микрочипа попадают в папку Program Files, а не Program Files (x86).

[uquote="andrey13",url="/forum/viewtopic.php?p=4143340#p4143340"]В принципе всё устаривает, нет меток в эмуляторе, ну и ладнно, не смертельно, буду смотреть регистры данных по их адресам, делов то.[/uquote]
Есть такое обоснованное мнение, что вы не определили свои переменные как ГЛОБАЛЬНЫЕ.
Добавьте сверху директиву global var1, var2, var3 , заменив имена переменных на свои и жизнь у вас наладится... :tea: :)))
Изображение
Аватара пользователя
Родэрик
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы
Контактная информация:

Re: MPLAB X IDE

Сообщение Родэрик »

[uquote="Аlex",url="/forum/viewtopic.php?p=4143261#p4143261"]Что-то я не пойму. Заглянул сейчас в папку с установленным MPLAB X, а там есть папочка MPASM Suite. Всё есть, всё устанавливается....[/uquote]
Вы вот этой своей формулировкой ввели в заблуждение. Я тогда решил, что у вас в папке mplabx папка mpasm suite. А ныне фотки взглянул, а оказывается всё как обычно....... я бы вам сразу тогда написал, что папку mpasm suite создал 8-й mplab, к иксу она не имеет отношения (у него там своя есть mpasmx)
Ответить

Вернуться в «PIC»