Jump to content

ReAlAl

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ReAlAl

  • Rank
    Новенький

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    Не связан с электроникой
  1. На 400 и LPT не потянет. У стандартного набортного LPT обращение занимает микросекунду или немного больше, а на 400кГц период бита 2.5мкс. Даже PCI-LPT (около трети мкиросекунды) под вопросом, надо внимательно смотреть. "Анализатор" ещё может получиться, если писать в комп значения SCL и SDA, а потом анализировать. А полноценно отвечающий slave - брать стандарт и строка за строкой смотреть времена.Кроме того под любой ОС - влетает прерывание и прощай, времянка. Ни Slave, ни анализатор обмена по I2C в таких условиях не будет рабоать даже если LPT будет 100нс на обращение. Теперь по преобразованию I2C в RS232 - так ведь тоже для 400кГц I2C облом, если не ориентироваться на скоростной UART, минимум 460800.
  2. Сначала по по последнему вопросу - в опциях проекта на страничке general есть галочки - generate hex file, generate map file, generate list filelist file ( projectname.lss ) - это дизассемблированная прошивка с вставленными строками исходного текста. Теперь по основному вопросу Вероятно, сравниватется что-то не то с чем-то не тем. Ну не может одна такая простая функция дасть сотни байт кода. #include <stdint.h> #define DISP_SIZE 8 uint8_t display[DISP_SIZE]; void fillDisplay(uint8_t s) { for( uint16_t i = 0; i < DISP_SIZE; i++) display[i] = s; } avr-gcc --version avr-gcc (GCC) 4.1.2 (WinAVR 20070525) avr-gcc -O2 -S -mmcu=attiny13 fill.c получаем fill.s fillDisplay: ldi r30,lo8(display) ldi r31,hi8(display) .L2: st Z+,r24 ldi r25,hi8(display+8) cpi r30,lo8(display+8) cpc r31,r25 brne .L2 ret Да, длиннее, чем оптимальный асмовый вариант, но не в разы, 8 команд против 6. Да и то - потому, что gcc не учитывает "мелкоту" этой тини2313 и использует полный указатель r31:r30, т.е. если теперь на асме написать для какой-нибудь меги88, где нужен 16-битный указатель, то "перерасход" станет уже не 8 против 6, а 8 против 7, т.е. на уровне 15%. Где-то такой перерасход - меньше 20% - и будет на больших программах. С временем выполнения хуже, это да. А те сотни байт, вероятно, это заполненная таблица прерываний, очистка секции .bss (зануление неинициализированных переменных), инициализация секции .data (копирование значений инициализированных переменных из флеша в ОЗУ) и ещё всякие служебные вещи. С ростом программы они не увеличиваются.
  3. Уважаемый, я набирал иногда тестовые программки кнопочками/лампочками на передней панели СОУ-1 (система команд "почти СМ-2"), с пультового терминала в память "ДВК-2" и могу сказать - глупости. Ни одного такта программированием в машкодах по сравнению с ассемблером выиграть не удастся. Другое дело - бездумное использование тупых макросов, но так кто заставляет ими пользоваться или кто заставляет их делать тупыми?
  4. В станках с ЧПУ... я не слышал такого. Там ВМ1/ВМ2 и с той же архитектурой наборные на комплекте К581 - 581ИК1 + 581ИК2 + 581РУ (почему *масочные* ПЗУ с микропрограммами раелизации разных частей системы команд назывались РУ - я не знаю :-) ) ("Электроника-60") Может, на Н1811 ещё ("Электроника-60-1") Чем ВМ3 отличается от ВМ1/ВМ2 - так это MMU - диспетчером памяти, уже не 64КБ можно было поцепть на процессор, а больше и страничками 4-килобайтными щёлкать. Где-то в конце 80-ых на них ДВК-3 делались, 256КБ в базовой поставке, можно было или RT-11ХМ запускать, или RT-11FB с драйвером электронного диска в той памяти. Теоретически можно было и TS запускать и не в многозадачном, а в многопользовательском режиме рабоать (мультипортовка и терминалы), но мы даже не пробовали. А вот с плавающей запятой - облом-с, для этого снаружи сопроцессор ВМ4 вешать надо было :-) Так что ВМ3 это ВМ2 + MMU. В ДВК-4 и памяти больше было, и сопроцессор. Честно говоря - кроме целей "ретрокомпьютинга" другого разумного применения не вижу. Уж поверьте человеку, который на этом процессоре работал :-) - ATmega128 фактически обладает бОльшим быстродействием (даже с учётом необходимости по 8бит туда-сюда дёргаться, а ВМ3 - 16-битный) и прочими ресурсами. Вот какой-нибудь контроллер на базе 1806ВМ2 (КМОП-версия 1801ВМ2) с добавленными на кристалл ОЗУ и флеш - это могло бы быть интересно. Но только если команду научится не за 10 тактов делать, иначе по сравнению с MSP430 скучно. Хоть и система команд PDP11 мне и больше нравится, чем MSP430, но "нравится" в данном случае опять к хобби в виде ретрокомпьютинга, а если хобби - сделать нечто єлектронное для дома, то надо вібирать более подходящий кристалл. Да, по поводу "схемок" - рекомендую искать документацию на "персоналку" ДВК-3/ДВК-4, гуглить и спрашивать по знакомым её. http://ru.wikipedia.org/wiki/Диалоговый_вы...ельный_комплекс Эх, молодость-молодость... в КЦГД этих ДВК свои расширения писал когда-то, делал ему команды рисования команды быстрой перекачки картинок с распаковкой в нём :-)
×
×
  • Create New...