Страница 42 из 53

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

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

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

Добавлено: Сб дек 09, 2017 12:38:46
musor
ОТКУЛЬ ТАКОЕ ОГРАНИЧЕНИЕ? В СМЫСЛЕ 12МЕГ САМИ НЕКОТОРЫЕ 51 УМЕЮТ РАБОТАТЬ И С 25 М КРИСТАЛОМ КВАРЦА

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

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

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

Добавлено: Чт дек 21, 2017 15:02:33
леМурр
снова практический вопрос
(по всё той же гарвардской архитектуре)

Есть ли хоть одна причина, почему нельзя поменять (произвольно) местами
Addres-ные pin-ы ROM или RAM (внешних), например, при разводке платы
удобнее и короче получатся дорожки, не соблюдающие адресный "вес" по
даташит-версии?
Разумеется, при заливке ПЗУ-шки, всю эту ре-адресацию учитывать - в
пользу того, как их будет видеть МК...

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

Добавлено: Чт дек 21, 2017 15:25:41
BOB51
МОЖНО.
Только вот... тогда в случеа использования внешнего ПЗУ программ нужно будет дамп памяти перед программированием также соответственно препарировать.
Не все программаторы такую издевку обеспечить могут.
А "совместное" применение ПЗУ и ОЗУ для микропроценссоров/микроконтроллеров - ТИПИЧНОЕ ЯВЛЕНИЕ (по крайней мере в те времена, когда внутренний флеш проблемой был).
Если схема рассчитана на применение внешней памяти программ в виде УФ ПЗУ (сейчас уже и флешки есть) и кристалла ОЗУ мудрить с разводкой можно лишь в случае наличия программатора той ПЗУшки (или прожки в ПК), которая сделает необходимую перестановку байт кода перед записью в ПЗУ.
8)
Кстати.... этот прием (перестановка адресных линий и/или линий данных) в недавнем прошлом часто использовался для затруднения дешифровки программного кода.
:beer:

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

Добавлено: Пт дек 22, 2017 19:10:01
salang
ссылка попалась, может заинтересует кого

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

Добавлено: Сб дек 23, 2017 06:12:03
BOB51
Подобный вариант (разрабатывался как многоцелевая платформа между прикладушкой и ПК "из подручно-доступного материала)
http://radiokot.ru/forum/viewtopic.php? ... 7#p3167597
8)

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

Добавлено: Вт дек 26, 2017 17:08:09
Голимый
Такая запись в ассемблерном исходнике с диска прилагавшемуся к китайской 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').
Что имели в виду китайцы?

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

Добавлено: Вт дек 26, 2017 23:27:27
petrenko
Вы в курсе какие форматы данных "понимают" данные программы ?
Я не совсем в курсе, но предполагаю, что ошибка сия чисто формальная по "непониманию" отрицательного ,а реально hex-число там правильное, как легко догадаться.

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

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

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

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

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

mov R0, #0FEh
Не уверен, что это было понято правильно. Вот из чего бы это следовало?

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

Добавлено: Ср дек 27, 2017 08:21:32
petrenko
Сие есмь формат представления отрицательных целых чисел.
Так что всё получилось правильно.
( В зависимости от разрядности регистров в конкретных системах представление тех же например -2 и -1 в hex будет выглядеть по разному. 0FEh и 0FFh для 8бит , 0FFFEh и 0FFFFh для 16 бит ,ну и т.д. .. )

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

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

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

Добавлено: Чт янв 25, 2018 13:33:31
Голимый
Вопрос по ассемблеру MCS-51
Ковырялся я однажды в неких исходниках, и видел я там такую штуку. Но упустил (не сохранил) а сейчас не могу найти. Некое макровыражение, вычисляющее длину, и помещающее ее в указанный регистр.
Например, есть набор байтов, определенный директивой DB в памяти программ string: db 'abcdef'
выражение mov dptr. #string - поместит в DPTR адрес первого элемента таблицы.
Но есть что-то очень похожее по написанию, но вместо адреса, помещающее размер самой таблицы. Для указанного примера, поместит двоичную 6. Число 16-битное, #high() и #low() применимы.

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

Добавлено: Чт янв 25, 2018 14:14:56
BOB51
Используем свойства препроцессора, которые позволяют производить подобные вычисления
mov dptr,#(mteka_h - metka_l)
загрузит в DPTR разницу между конечным адресом и начальным.
Конечный адрес - метка следующая за последним байтом строки (ставим произвольно самостоятельно).
8)
string: db 'abcdef'
mark: ..............
=
mov dptr,#(mark - string)
:roll:

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

Добавлено: Чт янв 25, 2018 20:17:17
Голимый
BOB51 писал(а):Используем свойства препроцессора, которые позволяют производить подобные вычисления
Спасибо, помогло!

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

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

PS. Разобрался что переменную можно записать в char xdata но при попытки ее использовать в какой либо функции ничего не получается. ее как будто нету. в памяти data она отлично читается.

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

Добавлено: Вс янв 28, 2018 12:57:51
Голимый
[uquote="Denzell",url="/forum/viewtopic.php?p=3294693#p3294693"]PS. Разобрался что переменную можно записать в char xdata но при попытки ее использовать в какой либо функции ничего не получается. ее как будто нету. в памяти data она отлично читается.[/uquote]
сегмент XDATA - это внешняя оперативная память МК. Если ее физически нет (а это регистр-защелка и микросхема памяти), то естественно, там не может быть ничего сохранено.

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

Добавлено: Вс янв 28, 2018 17:39:18
BOB51
Для компилятора без разницы - есть физически память или нету.
Главное правильно указать модель МК в соответствующих опциях/заголовочном файле.
С ассемблером легче, а вот в специфике СИ не смогу подсказать.
В принципе смотреть надо описание на компилятор. Ежли не указана конкретная модель МК по умолчанию должна запускаться "классика" - но в ней нету места флешке - считается, что применена внешняя память как для программ, так и для данных.
Если в исходнике указана конкретная модель МК то начнутся матюки при несоответствии заданного в *.inc файле распределения памяти заданному пользователем типу МК (особо, ежли МК не работает с внешней памятью данных - типа AT89C2051/AT89C4051).
:dont_know:

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

Добавлено: Вс янв 28, 2018 18:18:28
dosikus
BOB51, для тебя богомерзкий авр верх совершенства?
Что ты их постоянно в пример приводишь?
Сейчас современных чипов с 51 ядром как грязи...

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

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