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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

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

Сообщение paskal »

Подскажите плиз, какие есть операционные системы для MCS-51?
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

компиляторы ассемблер,
С, basic ... возможно и какие-то ОС были, но в повседневной практике с МК особой необходимости в ЩС не ощущалось...
Реклама
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

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

Сообщение petrenko »

to : "paskal" :
Не пробовали поискать в WWW ?
Вот например в { http://ru.wikipedia.org/wiki/FreeRTOS } пишут следуещее :
FreeRTOS

Поддерживаемые процессоры[2]

ARM7, ARM9, ARM Cortex-M3
AVR
AVR32
HCS12
MicroBlaze
MSP430
Nios II
микроконтроллеры фирмы Microchip: PIC18, PIC24, dsPIC, PIC32 (MIPS).
Renesas H8/S
x86
Intel 8051
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

BOB51 писал(а):компиляторы ассемблер,
С, basic ... возможно и какие-то ОС были, но в повседневной практике с МК особой необходимости в ЩС не ощущалось...
С каких пор это стали Операционными Системами? Вопрос ведь был про них.
Одна из простых - ОСА, но она потребует портирования, т.к. изначала писалась под PIC24, есть порт под STM8.
С уважением,
Виктор.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

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

Сообщение paskal »

petrenko писал(а):Не пробовали поискать в WWW ?
Пробовал. И не мало. Но не так это просто. Захлебнешься в море ссылок на другие операционки.
petrenko писал(а):Вот например в { http://ru.wikipedia.org/wiki/FreeRTOS } пишут следуещее :
Intel 8051
Эту я находил. Только она не под Интеловские камушки (мало ли что в википедии пишут). А под 8051F120 Силабза, у которого ОЗУ больше 8 К и flash 64 К. А мне бы для классического 8052 типа Атмеловского.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Реклама
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

Эту я находил. Только она не под Интеловские камушки (мало ли что в википедии пишут).
Придется портированием заняться. Неплохая школа.
В противном случае будете Гуглить долго-долго. Результат малопрогнозируем...
С уважением,
Виктор.
Реклама
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

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

Сообщение paskal »

ut1wpr писал(а):Придется портированием заняться. Неплохая школа.
В противном случае будете Гуглить долго-долго. Результат малопрогнозируем...
Ну допустим. Но с нуля писать ОС безнадежное дело. Все равно нужен образец как минимум, и теорию надо знать. Поэтому что то гуглить опять придется.
Никто хоть наводку в какую сторону шарить не даст?
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

paskal писал(а):Ну допустим. Но с нуля писать ОС безнадежное дело. Все равно нужен образец как минимум, и теорию надо знать.
Портирование - это не с нуля. Тем более, что портов готовых уже есть много.
Поэтому что то гуглить опять придется.
Никто хоть наводку в какую сторону шарить не даст?
А вы как хотели? Без поисков и мучений? Тогда откуда знание теории придет?
http://we.easyelectronics.ru/os-rtos/vy ... tm32-.html
http://www.pic24.ru/doku.php/osa/ref/introduction/intro

Ровно минута Гугления. Обленились все...
С уважением,
Виктор.
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

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

Сообщение paskal »

ut1wpr писал(а): http://we.easyelectronics.ru/os-rtos/vy ... tm32-.html
http://www.pic24.ru/doku.php/osa/ref/introduction/intro

Ровно минута Гугления. Обленились все...
Ну находил я и это. Почему сразу "обленились"! То то и оно что по avr, pic найти не проблема. Но я же про mcs-51 спрашиваю!
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

paskal писал(а):Ну находил я и это. Почему сразу "обленились"! То то и оно что по avr, pic найти не проблема. Но я же про mcs-51 спрашиваю!
По OSA три прекрасно документированных порта на совершенно разные платформы. Сделайте на основании полученных при прочтении документации знаний четвертый. Если оно вам нужно. Возможно, кому-то и пригодится потом ваш труд. Не все же чужим пользоваться.
Портирование - это не "с нуля". Это отличная "рыба", по которой и поучится не грех, и полезное сделать. Тем более, что все существующие порты написаны на Си, который, как известно, и в Африке Си... :) Просто никому до вас не было нужно именно на этой платформе.
С уважением,
Виктор.
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

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

Сообщение paskal »

ut1wpr писал(а):Портирование - это не "с нуля". Это отличная "рыба", по которой и поучится не грех, и полезное сделать. Тем более, что все существующие порты написаны на Си, который, как известно, и в Африке Си... :)
Да я как раз и взялся написать свою ОС для себя. Но когда что то получилось, то понял что вариться в собственном соку тоже не правильно, надо смотреть что в мире делают.
То что порты написаны на Си, не совсем так. Полностью на Си ни одна ОС для МК не написана. Некоторая аппаратная часть обязательно на ассемблере. А платформы 51 и AVR сильно различаются.
ut1wpr писал(а):Просто никому до вас не было нужно именно на этой платформе.
Вероятно вы не изучали данный вопрос в приложении к платформе x51, раз так считаете. Но как раз для 51-х существовало немало ОС.
По разным косвенным ссылкам я находил упоминания таких: OSE (Enea), chipFORTH, CRTX (StarCom). Только их сайты уже не существуют. Или проданы :(. Кое что есть до сих пор. RTX51 (Keil), ByteBos, uCOS. Но они коммерческие.
Из того с чем реально можно ознакомится, пока нашел только одну: 805x RTOS. Очень кстати оказалась без излишеств и с лаконичной но понятной документацией. Но для изучения желательно побольше разнообразия. Поэтому и обратился сюда. Может что то из старых ОС где то завалялось.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

возможно у силабса чего-нибудь на их варианты есть...
ОС для МК с программой 2-4 килобайта ... это уж там, где за 8Кб и то подумать надо "а куда и зачем"
Если сравнивать mcs51 с пиками, то только 18-ю серию.
За некоторым отличием команд наблюдается почти полное соответствие при работе с acsess-адресацией ОЗУ, но... обратный перенос (с pic18 на mcs51) возможен только для МК(mcs51) с ОЗУ более 512 байт.
Возможно еще PIC17......но на нее россиянский ВПК лапу наложил (миландровская серия КР1886ВЕ)...
Если уж писать "для себя" с точки зрения ознакомится с общепринятым...
так то в литературе поискать надо, к примеру:

Операционные системы.
Д. Бэкон, Т. Харрис. - СПб.: Питер;Киев: Издательская группа BHV,2004.

Крейслер С.
Проектирование операционных систем для малых ЭВМ.:
Пер. с англ. - М.: Мир, 1986.

Только вот обычный дисплей + кнопочки и какой-нибудь ввод/вывод вряд-ли такого труда стоит... тогда скорее bascom для mcs51...
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

paskal писал(а):По разным косвенным ссылкам я находил упоминания таких: OSE (Enea), chipFORTH, CRTX (StarCom). Только их сайты уже не существуют. Или проданы :(. Кое что есть до сих пор. RTX51 (Keil), ByteBos, uCOS. Но они коммерческие.
idcx51
Ещё от Intel, но они когда-то сами её в свободное плавание отпустили. Для камней с ОЗУ от 128 байт, посему на исключительно на асме. Зашивалась в масочную ROM i8044 (BITBUS-нода, ядро i8051, 192 байта ОЗУ и HDLC-контроллер).
Вытеснялка, старших три приоритета крутятся в банках регистров 1..3, а все младшие делят банк 0.
Изучал, но поработать не успел, спрыгнул на AVR.
Вроде-бы был проект по переводу на С, но я давно 51-ми не интересуюсь.
BOB51 писал(а):Крейслер С.
Проектирование операционных систем для малых ЭВМ.:
Пер. с англ. - М.: Мир, 1986.
Хорошая фраза есть где-то на первых страницах -- «операционная система должна быть так же надёжна, как и аппаратура, на которой она работает». Сколько раз вспоминал в эпоху Win95 на «tomato motherboard» :)))
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

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

Сообщение Chip115 »

Всем привет!
Контроллер: Silabs С8051F410
Среда разработки: Keil последней версии на данный момент.
Проблема: после определения массива мк "зависает". Причем массив нигде не юзается (пока не использую), но все равно он что то "затирает" , так как при уменьшении размера на два элемента все начинает работать.

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

xdata int TemprBuf[]=
{	
					373,
					286,
					260,
					200,
					190,
					180,
					170,
					160,
					150,
					140,
					130,
					110,
					100
};
Размещение в xdata не решило проблемы (хз, на всякий случай попробовал его туда запихать). А теперь плюшки. При ковырянии дизасма заметил следующее
Изображение
Т.е. там , где стоит точка останова, программа пытается прыгнуть по адресу, которого не существует (0х0777) (в смысле, он прыгает не в начало команды, "высасывает" ее из памяти по адресу 0х0777, пихает ее в регистр команд и, естественно, эту фигню не правильно интерпретирует )
Вот скрин после того, когда я за комментировал массив. (Программа работает как и задумано)
Изображение
И прыжок есть и адрес существует.
Кто нить сталкивался с подобной проблемой? Как ее можно решить? Начать проект заново, но на асме? (шутка) :)

Заметил, что код команды 0х90 (куда он прыгает по адр. 0х0777, находится в аккурат часть команды SJMP 0х0780 (ее код 8090), втягивает младший байт кода 0х90, что соответствует MOV,DPTR) , а дальше, как он думает, надо взять следующие два байта. Далее идет байт 0x07 (соответствует INC) и байты BCE47E. В итоге он втягивает код 9007BC.
Изображение

