-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathQuickStart.txt
81 lines (46 loc) · 3.45 KB
/
QuickStart.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Ofront+ QuickStart
==================
*See English text below*
Для запуска транслятора из командной строки вам нужно три вещи:
1. Если работа происходит в нескольких папках, то важно чтобы транслятор
мог найти символьные файлы *.sym, необходимые для трансляции, т.к.
в них хранится информация об интерфейсах импортируемых модулей.
Поэтому задайте переменную OBERON, содержащую пути для поиска:
UNIX / Linux (путь относительно Target/Linux_*/Obj):
export OBERON=.:../Lib/Sym:../Sym
Windows (путь относительно Target/Win*/Obj):
SET OBERON=%CD%;%CD%\..\Lib\Sym;%CD%\..\Sym
2. Необходимо задать разрядность и выравнивание типов данных для целевых
Си-файлов. Это делается с помощью опций:
-21: адрес 16 бит, SIZE(SET) = 1 байт (напр. проц. Zilog Z80)
-44: адрес 32 бита, выравнивание 32 бита (UNIX/Linux 32 бит на x86)
-48: адрес 32 бита, выравнивание 64 бита (Windows 32 бит, Linux 32 бит/ARM)
-88: адрес 64 бита, выравнивание 64 бита (64-битные платформы)
3. При вызове компилятора Си включайте в поиск каталоги Mod/Lib (там хранится
SYSTEM.oh) и Lib/Obj* нужной разрядности, а также библиотеку Ofront:
UNIX / Linux:
gcc modName.c -s -Os -fno-exceptions -I../../Mod/Lib -I../Lib/Obj -L../Lib -o../modName -lOfront
Windows:
gcc modName.c -s -Os -fno-exceptions -I..\..\Mod\Lib -I..\Lib\Obj -o..\modName.exe ..\Lib\Ofront.a
------------------------------------------------------------------------------
To start translator from command line you will need three things:
1. If work takes place in several directories, it is important that
the translator can find symbol files *.sym, required for translation,
as they store information about the interfaces of the imported modules.
Define OBERON environment variable, that contains the search paths:
UNIX / Linux (path relative to Target/Linux_*/Obj):
export OBERON=.:../Lib/Sym:../Sym
Windows (path relative to Target/Win*/Obj):
SET OBERON=%CD%;%CD%\..\Lib\Sym;%CD%\..\Sym
2. You must specify the address size and alignment of data types for
the target C files. This is done using the following options:
-21: 16 bit addresses, SIZE(SET) = 1 byte (e.g. Zilog Z80 CPU)
-44: 32 bit addresses, 32 bit alignment (UNIX/Linux 32 bit on x86)
-48: 32 bit addresses, 64 bit alignment (Windows 32 bit, Linux 32 bit/ARM)
-88: 64 bit addresses, 64 bit alignment (64 bit platforms)
3. When invoking a C compiler, include directories Lib/Mod (SYSTEM.oh lives there)
and Lib/Obj* of the required bit depth, and the library Ofront:
UNIX / Linux:
gcc modName.c -s -Os -fno-exceptions -I../../Mod/Lib -I../Lib/Obj -L../Lib -o../modName -lOfront
Windows:
gcc modName.c -s -Os -fno-exceptions -I..\..\Mod\Lib -I..\Lib\Obj -o..\modName.exe ..\Lib\Ofront.a