SDCC Compiler User Guide.pdf

(844 KB) Pobierz
SDCC Compiler User Guide
SDCC Compiler User Guide
SDCC 3.0.0
$Date:: 2010-10-19 #$
$Revision: 6035 $
Contents
1 Introduction
6
1.1 About SDCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2 Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.3 Typographic conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.4 Compatibility with previous versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.5 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6 Other Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.7 Wishes for the future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2 Installing SDCC
10
2.1 Configure Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2 Install paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.3 Search Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4 Building SDCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4.1 Building SDCC on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4.2 Building SDCC on Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4.3 Cross compiling SDCC on Linux for Windows . . . . . . . . . . . . . . . . . . . . . . .
15
2.4.4 Building SDCC using Cygwin and Mingw32 . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4.5 Building SDCC Using Microsoft Visual C++ 6.0/NET (MSVC) . . . . . . . . . . . . . .
16
2.4.6 Windows Install Using a ZIP Package . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.7 Windows Install Using the Setup Program . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.8 VPATH feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.5 Building the Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.6 Reading the Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.7 Testing the SDCC Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.8 Install Trouble-shooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.8.1 If SDCC does not build correctly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.8.2 What the ”./configure” does . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.8.3 What the ”make” does . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.8.4 What the ”make install” command does. . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.9 Components of SDCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.9.1 sdcc - The Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.9.2 sdcpp - The C-Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.9.3 sdas, sdld - The Assemblers and Linkage Editors . . . . . . . . . . . . . . . . . . . . . .
21
2.9.4 s51, sz80, shc08 - The Simulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.9.5 sdcdb - Source Level Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3 Using SDCC
22
3.1 Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.1.1 Single Source File Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.1.2 Postprocessing the Intel Hex file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.1.3 Projects with Multiple Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.1.4 Projects with Additional Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.1.5 Using sdcclib to Create and Manage Libraries . . . . . . . . . . . . . . . . . . . . . . . .
24
3.1.6 Using ar to Create and Manage Libraries . . . . . . . . . . . . . . . . . . . . . . . . . .
25
1
CONTENTS
CONTENTS
3.2 Command Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2.1 Processor Selection Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2.2 Preprocessor Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2.3 Linker Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2.4 MCS51 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2.5 DS390 / DS400 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.6 Z80 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.2.7 GBZ80 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.2.8 Optimization Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.2.9 Other Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.2.10 Intermediate Dump Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.2.11 Redirecting output on Windows Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.3 Environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.4 Storage Class Language Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.4.1 MCS51/DS390 Storage Class Language Extensions . . . . . . . . . . . . . . . . . . . . .
33
3.4.1.1 data / near . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.4.1.2 xdata / far . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4.1.3 idata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4.1.4 pdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4.1.5 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4.1.6 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.4.1.7 sfr / sfr16 / sfr32 / sbit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.4.1.8 Pointers to MCS51/DS390 specific memory spaces . . . . . . . . . . . . . . .
35
3.4.1.9 Notes on MCS51 memory layout . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.4.2 Z80/Z180 Storage Class Language Extensions . . . . . . . . . . . . . . . . . . . . . . .
37
3.4.2.1 sfr (in/out to 8-bit addresses) . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.4.2.2 banked sfr (in/out to 16-bit addresses) . . . . . . . . . . . . . . . . . . . . . .
37
3.4.2.3 sfr (in0/out0 to 8 bit addresses on Z180/HD64180) . . . . . . . . . . . . . . . .
37
3.4.3 HC08 Storage Class Language Extensions . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.4.3.1 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.4.3.2 xdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.5 Other SDCC language extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.5.1 Binary constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.6 Absolute Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.7 Parameters & Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.8 Overlaying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.9 Interrupt Service Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.9.1 General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.9.1.1 Common interrupt pitfall: variable not declared volatile . . . . . . . . . . . . .
40
3.9.1.2 Common interrupt pitfall: non-atomic access . . . . . . . . . . . . . . . . . . .
40
3.9.1.3 Common interrupt pitfall: stack overflow . . . . . . . . . . . . . . . . . . . . .
41
3.9.1.4 Common interrupt pitfall: use of non-reentrant functions . . . . . . . . . . . .
41
3.9.2 MCS51/DS390 Interrupt Service Routines . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.9.3 HC08 Interrupt Service Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.9.4 Z80 Interrupt Service Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.10 Enabling and Disabling Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.10.1 Critical Functions and Critical Statements . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.10.2 Enabling and Disabling Interrupts directly . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.10.3 Semaphore locking (mcs51/ds390) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.11 Functions using private register banks (mcs51/ds390) . . . . . . . . . . . . . . . . . . . . . . . .
43
3.12 Startup Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.12.1 MCS51/DS390 Startup Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.12.2 HC08 Startup Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.12.3 Z80 Startup Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.13 Inline Assembler Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.13.1 A Step by Step Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
2
CONTENTS
CONTENTS
3.13.2 Naked Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.13.3 Use of Labels within Inline Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.14 Interfacing with Assembler Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.14.1 Global Registers used for Parameter Passing . . . . . . . . . . . . . . . . . . . . . . . .
50
3.14.2 Registers usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.14.3 Assembler Routine (non-reentrant) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.14.4 Assembler Routine (reentrant) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.15 int (16 bit) and long (32 bit) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.16 Floating Point Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.17 Library Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.17.1 Compiler support routines (_gptrget, _mulint etc.) . . . . . . . . . . . . . . . . . . . . .
53
3.17.2 Stdclib functions (puts, printf, strcat etc.) . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.17.2.1 <stdio.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.17.2.2 <malloc.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.17.3 Math functions (sinf, powf, sqrtf etc.) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.17.3.1 <math.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.17.4 Other libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.18 Memory Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.18.1 MCS51 Memory Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.18.1.1 Small, Medium, Large and Huge . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.18.1.2 External Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.18.2 DS390 Memory Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.19 Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.20 Defines Created by the Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
4 Notes on supported Processors
60
4.1 MCS51 variants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.1.1 pdata access by SFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.1.2 Other Features available by SFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.1.3 Bankswitching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.1.3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.1.3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.2 DS400 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.3 The Z80 and gbz80 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.4 The HC08 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.5 The PIC14 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.5.1 PIC Code Pages and Memory Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.5.2 Adding New Devices to the Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.5.3 Interrupt Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.5.4 Linking and Assembling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.5.5 Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.6 Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.7 The Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.7.1 error: missing definition for symbol “__gptrget1” . . . . . . . . . . . . . . . .
64
4.5.7.2 Processor mismatch in file “XXX”. . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.8 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.8.1 Function arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.5.8.2 Regression tests fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.6 The PIC16 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6.1 Global Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6.2 Port Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6.2.1 Code Generation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6.2.2 Optimization Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6.2.3 Assembling Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.6.2.4 Linking Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.6.2.5 Debugging Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.6.3 Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
3
CONTENTS
CONTENTS
4.6.4 Preprocessor Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.6.5 Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.6.6 Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.6.7 Header Files and Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.6.8 Header Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.6.9 Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.6.10 Adding New Devices to the Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
4.6.11 Memory Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
4.6.12 Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4.6.13 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4.6.14 Function return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
4.6.15 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
4.6.16 Generic Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.6.17 PIC16 C Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.6.17.1 Standard I/O Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.6.17.2 Printing functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.6.17.3 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.6.18 PIC16 Port – Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.6.18.1 Stack size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.6.19 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.6.19.1 Extended Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.6.19.2 Regression Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5 Debugging
76
5.1 Debugging with SDCDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.1.1 Compiling for Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.1.2 How the Debugger Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.1.3 Starting the Debugger SDCDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.1.4 SDCDB Command Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.1.5 SDCDB Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.1.6 Interfacing SDCDB with DDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
5.1.7 Interfacing SDCDB with XEmacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
6 TIPS
82
6.1 Porting code from or to other compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
6.2 Tools included in the distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
6.3 Documentation included in the distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
6.4 Communication online at SourceForge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
6.5 Related open source tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
6.6 Related documentation / recommended reading . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
6.7 Application notes specifically for SDCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
6.8 Some Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
7 Support
88
7.1 Reporting Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
7.2 Requesting Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.3 Submitting patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.4 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.5 ChangeLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.6 Subversion Source Code Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.7 Release policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.8 Quality control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
7.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
7.10 Use of SDCC in Education . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4
Zgłoś jeśli naruszono regulamin