Теперь обратим внимание на рабочий код, на адрес 0x0777. Там стоит команда, которую он втянул по частям, т.е 9007BC (MOV DPTR,#0x07BC)
Совпадение? Как бороться с этим недугом?
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

А среда-то с лицензией или "демо"? У Keil и прочих монстров ограничения на объём кода... :cry:
А вот на сеей мелочевке такой пакости нету http://www.atmel.com/Images/c51asm_win_1-2.zip
синтаксис Keilоподобный но полностью free, правда РСФ (дополнительно под конкретный МК) самому определять прийдется :beer:
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

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

Сообщение Chip115 »

Кеил с лицензией. В рабочем варианте прога жрет больше 2к (это больше чем дает фри версия).
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

А это как понимать: ?
Изображение
Походу лицензия какая-то кривая.
Вложения
непонятка.JPG
(13.41 КБ) 1251 скачивание
Docendo discimus
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

Chip115 писал(а):Кеил с лицензией. В рабочем варианте прога жрет больше 2к (это больше чем дает фри версия).
А у меня тут студент на пол ставки инженером, так он C8051F350 вполне успешно в SDCC мучает. Он цепляется к SiLabs-совской среде и всё отлично получается.
Chip115 писал(а):Проблема: после определения массива мк "зависает". Причем массив нигде не юзается
...
Размещение в xdata не решило проблемы (хз, на всякий случай попробовал его туда запихать).
Где массив -- в data/idata/xdata -- в данном случае может быть несущественно потому, что он проинициализирован, а начальные значния для него сидят в памяти кода.
pyzhman писал(а):А это как понимать: ?
...
Походу лицензия какая-то кривая.
Не, с лицензией всё в порядке.
И у Вас всё в порядке со внимательностью :-)

Chip115, обратите внимание на адрес 0x0776, который выделен на первом скриншоте, только уже на содержимое по нему на втором.
И на первом, и на втором скриншоте по адресу 0x0776 показан двухбайтовый кот 8090 SJMP C:0708
Соответствено, следующий адрес на обеих скриншотах должен быть 0x0778.
Далее, по адресу 0x0778 на первом скриншоте кот 07, всмотритесь -- на втором то же самое, по 0x0777 идёт 9007BC. Причём по адресу 0x0777 идёт байт 90, т.е. тот же, который в предыдущей строке в байтах 0890.

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

Поднимемся выше, на адрес 0x76F. Начиная с него идут байты 01 02 04 08 10 20 40 80.
Гляньте ещё на команду MOVC A,@A+PC по адресу 0x0762. Следующий адрес - 0x0763.
И к содержимому A в строке по адресу 0x0757 (после маскирования строкой раньше) добавляется 0x0C.
0x0763+0x0C в аккурат даёт 0x076F, начало таблицы.
Это такой способ получения данных из недалеко лежащей таблицы небольшого размера, для асм-программирования у меня макрос nxlat для такого был. Сам вычислял смещение до начала таблицы, маскировал, добавлял, ... Для интересующихся можно и поискать в архивах.

Т.е. эти байты 01 02 ... 80 -- табличка битовых масок, используемых для работы с битом по его номеру. Просто дизассемблер не допёр и начал после 0x076D 800B SJMP C:077A дизассемблировать данные как код.
Из-за этого вышло наползание на реальный код, начианющийся с адреса 0x0777 и сбой дизассемблирования на первом скриншоте, возврат к правильному (выглядящий как повтор байта) на втором.
Кажется, только IDA славится тем, что такие места понимает, анализируя код. И сразу показывает как .DB
И то в сложных случаях, говорят, ручная помощь ей необходима.

А проблема, связанная с размещением инициализатора массива в коде и соответствующими смещениями адресов, где-то рядом, но не в этом месте...
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

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

Сообщение Chip115 »

avreal , спасибо за внятное разъяснение :) Сча по туплю, да буду рыться дальше.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

avreal писал(а):C8051F350 вполне успешно в SDCC мучает.
У меня на работе 350-й. Мощная штука :) Кстати, у меня есть ломалка для Кейла ели кому надо)))

Тогда я и здесь продублирую свой вопрос:

Кто делал DDS (прямой цифровой синтез) 8 бит на 8051?
Интересуют скорости алгоритма / частота генерируемого сигнала.
У меня получается 20 тактов МК на один отсчёт при 1024-х байтной таблице сигнала (из флэша).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

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