vak: (Аристипп)
Serge Vakulenko ([personal profile] vak) wrote2025-01-12 12:35 am

FP/M: заработало выполнение бинарников

У меня сегодня огромная радость. Заработала ключевая фича в проекте, который я с переменным успехом двигал последние два года. В операционке FP/M успешно выполняются ELF-бинарники из файловой системы.

Я когда-то упоминал проект RP/M, за это время он переименовался в FP/M. Расшифровывается как Flash Program for Microcontrollers. Должно получиться похоже на CP/M или MS-DOS, но вместо флопика будет Flash-память.

Вот как это нынче выглядит. Подсоединяемся через USB-порт к виртуальной консоли через minicom и пробуем команду 'hello'.



Программа выполняется из файла /bin/hello.exe в файловой системе flash:. Это вместо диска C:. Вместо флопика A: работает файловая система sd: на SD-карточке. Сама программа выглядит так:
#include <fpm/api.h>

int main()
{
fpm_puts("Hello, World!\r\n");
}
Теперь начну готовить первый релиз. Займёт пару недель, я думаю. Нужно сварганить утилитку, создающую исходный образ файловой системы в Flash-памяти.
spamsink: (Default)

[personal profile] spamsink 2025-01-12 09:30 am (UTC)(link)
Класс! Какой размер резидента получился?
spamsink: (Default)

[personal profile] spamsink 2025-01-13 04:46 pm (UTC)(link)
Это кажется многовато для ОС. Или туда вся рантайм-библиотека Си спрятана?
spamsink: (Default)

[personal profile] spamsink 2025-01-14 12:35 am (UTC)(link)
Красота! А что файловая система такая сложная?
spamsink: (Default)

[personal profile] spamsink 2025-01-14 01:02 am (UTC)(link)
Ничего себе! Если перестанет помещаться, FAT12 и FAT16 можно истребить, строчек 100-200 должно сэкономить. :)
fenikso: (Default)

[personal profile] fenikso 2025-01-12 09:42 am (UTC)(link)
Really nice!