Важная информация

User Tag List

Показано с 1 по 5 из 5

Тема: Техника программирования процедурных сопроцессоров

  1. #1
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,650
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    166 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Техника программирования процедурных сопроцессоров

    Всех с наступающим новым годом.
    Это набросок статьи, поэтому тезисно.
    Постановка задачи: имеем z80 и ARM. Хотим писать программы для z80, используя его программное и аппаратное окружение ( ZX Spectrum), но в то же время используя возможности ARM. Писать каждый раз вместо одной программы две неудобно. Как облегчить себе жизнь?
    Ясно что нужно автоматизировать процесс получения кода. Если процессоры соединены не через память (КПДП, менеджер памяти, двухпортовая память с механизмами разделения), а через каналы связи(RS-232, бит параллельного порта, параллельный порт), требуется организовать пересылку данных через протоколы обмена с помощью специальных библиотечных процедур (С), или макросов ассемблера.
    Можно ли обойтись без СРВ? Можно, когда z80 доходит до вызова процедуры, которая на нем выполняется медленно, он останавливается (и обрабатывает прерывания)или переходит на цикл обработки ввода/вывода до получения прерывания от "процедурного процессора", в качестве которого выступает ARM. В случае использования компилятора C, можно вместо обычной стандартной библиотеки подключать специализированную ( в случае ассемблера вызывать макросы). А как быть с "процедурным процессором"? Тот же самый исходный код повторно компилируется и для него. Только сами функции и процедуры снабжаются интерфейсом для получения вызовов и параметров от основного "клиентского" и передачи ему результатов обработки(вычислений). Это тоже можно сделать с помощью специализированной библиотеки. Для автоматизации и согласования обоих процессов можно написать драйвер компиляции. Если используются разные операционные системы, необходимо использовать различные наборы библиотек.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Путь в лоб - унификация системы команд путём эмуляции одного на другом. Вестимо не арма на Z80 =) Мысли о "драйвере компиляции" имхо оторваны от почвы напрочь...

  4. #3
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,650
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    166 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Команды-то эмулировать можно, а программную и аппаратную среду? У gnu-C есть поддержка и z80 и arm-а, так что дело только за библиотеками. Конечно и сам программист может использовать условную компиляцию, чтобы облегчить жизнь драйверу компиляции.

    #ifdef arm_present
    int my_algoritmpp(int a,int b,int c)
    {
    }
    #else
    int my_algoritm(int a, int b, int c)
    {
    }
    #endif

    а можно просто
    slow int my(int a, int b, int c)
    {
    }
    и атрибут slow заставит препроцессор в случае прохода
    компиляции для z80 и
    #define arm_present
    вставить
    int my_algoritmpp(int a,int b,int c)
    {
    }
    а в случае прохода для arm
    int my_algoritm(int a, int b, int c)
    {
    }
    но с соответствующими библиотеками

  5. #4
    Veteran Аватар для Raydac
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,128
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    179 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm
    Путь в лоб - унификация системы команд путём эмуляции одного на другом. Вестимо не арма на Z80 =) Мысли о "драйвере компиляции" имхо оторваны от почвы напрочь...
    Да, почитав "научные" рассуждения Андрея, приходишь к вопросу - а зачем в такой архитектуре вообще Z80? Он пытается в свои "виртуальные железяки" вставить Z80 как англичане королеву.. "вроде и есть, а вроде и не правит".. " .. при наличии ARM можно "королеву" разгрузить вообще, зачем напрягать то, в его архитектуре шина питания для Z80 излишня

    Как ни почитаешь, все получается что он изобретает HP iPAQ 2210 только проблема в том что он уже есть и прекрасно продается.. и Z80 эмулирует со спектрумом прекрасно.. ))

  6. #5
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,650
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    166 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попытаюсь начать писать на рождественских каникулах драйвер компиляции и библиотеки для gnu c. Мои скромные достижения будут обнародованы в этом треде.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Языки программирования
    от BlackWolf в разделе Программирование
    Ответов: 188
    Последнее: 26.04.2009, 15:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •