]>
Commit | Line | Data |
---|---|---|
4f1d9bd8 NC |
1 | /* TI COFF information for Texas Instruments TMS320C54X. |
2 | This file customizes the settings in coff/ti.h. | |
3 | ||
4 | Copyright 2001 Free Software Foundation, Inc. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 2 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
19 | ||
a44f2895 TW |
20 | #ifndef COFF_TIC54X_H |
21 | #define COFF_TIC54X_H | |
6e917903 | 22 | |
81635ce4 TW |
23 | #define TIC54X_TARGET_ID 0x98 |
24 | #define TIC54XALGMAGIC 0x009B /* c54x algebraic assembler output */ | |
25 | #define TIC5X_TARGET_ID 0x92 | |
26 | #define TI_TARGET_ID TIC54X_TARGET_ID | |
27 | #define OCTETS_PER_BYTE_POWER 1 /* octets per byte, as a power of two */ | |
28 | #define HOWTO_BANK 6 /* add to howto to get absolute/sect-relative version */ | |
29 | #define TICOFF_TARGET_ARCH bfd_arch_tic54x | |
30 | #define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */ | |
4f1d9bd8 | 31 | |
6e917903 TW |
32 | /* Page macros |
33 | ||
34 | The first GDB port requires flags in its remote memory access commands to | |
35 | distinguish between data/prog space. Hopefully we can make this go away | |
36 | eventually. Stuff the page in the upper bits of a 32-bit address, since | |
37 | the c5x family only uses 16 or 23 bits. | |
38 | ||
39 | c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has | |
40 | 23-bit program addresses. Make sure the page flags don't interfere. | |
41 | These flags are used by GDB to identify the destination page for | |
42 | addresses. | |
43 | */ | |
44 | ||
45 | /* Recognized load pages (by common convention). */ | |
46 | #define PG_PROG 0x0 /* PROG page */ | |
47 | #define PG_DATA 0x1 /* DATA page */ | |
48 | #define PG_IO 0x2 /* I/O page */ | |
49 | ||
50 | /** Indicate whether the given storage class requires a page flag. */ | |
51 | #define NEEDS_PAGE(X) ((X)==C_EXT) | |
52 | #define PAGE_MASK 0xFF000000 | |
53 | #define ADDR_MASK 0x00FFFFFF | |
54 | #define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24) | |
55 | #define FLAG_TO_PG(f) (((f) >> 24) & 0xFF) | |
56 | ||
81635ce4 | 57 | #include "coff/ti.h" |
4f1d9bd8 | 58 | |
a44f2895 | 59 | #endif /* COFF_TIC54X_H */ |