Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Если кристалл заблокирован, НО ИМЕЕТ ВОЗМОЖНОСТЬ ПЕРЕПРОШИВКИ делаем программатор соответствующий (параллельный!!!) даем команду ОБЩЕЕ СТИРАНИЕ и... далее пишем во внутреннюю память программ свой "биос".
Если кристалл ОДНОКРАТНО ПРОГРАММИРУЕМЫЙ или МАСОЧНЫЙ (разновидности OTP) делаем биос/собственную прожку во внешней памяти данных и схемотехнический (с программной поддержкой) переключатель/селектор адресного пространства ВПП/ВПД.
Работа ВСЕХ МК из семейства MCS51 подчиняется интеловскому СТАНДАРТУ - в модификациях может применяться все, что НЕ ОПРЕДЕЛЕНО тем стандартным минимумом ИЛИ ОПИСАНО ДОПОЛНЕНИЕМ В КОНКРЕТНОМ ДАТАШИТЕ НА МК. А все, чего там нету соответствует интеловской концепции "по умолчанию".
Посему...
При работе с MCS51держим под лапой исходный референс интела и/или его русскоязычные трактовки (весьма много разнообрахных, в том числе и в сундуке КОТА) и даташит на имеющийся МК.
8)
Вариант распределения памяти в одной из старых конструкций
http://img.radiokot.ru/files/20529/kft9glhpo.gif
может использоваться и
как возможность работы с двумя микрухами памяти - ПЗУ (ВПП) в 32к и ОЗУ (ВПП/ВПД) 32к
:beer:
Одно огорчение... частота с ВПП ограничена 12МГЦ...
и требует повышенной аккуратности в отношении трассировки монтажа.
:(
Реклама
Аватара пользователя
musor
Друг Кота
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение musor »

ОТКУЛЬ ТАКОЕ ОГРАНИЧЕНИЕ? В СМЫСЛЕ 12МЕГ САМИ НЕКОТОРЫЕ 51 УМЕЮТ РАБОТАТЬ И С 25 М КРИСТАЛОМ КВАРЦА
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Одно дело - внутренняя шина и совсем другое - внешняя...
Плюс защелка адреса в дополнение.
Да еще как исполнена в железе - иногда сами шинки могут подарки преподнести.
Где-то раньше попадалось - уже не помню...
Это у тех кристаллов, где только внешняя память программ применяется между напечатанном на кристале и реалом соответствие будет.
Да и всегда проверить не помешает - реальных конструкций с внешней микрухой и кварцем выше 11,..... /12МГц таки не попадалось... А более поздние - все со встроенным ПЗУ - там быстродействие на максимуме.
:dont_know:
Аватара пользователя
леМурр
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт дек 07, 2017 04:44:22

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение леМурр »

снова практический вопрос
(по всё той же гарвардской архитектуре)

Есть ли хоть одна причина, почему нельзя поменять (произвольно) местами
Addres-ные pin-ы ROM или RAM (внешних), например, при разводке платы
удобнее и короче получатся дорожки, не соблюдающие адресный "вес" по
даташит-версии?
Разумеется, при заливке ПЗУ-шки, всю эту ре-адресацию учитывать - в
пользу того, как их будет видеть МК...
..всего две 6Ф1П, включенные последовательно,
высушат обое ваших сапог даже в автомобиле..
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

МОЖНО.
Только вот... тогда в случеа использования внешнего ПЗУ программ нужно будет дамп памяти перед программированием также соответственно препарировать.
Не все программаторы такую издевку обеспечить могут.
А "совместное" применение ПЗУ и ОЗУ для микропроценссоров/микроконтроллеров - ТИПИЧНОЕ ЯВЛЕНИЕ (по крайней мере в те времена, когда внутренний флеш проблемой был).
Если схема рассчитана на применение внешней памяти программ в виде УФ ПЗУ (сейчас уже и флешки есть) и кристалла ОЗУ мудрить с разводкой можно лишь в случае наличия программатора той ПЗУшки (или прожки в ПК), которая сделает необходимую перестановку байт кода перед записью в ПЗУ.
8)
Кстати.... этот прием (перестановка адресных линий и/или линий данных) в недавнем прошлом часто использовался для затруднения дешифровки программного кода.
:beer:
Реклама
salang
Грызет канифоль
Сообщения: 273
Зарегистрирован: Вт янв 18, 2011 19:32:48
Откуда: Мск

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение salang »

ссылка попалась, может заинтересует кого
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Подобный вариант (разрабатывался как многоцелевая платформа между прикладушкой и ПК "из подручно-доступного материала)
http://radiokot.ru/forum/viewtopic.php? ... 7#p3167597
8)
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Голимый »

Такая запись в ассемблерном исходнике с диска прилагавшемуся к китайской education board c камнем STC89C52

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

seach:	
	mov r0,#-2  ;pointer
	mov r1,#-1  ;counter	
