Re[3]: Программирование для мЭВМ Motorola MC68HC11F1
От: RedChief Россия  
Дата: 11.05.05 17:36
Оценка:
Здравствуйте, Tunga, Вы писали:

T>Здравствуйте, Tunga, Вы писали:


T>>Здравствуйте, RedChief, Вы писали:


RC>>>Может кто-нибудь занимался программированием для однокристальных микроЭВМ (конкретно Motorola MC68HC11F1)?

RC>>>Если да, то подскажите, где физически будет размещена таблица векторов прерываний в расширенном режиме, если
RC>>>настроить внутреннюю память ППЗУ (EEPROM) так, чтобы она распологалась на странице $E в адресном простанстве
RC>>>(адреса $EE00 — $EFFF). Стандартно таблица прерываний лежит в $FFC0 — $FFFF. Можно ли физически прошить
RC>>>ее на подключаемую внешнюю память команд по этим адресам, чтобы при обращении по этим адресам (при обработке
RC>>>прерывания) адреса брались из этой внешний памяти.
RC>>>Всего можно адресовать 64K памяти. На камне расположено 1024byte RAM и 512byte EEPROM (флэшка).

RC>>>З.Ы. Если кто ничего не понял — я не виноватый, такое это уж дело тяжелое — программирование микроконтроллеров.


T>>Ты сам-то понял, чего спросил?

T>>Во-первых, флеш и еепром — два разных по физическим принципам носителя информации, Так же как скажем магнитная лента и компакт-диск. Учи матчасть.
T>>А во-вторых, нафига менять положение таблицы прерываний? Её положение должно быть фиксировано, иначе получится обычное дублирование: нужно будет создать некую предварительную таблицу, которая будет указывать на таблицу, в которой лежат истинные адреса обработчиков прерываний. То есть, для того чтобы отработать ресет процу нужно будет прыгать на адрес в предварительной таблице, оттуда на адрес в истинной таблице, и уже оттуда на адрес начала обработчика.

T>ЗЫ: Хотя должен признать, что разницы между EEPROM и FLASH мало Но её достаточно, чтобы отличать две технологии друг от друга...


Ты сам-то понял что ответил?
Я же не спрашивал про то, как мне продублировать таблицу векторов прерываний или подменить ее. И уж точно я
не спрашивал про то, чем отличается EEPROM и FLASH, тем более, что несмотря на различие этих технологий, принципиально
они похожи очень, тем более когда они зашиты на камень производителем, и нас мало вонует, какую именно технологию там
использовали.
Я спросил как можно сделать так, чтобы адреса векторов прерываний в карте памяти не менять, а физически расположить
их на другом носителе, конкретно: на внешней памяти команд. В этой однокристалке адресное пространсто единое! А вот откуда
прочитаются данные, при обращении по какому-либо адресу — вот это вопрос.
И еще. Мне просто интересно, ты программировал когда-нибудь что-нибудь для однокристалок? Судя по ответу, ты разбираешься
в программировании на ASM, даже знаешь как подменить таблицу векторов прерываний (хотя я бы просто адреса в реальной
таблице поменял, безо всяких там прыжков по исходной и измененной таблицам). Но только вот программирование персоналок,
которые в абсолютном большинстве работают, придерживаясь фон-неймановской архитектуры, и программирование однокристальных
микроЭВМ, работающих по гарвардской архитектуре, это вещи разные как небо и земля! В ассемблерах схожие (не одинаковые!)
инструкции по пальцам одной руки пересчитать можно.
Так что, если опыт действительно имеется, пиши посты! Буда рад обменяться опытом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.