Перейти к содержанию

AR148

AR148 (Cawas Archiver for i80148) - менеджер статических библиотек. Упаковывает объектные файлы .o в архив .a, который потом читает LINK148.

Параметр Значение
Версия 0.1
Целевая архитектура i80148 object files
Выход .a
Файл AR148.py

Использование

# Создать или перезаписать архив
python AR148.py rcs libio.a putc.o getc.o serial.o

# Посмотреть содержимое
python AR148.py t libio.a

# Извлечь всё (или отдельные члены)
python AR148.py x libio.a
python AR148.py x libio.a putc.o

Команды

Команда Описание
rcs Создать или перезаписать архив
t Показать содержимое
x Извлечь члены (все или по имени)

Формат архива

Версия 1:

Поле Размер Описание
Magic 4 B CWA\0
Version 4 B 1 (big-endian)
Count 4 B Число членов
Reserved 4 B Выравнивание, нули
Member headers 40 B × n Имя (32) + смещение (4) + размер (4)
Member data var Сырые данные объектных файлов
  • Имена членов - ASCII с NUL-дополнением, до 31 символа.
  • Члены могут быть бинарными (CWO\0) или JSON-объектами.

Пример

$ python AR148.py rcs libio.a putc.o getc.o serial.o
Created archive 'libio.a' with 3 member(s)

$ python AR148.py t libio.a
libio.a: 3 member(s)
       0 putc.o                           offset=     136 size=     248
       1 getc.o                           offset=     384 size=     312
       2 serial.o                         offset=     696 size=     156

$ python AR148.py x libio.a putc.o
Extracted: putc.o (248 bytes)
Extracted 1 member(s)