В моей iDE c ассемблером ASEM51 такая запись ("mov R0, #-2") является ошибочной. (Notice at 2 in test-2.asm: Overflow `-2' -> `65534').
Что имели в виду китайцы?
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5322
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение petrenko »

Вы в курсе какие форматы данных "понимают" данные программы ?
Я не совсем в курсе, но предполагаю, что ошибка сия чисто формальная по "непониманию" отрицательного ,а реально hex-число там правильное, как легко догадаться.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Голимый »

[uquote="petrenko",url="/forum/viewtopic.php?p=3269682#p3269682"]Вы в курсе какие форматы данных "понимают" данные программы ?[/uquote]
Нет, иначе бы не спрашивал.
petrenko писал(а):а реально hex-число там правильное, как легко догадаться
Легко? Хм... Я вот взял и составил пример из трех строчек:

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

org 0
mov R0, #-2
end
и попробовал скомпилять разными ассемблерами. Компилять пожелал только C51ASM атмеловский, и когда дизассемблировал то что вышло, получилось вот как:

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

mov R0, #0FEh
Не уверен, что это было понято правильно. Вот из чего бы это следовало?
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5322
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение petrenko »

Сие есмь формат представления отрицательных целых чисел.
Так что всё получилось правильно.
( В зависимости от разрядности регистров в конкретных системах представление тех же например -2 и -1 в hex будет выглядеть по разному. 0FEh и 0FFh для 8бит , 0FFFEh и 0FFFFh для 16 бит ,ну и т.д. .. )
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Запись отрицательного значения (как и вычисления значений для подстановки) - зависит от компилятора/препроцессора.
Читать надо Uzers guide конкретной IDE/компилятора.
:roll:
Как частность - отрицательное значение может представлятся компилятором в "полном диапазоне" т.е.
если у нас 2 - размерностью в байт,
то -2 размерностью В БАЙТ будет 0хFE ...
однако препроцессор компилятора ограничение в байт МОЖЕТ НЕ ВОСПРИНИМАТЬ - выполнит преобразование автоматически для полного диапазона представления (что в него разработчиком заложено)...
и...
Будем
-2
иметь как...
:shock:
0xFFFE
в лучшем случае... (а можеть и подлиннее...)
при таком подходе выручит
mov r0,#low (-2)
:beer:
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Голимый »

Вопрос по ассемблеру MCS-51
Ковырялся я однажды в неких исходниках, и видел я там такую штуку. Но упустил (не сохранил) а сейчас не могу найти. Некое макровыражение, вычисляющее длину, и помещающее ее в указанный регистр.
Например, есть набор байтов, определенный директивой DB в памяти программ string: db 'abcdef'
выражение mov dptr. #string - поместит в DPTR адрес первого элемента таблицы.
Но есть что-то очень похожее по написанию, но вместо адреса, помещающее размер самой таблицы. Для указанного примера, поместит двоичную 6. Число 16-битное, #high() и #low() применимы.
Трудное детство, стальные игрушки.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Используем свойства препроцессора, которые позволяют производить подобные вычисления
mov dptr,#(mteka_h - metka_l)
загрузит в DPTR разницу между конечным адресом и начальным.
Конечный адрес - метка следующая за последним байтом строки (ставим произвольно самостоятельно).
8)
string: db 'abcdef'
mark: ..............
=
mov dptr,#(mark - string)
:roll:
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Голимый »

BOB51 писал(а):Используем свойства препроцессора, которые позволяют производить подобные вычисления
Спасибо, помогло!
Трудное детство, стальные игрушки.
Denzell
Родился
Сообщения: 5
Зарегистрирован: Пт янв 26, 2018 04:13:28

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Denzell »

Объясните как записать массив[16][40] в память МК 8051. Программу пишу на Си в Kell uVision.
Вылазиет что то вроде ошибки TEXT1.C(77): error C241: 'main': auto segment too large.

PS. Разобрался что переменную можно записать в char xdata но при попытки ее использовать в какой либо функции ничего не получается. ее как будто нету. в памяти data она отлично читается.
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Голимый »

[uquote="Denzell",url="/forum/viewtopic.php?p=3294693#p3294693"]PS. Разобрался что переменную можно записать в char xdata но при попытки ее использовать в какой либо функции ничего не получается. ее как будто нету. в памяти data она отлично читается.[/uquote]
сегмент XDATA - это внешняя оперативная память МК. Если ее физически нет (а это регистр-защелка и микросхема памяти), то естественно, там не может быть ничего сохранено.
Трудное детство, стальные игрушки.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Для компилятора без разницы - есть физически память или нету.
Главное правильно указать модель МК в соответствующих опциях/заголовочном файле.
С ассемблером легче, а вот в специфике СИ не смогу подсказать.
В принципе смотреть надо описание на компилятор. Ежли не указана конкретная модель МК по умолчанию должна запускаться "классика" - но в ней нету места флешке - считается, что применена внешняя память как для программ, так и для данных.
Если в исходнике указана конкретная модель МК то начнутся матюки при несоответствии заданного в *.inc файле распределения памяти заданному пользователем типу МК (особо, ежли МК не работает с внешней памятью данных - типа AT89C2051/AT89C4051).
:dont_know:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение dosikus »

BOB51, для тебя богомерзкий авр верх совершенства?
Что ты их постоянно в пример приводишь?
Сейчас современных чипов с 51 ядром как грязи...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15554
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Пример такого кристалла, где не предусмотрены аппаратные средства работы с внешней памятью (из наиболее распространенных в любительских проектах).
8)
А "спецу" по СИ не помешало бы вместо флуда подсказать вопрошающему как правильно в проекте прописать нужные установки.
:wink:
Ответить

Вернуться в «Разные вопросы по МК»