-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtips.txt
181 lines (176 loc) · 10.9 KB
/
tips.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
//------------------------------------------------------------------------
// Tips.txt
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// Changing the Derivative
//------------------------------------------------------------------------
If you would like to change the existing derivative with a different one,
you have to consider following points:
- You will need to adapt the CodeWarrior project settings: In the 'Assembler for
HC12' and 'Compiler for HC12' panels make sure that the new CPU will be used
in the 'Command Line Arguments':
- HC12: -CpuHC12
- HCS12: -CpuHCS12
- HCS12X: -CpuHCS12X
- The derivative header and source files are located in the following directories:
- {CodeWarrior}lib\hc12c\include (derivative header files)
- {CodeWarrior}lib\hc12c\src (derivative source files)
You will need to drag and drop from the directories above the new derivative
header and source files to the 'Libraries' group.
HINT: To open a 'Windows Explorer' where the file is located:
Use the context menu/right mouse click on
the derivative header/source file in the 'Libraries' project folder
and select 'Open in Windows Explorer'.
- You can now remove the derivative header and source files that are referenced
by the wizard from the project. Remove the derivative header and source files
in the 'Libraries' group: context menu/right mouse click on the derivative header
and source files in the 'Libraries' group and select 'Remove'.
- You will need to adapt the main source file. This file can be found in the
'Sources' group. Open this file and change the name of the included
derivative header file to the new one. In case of a C/C++ project you will
also need to adapt the pragma 'LINK_INFO DERIVATIVE' to the new derivative.
This pragma tells the simulator which derivative to simulate. However you can
also remove this pragma and setup the new derivative in the HI-WAVE debugger
itself (see next point).
- You will need to adapt the PRM file as well. PRM files are located in the
following directory:
- {CodeWarrior}lib\hc12c\prm
You need to open the new PRM file and copy & past the content to your currently
used PRM file. In case you don not have a banked memory model, you will need to
adapt the content as well. You may have a look at the existing prm file.
- After successful compilation and linkage you can start the HI-WAVE debugger.
You will need to setup the debugger for the new derivative.
- For the Full Chip Simulation\Simulator Connection:
Use the 'Set Derivative...' dialog by using the menu option
'Simulator' > 'Set Derivative...'. In the opened dialog box you can
select the new derivative. The names used there might also be used
with the pragma 'LINK_INFO DERIVATIVE'.
- For the P&E Multilink/Cyclone Pro Connection:
Use the 'Set Derivative...' dialog by using the menu option
'MultilinkCyclonePro' > 'Set Derivative...'. In the opened dialog box you can
select the new derivative.
- For the SofTec HCS12 Connection:
Use the 'MCU Configuration' dialog by using the menu option
'inDART-HCS12' > 'MCU Configuration'. In the opened dialog box you can
select the new derivative.
- For the HCS12 Serial Monitor target:
The derivative is determined automatically from the connected hardware.
However, the debugger might still display a list of parts where a thinner
selection between silicons from the same family should be done.
- Now you should have a project for the new derivative.
//------------------------------------------------------------------------
// Enabling Processor Expert
//------------------------------------------------------------------------
If you decided not to enable Processor Expert during the project creation,
you can do this later as well. However, you have to consider following points:
- Processor Expert supports C or C++ projects, it does not support absolute
assembly or relocatable assembly projects.
- Processor Expert is not supported for all derivatives.
- Enable Processor Expert using the menu
Processor Expert > Enable Processor Expert for <projectName>
- A dialog will ask you if you want to enable Processor Expert for the project:
click on 'Yes'.
- Then you need to select the correct CPU bean for your project. Do so with
the bean selector (menu Processor Expert > View > Bean Selector) and
double click on the desired CPU bean in the CPU tree. This will add the
CPU bean to your project.
- As Processor Expert is generating it's own 'main' function/source file, you need to
remove the one created by the wizard from the project. Remove the main file
in the 'Sources': context menu/right mouse click on the main file in the 'Sources'
project folder and select 'Remove'.
- Same applies to the derivative header file. Processor Expert maintains it's own version,
so you need to remove them from the CodeWarrior project: You find the .c and .h file
in the 'Libs' project folder: context menu/right mouse click and select 'Delete' to
have the .h and the .c file removed.
- Processor Expert maintains as well its own linker .prm file. You need to remove the
one added to the project by the wizard in the 'Prm' project folder by context menu/right
mouse click and selecting 'Remove'.
- Now you can build/make your project as usually (menu Project > Make).
//------------------------------------------------------------------------
// Changing the Memory Model
//------------------------------------------------------------------------
If you would like to change the existing memory model with a different one,
you have to consider following points:
- The memory model only controls the defaults. It is possible to write any kind
of application in any memory model, choosing the wrong one just causes that
more code adaptations are necessary.
- The large memory model generates considerably more and slower code than the banked
or small memory model. Check first if you could not code the functionality in the
other models.
The difference between the banked and the small memory model is not so significant.
- You will need to adapt the CodeWarrior project settings: In the 'Assembler for
HC12' and 'Compiler for HC12' panels make sure that the new memory model will
be used in the 'Command Line Arguments':
- Small memory model: -ms
- Banked memory model: -mb
- Large memory model: -ml
- You need to change the standard libraries. The library files are located in
the following directory:
- {CodeWarrior}lib\hc12c\lib (HC12)
- {CodeWarrior}lib\xgatec\lib (optional for a XGATE project)
- You will need to drag and drop from the directories above the new library files
to the 'Libraries' project folder. For the naming schema please have a look to
the following readme.txt:
- {CodeWarrior}lib\hc12c\readme.txt (HC12)
- {CodeWarrior}lib\xgatec\readme.txt (optional for a XGATE project)
- You can now remove the old library files that are referenced by the wizard from
the project. Remove the old library files in the 'Libraries': context menu/right
mouse click on the library files in the 'Libraries' project folder and select
'Remove'.
- The prm file has to be adapted to the new memory model.
Every memory model has its constraints how the DEFAULT_ROM, DEFAULT_RAM, NON_PAGED
and the other default sections have to be allocated.
- DEFAULT_ROM: must be in non paged area in the small memory model.
Can be on any PPAGE area in the banked and the large memory model.
- DEFAULT_RAM: must be in non paged RAM in the small and banked memory model.
- STARTUP, STRINGS, ROM_VAR, COPY. In the small and banked memory models,
they most be in the non banked flash area. COPY must be the last in the list.
- check all the remaining sections how they are used. If in doubt,
allocate them non banked.
- Now you should have a project for the new memory model.
//------------------------------------------------------------------------
// Appending an additional connection
//------------------------------------------------------------------------
If you missed to add a specific connection during the project creation,
you can do this later as well. However, you have to consider following points:
- Within your project choose the 'Target' tab and use the menu
'Project' > 'Create Target...'. In this dialog enter the new
connection name and choose 'Clone existing target'. You may choose any existing
target.
- Select the newly created target. We need now to prepare the
debugger. Use the menu 'Project' > 'Set Default Target' to select the created target.
- In case you need a different memory mapping for that specific connection
(e.g. 'Serial Monitor'),
you will need to add the modified prm file to the project. Make
sure that the new .prm file is selected in the target. Make sure the new prm file
has the bullet set in the target column in the project window. Also make sure that
the existing prm file has no bullet.
- The debugger configuration files (.ini) are located in the '{Project}' directory.
You will need to copy an existing '.ini' file to the same path. For the file
name use the connection name. You can now drag and drop the ini file to
'Debugger Project File'.
- You will need to adapt the 'Arguments' option in the 'CodeWarrior' project setting
panel 'Build Extras'. Replace the '.ini' file name with the new one.
Optional: In the same option line replace the '-instance=x' with '-instance=y',
where y is the new connection. The -instance options makes sure that only one debugger
instance is open for a certain connection.
- We need now to setup the debugger. You can do this by starting the debugger.
In the debugger dialog 'Component' > 'Set Connection...' you can choose the connection.
- For the Full Chip Simualtion\Simulator Connection:
Use Processor= HC12 and Connection= Full Chip Simulation
- For the P&E Multilink/Cyclone Pro Connection:
Use Processor= HC12 and Connection= P&E Multilink/Cyclone Pro
- For the SofTec HCS12 Connection:
Use Processor= HC12 and Connection= SofTec HCS12
- For the HCS12 Serial Monitor Connection:
Use Processor= HC12 and Connection= HCS12 Serial Monitor
- Optional: In case you need 'Command Files', you can create empty files in the '{Project}cmd'
directory. In the debugger you can use the 'Command Files...' dialog in the Connection
menu to adapt the debugger.
- Now you have a new connection in the project.
//------------------------------------------------------------------------
// Contacting Metrowerks
//------------------------------------------------------------------------
For bug reports, technical questions, and suggestions, please use the
forms installed in the Release_Notes folder and send them to: