Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Подскажите плиз, какие есть операционные системы для MCS-51?
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
- Реклама
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
компиляторы ассемблер,
С, basic ... возможно и какие-то ОС были, но в повседневной практике с МК особой необходимости в ЩС не ощущалось...
С, basic ... возможно и какие-то ОС были, но в повседневной практике с МК особой необходимости в ЩС не ощущалось...
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
to : "paskal" :
Не пробовали поискать в WWW ?
Вот например в { http://ru.wikipedia.org/wiki/FreeRTOS } пишут следуещее :
Не пробовали поискать в 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 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
С каких пор это стали Операционными Системами? Вопрос ведь был про них.BOB51 писал(а):компиляторы ассемблер,
С, basic ... возможно и какие-то ОС были, но в повседневной практике с МК особой необходимости в ЩС не ощущалось...
Одна из простых - ОСА, но она потребует портирования, т.к. изначала писалась под PIC24, есть порт под STM8.
С уважением,
Виктор.
Виктор.
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Пробовал. И не мало. Но не так это просто. Захлебнешься в море ссылок на другие операционки.petrenko писал(а):Не пробовали поискать в WWW ?
Эту я находил. Только она не под Интеловские камушки (мало ли что в википедии пишут). А под 8051F120 Силабза, у которого ОЗУ больше 8 К и flash 64 К. А мне бы для классического 8052 типа Атмеловского.petrenko писал(а):Вот например в { http://ru.wikipedia.org/wiki/FreeRTOS } пишут следуещее :
Intel 8051
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
- Реклама
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Придется портированием заняться. Неплохая школа.Эту я находил. Только она не под Интеловские камушки (мало ли что в википедии пишут).
В противном случае будете Гуглить долго-долго. Результат малопрогнозируем...
С уважением,
Виктор.
Виктор.
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Ну допустим. Но с нуля писать ОС безнадежное дело. Все равно нужен образец как минимум, и теорию надо знать. Поэтому что то гуглить опять придется.ut1wpr писал(а):Придется портированием заняться. Неплохая школа.
В противном случае будете Гуглить долго-долго. Результат малопрогнозируем...
Никто хоть наводку в какую сторону шарить не даст?
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Портирование - это не с нуля. Тем более, что портов готовых уже есть много.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 и не только..
Ну находил я и это. Почему сразу "обленились"! То то и оно что по avr, pic найти не проблема. Но я же про mcs-51 спрашиваю!ut1wpr писал(а): http://we.easyelectronics.ru/os-rtos/vy ... tm32-.html
http://www.pic24.ru/doku.php/osa/ref/introduction/intro
Ровно минута Гугления. Обленились все...
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
По OSA три прекрасно документированных порта на совершенно разные платформы. Сделайте на основании полученных при прочтении документации знаний четвертый. Если оно вам нужно. Возможно, кому-то и пригодится потом ваш труд. Не все же чужим пользоваться.paskal писал(а):Ну находил я и это. Почему сразу "обленились"! То то и оно что по avr, pic найти не проблема. Но я же про mcs-51 спрашиваю!
Портирование - это не "с нуля". Это отличная "рыба", по которой и поучится не грех, и полезное сделать. Тем более, что все существующие порты написаны на Си, который, как известно, и в Африке Си...
С уважением,
Виктор.
Виктор.
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Да я как раз и взялся написать свою ОС для себя. Но когда что то получилось, то понял что вариться в собственном соку тоже не правильно, надо смотреть что в мире делают.ut1wpr писал(а):Портирование - это не "с нуля". Это отличная "рыба", по которой и поучится не грех, и полезное сделать. Тем более, что все существующие порты написаны на Си, который, как известно, и в Африке Си...![]()
То что порты написаны на Си, не совсем так. Полностью на Си ни одна ОС для МК не написана. Некоторая аппаратная часть обязательно на ассемблере. А платформы 51 и AVR сильно различаются.
Вероятно вы не изучали данный вопрос в приложении к платформе x51, раз так считаете. Но как раз для 51-х существовало немало ОС.ut1wpr писал(а):Просто никому до вас не было нужно именно на этой платформе.
По разным косвенным ссылкам я находил упоминания таких: OSE (Enea), chipFORTH, CRTX (StarCom). Только их сайты уже не существуют. Или проданы
Из того с чем реально можно ознакомится, пока нашел только одну: 805x RTOS. Очень кстати оказалась без излишеств и с лаконичной но понятной документацией. Но для изучения желательно побольше разнообразия. Поэтому и обратился сюда. Может что то из старых ОС где то завалялось.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
возможно у силабса чего-нибудь на их варианты есть...
ОС для МК с программой 2-4 килобайта ... это уж там, где за 8Кб и то подумать надо "а куда и зачем"
Если сравнивать mcs51 с пиками, то только 18-ю серию.
За некоторым отличием команд наблюдается почти полное соответствие при работе с acsess-адресацией ОЗУ, но... обратный перенос (с pic18 на mcs51) возможен только для МК(mcs51) с ОЗУ более 512 байт.
Возможно еще PIC17......но на нее россиянский ВПК лапу наложил (миландровская серия КР1886ВЕ)...
Если уж писать "для себя" с точки зрения ознакомится с общепринятым...
так то в литературе поискать надо, к примеру:
Операционные системы.
Д. Бэкон, Т. Харрис. - СПб.: Питер;Киев: Издательская группа BHV,2004.
Крейслер С.
Проектирование операционных систем для малых ЭВМ.:
Пер. с англ. - М.: Мир, 1986.
Только вот обычный дисплей + кнопочки и какой-нибудь ввод/вывод вряд-ли такого труда стоит... тогда скорее bascom для mcs51...
ОС для МК с программой 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 и не только..
idcx51paskal писал(а):По разным косвенным ссылкам я находил упоминания таких: OSE (Enea), chipFORTH, CRTX (StarCom). Только их сайты уже не существуют. Или проданы. Кое что есть до сих пор. RTX51 (Keil), ByteBos, uCOS. Но они коммерческие.
Ещё от Intel, но они когда-то сами её в свободное плавание отпустили. Для камней с ОЗУ от 128 байт, посему на исключительно на асме. Зашивалась в масочную ROM i8044 (BITBUS-нода, ядро i8051, 192 байта ОЗУ и HDLC-контроллер).
Вытеснялка, старших три приоритета крутятся в банках регистров 1..3, а все младшие делят банк 0.
Изучал, но поработать не успел, спрыгнул на AVR.
Вроде-бы был проект по переводу на С, но я давно 51-ми не интересуюсь.
Хорошая фраза есть где-то на первых страницах -- «операционная система должна быть так же надёжна, как и аппаратура, на которой она работает». Сколько раз вспоминал в эпоху Win95 на «tomato motherboard»BOB51 писал(а):Крейслер С.
Проектирование операционных систем для малых ЭВМ.:
Пер. с англ. - М.: Мир, 1986.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Всем привет!
Контроллер: Silabs С8051F410
Среда разработки: Keil последней версии на данный момент.
Проблема: после определения массива мк "зависает". Причем массив нигде не юзается (пока не использую), но все равно он что то "затирает" , так как при уменьшении размера на два элемента все начинает работать.
Размещение в 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)
Совпадение? Как бороться с этим недугом?
Контроллер: Silabs С8051F410
Среда разработки: Keil последней версии на данный момент.
Проблема: после определения массива мк "зависает". Причем массив нигде не юзается (пока не использую), но все равно он что то "затирает" , так как при уменьшении размера на два элемента все начинает работать.
Код: Выделить всё
xdata int TemprBuf[]=
{
373,
286,
260,
200,
190,
180,
170,
160,
150,
140,
130,
110,
100
};
Т.е. там , где стоит точка останова, программа пытается прыгнуть по адресу, которого не существует (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)
Совпадение? Как бороться с этим недугом?
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
А среда-то с лицензией или "демо"? У Keil и прочих монстров ограничения на объём кода...
А вот на сеей мелочевке такой пакости нету http://www.atmel.com/Images/c51asm_win_1-2.zip
синтаксис Keilоподобный но полностью free, правда РСФ (дополнительно под конкретный МК) самому определять прийдется
А вот на сеей мелочевке такой пакости нету http://www.atmel.com/Images/c51asm_win_1-2.zip
синтаксис Keilоподобный но полностью free, правда РСФ (дополнительно под конкретный МК) самому определять прийдется
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Кеил с лицензией. В рабочем варианте прога жрет больше 2к (это больше чем дает фри версия).
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
А это как понимать: ?

Походу лицензия какая-то кривая.
Походу лицензия какая-то кривая.
- Вложения
-
- непонятка.JPG
- (13.41 КБ) 1251 скачивание
Docendo discimus
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
А у меня тут студент на пол ставки инженером, так он C8051F350 вполне успешно в SDCC мучает. Он цепляется к SiLabs-совской среде и всё отлично получается.Chip115 писал(а):Кеил с лицензией. В рабочем варианте прога жрет больше 2к (это больше чем дает фри версия).
Где массив -- в data/idata/xdata -- в данном случае может быть несущественно потому, что он проинициализирован, а начальные значния для него сидят в памяти кода.Chip115 писал(а):Проблема: после определения массива мк "зависает". Причем массив нигде не юзается
...
Размещение в 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 и не только..
avreal , спасибо за внятное разъяснение
Сча по туплю, да буду рыться дальше.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
У меня на работе 350-й. Мощная штукаavreal писал(а):C8051F350 вполне успешно в SDCC мучает.
Тогда я и здесь продублирую свой вопрос:
Кто делал DDS (прямой цифровой синтез) 8 бит на 8051?
Интересуют скорости алгоритма / частота генерируемого сигнала.
У меня получается 20 тактов МК на один отсчёт при 1024-х байтной таблице сигнала (из флэша).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


