Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

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

Сб дек 09, 2017 10:30:11

Если кристалл заблокирован, НО ИМЕЕТ ВОЗМОЖНОСТЬ ПЕРЕПРОШИВКИ делаем программатор соответствующий (параллельный!!!) даем команду ОБЩЕЕ СТИРАНИЕ и... далее пишем во внутреннюю память программ свой "биос".
Если кристалл ОДНОКРАТНО ПРОГРАММИРУЕМЫЙ или МАСОЧНЫЙ (разновидности 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

ОТКУЛЬ ТАКОЕ ОГРАНИЧЕНИЕ? В СМЫСЛЕ 12МЕГ САМИ НЕКОТОРЫЕ 51 УМЕЮТ РАБОТАТЬ И С 25 М КРИСТАЛОМ КВАРЦА

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

Сб дек 09, 2017 14:23:24

Одно дело - внутренняя шина и совсем другое - внешняя...
Плюс защелка адреса в дополнение.
Да еще как исполнена в железе - иногда сами шинки могут подарки преподнести.
Где-то раньше попадалось - уже не помню...
Это у тех кристаллов, где только внешняя память программ применяется между напечатанном на кристале и реалом соответствие будет.
Да и всегда проверить не помешает - реальных конструкций с внешней микрухой и кварцем выше 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

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

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

Пт дек 22, 2017 19:10:01

ссылка попалась, может заинтересует кого

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

Сб дек 23, 2017 06:12:03

Подобный вариант (разрабатывался как многоцелевая платформа между прикладушкой и ПК "из подручно-доступного материала)
viewtopic.php?p=3167597#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

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

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

Ср дек 27, 2017 00:40:06

Вы в курсе какие форматы данных "понимают" данные программы ?

Нет, иначе бы не спрашивал.
petrenko писал(а):а реально hex-число там правильное, как легко догадаться

Легко? Хм... Я вот взял и составил пример из трех строчек:
Код:
org 0
mov R0, #-2
end

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

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

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

Ср дек 27, 2017 08:21:32

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

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

Ср дек 27, 2017 09:17:47

Запись отрицательного значения (как и вычисления значений для подстановки) - зависит от компилятора/препроцессора.
Читать надо 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

Используем свойства препроцессора, которые позволяют производить подобные вычисления
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

Объясните как записать массив[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

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

сегмент XDATA - это внешняя оперативная память МК. Если ее физически нет (а это регистр-защелка и микросхема памяти), то естественно, там не может быть ничего сохранено.

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

Вс янв 28, 2018 17:39:18

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

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

Вс янв 28, 2018 18:18:28

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

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

Вс янв 28, 2018 19:00:08

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