-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathReadMe.txt
213 lines (166 loc) · 7.95 KB
/
ReadMe.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
*****************************************************************
README for Dynamic C Version 9.62
*****************************************************************
-- Supported CPU Types
Dynamic C version 9.62 supports Rabbit 2000 and 3000 CPU types.
Rabbit 4000 and later CPUs are supported in Dynamic C 10.
-- LIB.DIR changes
Dynamic C's LIB.DIR library files list mechanism now searches
for library files within a specified directory tree. The
option to specify a complete or relative pathlist to each
individual library file remains. Note that each library file
name must be unique, regardless of whether the library is
explicitly specified or is found via searching a specified
directory tree. Also note that this feature was actually
implemented in Dynamic C v. 9.30. For more information on
the changes to lib.dir, see section "4.22 Libraries" of the
"Dynamic C User's Manual" for more details.
-- BIOS and library reorganization
The BIOS and libraries were reorganized to support RabbitSys.
The code in RabbitBIOS.C is now split into various files
in LIB\BIOSLIB as follows:
STDBIOS.C -- most of the code from rabbitbios.c was
moved here.
CLONECONFIG.LIB -- Macros for configuring cloning.
DKCONFIG.LIB -- Macros for configuring debug kernel.
ERRLOGCONFIG.LIB -- Macros for configuring (non-RabbitSys)
error logging. RabbitSys has its own
form of error logging.
MEMCONFIG.LIB -- Macros for configuring memory
organization.
SYSCONFIG.LIB -- Additional system level configuration
(misc).
TWOPROGRAMCONFIG.LIB -- Macros for configuring split memory
for the old-style DLM/DLP.
FATCONFIG.LIB -- Macros for configuring the FAT files
system.
For customers that are using an alternative BIOS file, we
recommend starting from a copy of STDBIOS.C and adding your
previous modifications to this copy to create a new BIOS. The
RABBITBIOS.C file now wraps a #use of STDBIOS.C (shown below).
You can hook your new BIOS into your project in the same way
by adding a new #if section to RABBITBIOS.C to #use your new
bios as follows:
#if MYBIOS == 1
#use "mybios.c"
#elif __RABBITSYS == 0
#use "stdBIOS.c"
#elif __RABBITSYS == 1
#use "sysBIOS.c"
#else
#use "rkBIOS.c"
#endif
To select your new bios, define "MYBIOS=1" to the project
"Defines" tab in the "Project Options".
Alternatively, you may copy the wrapper code from RabbitBios.c
into your newly modified bios (i.e., the one based on
STDBIOS.C), and use the "User Defined BIOS File" from the
"Advanced Compiler Options Dialog" to select this file.
There were many other organization changes in the libraries
to support RabbitSys.
-- Targetless Compile
The targetless compile list is now more flexible, allowing
easy additions or corrections via the TCData.ini file without
requiring a DC compiler re-build. TCData.ini is located in
the root install directory for Dynamic C.
-- Debugger
The new “Enable debug kernel” option in Project Options’
Debugger tab allows complete debug kernel disable / code
removal. This new option makes it easier to exclude the debug
kernel from your application once you are ready to deploy it.
-- Run-time Error Customization
You can now add descriptions for run-time errors and have
Dynamic C display a message box indicating what the error
was just by adding a new entry to errors.ini. Dynamic C
will look in errors.ini any time a negative exit value
is encountered. For example, you can add the
following entry in \DCRabbit_9.50\errmsg.ini
// My custom errors
800=My own run-time error message
Calling "exit(-800)" in your program or library will cause
Dynamic C to report "My own run-time error message" in a
message box.
-- xalloc and Memory Organization Changes
The function xalloc and other related functions were modified
so that they are now driven by the origin directives from the
compiler. The reserve_Store and xalloc_Store structures in
STACK.LIB have been completely replaced with the new xalloc
initialization and allocation functions in mem.lib (located
in lib\RabbitSys\mem.lib).
The only API change for xalloc is that xalloc_stats must now
be called with the parameter _rk_xubreak to display the
current regions of memory reserved for xalloc.
For advanced users, the compiler now generates an origin
table that contains the blocks that are reserved for code and
data origin or other non-xalloc use. With this change, the
method of reserving a block of memory so that xalloc does
*NOT* use it has also changed. To reserve a block of memory
in DC 9.30 and later, the #resvorg should be used. All other
orgs (e.g. #rcodorg, #rvarorg, etc) are also tracked by the
compiler and those blocks are entered into the origin table
generated by the compiler so it is not used by xalloc.
The #resvorg is used as follows:
#resvorg <NAME> segment offset size [reserve]
For example, the following code would reserve the entire flash
memory in flash compile mode
#resvorg flashmem 0x0 0x0 0x80000 reserve
The reserve keyword must be added to the end to reserve the
entire block of memory.
Some applications may require that fixed regions of RAM be
reserved for their own use. For example, you may want to
reserve the upper half of a 512K RAM in Flash compile mode.
To reserve this you need to add the following line of code
to DCRABBIT_9.50\LIB\BIOSLIB\STDBIOS.C at line 686 just
below the "#resvorg removeflash 0x0 0x0 0x80000 reserve"
#ifdef RESERVE_UPPER_RAM
#resvorg reserveupperram 0xc0 0x0 RESERVE_UPPER_RAM batterybacked reserve
#endif
This tells the compiler to reserve RESERVE_UPPER_RAM bytes
from physical address 0xC0000 by adding it to the
origin table. This removes this memory block from the
available xalloc memory.
In your Project Options|Defines enter the amount of memory
you want to reserve. For example,
RESERVE_UPPER_RAM=0x40000
would reserve physical memory from 0xc0000-0xfffff and make
it unavailable for xalloc. You can then access this memory
directly from your program as follows:
main() {
long addr;
addr = 0xC0000; // point to block reserved for my use.
}
-- TCP/IP
The IFS_RESTORE and IFS_SAVE functionality have been removed
from ifconfig. They are now available by using the ifs_restore()
and ifs_save() functions in
lib\RCM3300\RemoteApplicationUpdate\remoteuploaddefs.lib.
-- RabbitSys
Use of the new RabbitSys related options on the Project
Options’ Compiler tab requires installation of the RabbitSys
module, as well as a RabbitSys-capable target. When RabbitSys
is selected in the Compiler Options, Dynamic C will attempt to
detect and load RabbitSys to the attached board. A message
box with the error message "Could not load the RabbitSys
binary through the command line RFU..." will be displayed.
This message indicates that RabbitSys has not been
installed and/or purchased.
-- RabbitFLEX(TM) Support added
DC 9.50 includes libraries to support the RabbitFLEX(tm)
product.
-- #useix
Library support for the #useix directive has been deprecated.
The useix function qualifier is unaffected.
-- Note about Battery backed SRAM
On boards such as the RCM3200 and RCM33xx family, the battery-
backed SRAM is mapped by default in the "Compile to flash, run in RAM"
compile mode, and this is the optimal and factory recommended compile
mode for such boards.
In "Compile to flash, run in flash" compile mode (not recommended for
RCM3200), only the flash and fast SRAM fit into the physical address
space, and the battery-backed SRAM is not mapped into the physical
address space at all. Xalloc will return non-battery backed SRAM
regardless of the type of memory requested when using this non-optimal
compile mode on these boards. More information about mapping BBRAM
in "Compile to flash, run in flash" mode for fast RAM boards can be
found in Technical Note 248 in the Documentation section of
our website.