В ходе обсуждений в конференции мы с valexey пришли к выводу, что не плохо-бы иметь компилятор Оберона под
MSP430.Архитектурно в нём много заимствований из PDP-11 (правда существенно упрощенного), с которым мы( в смысле моя контора) плотно работаем. К тому же как-то на досуге я реализовал Обероон-07 под PDP-11 (ну почти Оберон-07).
Здесь есть некоторые потенциальные проблемы: Процессоры 16-ти разрядные, не во всех есть не только модуль плавающей точки, но и даже банальный умножитель.
Т.е. "искаропки" микроконтроллеры не поддерживают умножение/деление целых чисел и вещественные числа отсутствуют как класс.
Никаких специальных команд или средств для организации ввода/вывода(портов) нет, т.к. регистры устройств отображаются в адресное пространство.
В PDP-11 в верхние 8к(у некоторых 4к) адресов зарезервированы под регистры устройств. В MSP430 регистры устройств находятся в нижних адресах, а в верхних адресах находятся вектора прерываний и флэшпамять в которой хранится сама программа.
Т.е. к регистрам можно обратиться как обычной ячейке памяти. В Обероне, обращение к переменной по определенном адресу вызовет обращение к определенному регистру, без всяких SYSTEM.PUT/GET/IN/OUT. что лично для меня существенно упрощает работу с внешними устройствами.
Как известно, в Оберонах отсутствует поддержка беззнаковых целых, что не дает возможности нормально работать с верхней половиной адресов (при использовании типа INTEGER).
Нужно подумать, как работать с внешними устройствами и как обращаться к памяти за пределами 32К. Использовать для этого какой-нибудь REAL не получится по причине его отсутсвия как класса, а софтверная эмуляция вызовет существенный оферхед. Может есть смысл ввести тип ADDRESS как это сделали в Активном Обероне?
Тип SET в Обероне 32-х разрядный, а INTEGER в этой реализации 16-ти разрядный, т.е. во первых прямого взаимного отображения не получится, и для реализации 32-х разрядного SET'а на 16-ти разрядных машинах опять потребуется дополнительные телодвижения, снижающие эффективностьт. Может есть смысл сделать SET тоже 16-ти разрядным.
Вобщем, если у кого-то есть мысли, идеи, предложения и решения на этот счет, хотелось бы увидеть.
А может вообще, нафик он нужен, Оберон-07 под MSP430?
