mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3601c29054 | ||
|
|
05ee8695eb | ||
|
|
f777f02428 | ||
|
|
3547ed63d8 | ||
|
|
9aff0a7946 | ||
|
|
84d67445f4 | ||
|
|
700db92f0b | ||
|
|
69d6686f4a | ||
|
|
9d2c281e2e | ||
|
|
c4c3a1c3db | ||
|
|
15d89e0500 | ||
|
|
b9803bdeae | ||
|
|
47ce12c534 | ||
|
|
101b1893ab | ||
|
|
913549fa12 | ||
|
|
48dba6ee86 | ||
|
|
66eaf3d9ce | ||
|
|
ca07e7db38 | ||
|
|
9511a0ab23 | ||
|
|
219298adde | ||
|
|
26ed1e6a06 | ||
|
|
633ee2ddf9 |
@@ -1,3 +1,7 @@
|
||||
2010-12-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
* SUPPORT: Update address.
|
||||
|
||||
2008-10-01 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
PR 1324/bsps
|
||||
|
||||
@@ -61,8 +61,8 @@ rtems-$(rtems_version)$(TAG_SUFFIX).tar.bz2: rtems-$(rtems_version)/stamp.autofi
|
||||
doc/itron3.0/itron.texi doc/networking/networking.texi \
|
||||
doc/new_chapters/new_chapters.texi doc/porting/porting.texi \
|
||||
doc/posix1003.1/posix1003_1.texi doc/posix_users/posix_users.texi \
|
||||
doc/relnotes/relnotes.texi doc/started_ada/started_ada.texi \
|
||||
doc/started/started.texi doc/user/c_user.texi
|
||||
doc/relnotes/relnotes.texi doc/started/started.texi \
|
||||
doc/user/c_user.texi
|
||||
tar -cj -X rtems-$(rtems_version)/excludes \
|
||||
-f rtems-$(rtems_version)$(TAG_SUFFIX).tar.bz2 rtems-$(rtems_version)
|
||||
|
||||
|
||||
6
SUPPORT
6
SUPPORT
@@ -8,12 +8,12 @@ includes porting RTEMS to new processors and the development of custom board
|
||||
support packages and device drivers. In addition, OAR is available
|
||||
to assist in the development of your real-time embedded application.
|
||||
|
||||
For more information, email Mark Johannes at mark.johannes@OARcorp.com
|
||||
For more information, email Joel Sherrill joel.sherrill@OARcorp.com
|
||||
or contact OAR at:
|
||||
|
||||
On-Line Applications Research Corporation
|
||||
4910-L Corporate Drive
|
||||
Huntsville AL 35805
|
||||
7047 Old Madison Pike Suite 320
|
||||
Huntsville AL 35806
|
||||
Voice: (205) 722-9985
|
||||
Fax: (205 722-0985
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.9.4]))
|
||||
m4_define([_RTEMS_VERSION],[4.9.5]))
|
||||
|
||||
m4_define([RTEMS_API],[4.9])
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.9.4]))
|
||||
m4_define([_RTEMS_VERSION],[4.9.5]))
|
||||
|
||||
m4_define([RTEMS_API],[4.9])
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2010-11-23 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
* Makefile.am, preinstall.am: Add <bsp/tty_drv.h> to the set of
|
||||
installed .h files.
|
||||
|
||||
2010-03-10 Gedare Bloom <gedare@gwu.edu>
|
||||
|
||||
PR 1495/bsp
|
||||
|
||||
@@ -26,7 +26,7 @@ SUBDIRS = . tools
|
||||
|
||||
include_bspdir = $(includedir)/bsp
|
||||
include_bsp_HEADERS = ../../i386/shared/irq/irq.h \
|
||||
../../i386/shared/irq/irq_asm.h
|
||||
../../i386/shared/irq/irq_asm.h ../../i386/shared/comm/tty_drv.h
|
||||
|
||||
include_HEADERS += include/crt.h
|
||||
nodist_include_HEADERS += ../../shared/include/coverhd.h
|
||||
|
||||
@@ -57,6 +57,10 @@ $(PROJECT_INCLUDE)/bsp/irq_asm.h: ../../i386/shared/irq/irq_asm.h $(PROJECT_INCL
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq_asm.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq_asm.h
|
||||
|
||||
$(PROJECT_INCLUDE)/bsp/tty_drv.h: ../../i386/shared/comm/tty_drv.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tty_drv.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tty_drv.h
|
||||
|
||||
$(PROJECT_INCLUDE)/crt.h: include/crt.h $(PROJECT_INCLUDE)/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/crt.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/crt.h
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
2010-08-25 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 1689/bsps
|
||||
* shared/flash/intelFlash.c: Scale erase timeout by actual
|
||||
system clock rate rather than assuming a fixed value.
|
||||
|
||||
2010-02-01 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 1492/bsps
|
||||
|
||||
@@ -56,16 +56,20 @@
|
||||
*/
|
||||
#ifdef TESTING
|
||||
|
||||
#define TIMEOUT_US 100000
|
||||
#define rtems_task_wake_after(args...) do {} while (0)
|
||||
#define TIMEOUT_US 100000
|
||||
#define rtems_task_wake_after(t) sleep(t)
|
||||
#define CLOCKRATE_GET(p) (*(p)=1)
|
||||
|
||||
#else
|
||||
|
||||
#include <rtems.h>
|
||||
#define TIMEOUT_US 1000
|
||||
#define TIMEOUT_US 1000
|
||||
#define CLOCKRATE_GET(p) rtems_clock_get( RTEMS_CLOCK_GET_TICKS_PER_SECOND, p )
|
||||
|
||||
#endif
|
||||
|
||||
#define ERASE_TIMEOUT_S 2
|
||||
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
@@ -321,14 +325,19 @@ uint32_t sta;
|
||||
STATIC int
|
||||
flash_erase_block_intel(struct bankdesc *b, uint32_t addr)
|
||||
{
|
||||
uint32_t sta;
|
||||
int i;
|
||||
uint32_t sta;
|
||||
int i;
|
||||
rtems_interval p;
|
||||
|
||||
if ( (sta = flash_check_ready_intel(b, addr)) )
|
||||
return sta;
|
||||
|
||||
(void)BSP_flashReadRaw(F_CMD_WR_ERA, addr);
|
||||
(void)BSP_flashReadRaw(F_CMD_WR_CMD, addr);
|
||||
i = 50;
|
||||
|
||||
CLOCKRATE_GET( &p );
|
||||
i = p * ERASE_TIMEOUT_S;
|
||||
|
||||
while ( STA_RDYRDY != (STA_RDYRDY & (sta = BSP_flashReadRaw(F_CMD_RD_STA, addr))) && --i > 0 ) {
|
||||
rtems_task_wake_after(1);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2010-06-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
|
||||
|
||||
* m68k/mcf5282/include/mcf5282.h: backport from V1.5 of
|
||||
corrections for indexing multiple identical resources
|
||||
|
||||
2008-08-31 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* arm/at91rm9200/timer/timer.c, arm/lpc22xx/timer/timer.c,
|
||||
|
||||
@@ -277,9 +277,9 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_SCM_MPR_MPR(x) (((x)&0x0F))
|
||||
|
||||
#define MCF5282_SCM_PACR_LOCK1 (0x80)
|
||||
#define MCF5282_SCM_PACR_ACCESSCTRL1 (((x)&0x07)<<4)
|
||||
#define MCF5282_SCM_PACR_ACCESSCTRL1(x) (((x)&0x07)<<4)
|
||||
#define MCF5282_SCM_PACR_LOCK0 (0x08)
|
||||
#define MCF5282_SCM_PACR_ACCESSCTRL0 (((x)&0x07))
|
||||
#define MCF5282_SCM_PACR_ACCESSCTRL0(x) (((x)&0x07))
|
||||
#define MCF5282_SCM_PACR_RW_NA (0x0)
|
||||
#define MCF5282_SCM_PACR_R_NA (0x1)
|
||||
#define MCF5282_SCM_PACR_R_R (0x2)
|
||||
@@ -288,7 +288,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_SCM_PACR_NA_NA (0x7)
|
||||
|
||||
#define MCF5282_SCM_GPACR_LOCK (0x80)
|
||||
#define MCF5282_SCM_GPACR_ACCESSCTRL (((x)&0x0F))
|
||||
#define MCF5282_SCM_GPACR_ACCESSCTRL(x) (((x)&0x0F))
|
||||
#define MCF5282_SCM_GPACR_ACCESSCTRL_RW_NA (0x0)
|
||||
#define MCF5282_SCM_GPACR_ACCESSCTRL_R_NA (0x1)
|
||||
#define MCF5282_SCM_GPACR_ACCESSCTRL_R_R (0x2)
|
||||
@@ -396,9 +396,9 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_CS6_CSMR (*(vuint32 *)(&__IPSBAR[0x00CC]))
|
||||
#define MCF5282_CS6_CSCR (*(vuint16 *)(&__IPSBAR[0x00D2]))
|
||||
|
||||
#define MCF5282_CS_CSAR(x) (*(vuint16 *)(&__IPSBAR[0x0080+(x*0x0C)]))
|
||||
#define MCF5282_CS_CSMR(x) (*(vuint32 *)(&__IPSBAR[0x0084+(x*0x0C)]))
|
||||
#define MCF5282_CS_CSCR(x) (*(vuint16 *)(&__IPSBAR[0x008A+(x*0x0C)]))
|
||||
#define MCF5282_CS_CSAR(x) (*(vuint16 *)(&__IPSBAR[0x0080+((x)*0x0C)]))
|
||||
#define MCF5282_CS_CSMR(x) (*(vuint32 *)(&__IPSBAR[0x0084+((x)*0x0C)]))
|
||||
#define MCF5282_CS_CSCR(x) (*(vuint16 *)(&__IPSBAR[0x008A+((x)*0x0C)]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_CS_CSAR_BA(a) (uint16)(((a)&0xFFFF0000)>>16)
|
||||
@@ -471,11 +471,11 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_DMA3_BCR (*(vuint32 *)(&__IPSBAR[0x01CC]))
|
||||
#define MCF5282_DMA3_DSR (*(vuint8 *)(&__IPSBAR[0x01D0]))
|
||||
|
||||
#define MCF5282_DMA_SAR(x) (*(vuint32 *)(&__IPSBAR[0x0100+(x*0x40)]))
|
||||
#define MCF5282_DMA_DAR(x) (*(vuint32 *)(&__IPSBAR[0x0104+(x*0x40)]))
|
||||
#define MCF5282_DMA_DCR(x) (*(vuint32 *)(&__IPSBAR[0x0108+(x*0x40)]))
|
||||
#define MCF5282_DMA_BCR(x) (*(vuint32 *)(&__IPSBAR[0x010C+(x*0x40)]))
|
||||
#define MCF5282_DMA_DSR(x) (*(vuint8 *)(&__IPSBAR[0x0110+(x*0x40)]))
|
||||
#define MCF5282_DMA_SAR(x) (*(vuint32 *)(&__IPSBAR[0x0100+((x)*0x40)]))
|
||||
#define MCF5282_DMA_DAR(x) (*(vuint32 *)(&__IPSBAR[0x0104+((x)*0x40)]))
|
||||
#define MCF5282_DMA_DCR(x) (*(vuint32 *)(&__IPSBAR[0x0108+((x)*0x40)]))
|
||||
#define MCF5282_DMA_BCR(x) (*(vuint32 *)(&__IPSBAR[0x010C+((x)*0x40)]))
|
||||
#define MCF5282_DMA_DSR(x) (*(vuint8 *)(&__IPSBAR[0x0110+((x)*0x40)]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_DMA_DCR_INT (0x80000000)
|
||||
@@ -564,21 +564,21 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_UART2_UOP1 (*(vuint8 *)(&__IPSBAR[0x02B8]))
|
||||
#define MCF5282_UART2_UOP0 (*(vuint8 *)(&__IPSBAR[0x02BC]))
|
||||
|
||||
#define MCF5282_UART_UMR(x) (*(vuint8 *)(&__IPSBAR[0x0200+(x*0x40)]))
|
||||
#define MCF5282_UART_USR(x) (*(vuint8 *)(&__IPSBAR[0x0204+(x*0x40)]))
|
||||
#define MCF5282_UART_UCSR(x) (*(vuint8 *)(&__IPSBAR[0x0204+(x*0x40)]))
|
||||
#define MCF5282_UART_UCR(x) (*(vuint8 *)(&__IPSBAR[0x0208+(x*0x40)]))
|
||||
#define MCF5282_UART_URB(x) (*(vuint8 *)(&__IPSBAR[0x20C+(x*0x40)]))
|
||||
#define MCF5282_UART_UTB(x) (*(vuint8 *)(&__IPSBAR[0x020C+(x*0x40)]))
|
||||
#define MCF5282_UART_UIPCR(x) (*(vuint8 *)(&__IPSBAR[0x0210+(x*0x40)]))
|
||||
#define MCF5282_UART_UACR(x) (*(vuint8 *)(&__IPSBAR[0x0210+(x*0x40)]))
|
||||
#define MCF5282_UART_UISR(x) (*(vuint8 *)(&__IPSBAR[0x0214+(x*0x40)]))
|
||||
#define MCF5282_UART_UIMR(x) (*(vuint8 *)(&__IPSBAR[0x0214+(x*0x40)]))
|
||||
#define MCF5282_UART_UBG1(x) (*(vuint8 *)(&__IPSBAR[0x0218+(x*0x40)]))
|
||||
#define MCF5282_UART_UBG2(x) (*(vuint8 *)(&__IPSBAR[0x021C+(x*0x40)]))
|
||||
#define MCF5282_UART_UIP(x) (*(vuint8 *)(&__IPSBAR[0x0234+(x*0x40)]))
|
||||
#define MCF5282_UART_UOP1(x) (*(vuint8 *)(&__IPSBAR[0x0238+(x*0x40)]))
|
||||
#define MCF5282_UART_UOP0(x) (*(vuint8 *)(&__IPSBAR[0x023C+(x*0x40)]))
|
||||
#define MCF5282_UART_UMR(x) (*(vuint8 *)(&__IPSBAR[0x0200+((x)*0x40)]))
|
||||
#define MCF5282_UART_USR(x) (*(vuint8 *)(&__IPSBAR[0x0204+((x)*0x40)]))
|
||||
#define MCF5282_UART_UCSR(x) (*(vuint8 *)(&__IPSBAR[0x0204+((x)*0x40)]))
|
||||
#define MCF5282_UART_UCR(x) (*(vuint8 *)(&__IPSBAR[0x0208+((x)*0x40)]))
|
||||
#define MCF5282_UART_URB(x) (*(vuint8 *)(&__IPSBAR[0x020C+((x)*0x40)]))
|
||||
#define MCF5282_UART_UTB(x) (*(vuint8 *)(&__IPSBAR[0x020C+((x)*0x40)]))
|
||||
#define MCF5282_UART_UIPCR(x) (*(vuint8 *)(&__IPSBAR[0x0210+((x)*0x40)]))
|
||||
#define MCF5282_UART_UACR(x) (*(vuint8 *)(&__IPSBAR[0x0210+((x)*0x40)]))
|
||||
#define MCF5282_UART_UISR(x) (*(vuint8 *)(&__IPSBAR[0x0214+((x)*0x40)]))
|
||||
#define MCF5282_UART_UIMR(x) (*(vuint8 *)(&__IPSBAR[0x0214+((x)*0x40)]))
|
||||
#define MCF5282_UART_UBG1(x) (*(vuint8 *)(&__IPSBAR[0x0218+((x)*0x40)]))
|
||||
#define MCF5282_UART_UBG2(x) (*(vuint8 *)(&__IPSBAR[0x021C+((x)*0x40)]))
|
||||
#define MCF5282_UART_UIP(x) (*(vuint8 *)(&__IPSBAR[0x0234+((x)*0x40)]))
|
||||
#define MCF5282_UART_UOP1(x) (*(vuint8 *)(&__IPSBAR[0x0238+((x)*0x40)]))
|
||||
#define MCF5282_UART_UOP0(x) (*(vuint8 *)(&__IPSBAR[0x023C+((x)*0x40)]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_UART_UMR1_RXRTS (0x80)
|
||||
@@ -754,7 +754,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_QSPI_QCR_BITSE (0x4000)
|
||||
#define MCF5282_QSPI_QCR_DT (0x2000)
|
||||
#define MCF5282_QSPI_QCR_DSCK (0x1000)
|
||||
#define MCF5282_QSPI_QCR_CS (((x)&0x000F)<<8)
|
||||
#define MCF5282_QSPI_QCR_CS(x) (((x)&0x000F)<<8)
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
@@ -791,12 +791,12 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_TIMER3_DTCR (*(vuint32 *)(&__IPSBAR[0x04C8]))
|
||||
#define MCF5282_TIMER3_DTCN (*(vuint32 *)(&__IPSBAR[0x04CC]))
|
||||
|
||||
#define MCF5282_TIMER_DTMR(x) (*(vuint16 *)(&__IPSBAR[0x0400+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTXMR(x) (*(vuint8 *)(&__IPSBAR[0x0402+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTER(x) (*(vuint8 *)(&__IPSBAR[0x0403+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTRR(x) (*(vuint32 *)(&__IPSBAR[0x0404+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTCR(x) (*(vuint32 *)(&__IPSBAR[0x0408+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTCN(x) (*(vuint32 *)(&__IPSBAR[0x040C+(x*0x40)]))
|
||||
#define MCF5282_TIMER_DTMR(x) (*(vuint16 *)(&__IPSBAR[0x0400+((x)*0x40)]))
|
||||
#define MCF5282_TIMER_DTXMR(x) (*(vuint8 *)(&__IPSBAR[0x0402+((x)*0x40)]))
|
||||
#define MCF5282_TIMER_DTER(x) (*(vuint8 *)(&__IPSBAR[0x0403+((x)*0x40)]))
|
||||
#define MCF5282_TIMER_DTRR(x) (*(vuint32 *)(&__IPSBAR[0x0404+((x)*0x40)]))
|
||||
#define MCF5282_TIMER_DTCR(x) (*(vuint32 *)(&__IPSBAR[0x0408+((x)*0x40)]))
|
||||
#define MCF5282_TIMER_DTCN(x) (*(vuint32 *)(&__IPSBAR[0x040C+((x)*0x40)]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_TIMER_DTMR_PS(a) (((a)&0x00FF)<<8)
|
||||
@@ -1332,7 +1332,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_FEC_TFWR_X_WMRK_128 (0x00000002)
|
||||
#define MCF5282_FEC_TFWR_X_WMRK_192 (0x00000003)
|
||||
|
||||
#define MCF5282_FEC_EMRBR_R_BUF_SIZE(x) (((x)&0x7F)<<4)
|
||||
#define MCF5282_FEC_EMRBR_R_BUF_SIZE(x) (((x)&7F)<<4)
|
||||
|
||||
#define MCF5282_FEC_TxBD_R 0x8000
|
||||
#define MCF5282_FEC_TxBD_BUSY 0x4000
|
||||
@@ -1487,7 +1487,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_PORTx2 (0x04)
|
||||
#define MCF5282_GPIO_PORTx1 (0x02)
|
||||
#define MCF5282_GPIO_PORTx0 (0x01)
|
||||
#define MCF5282_GPIO_PORTx(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_PORTx(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_DDRx7 (0x80)
|
||||
#define MCF5282_GPIO_DDRx6 (0x40)
|
||||
@@ -1497,7 +1497,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_DDRx2 (0x04)
|
||||
#define MCF5282_GPIO_DDRx1 (0x02)
|
||||
#define MCF5282_GPIO_DDRx0 (0x01)
|
||||
#define MCF5282_GPIO_DDRx(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_DDRx(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_PORTxP7 (0x80)
|
||||
#define MCF5282_GPIO_PORTxP6 (0x40)
|
||||
@@ -1507,7 +1507,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_PORTxP2 (0x04)
|
||||
#define MCF5282_GPIO_PORTxP1 (0x02)
|
||||
#define MCF5282_GPIO_PORTxP0 (0x01)
|
||||
#define MCF5282_GPIO_PORTxP(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_PORTxP(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_SETx7 (0x80)
|
||||
#define MCF5282_GPIO_SETx6 (0x40)
|
||||
@@ -1517,7 +1517,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_SETx2 (0x04)
|
||||
#define MCF5282_GPIO_SETx1 (0x02)
|
||||
#define MCF5282_GPIO_SETx0 (0x01)
|
||||
#define MCF5282_GPIO_SETx(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_SETx(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_CLRx7 (0x80)
|
||||
#define MCF5282_GPIO_CLRx6 (0x40)
|
||||
@@ -1527,7 +1527,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_CLRx2 (0x04)
|
||||
#define MCF5282_GPIO_CLRx1 (0x02)
|
||||
#define MCF5282_GPIO_CLRx0 (0x01)
|
||||
#define MCF5282_GPIO_CLRx(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_CLRx(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_PBCDPAR_PBPA (0x80)
|
||||
#define MCF5282_GPIO_PBCDPAR_PCDPA (0x40)
|
||||
@@ -1553,7 +1553,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_PJPAR_PJPA2 (0x04)
|
||||
#define MCF5282_GPIO_PJPAR_PJPA1 (0x02)
|
||||
#define MCF5282_GPIO_PJPAR_PJPA0 (0x01)
|
||||
#define MCF5282_GPIO_PJPAR_PJPA(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_PJPAR_PJPA(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_PSDPAR_PSDPA (0x80)
|
||||
|
||||
@@ -1574,7 +1574,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_GPIO_PQSPAR_PQSPA2 (0x04)
|
||||
#define MCF5282_GPIO_PQSPAR_PQSPA1 (0x02)
|
||||
#define MCF5282_GPIO_PQSPAR_PQSPA0 (0x01)
|
||||
#define MCF5282_GPIO_PQSPAR_PQSPA(x) (0x01<<x)
|
||||
#define MCF5282_GPIO_PQSPAR_PQSPA(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_GPIO_PTCPAR_PTCPA3(x) (((x)&0x3)<<6)
|
||||
#define MCF5282_GPIO_PTCPAR_PTCPA2(x) (((x)&0x3)<<4)
|
||||
@@ -1736,7 +1736,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_EPORT_EPDDR_EPDD3 (0x08)
|
||||
#define MCF5282_EPORT_EPDDR_EPDD2 (0x04)
|
||||
#define MCF5282_EPORT_EPDDR_EPDD1 (0x02)
|
||||
#define MCF5282_EPORT_EPDDR_EPDD(x) (0x01<<x)
|
||||
#define MCF5282_EPORT_EPDDR_EPDD(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_EPORT_EPIER_EPIE7 (0x80)
|
||||
#define MCF5282_EPORT_EPIER_EPIE6 (0x40)
|
||||
@@ -1745,7 +1745,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_EPORT_EPIER_EPIE3 (0x08)
|
||||
#define MCF5282_EPORT_EPIER_EPIE2 (0x04)
|
||||
#define MCF5282_EPORT_EPIER_EPIE1 (0x02)
|
||||
#define MCF5282_EPORT_EPIER_EPIE(x) (0x01<<x)
|
||||
#define MCF5282_EPORT_EPIER_EPIE(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_EPORT_EPDR_EPD7 (0x80)
|
||||
#define MCF5282_EPORT_EPDR_EPD6 (0x40)
|
||||
@@ -1754,7 +1754,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_EPORT_EPDR_EPD3 (0x08)
|
||||
#define MCF5282_EPORT_EPDR_EPD2 (0x04)
|
||||
#define MCF5282_EPORT_EPDR_EPD1 (0x02)
|
||||
#define MCF5282_EPORT_EPDR_EPD(x) (0x01<<x)
|
||||
#define MCF5282_EPORT_EPDR_EPD(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_EPORT_EPPDR_EPPD7 (0x80)
|
||||
#define MCF5282_EPORT_EPPDR_EPPD6 (0x40)
|
||||
@@ -1763,7 +1763,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_EPORT_EPPDR_EPPD3 (0x08)
|
||||
#define MCF5282_EPORT_EPPDR_EPPD2 (0x04)
|
||||
#define MCF5282_EPORT_EPPDR_EPPD1 (0x02)
|
||||
#define MCF5282_EPORT_EPPDR_EPPD(x) (0x01<<x)
|
||||
#define MCF5282_EPORT_EPPDR_EPPD(x) (0x01<<(x))
|
||||
|
||||
#define MCF5282_EPORT_EPFR_EPF7 (0x80)
|
||||
#define MCF5282_EPORT_EPFR_EPF6 (0x40)
|
||||
@@ -1772,7 +1772,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_EPORT_EPFR_EPF3 (0x08)
|
||||
#define MCF5282_EPORT_EPFR_EPF2 (0x04)
|
||||
#define MCF5282_EPORT_EPFR_EPF1 (0x02)
|
||||
#define MCF5282_EPORT_EPFR_EPF(x) (0x01<<x)
|
||||
#define MCF5282_EPORT_EPFR_EPF(x) (0x01<<(x))
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
@@ -1818,9 +1818,9 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_PIT3_PMR (*(vuint16 *)(&__IPSBAR[0x180002]))
|
||||
#define MCF5282_PIT3_PCNTR (*(vuint16 *)(&__IPSBAR[0x180004]))
|
||||
|
||||
#define MCF5282_PIT_PCSR(x) (*(vuint16 *)(&__IPSBAR[0x150000+(0x1000*x)]))
|
||||
#define MCF5282_PIT_PMR(x) (*(vuint16 *)(&__IPSBAR[0x150002+(0x1000*x)]))
|
||||
#define MCF5282_PIT_PCNTR(x) (*(vuint16 *)(&__IPSBAR[0x150004+(0x1000*x)]))
|
||||
#define MCF5282_PIT_PCSR(x) (*(vuint16 *)(&__IPSBAR[0x150000+(0x1000*(x))]))
|
||||
#define MCF5282_PIT_PMR(x) (*(vuint16 *)(&__IPSBAR[0x150002+(0x1000*(x))]))
|
||||
#define MCF5282_PIT_PCNTR(x) (*(vuint16 *)(&__IPSBAR[0x150004+(0x1000*(x))]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_PIT_PCSR_PRE(x) (((x)&0x000F)<<8)
|
||||
@@ -1849,10 +1849,10 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_QADC_QACR2 (*(vuint16 *)(&__IPSBAR[0x19000E]))
|
||||
#define MCF5282_QADC_QASR0 (*(vuint16 *)(&__IPSBAR[0x190010]))
|
||||
#define MCF5282_QADC_QASR1 (*(vuint16 *)(&__IPSBAR[0x190012]))
|
||||
#define MCF5282_QADC_CCW(x) (*(vuint16 *)(&__IPSBAR[0x190200+(x*2)]))
|
||||
#define MCF5282_QADC_RJURR(x) (*(vuint16 *)(&__IPSBAR[0x190280+(x*2)]))
|
||||
#define MCF5282_QADC_LJSRR(x) (*(vuint16 *)(&__IPSBAR[0x190300+(x*2)]))
|
||||
#define MCF5282_QADC_LJURR(x) (*(vuint16 *)(&__IPSBAR[0x190380+(x*2)]))
|
||||
#define MCF5282_QADC_CCW(x) (*(vuint16 *)(&__IPSBAR[0x190200+((x)*2)]))
|
||||
#define MCF5282_QADC_RJURR(x) (*(vuint16 *)(&__IPSBAR[0x190280+((x)*2)]))
|
||||
#define MCF5282_QADC_LJSRR(x) (*(vuint16 *)(&__IPSBAR[0x190300+((x)*2)]))
|
||||
#define MCF5282_QADC_LJURR(x) (*(vuint16 *)(&__IPSBAR[0x190380+((x)*2)]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_QADC_QADCMCR_QSTOP (0x8000)
|
||||
@@ -2250,24 +2250,24 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_FLEXCAN_MBUF15_BYTE6 (*(vuint8 *)(&__IPSBAR[0x1C017C]))
|
||||
#define MCF5282_FLEXCAN_MBUF15_BYTE7 (*(vuint8 *)(&__IPSBAR[0x1C017D]))
|
||||
|
||||
#define MCF5282_FLEXCAN_MBUF0_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0086+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF1_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0096+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF2_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00A6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF3_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00B6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF4_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00C6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF5_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00D6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF6_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00E6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF7_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00F6+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF8_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0106+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF9_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0116+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF10_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0126+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF11_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0136+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF12_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0146+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF13_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0156+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF14_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0166+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF15_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0176+x)]))
|
||||
#define MCF5282_FLEXCAN_MBUF0_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0086+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF1_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0096+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF2_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00A6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF3_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00B6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF4_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00C6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF5_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00D6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF6_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00E6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF7_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C00F6+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF8_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0106+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF9_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0116+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF10_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0126+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF11_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0136+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF12_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0146+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF13_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0156+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF14_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0166+(x))]))
|
||||
#define MCF5282_FLEXCAN_MBUF15_BYTE(x) (*(vuint8 *)(&__IPSBAR[(0x1C0176+(x))]))
|
||||
|
||||
#define MCF5282_FLEXCAN_MBUF_BYTE(x,y) (*(vuint8 *)(&__IPSBAR[((0x1C0086+(0x10*x)+y)]))
|
||||
#define MCF5282_FLEXCAN_MBUF_BYTE(x,y) (*(vuint8 *)(&__IPSBAR[((0x1C0086+(0x10*(x))+(y))]))
|
||||
|
||||
/* Bit level definitions and macros */
|
||||
#define MCF5282_FLEXCAN_CANMCR_STOP (0x8000)
|
||||
@@ -2394,7 +2394,7 @@ extern uint8 __IPSBAR[];
|
||||
#define MCF5282_CFM_CFMUSTAT_ACCERR (0x10)
|
||||
#define MCF5282_CFM_CFMUSTAT_BLANK (0x04)
|
||||
|
||||
#define MCF5282_CFM_CFMCMD_CMD(x) (((x)&0x7F))
|
||||
#define MCF5282_CFM_CFMCMD_CMD(x) (((x)&7F))
|
||||
|
||||
/********************************************************************/
|
||||
|
||||
|
||||
@@ -1,3 +1,43 @@
|
||||
2011-01-21 Eric Norum <wenorum@lbl.gov>
|
||||
|
||||
* libmisc/capture/capture.c: Avoid using TCB of task just deleted.
|
||||
|
||||
2010-11-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1718/cpukit
|
||||
* sapi/include/confdefs.h: POSIX threads are allocated twice the
|
||||
minimum stack space by default. confdefs.h only accounts for one
|
||||
minimum -- not the 2x factor.
|
||||
|
||||
2010-11-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1717/cpukit
|
||||
* libcsupport/src/gxx_wrappers.c: Free memory on error.
|
||||
|
||||
2010-08-27 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1693/filesystem
|
||||
* libfs/src/imfs/memfile.c: IMFS_memfile_get_block_pointer() was
|
||||
checking incorrect pointer and thus had dead code.
|
||||
|
||||
2010-08-27 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1692/filesystem
|
||||
* libcsupport/include/rtems/libio.h, libfs/src/imfs/imfs_eval.c: Fix
|
||||
implementation and use of rtems_libio_is_valid_perms().
|
||||
|
||||
2010-06-21 Peter Dufault <dufault@hda.com>
|
||||
|
||||
PR 1570/cpukit
|
||||
* posix/src/semtimedwait.c: This routine is supposed to return -1/errno
|
||||
NOT the status directly.
|
||||
|
||||
2010-06-21 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1554/cpukit
|
||||
Coverity Id 17
|
||||
* libi2c/libi2c.c: Fix memory leak on error.
|
||||
|
||||
2010-03-17 Chris Johns <chrisj@rtems.org>
|
||||
|
||||
* libfs/src/dosfs/msdos_create.c: Fix the date/time call order to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.9.4]))
|
||||
m4_define([_RTEMS_VERSION],[4.9.5]))
|
||||
|
||||
m4_define([RTEMS_API],[4.9])
|
||||
|
||||
@@ -530,7 +530,7 @@ static inline rtems_device_minor_number rtems_filesystem_dev_minor_t(
|
||||
* Verifies that the permission flag is valid.
|
||||
*/
|
||||
#define rtems_libio_is_valid_perms( _perm ) \
|
||||
(~ ((~RTEMS_LIBIO_PERMS_RWX) & _perm ))
|
||||
(((~RTEMS_LIBIO_PERMS_RWX) & _perm ) == 0)
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -106,6 +106,7 @@ int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *))
|
||||
/* register with RTEMS the buffer that will hold the key values */
|
||||
if( rtems_task_variable_add( RTEMS_SELF, (void **)new_key, dtor ) == RTEMS_SUCCESSFUL )
|
||||
return 0;
|
||||
free( new_key );
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,10 +79,8 @@ int IMFS_evaluate_permission(
|
||||
IMFS_jnode_t *jnode;
|
||||
int flags_to_test;
|
||||
|
||||
if ( !rtems_libio_is_valid_perms( flags ) ) {
|
||||
assert( 0 );
|
||||
rtems_set_errno_and_return_minus_one( EIO );
|
||||
}
|
||||
if ( !rtems_libio_is_valid_perms( flags ) )
|
||||
rtems_set_errno_and_return_minus_one( EPERM );
|
||||
|
||||
jnode = node->node_access;
|
||||
|
||||
|
||||
@@ -1046,7 +1046,7 @@ fflush(stdout);
|
||||
return 0;
|
||||
|
||||
p2 = (block_p *)p1[ doubly ];
|
||||
if ( !p )
|
||||
if ( !p2 )
|
||||
return 0;
|
||||
|
||||
return (block_p *)&p2[ singly ];
|
||||
|
||||
@@ -395,11 +395,13 @@ rtems_libi2c_register_bus (const char *name, rtems_libi2c_bus_t * bus)
|
||||
/* check */
|
||||
if ('/' != *nmcpy) {
|
||||
safe_printf ( DRVNM "Bad name: must be an absolute path starting with '/'\n");
|
||||
free( nmcpy );
|
||||
return -RTEMS_INVALID_NAME;
|
||||
}
|
||||
/* file must not exist */
|
||||
if (!stat (nmcpy, &sbuf)) {
|
||||
safe_printf ( DRVNM "Bad name: file exists already\n");
|
||||
free( nmcpy );
|
||||
return -RTEMS_INVALID_NAME;
|
||||
}
|
||||
|
||||
@@ -412,6 +414,7 @@ rtems_libi2c_register_bus (const char *name, rtems_libi2c_bus_t * bus)
|
||||
if (i) {
|
||||
safe_printf ( DRVNM "Get %s status failed: %s\n",
|
||||
nmcpy, strerror(errno));
|
||||
free( nmcpy );
|
||||
return -RTEMS_INVALID_NAME;
|
||||
}
|
||||
/* should be a directory since name terminates in '/' */
|
||||
@@ -419,11 +422,13 @@ rtems_libi2c_register_bus (const char *name, rtems_libi2c_bus_t * bus)
|
||||
|
||||
if (!libmutex) {
|
||||
safe_printf ( DRVNM "Library not initialized\n");
|
||||
free( nmcpy );
|
||||
return -RTEMS_NOT_DEFINED;
|
||||
}
|
||||
|
||||
if (bus == NULL || bus->size < sizeof (*bus)) {
|
||||
safe_printf ( DRVNM "No bus-ops or size too small -- misconfiguration?\n");
|
||||
free( nmcpy );
|
||||
return -RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
|
||||
@@ -916,7 +916,9 @@ rtems_capture_switch_task (rtems_tcb* current_task,
|
||||
rtems_capture_task_t* ct;
|
||||
rtems_capture_task_t* ht;
|
||||
|
||||
if (_States_Is_transient (current_task->current_state))
|
||||
|
||||
if (_States_Is_transient (current_task->current_state)
|
||||
|| _States_Is_dormant (current_task->current_state))
|
||||
{
|
||||
rtems_id ct_id = current_task->Object.id;
|
||||
|
||||
|
||||
@@ -76,10 +76,10 @@ int sem_timedwait(
|
||||
if ( !do_wait && (lock_status == EBUSY) ) {
|
||||
switch (lock_status) {
|
||||
case POSIX_ABSOLUTE_TIMEOUT_INVALID:
|
||||
return EINVAL;
|
||||
rtems_set_errno_and_return_minus_one( EINVAL );
|
||||
case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST:
|
||||
case POSIX_ABSOLUTE_TIMEOUT_IS_NOW:
|
||||
return ETIMEDOUT;
|
||||
rtems_set_errno_and_return_minus_one( ETIMEDOUT );
|
||||
case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -938,6 +938,7 @@ extern rtems_configuration_table Configuration;
|
||||
|
||||
#define CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API \
|
||||
_Configure_From_workspace( \
|
||||
CONFIGURE_MINIMUM_TASK_STACK_SIZE + \
|
||||
sizeof (POSIX_API_Control) + \
|
||||
(sizeof (void *) * (CONFIGURE_MAXIMUM_POSIX_KEYS)) \
|
||||
)
|
||||
|
||||
@@ -1,3 +1,48 @@
|
||||
2011-02-09 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
* setup.def, common/cpright.texi: Update dates.
|
||||
|
||||
2010-12-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
* Makefile.am, configure.ac, common/cpright.texi, common/rtems.texi.in,
|
||||
cpu_supplement/.cvsignore, started/Makefile.am, started/binaries.t,
|
||||
started/buildc.t, started/buildrt.t, started/intro.t,
|
||||
started/nextstep.t, started/nt.t, started/require.t,
|
||||
started/sample.t, started/started.texi: Major update which includes
|
||||
removal of references to specific tool versions and patches.
|
||||
* started/tversions.texi.in: Removed.
|
||||
|
||||
2010-12-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
* Makefile.am, configure.ac, develenv/direct.t: Remove Getting Started
|
||||
with GNAT/RTEMS.
|
||||
* started_ada/.cvsignore, started_ada/Makefile.am,
|
||||
started_ada/buildada.t, started_ada/gdb.t, started_ada/intro.t,
|
||||
started_ada/require.t, started_ada/sample.t,
|
||||
started_ada/started_ada.texi, started_ada/tversions.texi: Removed.
|
||||
|
||||
2010-11-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1716/doc
|
||||
* user/concepts.t: print_name example used a variable which did not
|
||||
match the name of the passed in parameter.
|
||||
|
||||
2010-11-01 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1714/doc
|
||||
* user/datatypes.t: Add missing description of rtems_status_codes.
|
||||
|
||||
2010-06-16 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1568/doc
|
||||
* user/intr.t: Fix list of services callable from ISR.
|
||||
|
||||
2010-05-18 Joel Sherrill <joel.sherrilL@OARcorp.com>
|
||||
|
||||
PR 1520/doc
|
||||
* user/part.t: Partition create discussion said it returned the number
|
||||
of buffers created but it does not.
|
||||
|
||||
2010-01-11 Marc Pignat <marc.pignat@hevs.ch>
|
||||
|
||||
PR 1490/doc
|
||||
|
||||
@@ -8,7 +8,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal
|
||||
# + tools, common and images are shared across many documents
|
||||
|
||||
SUBDIRS = tools started user bsp_howto porting develenv posix_users \
|
||||
posix1003.1 filesystem itron3.0 networking ada_user started_ada \
|
||||
posix1003.1 filesystem networking ada_user \
|
||||
new_chapters relnotes cpu_supplement shell
|
||||
|
||||
if USE_HTML
|
||||
@@ -20,7 +20,9 @@ EXTRA_DIST = HELP.html rtems_header.html.in rtems_footer.html.in
|
||||
EXTRA_DIST += common/cpright.texi common/setup.texi \
|
||||
common/treedef.tex common/rtems.texi.in
|
||||
|
||||
if USE_HTML
|
||||
html_imagesdir = $(htmldir)/images
|
||||
endif
|
||||
|
||||
HTML_IMAGES = images/dir-arrow.gif images/dvi.gif images/missing-arrow.gif \
|
||||
images/next-arrow.gif images/oaronly.jpg images/pdf.gif images/pdf1.gif \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c COPYRIGHT (c) 1988-2011.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -17,7 +17,7 @@
|
||||
@end tex
|
||||
|
||||
@vskip 0pt plus 1filll
|
||||
COPYRIGHT @copyright{} 1988 - 2008.@*
|
||||
COPYRIGHT @copyright{} 1988 - 2011.@*
|
||||
On-Line Applications Research Corporation (OAR).@*
|
||||
|
||||
The authors have used their best efforts in preparing
|
||||
@@ -36,5 +36,5 @@ Any inquiries concerning RTEMS, its related support
|
||||
components, its documentation, or any custom services
|
||||
for RTEMS should be directed to the contacts listed on
|
||||
that site. A current list of RTEMS Support Providers
|
||||
is at @uref{http://www.rtems.com/support.html}.
|
||||
is at @uref{http://www.rtems.com/oarsupport}.
|
||||
|
||||
|
||||
@@ -11,4 +11,3 @@
|
||||
@set RTEMSPREFIX @RTEMSPREFIX@
|
||||
@set RTEMSAPI @RTEMSAPI@
|
||||
@set RTEMSRPMPREFIX @RTEMSRPMPREFIX@
|
||||
@set RTEMSRPMGROUP @RTEMSRPMGROUP@
|
||||
|
||||
@@ -137,30 +137,6 @@ dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
|
||||
dnl Checks for library functions.
|
||||
|
||||
AC_MSG_CHECKING([for ./setup.def])
|
||||
AS_IF([test -f ${srcdir}/setup.def],[
|
||||
. ${srcdir}/setup.def
|
||||
AC_MSG_RESULT([done])
|
||||
],[
|
||||
AC_MSG_ERROR([missing])
|
||||
])
|
||||
|
||||
AS_IF([test -z "$binutils_patch_version"],
|
||||
[set_binutils_patch="@clear BINUTILSPATCHVERSION"],
|
||||
[set_binutils_patch="@set BINUTILSPATCHVERSION $binutils_patch_version"])
|
||||
|
||||
AS_IF([test -z "$newlib_patch_version"],
|
||||
[set_newlib_patch="@clear NEWLIBPATCHVERSION"],
|
||||
[set_newlib_patch="@set NEWLIBPATCHVERSION $newlib_patch_version"])
|
||||
|
||||
AS_IF([test -z "$gcc_patch_version"],
|
||||
[set_gcc_patch="@clear GCCPATCHVERSION"],
|
||||
[set_gcc_patch="@set GCCPATCHVERSION $gcc_patch_version"])
|
||||
|
||||
AS_IF([test -z "$gdb_patch_version"],
|
||||
[set_gdb_patch="@clear GDBPATCHVERSION"],
|
||||
[set_gdb_patch="@set GDBPATCHVERSION $gdb_patch_version"])
|
||||
|
||||
AC_CONFIG_SUBDIRS(tools)
|
||||
|
||||
AC_CONFIG_FILES([Makefile],[],[
|
||||
@@ -170,7 +146,6 @@ cat << EOF > common/rtems.sed~
|
||||
s/@RTEMSAPI@/RTEMS_API/;t t
|
||||
s,@RTEMSPREFIX@,$prefix,;t t
|
||||
s,@RTEMSRPMPREFIX@,$rpmprefix,;t t
|
||||
s,@RTEMSRPMGROUP@,RTEMS/]RTEMS_API[,;t t
|
||||
EOF
|
||||
_RTEMS_UPDATE_CONDITIONAL([common/rtems.sed],[common/rtems.sed~])
|
||||
])
|
||||
@@ -181,34 +156,14 @@ develenv/Makefile
|
||||
user/Makefile
|
||||
bsp_howto/Makefile])
|
||||
|
||||
AC_CONFIG_FILES([started/Makefile],[],[
|
||||
test -d started || mkdir started
|
||||
cat << EOF > started/tversions.sed~
|
||||
:t
|
||||
s/@GCCVERSION@/$gcc_version/;t t
|
||||
s/@BINUTILSVERSION@/$binutils_version/;t t
|
||||
s/@NEWLIBVERSION@/$newlib_version/;t t
|
||||
s/@GDBVERSION@/$gdb_version/;t t
|
||||
s/@SETBINUTILSPATCHVERSION@/$set_binutils_patch/;t t
|
||||
s/@SETGCCPATCHVERSION@/$set_gcc_patch/;t t
|
||||
s/@SETNEWLIBPATCHVERSION@/$set_newlib_patch/;t t
|
||||
s/@SETGDBPATCHVERSION@/$set_gdb_patch/;t t
|
||||
s/@GCCRPMRELEASE@/$gccnewlib_rpm_release/;t t
|
||||
s/@BINUTILSRPMRELEASE@/$binutils_rpm_release/;t t
|
||||
s/@GDBRPMRELEASE@/$gdb_rpm_release/;t t
|
||||
EOF
|
||||
_RTEMS_UPDATE_CONDITIONAL([started/tversions.sed],[started/tversions.sed~])
|
||||
])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
porting/Makefile
|
||||
networking/Makefile
|
||||
posix_users/Makefile
|
||||
posix1003.1/Makefile
|
||||
filesystem/Makefile
|
||||
itron3.0/Makefile
|
||||
ada_user/Makefile
|
||||
started_ada/Makefile
|
||||
started/Makefile
|
||||
relnotes/Makefile
|
||||
new_chapters/Makefile
|
||||
cpu_supplement/Makefile
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
arm.texi
|
||||
avr.texi
|
||||
bfin.texi
|
||||
cpu_supplement
|
||||
cpu_supplement-?
|
||||
@@ -24,6 +25,7 @@ cpu_supplement.vr
|
||||
general.texi
|
||||
i386.texi
|
||||
index.html
|
||||
lm32.texi
|
||||
m68k.texi
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -35,6 +37,8 @@ rtems_header.html
|
||||
rtemspie.pdf
|
||||
sh.texi
|
||||
sparc.texi
|
||||
sparc64.texi
|
||||
stamp-vti
|
||||
states.pdf
|
||||
tic4x.texi
|
||||
version.texi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1989-2007.
|
||||
@c COPYRIGHT (c) 1989-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -690,10 +690,6 @@ recent RTEMS releases.
|
||||
This directory contains the source code for the
|
||||
@cite{Getting Started with RTEMS for C/C++ Users} manual.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/doc/started_ada/
|
||||
This directory contains the source code for the
|
||||
@cite{Getting Started with RTEMS for Ada Users} manual.
|
||||
|
||||
@item $@{RTEMS_ROOT@}/doc/tools/
|
||||
This directory contains the source code for the tools
|
||||
used on the development host to assist in producing the
|
||||
|
||||
@@ -11,7 +11,7 @@ gdb_version=6.8
|
||||
gdb_suffix=.tar.bz2
|
||||
gdb_patch_version=rtems4.9-20080917
|
||||
gdb_rpm_release=4
|
||||
rtems_version=4.9.0
|
||||
rtems_version=4.9.5
|
||||
rtems_rpm_release=1
|
||||
newlib_version=1.16.0
|
||||
newlib_suffix=.tar.gz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# COPYRIGHT (c) 1988-2002.
|
||||
# COPYRIGHT (c) 1988-2010.
|
||||
# On-Line Applications Research Corporation (OAR).
|
||||
# All rights reserved.
|
||||
#
|
||||
@@ -7,7 +7,6 @@
|
||||
#
|
||||
|
||||
PROJECT = started
|
||||
EDITION = 1
|
||||
|
||||
include $(top_srcdir)/project.am
|
||||
include $(top_srcdir)/main.am
|
||||
@@ -22,42 +21,43 @@ FILES =
|
||||
info_TEXINFOS = started.texi
|
||||
started_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES)
|
||||
|
||||
intro.texi: intro.t tversions.texi
|
||||
intro.texi: intro.t
|
||||
$(BMENU2) -c -p "Top" \
|
||||
-u "Top" \
|
||||
-n "Requirements" < $< > $@
|
||||
|
||||
require.texi: require.t tversions.texi
|
||||
require.texi: require.t
|
||||
$(BMENU2) -c -p "GCC Mailing Lists" \
|
||||
-u "Top" \
|
||||
-n "Prebuilt Toolset Executables" < $< > $@
|
||||
|
||||
binaries.texi: binaries.t tversions.texi
|
||||
$(BMENU2) -c -p "Archive and Build Directory Format" \
|
||||
binaries.texi: binaries.t
|
||||
$(BMENU2) -c \
|
||||
-p "GNU/Linux Distrobutions using Debian Packaging Format" \
|
||||
-u "Top" \
|
||||
-n "Building the GNU Cross Compiler Toolset" < $< > $@
|
||||
|
||||
buildc.texi: buildc.t tversions.texi
|
||||
buildc.texi: buildc.t
|
||||
$(BMENU2) -c -p "Removing Zipped Tar Files" \
|
||||
-u "Top" \
|
||||
-n "Building RTEMS" < $< > $@
|
||||
|
||||
buildrt.texi: buildrt.t tversions.texi
|
||||
buildrt.texi: buildrt.t
|
||||
$(BMENU2) -c -p "Error Messages Indicating Configuration Problems" \
|
||||
-u "Top" \
|
||||
-n "Building the Sample Applications" < $< > $@
|
||||
|
||||
sample.texi: sample.t tversions.texi
|
||||
sample.texi: sample.t
|
||||
$(BMENU2) -c -p "Using the RTEMS configure Script Directly" \
|
||||
-u "Top" \
|
||||
-n "Where To Go From Here" < $< > $@
|
||||
|
||||
nextstep.texi: nextstep.t tversions.texi
|
||||
nextstep.texi: nextstep.t
|
||||
$(BMENU2) -c -p "More Information on RTEMS Application Makefiles" \
|
||||
-u "Top" \
|
||||
-n "Using MS-Windows as a Development Host" < $< > $@
|
||||
|
||||
nt.texi: nt.t tversions.texi
|
||||
nt.texi: nt.t
|
||||
$(BMENU2) -c -p "Writing an Application" \
|
||||
-u "Top" \
|
||||
-n "" < $< > $@
|
||||
@@ -83,11 +83,4 @@ PICTURES = pictures/bit_ada.jpg pictures/bit_ada.vsd pictures/bit_c.jpg \
|
||||
|
||||
EXTRA_DIST += $(PICTURES)
|
||||
|
||||
tversions.texi: tversions.texi.in tversions.sed
|
||||
sed -f tversions.sed $(srcdir)/tversions.texi.in > tversions.texi
|
||||
CLEANFILES += tversions.texi
|
||||
|
||||
EXTRA_DIST += tversions.texi.in
|
||||
DISTCLEANFILES = tversions.sed
|
||||
|
||||
CLEANFILES += started.info started.info-?
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -8,18 +8,22 @@
|
||||
|
||||
@chapter Prebuilt Toolset Executables
|
||||
|
||||
Precompiled toolsets are available for Linux, Cygwin, FreeBSD,
|
||||
and Solaris. These are packaged in the following formats:
|
||||
Precompiled toolsets are available for GNU/Linux and MS-Windows.
|
||||
Other hosts will need to build from source. Packaged binaries are
|
||||
in the following formats:
|
||||
|
||||
@itemize @bullet
|
||||
@item Linux - RPM
|
||||
@item GNU/Linux - RPM
|
||||
@item Cygwin - tar.bz2
|
||||
@item Solaris - tar.bz2
|
||||
@item Mingw - tar.bz2
|
||||
@end itemize
|
||||
|
||||
RPM is an acronym for the RPM Package Manager. RPM is the
|
||||
native package installer for many Linux distributions including
|
||||
RedHat, SuSE, and Fedora.
|
||||
RPM is an acronym for the RPM Package Manager. RPM is the native package
|
||||
installer for many GNU/Linux distributions including RedHat Enterprise
|
||||
Linux, Centos, SuSE, and Fedora.
|
||||
|
||||
The RTEMS Project maintains a Yum Repository which makes it quite simple
|
||||
to install and update RTEMS toolsets.
|
||||
|
||||
The prebuilt binaries are intended to be easy to install and
|
||||
the instructions are similar regardless of the host environment.
|
||||
@@ -27,18 +31,27 @@ There are a few structural issues with the packaging of the RTEMS
|
||||
Cross Toolset binaries that you need to be aware of.
|
||||
|
||||
@enumerate
|
||||
@item There are dependencies between the various packages.
|
||||
This requires that certain packages be installed before others may be.
|
||||
Some packaging formats enforce this dependency.
|
||||
@item There are dependencies between the various packages. This requires
|
||||
that certain packages be installed before others may be. Some packaging
|
||||
formats enforce this dependency.
|
||||
|
||||
@item Some packages are target CPU family independent and shared
|
||||
across all target architectures. These are referred to as
|
||||
"base" packages.
|
||||
|
||||
@item Depending upon the version of GCC as well as the development
|
||||
host and target CPU combination, pre-built supplemental packages may
|
||||
be provided for Ada (gnat), Chill, Java (gcj), Fortran (g77), and
|
||||
Objective-C (objc). These binaries are strictly optional.
|
||||
@item Pre-built GNU Binary Utilities (binutils) packages are available
|
||||
for all RTEMS targets. These include tools such as the assembler and
|
||||
linker and must be installed.
|
||||
|
||||
@item Pre-built C language packages are available which include a C
|
||||
compiler as well as the Standard C libraries for the embedded RTEMS
|
||||
targets. These must be installed.
|
||||
|
||||
@item Pre-built C++ language packages are available for most target
|
||||
architectures which includes a C++ compiler as well as the Standard C++
|
||||
libraries for the embedded RTEMS targets. These are not part of the
|
||||
minimum installation and need only be installed if the application is
|
||||
using C++.
|
||||
|
||||
@end enumerate
|
||||
|
||||
@@ -50,30 +63,222 @@ step in the process.
|
||||
|
||||
This section provides information on installing and removing RPMs.
|
||||
|
||||
@subsection Installing RPMs
|
||||
Note that RTEMS tools for multiple major versions of RTEMS can be
|
||||
installed in parallel since they are installed into different host
|
||||
directories. The tools also include the RTEMS Release Series in their
|
||||
name.
|
||||
|
||||
The following is a sample session illustrating the installation
|
||||
of a C/C++ toolset targeting the SPARC architecture.
|
||||
@subsection Locating the RPMs for your GNU/Linux Distribution
|
||||
|
||||
The RTEMS Project maintains a Yum Repository of RPMs for its
|
||||
toolsets. Whether you use Yum to install the RPMs or download and install
|
||||
them via another procedure, you will need to locate the appropriate
|
||||
set of RPMs on the RTEMS Yum Repository. The following instructions
|
||||
are generalized.
|
||||
|
||||
If your host operating system uses Yum and RPMs, then you will only have
|
||||
to download and install two RPMs by hand
|
||||
|
||||
@enumerate
|
||||
@item Point your browser at
|
||||
@uref{http://www.rtems.org/ftp/pub/rtems/linux,
|
||||
http://www.rtems.org/ftp/pub/rtems/linux}. In this directory, you
|
||||
will see a list of RTEMS major versions such as 4.11, 4.10, 4.9, etc..
|
||||
Descend into the appropriate directory for the version of RTEMS you
|
||||
are using.
|
||||
|
||||
@item Now that you are in the directory for a specific RTEMS major
|
||||
version, you will be presented with a list of GNU/Linux distributions.
|
||||
This will include options like redhat, centos, fedora, and suse.
|
||||
Select the appropriate distribution.
|
||||
|
||||
@item Now that you are in the directory for your selected distribution,
|
||||
you will be presented with a list of distribution versions for which
|
||||
RTEMS pre-built RPMs are available. Select the appropriate distribution
|
||||
version.
|
||||
|
||||
@item Now that you are in the directory for the proper version of
|
||||
your selected distribution, you will be presented with a choice of
|
||||
host architecture versions such as i386, i686, and x86_64. Select the
|
||||
appropriate version for your development computer.
|
||||
|
||||
@item At this point, you will have a long list of RPMs to select from.
|
||||
@end enumerate
|
||||
|
||||
The RTEMS Projects supports a wide variety of host OS and target
|
||||
combinations. In addition, these toolsets are specific to a particular
|
||||
RTEMS Release Series. Given the large number of possible combinations,
|
||||
the instructions use variables to indicate where versions go in the real
|
||||
package names you will use. These variable are used in the examples of
|
||||
RPM version names:
|
||||
|
||||
@itemize @bullet
|
||||
@item @code{<VERSION>} is the tool version will be found at this location
|
||||
in the RPM name. This will be a release number such as @code{2.20}
|
||||
or @code{4.4.5}.
|
||||
|
||||
@item @code{<DIST>} indicates the GNU/Linux distribution version.
|
||||
This will be a string such as @code{fc14} or @code{el6}.
|
||||
|
||||
@item @code{<ARCH>} indicates the architecture used for RPMs on your
|
||||
GNU/Linux installation. This will be a string such as @code{i386}
|
||||
or @code{x86_64}.
|
||||
|
||||
@item @code{<RPM>} indicates the RPM revision level. This will be a
|
||||
single integer.
|
||||
@end itemize
|
||||
|
||||
The tool VERSION and RPM release may vary within the set of current RPMs for a particular RTEMS Release series based upon the target architecture.
|
||||
|
||||
If you are using Yum, please continue to the next section. If you are
|
||||
downloading the RPMs to install by hand, then go to the @ref{Installing
|
||||
RPMs Without Yum} section.
|
||||
|
||||
@subsection Managing RPMs Using Yum
|
||||
|
||||
This section describes how to install and remove RTEMS Toolsets using Yum.
|
||||
|
||||
@subsubsection Installing RPMs Using Yum
|
||||
|
||||
If you are on a host operating system that uses Yum, you are fortunate because this is the one of the simplest ways to install the tools. After locating the appropriate directory on the RTEMS Yum Repository using the instructions in @ref{Locating the RPMs for your GNU/Linux Distribution}, you will need to install the following RPMs:
|
||||
|
||||
@itemize @bullet
|
||||
@item @value{RTEMSRPMPREFIX}-release-<VERSION>-<RPM>.<DIST>.noarch.rpm
|
||||
@item @value{RTEMSRPMPREFIX}-yum-conf-<VERSION>-<RPM>.<DIST>.noarch.rpm
|
||||
@end itemize
|
||||
|
||||
You can use the search within page feature of your browser to locate
|
||||
the RPMs with "release" or "yum" in their names.
|
||||
|
||||
You will need to download the RPMs above or RPM can be given the URLs for
|
||||
them and it will fetch them for you. Either way, the commands similar
|
||||
to the following will install the common or base RPMs required.
|
||||
|
||||
@example
|
||||
rpm -U @value{RTEMSRPMPREFIX}binutils-common-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}gcc-common-@value{GCCVERSION}-@value{GCCRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-@value{NEWLIBVERSION}-@value{GCCRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-@value{GCCVERSION}-@value{GCCRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-c++-@value{GCCVERSION}-@value{GCCRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}gdb-common-@value{GDBVERSION}-@value{GDBRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-@value{GDBVERSION}-@value{GDBRPMRELEASE}.i386.rpm
|
||||
rpm -U @value{RTEMSRPMPREFIX}-release-<VERSION>-<RPM>.<DIST>.noarch.rpm \
|
||||
@value{RTEMSRPMPREFIX}-yum-conf-<VERSION>-<RPM>.<DIST>.noarch.rpm
|
||||
@end example
|
||||
|
||||
Upon successful completion of the above command sequence, a
|
||||
C/C++ cross development toolset targeting the SPARC is
|
||||
installed in @code{@value{RTEMSPREFIX}}. In order to use this toolset,
|
||||
the directory @code{@value{RTEMSPREFIX}/bin} must be included in your
|
||||
PATH.
|
||||
Once these are installed, Yum knows about the RTEMS Yum repository
|
||||
for @value{RTEMSPREFIX}. This means that you can install and upgrade
|
||||
RTEMS Toolsets just like the packages provided by your distribution.
|
||||
To install complete C and C++ toolset targeting the SPARC architecture
|
||||
for the RTEMS @value{RTEMSAPI} Release series, commands similar to the
|
||||
following will be used.
|
||||
|
||||
Once you have successfully installed the RPMs for BINUTILS, GCC,
|
||||
NEWLIB, and GDB, then you may proceed directly to @ref{Building RTEMS}.
|
||||
@example
|
||||
yum install @value{RTEMSPREFIX}-auto*
|
||||
yum install @value{RTEMSPREFIX}-sparc-*
|
||||
@end example
|
||||
|
||||
The first command installs GNU autoconf and automake which are used
|
||||
by all RTEMS targets. The second command installs the complete
|
||||
sparc-@value{RTEMSPREFIX} toolset including all dependencies.
|
||||
|
||||
@subsubsection Removing RPMs Using Yum
|
||||
|
||||
The following is a sample session illustrating the removal of a C/C++
|
||||
toolset targeting the SPARC architecture.
|
||||
|
||||
@example
|
||||
yum erase @value{RTEMSRPMPREFIX}-sparc-*
|
||||
@end example
|
||||
|
||||
If this is the last target architecture for which tools are installed, then you can remove the RTEMS GNU autotools and common packages as follows:
|
||||
|
||||
@example
|
||||
yum erase @value{RTEMSRPMPREFIX}-auto*
|
||||
yum erase @value{RTEMSRPMPREFIX}-*common*
|
||||
@end example
|
||||
|
||||
NOTE: If you have installed any RTEMS BSPs, then it is likely that RPM
|
||||
will complain about not being able to remove everything. These will
|
||||
have to be removed by hand.
|
||||
|
||||
@subsection Managing RPMs Without Using Yum
|
||||
|
||||
This section describes how to install and remove RTEMS Toolsets without
|
||||
using Yum. This is NOT expected to be the norm for RPM users.
|
||||
|
||||
@subsubsection Installing RPMs Without Yum
|
||||
|
||||
The following is a sample session illustrating the installation of the
|
||||
complete C and C++ toolset targeting the SPARC architecture for the
|
||||
RTEMS @value{RTEMSAPI} Release series.
|
||||
|
||||
Since you are not using Yum, you will need to download all of the RPMs
|
||||
you will install. Alternatively, RPM can be given a URL for an RPM file
|
||||
and it will fetch it for you. Either way, the commands similar to the
|
||||
following will install the common or base RPMs required.
|
||||
|
||||
@example
|
||||
rpm -U @value{RTEMSRPMPREFIX}binutils-common-<VERSION>-<RPM>.<DIST>.noarch.rpm \
|
||||
@value{RTEMSRPMPREFIX}gcc-common-<VERSION>-<RPM>.<DIST>.noarch.rpm \
|
||||
@value{RTEMSRPMPREFIX}newlib-common-<VERSION>-<RPM>.<DIST>.noarch.rpm \
|
||||
@value{RTEMSRPMPREFIX}gdb-common-<VERSION>-<RPM>.<DIST>.noarch.rpm
|
||||
@end example
|
||||
|
||||
The above RPMs are shared across all RTEMS targets and include common
|
||||
files such as the documentation. The following illustrates how to install
|
||||
the GNU Autoconf and Automake RPMs that match your RTEMS installation.
|
||||
RTEMS uses the GNU Autotools for its configure and build infrastructure
|
||||
and you will need these if you modify the build infrastructure or check
|
||||
out RTEMS from CVS and have to bootstrap the source tree.
|
||||
|
||||
@example
|
||||
rpm -U @value{RTEMSRPMPREFIX}autoconf-<VERSION>-<RPM>.<DIST>.noarch.rpm \
|
||||
@value{RTEMSRPMPREFIX}automake-<VERSION>-<RPM>.<DIST>.noarch.rpm
|
||||
@end example
|
||||
|
||||
Now that you have installed all of the RPMs that are independent of the
|
||||
target architecture you can install the C toolset for a specific target.
|
||||
The following command will install the target architecture specific set
|
||||
of the RPMs for a C toolset including GDB.
|
||||
|
||||
@example
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-<VERSION>-<RPM>.<ARCH>.rpm \
|
||||
@value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-<VERSION>-<RPM>.<ARCH>.rpm \
|
||||
@value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-<VERSION>-<RPM>.<ARCH>.rpm \
|
||||
@value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-libgcc-<VERSION>-<RPM>.<ARCH>.rpm \
|
||||
@value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-<VERSION>-<RPM>.<ARCH>.rpm
|
||||
@end example
|
||||
|
||||
The following command illustrates how to install the C++ specific portion of the RPMs.
|
||||
|
||||
@example
|
||||
rpm -U @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-c++-<VERSION>-<RPM>.<ARCH>.rpm \
|
||||
@value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-libstd++-<VERSION>-<RPM>.<ARCH>.rpm
|
||||
@end example
|
||||
|
||||
Upon successful completion of the above command sequence, a C/C++
|
||||
cross development toolset targeting the SPARC is installed in
|
||||
@code{@value{RTEMSPREFIX}}. In order to use this toolset, the directory
|
||||
@code{@value{RTEMSPREFIX}/bin} should be at the start of your PATH.
|
||||
At this point, the tools are installed for a specific target architecture
|
||||
adn you may proceed directly to @ref{Building RTEMS}.
|
||||
|
||||
If you want to build RTEMS for multiple target architectures, you will
|
||||
need to install the target specific portion of the RPMs for each target.
|
||||
|
||||
@subsubsection Removing RPMs Without Using Yum
|
||||
|
||||
The following is a sample session illustrating the removal of a C/C++
|
||||
toolset targeting the SPARC architecture.
|
||||
|
||||
@example
|
||||
rpm -e `rpm -qa | grep @value{RTEMSRPMPREFIX}-sparc-`
|
||||
@end example
|
||||
|
||||
If this is the last target architecture for which tools are installed, then you can remove the RTEMS GNU autotools and common packages as follows:
|
||||
|
||||
@example
|
||||
rpm -e `rpm -qa | grep @value{RTEMSRPMPREFIX}-auto`
|
||||
rpm -e `rpm -qa | grep @value{RTEMSRPMPREFIX} | grep common`
|
||||
@end example
|
||||
|
||||
NOTE: If you have installed any RTEMS BSPs, then it is likely that RPM
|
||||
will complain about not being able to remove everything. These will
|
||||
have to be removed by hand.
|
||||
|
||||
@subsection Determining Which RTEMS RPMs are Installed
|
||||
|
||||
@@ -81,32 +286,14 @@ The following command will report which RTEMS RPMs are currently
|
||||
installed:
|
||||
|
||||
@example
|
||||
rpm -q -g @value{RTEMSRPMGROUP}
|
||||
rpm -qa | grep @value{RTEMSAPI}
|
||||
@end example
|
||||
|
||||
@subsection Removing RPMs
|
||||
|
||||
The following is a sample session illustrating the removal
|
||||
of a C/C++ toolset targeting the SPARC architecture.
|
||||
|
||||
@example
|
||||
rpm -e @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb
|
||||
rpm -e @value{RTEMSRPMPREFIX}gdb-common
|
||||
rpm -e @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-c++
|
||||
rpm -e @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc
|
||||
rpm -e @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib
|
||||
rpm -e @value{RTEMSRPMPREFIX}gcc-common
|
||||
rpm -e @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils
|
||||
rpm -e @value{RTEMSRPMPREFIX}binutils-common
|
||||
@end example
|
||||
|
||||
NOTE: If you have installed any RTEMS BSPs, then it is likely that
|
||||
RPM will complain about not being able to remove everything.
|
||||
|
||||
@section Zipped Tar Files
|
||||
|
||||
This section provides information on installing and removing
|
||||
Zipped Tar Files (e.g .tar.gz or .tar.bz2).
|
||||
The tool binaries for some hosts are provided as compressed tar files.
|
||||
This section provides information on installing and removing Zipped Tar
|
||||
Files (e.g .tar.gz or .tar.bz2).
|
||||
|
||||
@subsection Installing Zipped Tar Files
|
||||
|
||||
@@ -117,13 +304,13 @@ files compressed with GNU Zip (gzip):
|
||||
|
||||
@example
|
||||
cd /
|
||||
tar xzf @value{RTEMSRPMPREFIX}binutils-common-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}gcc-common-@value{GCCVERSION}-@value{GCCRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-@value{GCCVERSION}-@value{GCCRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-@value{NEWLIBVERSION}-@value{GCCRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}gdb-common-@value{GDBVERSION}-@value{GDBRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-@value{GDBVERSION}-@value{GDBRPMRELEASE}.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}binutils-common-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}gcc-common-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}gdb-common-<VERSION>-<RPM>.tar.gz
|
||||
tar xzf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-<VERSION>-<RPM>.tar.gz
|
||||
@end example
|
||||
|
||||
The following command set is the equivalent command sequence
|
||||
@@ -132,13 +319,13 @@ GNU BZip (bzip2):
|
||||
|
||||
@example
|
||||
cd /
|
||||
tar xjf @value{RTEMSRPMPREFIX}binutils-common-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-@value{BINUTILSVERSION}-@value{BINUTILSRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}gcc-common-@value{GCCVERSION}-@value{GCCRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-@value{NEWLIBVERSION}-@value{GCCRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-@value{GCCVERSION}-@value{GCCRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}gdb-common-@value{GDBVERSION}-@value{GDBRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-@value{GDBVERSION}-@value{GDBRPMRELEASE}.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}binutils-common-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-binutils-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}gcc-common-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-newlib-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gcc-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}gdb-common-<VERSION>-<RPM>.tar.bz2
|
||||
tar xjf @value{RTEMSRPMPREFIX}sparc-rtems@value{RTEMSAPI}-gdb-<VERSION>-<RPM>.tar.bz2
|
||||
@end example
|
||||
|
||||
Upon successful completion of the above command sequence, a
|
||||
|
||||
1102
doc/started/buildc.t
1102
doc/started/buildc.t
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
||||
@c
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -11,25 +10,23 @@
|
||||
|
||||
@section Obtain the RTEMS Source Code
|
||||
|
||||
This section provides pointers to the RTEMS source code and
|
||||
Hello World example program. These files should be
|
||||
placed in your @code{archive} directory.
|
||||
This section provides pointers to the RTEMS source code and example
|
||||
programs. These files should be placed in your @code{archive} directory.
|
||||
The set of tarballs which comprise an RTEMS release is placed in a
|
||||
directory whose name if the release on the ftp site. The RTEMS ftp site
|
||||
is accessible via both the ftp and http protocols at the following URLs:
|
||||
|
||||
@itemize @bullet
|
||||
@item @uref{http://www.rtems.org/ftp/pub/rtems,http://www.rtems.org/ftp/pub/rtems}
|
||||
@item @uref{ftp://www.rtems.org/pub/rtems,ftp://www.rtems.org/pub/rtems}
|
||||
@end itemize
|
||||
|
||||
@subheading @value{RTEMSVERSION}
|
||||
@example
|
||||
FTP Site: @value{RTEMSFTPSITE}
|
||||
Directory: @value{RTEMSFTPDIR}/@value{VERSION}
|
||||
File: @value{RTEMSTAR}
|
||||
URL: @uref{ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/@value{VERSION}/@value{RTEMSTAR},,ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/@value{VERSION}/@value{RTEMSTAR}}
|
||||
@end example
|
||||
|
||||
@subheading RTEMS Examples including Hello World
|
||||
@example
|
||||
FTP Site: @value{RTEMSFTPSITE}
|
||||
Directory: @value{RTEMSFTPDIR}/@value{VERSION}
|
||||
File: examples-@value{VERSION}.tar.bz2
|
||||
URL: @uref{ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/@value{VERSION}/examples-@value{VERSION}.tar.bz2,,ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/@value{VERSION}/examples-@value{VERSION}.tar.bz2}
|
||||
@end example
|
||||
Associated with each RTEMS Release is a set of example programs.
|
||||
Prior to the 4.10 Release Series, these examples were in a "Class
|
||||
Examples" and an "Examples" collection. Beginning with the 4.10 Release
|
||||
Series, these examples collections were merged and other examples added.
|
||||
This new collection is called "Examples V2". It is contained in the file
|
||||
@code{examples-v2-<VERSION>.tar.bz2>} within the RTEMS release directory.
|
||||
|
||||
@c
|
||||
@c Unarchive the RTEMS Source
|
||||
@@ -42,28 +39,29 @@ tools directory:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xjf ../archive/@value{RTEMSTAR}
|
||||
tar xjf ../archive/rtems-@value{RTEMSAPI}.<VERSION>.tar.bz2
|
||||
@end example
|
||||
|
||||
This creates the directory @value{RTEMSUNTAR}.
|
||||
|
||||
This creates the directory rtems-@value{RTEMSAPI}.<VERSION>
|
||||
|
||||
@section Add <INSTALL_POINT>/bin to Executable PATH
|
||||
|
||||
In order to compile RTEMS, you must have the cross compilation toolset
|
||||
in your search path. It is important to have the RTEMS toolset first
|
||||
in your path to ensure that you are using the intended version of all
|
||||
tools. The following command prepends the directory
|
||||
where the tools were installed in a previous step:
|
||||
tools. The following command prepends the directory where
|
||||
the tools were installed in a previous step. If you are using
|
||||
binaries provided by the RTEMS Project, the <INSTALL_POINT> will be
|
||||
@code{/opt/rtems-@value{RTEMSAPI}}
|
||||
|
||||
@example
|
||||
export PATH=<INSTALL_POINT>/bin:$@{PATH@}
|
||||
@end example
|
||||
|
||||
NOTE: The above command is in Bourne shell (@code{sh}) syntax and
|
||||
should work with the Korn (@code{ksh}) and GNU Bourne Again Shell
|
||||
(@code{bash}). It will not work with the C Shell (@code{csh}) or
|
||||
derivatives of the C Shell.
|
||||
@b{NOTE:} The above command is in Bourne shell (@code{sh}) syntax and should
|
||||
work with the Korn (@code{ksh}) and GNU Bourne Again Shell (@code{bash}).
|
||||
It will not work with the C Shell (@code{csh}) or derivatives of the
|
||||
C Shell.
|
||||
|
||||
@section Verifying the Operation of the Cross Toolset
|
||||
|
||||
@@ -83,14 +81,14 @@ int f( int x )
|
||||
Then assemble the file using a command similar to the following:
|
||||
|
||||
@example
|
||||
m68k-rtems-gcc -v -S f.c
|
||||
m68k-rtems@value{RTEMSAPI}-gcc -v -S f.c
|
||||
@end example
|
||||
|
||||
Where @code{m68k-rtems-gcc} should be changed to match the installed
|
||||
name of your cross compiler. The result of this command will be
|
||||
a sequence of output showing where the cross-compiler searched for
|
||||
and found its subcomponents. Verify that these paths correspond
|
||||
to your <INSTALL_POINT>.
|
||||
Where @code{m68k} should be changed to match the target architecture
|
||||
of your cross compiler. The result of this command will be a sequence
|
||||
of output showing where the cross-compiler searched for and found
|
||||
its subcomponents. Verify that these paths correspond to your
|
||||
<INSTALL_POINT>.
|
||||
|
||||
Look at the created file @code{f.s} and verify that it is in fact
|
||||
for your target processor.
|
||||
@@ -99,17 +97,16 @@ Then try to compile the file @code{f.c} directly to object code
|
||||
using a command like the following:
|
||||
|
||||
@example
|
||||
m68k-rtems-gcc -v -c f.c
|
||||
m68k-rtems@code{RTEMSAPI}-gcc -v -c f.c
|
||||
@end example
|
||||
|
||||
If this produces messages that indicate the assembly code is
|
||||
not valid, then it is likely that you have fallen victim to
|
||||
one of the problems described in
|
||||
@ref{Error Message Indicates Invalid Option to Assembler}
|
||||
Don't feel bad about this, one of the most common installation errors
|
||||
is for the cross-compiler not to be able to find the cross assembler
|
||||
and default to using the native @code{as}. This can result in very confusing
|
||||
error messages.
|
||||
If this produces messages that indicate the assembly code is not valid,
|
||||
then it is likely that you have fallen victim to one of the problems
|
||||
described in @ref{Error Message Indicates Invalid Option to Assembler}
|
||||
Please do not feel bad about this and do not give up, one of the most
|
||||
common installation errors is for the cross-compiler not to be able
|
||||
to find the cross assembler and default to using the native @code{as}.
|
||||
This can result in very confusing error messages.
|
||||
|
||||
@section Building RTEMS for a Specific Target and BSP
|
||||
|
||||
@@ -130,19 +127,20 @@ This section describes how to build RTEMS.
|
||||
@subsection Using the RTEMS configure Script Directly
|
||||
|
||||
Make a build directory under tools and build the RTEMS product in this
|
||||
directory. The @code{../@value{RTEMSUNTAR}/configure}
|
||||
command has numerous command line
|
||||
arguments. These arguments are discussed in detail in documentation that
|
||||
comes with the RTEMS distribution. A full list of these arguments can be
|
||||
obtained by running @code{../@value{RTEMSUNTAR}/configure --help}
|
||||
If you followed the procedure
|
||||
described in the section @ref{Unarchive the RTEMS Source}, these
|
||||
configuration options can be found in the file
|
||||
tools/@value{RTEMSUNTAR}/README.configure.
|
||||
directory. The @code{../rtems-@value{RTEMSAPI}.<VERSION>/configure}
|
||||
command has numerous command line arguments. These arguments are
|
||||
discussed in detail in documentation that comes with the RTEMS
|
||||
distribution. A full list of these arguments can be obtained by running
|
||||
@code{../rtems-@value{RTEMSAPI}.<VERSION>/configure --help} If you
|
||||
followed the procedure described in the section @ref{Unarchive the
|
||||
RTEMS Source}, these configuration options can be found in the file
|
||||
tools/rtems-@value{RTEMSAPI}.<VERSION>/README.configure.
|
||||
|
||||
@b{NOTE}: The GNAT/RTEMS run-time implementation is based on the POSIX
|
||||
API. Thus the RTEMS configuration for a GNAT/RTEMS environment MUST
|
||||
include the @code{--enable-posix} flag.
|
||||
API and the GNAT/RTEMS run-time cannot be compiled with networking
|
||||
disabled. Your application does not have to use networking but it must
|
||||
be enabled. Thus the RTEMS configuration for a GNAT/RTEMS environment
|
||||
MUST include the @code{--enable-posix --enable-networking} flag.
|
||||
|
||||
The following shows the command sequence required to configure,
|
||||
compile, and install RTEMS with the POSIX API, FreeBSD TCP/IP,
|
||||
@@ -152,26 +150,26 @@ the @code{BOARD_SUPPORT_PACKAGE} board.
|
||||
@example
|
||||
mkdir build-rtems
|
||||
cd build-rtems
|
||||
../@value{RTEMSUNTAR}/configure --target=<TARGET_CONFIGURATION> \
|
||||
../rtems-@value{RTEMSAPI}.VERSION/configure --target=<TARGET_CONFIGURATION> \
|
||||
--disable-posix --disable-networking --disable-cxx \
|
||||
--enable-rtemsbsp=<BOARD_SUPPORT_PACKAGE>\
|
||||
--enable-rtemsbsp=<BSP>\
|
||||
--prefix=<INSTALL_POINT>
|
||||
make all install
|
||||
@end example
|
||||
|
||||
Where the list of currently supported <TARGET_CONFIGURATION>'s and
|
||||
<BOARD_SUPPORT_PACKAGE>'s can be found in
|
||||
tools/@value{RTEMSUNTAR}/README.configure.
|
||||
<TARGET> is of the form <CPU>-rtems@value{RTEMSAPI} and the list of
|
||||
currently supported <TARGET> configuration's and <BSP>'s can be found in
|
||||
@code{tools/RTEMS-@value{RTEMSAPI}.<VERSION>/README.configure}.
|
||||
|
||||
<INSTALL_POINT> is typically the installation point for the
|
||||
tools and defaults to @code{@value{RTEMSPREFIX}}.
|
||||
<INSTALL_POINT> is typically the installation point for the tools and
|
||||
defaults to @code{/opt/rtems-@value{RTEMSAPI}}.
|
||||
|
||||
BSP is a supported BSP for the selected CPU family. The list of
|
||||
supported BSPs may be found in the file
|
||||
tools/@value{RTEMSUNTAR}/README.configure
|
||||
in the RTEMS source tree. If the BSP parameter is not specified,
|
||||
then all supported BSPs for the selected CPU family will be built.
|
||||
BSP is a supported BSP for the selected CPU family.
|
||||
The list of supported BSPs may be found in the file
|
||||
@code{tools/rtems-@value{RTEMSAPI}.<VERSION>/README.configure} in the
|
||||
RTEMS source tree. If the BSP parameter is not specified, then all
|
||||
supported BSPs for the selected CPU family will be built.
|
||||
|
||||
@b{NOTE:} The POSIX API must be enabled to use GNAT/RTEMS.
|
||||
@b{NOTE:} The POSIX API and networking must be enabled to use GNAT/RTEMS.
|
||||
|
||||
@b{NOTE:} The @code{make} utility used should be GNU make.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -18,7 +18,7 @@ essentials for performing a setup of the following items:
|
||||
@itemize @bullet
|
||||
@item GNU Cross Compilation Tools for RTEMS on your build-host system
|
||||
@item RTEMS OS for the target
|
||||
@item GDB Debugger
|
||||
@item GNU Debugger (GDB)
|
||||
@end itemize
|
||||
|
||||
The remainder of this chapter provides background information on real-time
|
||||
@@ -159,31 +159,17 @@ http://www.gnu.org/manual/manual.html}
|
||||
|
||||
@uref{mailto:@value{RTEMSUSERS},@value{RTEMSUSERS}}
|
||||
|
||||
This mailing list is dedicated to the discussion of issues related
|
||||
to RTEMS, including GNAT/RTEMS. If you have questions about RTEMS,
|
||||
wish to make suggestions, or just want to pick up hints, this is a
|
||||
good list to monitor. Subscribe by sending an empty mail message to
|
||||
@uref{mailto:@value{RTEMSUSERSSUBSCRIBE},@value{RTEMSUSERSSUBSCRIBE}}.
|
||||
Messages sent to @uref{mailto:@value{RTEMSUSERS},@value{RTEMSUSERS}}
|
||||
are posted to the list.
|
||||
|
||||
@subsection CrossGCC Mailing List
|
||||
|
||||
@uref{mailto:crossgcc@@sources.redhat.com,crossgcc@@sources.redhat.com}
|
||||
|
||||
This mailing list is dedicated to the use of the GNU tools in
|
||||
cross development environments. Most of the discussions
|
||||
focus on embedded issues. Information on subscribing
|
||||
to this mailing list is included in the
|
||||
@uref{http://www.objsw.com/CrossGCC/,CrossGCC FAQ}.
|
||||
|
||||
The CrossGCC FAQ and Wiki are are available
|
||||
at @uref{http://www.billgatliff.com,http://www.billgatliff.com}.
|
||||
This is the primary mailing list for the discussion of issues
|
||||
related to RTEMS, including GNAT/RTEMS. If you have questions
|
||||
about RTEMS, wish to make suggestions, track development efforts,
|
||||
or just want to pick up hints, this is a good list to monitor.
|
||||
If you would like to browse the thousands of messages in the fifteen
|
||||
year archive of the mailing list or subscribe to it, please visit
|
||||
@uref{http://www.rtems.org/mailman,http://www.rtems.org/mailman} for
|
||||
more information,
|
||||
|
||||
@subsection GCC Mailing Lists
|
||||
|
||||
|
||||
The GCC Project is hosted at @uref{http://gcc.gnu.org,http://gcc.gnu.org}.
|
||||
They maintain multiple mailing lists that are described at the web site
|
||||
along with subscription information.
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
@c
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -9,77 +8,70 @@
|
||||
|
||||
@chapter Where To Go From Here
|
||||
|
||||
At this point, you should have successfully installed a
|
||||
GNU Cross Compilation Tools for RTEMS on your host system
|
||||
as well as the RTEMS OS for the target host. You should
|
||||
have successfully linked the "hello world" program. You
|
||||
may even have downloaded the executable to that target
|
||||
and run it. What do you do next?
|
||||
At this point, you should have successfully installed a GNU Cross
|
||||
Compilation Tools for RTEMS on your host system as well as the RTEMS OS
|
||||
for the target host. You should have successfully linked the "hello
|
||||
world" program. You may even have downloaded the executable to that
|
||||
target and run it. What do you do next?
|
||||
|
||||
The answer is that it depends. You may be interested in
|
||||
writing an application that uses one of the multiple
|
||||
APIs supported by RTEMS. You may need to investigate the
|
||||
network or filesystem support in RTEMS. The common
|
||||
thread is that you are largely finished with this
|
||||
manual and ready to move on to others.
|
||||
The answer is that it depends. You may be interested in writing an
|
||||
application that uses one of the multiple APIs supported by RTEMS.
|
||||
You may need to investigate the network or filesystem support in RTEMS.
|
||||
The common thread is that you are largely finished with this manual and
|
||||
ready to move on to others.
|
||||
|
||||
Whether or not you decide to dive in now and write
|
||||
application code or read some documentation first,
|
||||
this chapter is for you. The first section provides
|
||||
a quick roadmap of some of the RTEMS documentation.
|
||||
The next section provides a brief overview of the
|
||||
RTEMS application structure.
|
||||
Whether or not you decide to dive in now and write application code or
|
||||
read some documentation first, this chapter is for you. The first section
|
||||
provides a quick roadmap of some of the RTEMS documentation. The next
|
||||
section provides a brief overview of the RTEMS application structure.
|
||||
|
||||
@section Documentation Overview
|
||||
|
||||
When writing RTEMS applications, you should find the
|
||||
following manuals useful because they define the
|
||||
calling interface to many of the services provided
|
||||
by RTEMS:
|
||||
When writing RTEMS applications, you should find the following manuals
|
||||
useful because they define the calling interface to many of the services
|
||||
provided by RTEMS:
|
||||
|
||||
@itemize @bullet
|
||||
@item @b{RTEMS Applications C User's Guide} describes the
|
||||
Classic RTEMS API based on the RTEID specification.
|
||||
|
||||
@item @b{RTEMS POSIX API User's Guide} describes the
|
||||
RTEMS POSIX API that is based on the POSIX 1003.1b API.
|
||||
@item @b{RTEMS POSIX API User's Guide} describes the RTEMS POSIX API
|
||||
that is based on the POSIX 1003.1b API. If there is any place where
|
||||
this manual is thin or unclear, please refer to the OpenGroup Single
|
||||
UNIX Specification. RETEMS tracks that specification for future POSIX
|
||||
revisions.
|
||||
|
||||
@item @b{RTEMS ITRON 3.0 API User's Guide} describes
|
||||
the RTEMS implementation of the ITRON 3.0 API.
|
||||
|
||||
@item @b{RTEMS Network Supplement} provides information
|
||||
on the network services provided by RTEMS.
|
||||
@item @b{RTEMS Network Supplement} provides information on the network
|
||||
services provided by RTEMS. RTEMS provides a BSD sockets programming
|
||||
interface so any network programming book should be helpful.
|
||||
|
||||
@end itemize
|
||||
|
||||
In addition, the following manuals from the GNU Cross
|
||||
Compilation Toolset include information on run-time services
|
||||
available.
|
||||
In addition, the following manuals from the GNU Cross Compilation Toolset
|
||||
include information on run-time services available.
|
||||
|
||||
@itemize @bullet
|
||||
@item @b{Cygnus C Support Library} describes the Standard
|
||||
C Library functionality provided by Newlib's libc.
|
||||
@item @b{Cygnus C Support Library} describes the Standard C Library
|
||||
functionality provided by Newlib's libc.
|
||||
|
||||
@item @b{Cygnus C Math Library} describes the Standard
|
||||
C Math Library functionality provided by Newlib's libm.
|
||||
@item @b{Cygnus C Math Library} describes the Standard C Math Library
|
||||
functionality provided by Newlib's libm.
|
||||
|
||||
@end itemize
|
||||
|
||||
Finally, the RTEMS FAQ and mailing list archives are available
|
||||
at @uref{@value{RTEMSHTTPURL}}.
|
||||
Finally, the RTEMS FAQ, Wiki, and mailing list archives are available
|
||||
at @uref{http://www.rtems.org, http://www.rtems.org}.
|
||||
|
||||
There is a wealth of documentation available for RTEMS and
|
||||
the GNU tools supporting it. If you run into something
|
||||
that is not clear or missing, bring it to our attention.
|
||||
There is a wealth of documentation available for RTEMS and the GNU tools
|
||||
supporting it. If you run into something that is not clear or missing,
|
||||
bring it to our attention.
|
||||
|
||||
Also, some of the RTEMS documentation is still under
|
||||
construction. If you would like to contribute to this
|
||||
effort, please contact the RTEMS Team at
|
||||
@uref{mailto:@value{RTEMSUSERS}, @value{RTEMSUSERS}}.
|
||||
If you are interested in sponsoring the development of a new
|
||||
feature, BSP, device driver, port of an existing library, etc.,
|
||||
please contact one of the RTEMS Service Providers listed
|
||||
at @uref{@value{RTEMSHTTPURL}/support.html,@value{RTEMSHTTPURL}/support.html}.
|
||||
Also, some of the RTEMS documentation is still under construction.
|
||||
If you would like to contribute to this effort, please contact the
|
||||
RTEMS Team at @uref{mailto:@value{RTEMSUSERS}, @value{RTEMSUSERS}}.
|
||||
If you are interested in sponsoring the development of a new feature,
|
||||
BSP, device driver, port of an existing library, etc., please contact
|
||||
@uref{mailto:sales@@oarcorp.com, sales@@oarcorp.com}.
|
||||
|
||||
@section Writing an Application
|
||||
|
||||
@@ -89,36 +81,30 @@ RTEMS provides a single process, multi-threaded run-time
|
||||
environment. However there are two important things that are
|
||||
different from a standard UNIX hosted program.
|
||||
|
||||
First, the application developer must provide configuration
|
||||
information for RTEMS. This configuration information
|
||||
includes limits on the maximum number of various OS resources
|
||||
available and networking configuration among other things.
|
||||
See the @b{Configuring a System} in the
|
||||
@b{RTEMS Applications C User's Guide} for more details.
|
||||
First, the application developer must provide configuration information
|
||||
for RTEMS. This configuration information includes limits on the maximum
|
||||
number of various OS resources available and networking configuration
|
||||
among other things. See the @b{Configuring a System} in the @b{RTEMS
|
||||
Applications C User's Guide} for more details.
|
||||
|
||||
Second, RTEMS applications may or may not start at
|
||||
@code{main()}. Applications begin execution at
|
||||
one or more user configurable application
|
||||
initialization tasks or threads. It is possible
|
||||
to configure an application to start with a
|
||||
single thread that whose entry point is @code{main()}.
|
||||
Second, RTEMS applications may or may not start at @code{main()}.
|
||||
Applications begin execution at one or more user configurable application
|
||||
initialization tasks or threads. It is possible to configure an
|
||||
application to start with a single thread that whose entry point is
|
||||
@code{main()}.
|
||||
|
||||
Each API supported by RTEMS (Classic, POSIX, and ITRON)
|
||||
allows the user to configure a set of one or more tasks
|
||||
that are created and started automatically
|
||||
during RTEMS initialization. The RTEMS Automatic
|
||||
Configuration Generation (@code{confdefs.h}) scheme can be
|
||||
used to easily generate the configuration information for
|
||||
an application that starts with a single initialization task.
|
||||
By convention, unless overridden, the default name of the
|
||||
initialization task varies based up API.
|
||||
Each API supported by RTEMS (Internal, Classic, and POSIX) allows
|
||||
the user to configure a set of one or more tasks that are created and
|
||||
started automatically during RTEMS initialization. The RTEMS Automatic
|
||||
Configuration Generation (@code{confdefs.h}) scheme can be used to easily
|
||||
generate the configuration information for an application that starts
|
||||
with a single initialization task. By convention, unless overridden,
|
||||
the default name of the initialization task varies based up API.
|
||||
|
||||
@itemize @bullet
|
||||
@item @code{Init} - single Classic API Initialization Task
|
||||
|
||||
@item @code{POSIX_Init} - single POSIX API Initialization Thread
|
||||
|
||||
@item @code{ITRON_Init} - single ITRON API Initialization Task
|
||||
@end itemize
|
||||
|
||||
Regardless of the API used, when the initialization task executes,
|
||||
@@ -134,17 +120,15 @@ file @code{init.c} usually contains the initialization task. Although
|
||||
not required, in most of the examples, the initialization task
|
||||
completes by deleting itself.
|
||||
|
||||
As you begin to write RTEMS application code, you may be confused
|
||||
by the range of alternatives. Supporting multiple tasking
|
||||
APIs can make the choices confusing. Many application groups
|
||||
writing new code choose one of the APIs as their primary API
|
||||
and only use services from the others if nothing comparable
|
||||
is in their preferred one. However, the support for multiple
|
||||
APIs is a powerful feature when integrating code from multiple
|
||||
sources. You can write new code using POSIX services and
|
||||
still use services written in terms of the other APIs.
|
||||
Moreover, by adding support for yet another API, one could
|
||||
provide the infrastructure required to migrate from a
|
||||
legacy RTOS with a non-standard API to an API like POSIX.
|
||||
As you begin to write RTEMS application code, you may be confused by the
|
||||
range of alternatives. Supporting multiple tasking APIs can make the
|
||||
choices confusing. Many application groups writing new code choose one
|
||||
of the APIs as their primary API and only use services from the others if
|
||||
nothing comparable is in their preferred one. However, the support for
|
||||
multiple APIs is a powerful feature when integrating code from multiple
|
||||
sources. You can write new code using POSIX services and still use
|
||||
services written in terms of the other APIs. Moreover, by adding support
|
||||
for yet another API, one could provide the infrastructure required to
|
||||
migrate from a legacy RTOS with a non-standard API to an API like POSIX.
|
||||
|
||||
|
||||
|
||||
103
doc/started/nt.t
103
doc/started/nt.t
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -15,31 +15,24 @@ This chapter was originally written by
|
||||
@uref{mailto:g_montel@@yahoo.com, Geoffroy Montel <g_montel@@yahoo.com>}
|
||||
with input from
|
||||
@uref{mailto:<D.J@@fiddes.surfaid.org>, David Fiddes <D.J@@fiddes.surfaid.org>}.
|
||||
It was based upon his successful but unnecessarily
|
||||
painful efforts with Cygwin beta versions.
|
||||
Cygwin and this chapter have been updated multiple times since
|
||||
those early days although their pioneering efforts
|
||||
and input is still greatly appreciated.
|
||||
It was based upon his successful but unnecessarily painful efforts with
|
||||
Cygwin beta versions. Cygwin and this chapter have been updated multiple
|
||||
times since those early days although their pioneering efforts and input
|
||||
is still greatly appreciated.
|
||||
|
||||
@section Microsoft Windows Version Requirements
|
||||
|
||||
RTEMS users report fewer problems when using Microsoft
|
||||
Windows NT, 2000, or XP. Although, the open source tools
|
||||
that are used in RTEMS development do execute on Windows 95,
|
||||
98, or ME, they tend to be more stable when used with
|
||||
the modern Windows variants.
|
||||
RTEMS users report fewer problems when using Microsoft Windows XP or newer.
|
||||
|
||||
@section Cygwin
|
||||
|
||||
For RTEMS development, the recommended approach is to use
|
||||
Cygwin 1.0 or later. Cygwin is available from
|
||||
@uref{http://sources.redhat.com/cygwin, http://sources.redhat.com/cygwin}
|
||||
Recent versions of Cygwin are vastly improved over the beta
|
||||
versions. Most of the oddities, instabilities, and performance
|
||||
problems have been resolved. The installation procedure
|
||||
is much simpler. However, there are a handful of issues
|
||||
that remain to successfully use Cygwin as an RTEMS development
|
||||
environment.
|
||||
For RTEMS development, the recommended approach is to use Cygwin. Cygwin
|
||||
is available from @uref{http://www.cygwin.com, http://www.cygwin.com} .
|
||||
The primary issues reported by users of Cygwin is that it is slower
|
||||
on the same hardware than a native GNU/Linux installation and strange
|
||||
issues over carriage return/line feed inconsistencies between UNIX and
|
||||
Windows environments. However, there are a handful of other issues that
|
||||
may turn up when using Cygwin as an RTEMS development environment.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@@ -79,18 +72,17 @@ shell scripts properly.
|
||||
filesystem (e.g. mounted with the @code{-b} option). Otherwise,
|
||||
many confusing errors will result.
|
||||
|
||||
@item A user has reported that they needed
|
||||
to set CYGWIN=ntsec for chmod to work correctly, but had to set
|
||||
CYGWIN=nontsec for compile to work properly (otherwise there were
|
||||
complaints about permissions on a temporary file).
|
||||
@item A user has reported that they needed to set @code{CYGWIN=ntsec}
|
||||
for chmod to work correctly, but had to set @code{CYGWIN=nontsec}
|
||||
for compile to work properly (otherwise there were complaints about
|
||||
permissions on a temporary file).
|
||||
|
||||
@item If you want to build the tools from source, you have the
|
||||
same options as UNIX users.
|
||||
|
||||
@item You may have to uncompress archives during this
|
||||
process. You must @b{NOT} use @code{WinZip} or
|
||||
@code{PKZip}. Instead the un-archiving process uses
|
||||
the GNU @code{zip} and @code{tar} programs as shown below:
|
||||
@item You may have to uncompress archives during this process. You must
|
||||
@b{NOT} use @code{WinZip} or @code{PKZip}. Instead the un-archiving
|
||||
process uses the GNU @code{zip} and @code{tar} programs as shown below:
|
||||
|
||||
@example
|
||||
tar -xzvf archive.tgz
|
||||
@@ -102,20 +94,18 @@ tar -xzvf archive.tgz
|
||||
|
||||
@section Text Editor
|
||||
|
||||
You absolutely have to use a text editor which can
|
||||
save files with Unix format. So do @b{NOT} use Notepad
|
||||
or Wordpad! There are a number of editors
|
||||
freely available that can be used.
|
||||
You absolutely have to use a text editor which can save files with Unix
|
||||
format. So do @b{NOT} use Notepad or Wordpad! There are a number of
|
||||
editors freely available that can be used.
|
||||
|
||||
@itemize @bullet
|
||||
@item @b{VIM} (@b{Vi IMproved}) is available from
|
||||
@uref{http://www.vim.org/,http://www.vim.org/}.
|
||||
This editor has the very handy ability to easily
|
||||
read and write files in either DOS or UNIX style.
|
||||
@uref{http://www.vim.org/,http://www.vim.org/}. This editor has the very
|
||||
handy ability to easily read and write files in either DOS or UNIX style.
|
||||
|
||||
@item @b{GNU Emacs} is available for many platforms
|
||||
including MS-Windows. The official homepage
|
||||
is @uref{http://www.gnu.org/software/emacs/emacs.html,
|
||||
including MS-Windows. The official homepage is
|
||||
@uref{http://www.gnu.org/software/emacs/emacs.html,
|
||||
http://www.gnu.org/software/emacs/emacs.html}.
|
||||
The GNU Emacs on Windows NT and Windows 95/98 FAQ is at
|
||||
@uref{http://www.gnu.org/software/emacs/windows/ntemacs.html,
|
||||
@@ -123,11 +113,10 @@ http://www.gnu.org/software/emacs/windows/ntemacs.html}.
|
||||
|
||||
@end itemize
|
||||
|
||||
If you do accidentally end up with files
|
||||
having MS-DOS style line termination, then you
|
||||
may have to convert them to Unix format for some
|
||||
Cygwin programs to operate on them properly. The
|
||||
program @code{dos2unix} can be used to put them
|
||||
If you do accidentally end up with files having MS-DOS style line
|
||||
termination, then you may have to convert them to Unix format for some
|
||||
Cygwin programs to operate on them properly. The program @code{dos2unix}
|
||||
can be used to put them
|
||||
back into Unix format as shown below:
|
||||
|
||||
@example
|
||||
@@ -137,22 +126,16 @@ Dos2Unix: Cleaning file XYZ ...
|
||||
|
||||
@section System Requirements
|
||||
|
||||
Although the finished cross-compiler is fairly easy on resources,
|
||||
building it can take a significant amount of processing power and
|
||||
disk space.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item The faster the CPU, the better. The tools and Cygwin can be
|
||||
@b{very} CPU hungry.
|
||||
|
||||
@item The more RAM, the better. Reports are that when building GCC
|
||||
and GDB, peak memory usage can exceed 256 megabytes.
|
||||
|
||||
@item The more disk space, the better. You need more if you are building
|
||||
the GNU tools and the amount of disk space for binaries is obviously
|
||||
directly dependent upon the number of CPUs you have cross toolsets
|
||||
installed for.
|
||||
|
||||
@end itemize
|
||||
Although the finished cross-compiler is fairly easy on resources, building
|
||||
it can take a significant amount of processing power and disk space.
|
||||
Luckily, desktop computers have progressed very far since this guide
|
||||
was originally written so it is unlikely you will have any problems.
|
||||
Just do not use an old cast-off machine with < 1 GB RAM and a 1 Ghz CPU.
|
||||
Unless, of course, you enjoy waiting for things to complete.
|
||||
|
||||
The more disk space, the better. You need more if you are building the
|
||||
GNU tools and the amount of disk space for binaries is obviously directly
|
||||
dependent upon the number of CPUs you have cross toolsets installed for.
|
||||
In addition to the disk space requirements documented earlier for tool
|
||||
building, you will also have to have enough space to install the Cygwin
|
||||
environment.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -21,19 +21,18 @@ assessing the amount of disk space required for your installation:
|
||||
+------------------------------------+--------------------------+
|
||||
| Component | Disk Space Required |
|
||||
+------------------------------------+--------------------------+
|
||||
| archive directory | 55 Mbytes |
|
||||
| tools src unarchived | 350 Mbytes |
|
||||
| each individual build directory | up to 750 Mbytes |
|
||||
| each installation directory | 20-200 Mbytes |
|
||||
| archive directory | 120 Mbytes |
|
||||
| tools src unarchived | 1400 Mbytes |
|
||||
| each individual build directory | up to 2500 Mbytes |
|
||||
| each installation directory | 900 Mbytes |
|
||||
+------------------------------------+--------------------------+
|
||||
@end example
|
||||
|
||||
It is important to understand that the above requirements only address
|
||||
the GNU C/C++ Cross Compiler Tools themselves. Adding additional
|
||||
languages such as Fortran or Objective-C can increase the size
|
||||
of the build and installation directories. Also, the unarchived
|
||||
source and build directories can be removed after the tools are
|
||||
installed.
|
||||
It is important to understand that the above requirements only address the
|
||||
GNU C/C++ Cross Compiler Tools themselves. Adding additional languages
|
||||
such as Ada or Go can increase the size of the build and installation
|
||||
directories. Also, the unarchived source and build directories can be
|
||||
removed after the tools are installed.
|
||||
|
||||
After the tools themselves are installed, RTEMS must be built
|
||||
and installed for each Board Support Package that you wish
|
||||
@@ -46,8 +45,11 @@ will tend to be in the 40-60 Mbyte range.
|
||||
There are a number of factors which must be taken into
|
||||
account in order to estimate the amount of disk space required
|
||||
to build RTEMS itself. Attempting to build multiple BSPs in
|
||||
a single step increases the disk space requirements. Similarly
|
||||
enabling optional features increases the build and install
|
||||
a single step increases the disk space requirements. One some
|
||||
target architectures, this can lead to disk usage during the build
|
||||
of over one gigabyte.
|
||||
|
||||
Similarly enabling optional features increases the build and install
|
||||
space requirements. In particular, enabling and building
|
||||
the RTEMS tests results in a significant increase in build
|
||||
space requirements but since the tests are not installed has,
|
||||
@@ -56,8 +58,9 @@ enabling them has no impact on installation requirements.
|
||||
@section General Host Software Requirements
|
||||
|
||||
The instructions in this manual should work on any computer running
|
||||
a UNIX variant. Some native GNU tools are used by this procedure
|
||||
including:
|
||||
a POSIX environment including GNU/Linux and Cygwin. Mingw users may
|
||||
encounter additional issues due to the limited POSIX compatibility.
|
||||
Some native GNU tools are used by this procedure including:
|
||||
|
||||
@itemize @bullet
|
||||
@item GCC
|
||||
@@ -65,8 +68,10 @@ including:
|
||||
@item GNU makeinfo
|
||||
@end itemize
|
||||
|
||||
In addition, some native utilities may be deficient for building
|
||||
the GNU tools.
|
||||
In addition, some native utilities may be deficient for building the
|
||||
GNU tools. On hosts which have m4 but it is not GNU m4, it is not
|
||||
uncommon to have to install GNU m4. Similarly, some shells are not
|
||||
capable of fully supporting the RTEMS configure scripts.
|
||||
|
||||
@subsection GCC
|
||||
|
||||
@@ -129,9 +134,10 @@ are on a Solaris 2.x host, then use the @code{/bin/ksh} or
|
||||
|
||||
@end itemize
|
||||
|
||||
@subsection Linux
|
||||
@subsection Distribution Independent Potential GNU/Linux Issues
|
||||
|
||||
The following problems have been reported by Linux users:
|
||||
The following problems have been reported by users of various GNU/Linux
|
||||
distributions:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@@ -149,71 +155,10 @@ to at least GNU fileutils version 3.16 to resolve this problem.
|
||||
|
||||
@end itemize
|
||||
|
||||
@section Archive and Build Directories
|
||||
@subsection GNU/Linux Distrobutions using Debian Packaging Format
|
||||
|
||||
If you are using RPM or another packaging format that supports
|
||||
building a package from source, then there is probably a directory
|
||||
structure assumed by that packaging format. Otherwise, you
|
||||
are free to use whatever organization you like. However, this
|
||||
document will use the directory organization described
|
||||
in @ref{Archive and Build Directory Format}.
|
||||
|
||||
@subsection RPM Archive and Build Directory Format
|
||||
|
||||
For RPM, it is assumed that the following subdirectories
|
||||
are under a root directory such as @code{/usr/src/redhat}:
|
||||
|
||||
@example
|
||||
BUILD
|
||||
RPMS
|
||||
SOURCES
|
||||
SPECS
|
||||
SRPMS
|
||||
@end example
|
||||
|
||||
For the purposes of this document, the RPM @code{SOURCES} directory
|
||||
is the directory into which all tool source and patches are
|
||||
assumed to reside. The @code{BUILD} directory is where the actual
|
||||
build is performed when building binaries from a source RPM.
|
||||
The @code{SOURCES} and @code{BUILD} are logically equivalent to
|
||||
the @code{archive} and @code{tools} directory discussed in the
|
||||
next section.
|
||||
|
||||
@subsection Archive and Build Directory Format
|
||||
|
||||
When no packaging format requirements are present, the root directory for
|
||||
the storage of source archives and patches as well as for building the
|
||||
tools is up to the user. The only concern is that there be enough
|
||||
disk space to complete the build. In this document, the following
|
||||
organization will be used.
|
||||
|
||||
Make an @code{archive} directory to contain the downloaded
|
||||
source code and a @code{tools} directory to be used as a build
|
||||
directory. The command sequence to do this is shown
|
||||
below:
|
||||
|
||||
@example
|
||||
mkdir archive
|
||||
mkdir tools
|
||||
@end example
|
||||
|
||||
This will result in an initial directory structure similar to the
|
||||
one shown in the following figure:
|
||||
|
||||
@example
|
||||
@group
|
||||
/whatever/prefix/you/choose/
|
||||
archive/
|
||||
tools/
|
||||
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@c @ifset use-html
|
||||
@c @html
|
||||
@c <IMG SRC="sfile12c.jpg" WIDTH=417 HEIGHT=178
|
||||
@c ALT="Starting Directory Organization">
|
||||
@c @end html
|
||||
@c @end ifset
|
||||
The RTEMS Project does not currently provide prebuilt toolsets in the Debian packaging format used by the Debian and Ubuntu distributions. If you are using a distribution using this packaging format, then you have two options for installing the RTEMS toolset.
|
||||
|
||||
The first option is to build the toolset from source following the instructions in the @ref{Building the GNU Cross Compiler Toolset}. This is an approach taken by many users.
|
||||
|
||||
Alternatively, it is often possible to extract the contents of the RPM files which contain the portions of the toolset you require. In this case, you will follow the instructions in @ref{Locating the RPMs for your GNU/Linux Distribution} but assume your distribution is the RedHat Enterprise Linux version which is closest to yours from a shared library perspective. As of December 2010, this is usually RedHat Enterprise Linux version 5. As time passes, it is expected that version 6 will be appropriate in more cases. You will extract the contents of these RPM files using either @code{rpm2cpio} and install them or you may be able to use the @code{alien} tool to convert them to Debian packaging.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -52,7 +52,7 @@ to your target board and executed is very dependent
|
||||
on the board you are using. The following is a list of
|
||||
commonly used BSPs classified by their RTEMS CPU family and pointers
|
||||
to instructions on how to use them. [NOTE: All file names should be
|
||||
prepended with @value{RTEMSUNTAR}/c/src/lib/libbsp.]
|
||||
prepended with @code{rtems-@value{RTEMSAPI}.<VERSION>/c/src/lib/libbsp}.]
|
||||
|
||||
@need 1000
|
||||
@table @b
|
||||
@@ -147,31 +147,11 @@ the following to unarchive the sample applications:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xjf ../archive/examples-VERSION.tgz
|
||||
tar xjf ../archive/examples-v2-@value{RTEMSAPI}.<VERSION>.tgz
|
||||
@end example
|
||||
|
||||
The sample applications most likely to be of interest to you are:
|
||||
|
||||
@itemize @bullet
|
||||
@item hello_world_c - C Hello World application with a simple
|
||||
RTEMS configuration and an entry point not called @code{main()}.
|
||||
|
||||
@item simple_main - Very simple program starting at @code{main()}
|
||||
and shutting down RTEMS via @code{exit()} without any other operations.
|
||||
It uses the default configuration inside RTEMS which is only
|
||||
intended to satisfy @code{autoconf} probes and extremely simple
|
||||
console-based applications.
|
||||
|
||||
@item libcpp - Simple C++ library for RTEMS showing how to build an
|
||||
application library written in C++.
|
||||
|
||||
@item psx_sched_report - POSIX Scheduler Reporter is a program
|
||||
that prints out some scheduler attributes of the RTEMS POSIX API.
|
||||
|
||||
@end itemize
|
||||
|
||||
Each tests is found in a separate subdirectory and built using the
|
||||
same command sequence. The @code{hello_world_c} sample will be used
|
||||
Each tests is found in a separate subdirectory and built using the same
|
||||
command sequence. The @code{hello/hello_world_c} sample will be used
|
||||
as an example.
|
||||
|
||||
@c
|
||||
@@ -192,25 +172,24 @@ If the sample application has successfully been built, then the application
|
||||
executable is placed in the following directory:
|
||||
|
||||
@example
|
||||
hello_world_c/o-optimize/<filename>.exe
|
||||
hello_world_c/o-optimize/<filename>.ralf
|
||||
@end example
|
||||
|
||||
The other C/C++ sample applications are built using a similar procedure.
|
||||
The other sample applications are built using a similar procedure.
|
||||
|
||||
@c
|
||||
@c Ada Sample Applications
|
||||
@c
|
||||
@section Ada Sample Applications
|
||||
|
||||
The Ada sample application set primarily includes a
|
||||
a simple Hello World Ada program which can be used
|
||||
as a starting point for GNAT/RTEMS applications.
|
||||
Use the following command to unarchive the Ada sample
|
||||
The Ada sample application set primarily includes a a simple Hello
|
||||
World Ada program which can be used as a starting point for GNAT/RTEMS
|
||||
applications. Use the following command to unarchive the Ada sample
|
||||
applications:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xjf ../archive/ada-examples-@value{VERSION}.tar.bz2
|
||||
tar xjf ../archive/ada-examples-@value{RTEMSAPI}.<VERSION>.tgz
|
||||
@end example
|
||||
|
||||
@subheading Create a BSP Specific Makefile
|
||||
@@ -219,11 +198,7 @@ Currently, the procedure for building and linking an Ada application
|
||||
is a bit more difficult than a C or C++ application. This is certainly
|
||||
an opportunity for a volunteer project.
|
||||
|
||||
At this time, there is a
|
||||
|
||||
Provided are example Makefiles for multiple BSPs. Copy one of these to
|
||||
the file Makefile.<BOARD_SUPPORT_PACKAGE> and edit it as appropriate for
|
||||
your local configuration.
|
||||
If your BSP requires special arguments when linking, you may have to augment the file @code{ada-examples-@value{RTEMSAPI}.<VERSION>/Makefile.shared}. Most RTEMS BSPs do not require special linking arguments so this should not be frequently needed.
|
||||
|
||||
Use the <INSTALLATION_POINT> and <BOARD_SUPPORT_PACKAGE> specified when
|
||||
configuring and installing RTEMS.
|
||||
@@ -233,18 +208,13 @@ configuring and installing RTEMS.
|
||||
Use the following command to start the build of the sample application:
|
||||
|
||||
@example
|
||||
cd tools/hello_world_ada
|
||||
make -f Makefile.<BOARD_SUPPORT_PACKAGE>
|
||||
cd tools/ada-examples-@value{RTEMSAPI}.<VERSION>/ada-examples/hello_world_ada
|
||||
@end example
|
||||
|
||||
NOTE: GNU make is the preferred @code{make} utility. Other @code{make}
|
||||
implementations may work but all testing is done with GNU make.
|
||||
|
||||
If the BSP specific modifications to the Makefile were correct and
|
||||
no errors are detected during the sample application build, it is
|
||||
If no errors are detected during the sample application build, it is
|
||||
reasonable to assume that the build of the GNAT/RTEMS Cross Compiler Tools
|
||||
for RTEMS and RTEMS itself for the selected host and target
|
||||
combination was done properly.
|
||||
for RTEMS and RTEMS itself for the selected host and target combination
|
||||
was done properly.
|
||||
|
||||
@section Application Executable
|
||||
|
||||
@@ -252,7 +222,7 @@ If the sample application has successfully been build, then the application
|
||||
executable is placed in the following directory:
|
||||
|
||||
@example
|
||||
tools/hello_world_ada/o-optimize/<filename>.exe
|
||||
tools/@code{ada-examples-@value{RTEMSAPI}.<VERSION>}/hello_world_ada/o-optimize/<filename>.exe
|
||||
@end example
|
||||
|
||||
How this executable is downloaded to the target board is very dependent
|
||||
@@ -263,12 +233,14 @@ on the BOARD_SUPPORT_PACKAGE selected.
|
||||
@c
|
||||
@section More Information on RTEMS Application Makefiles
|
||||
|
||||
These sample applications are examples of simple
|
||||
RTEMS applications that use the RTEMS Application Makefile
|
||||
system. This Makefile system simplifies building
|
||||
RTEMS applications by providing Makefile templates and
|
||||
capturing the configuration information used to build
|
||||
RTEMS specific to your BSP. Building an RTEMS application
|
||||
for different BSPs is as simple as switching the
|
||||
setting of @code{RTEMS_MAKEFILE_PATH}. This Makefile
|
||||
These sample applications are examples of simple RTEMS applications
|
||||
that use the RTEMS Application Makefile system. This Makefile system
|
||||
simplifies building RTEMS applications by providing Makefile templates and
|
||||
capturing the configuration information used to build RTEMS specific to
|
||||
your BSP. Building an RTEMS application for different BSPs is as simple
|
||||
as switching the setting of @code{RTEMS_MAKEFILE_PATH}. This Makefile
|
||||
system is described in the file @code{make/README}.
|
||||
|
||||
It is very likely in the future that the RTEMS examples built using an
|
||||
installed RTEMS will be converted to autoconf.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
@c %**end of header
|
||||
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -23,11 +23,6 @@
|
||||
@include common/setup.texi
|
||||
@include common/rtems.texi
|
||||
|
||||
@c
|
||||
@c Now set all the tool version dependent information
|
||||
@c
|
||||
@include tversions.texi
|
||||
|
||||
@ifset use-ascii
|
||||
@dircategory RTEMS On-Line Manual
|
||||
@direntry
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@c
|
||||
@c This file contains all toolset version dependent information
|
||||
@c
|
||||
|
||||
@c
|
||||
@c Comment out setting the "XYZ-RTEMSPATCH" variable if there is no
|
||||
@c patch required. The documentation will detect this and print
|
||||
@c an appropriate message in a short section.
|
||||
@c
|
||||
|
||||
|
||||
@c
|
||||
@c GCC Version
|
||||
@c
|
||||
|
||||
@set GCCVERSION @GCCVERSION@
|
||||
@set GCCUNTAR gcc-@value{GCCVERSION}
|
||||
@set GCCTAR @value{GCCUNTAR}.tar.bz2
|
||||
@set GCCFTPSITE ftp.gnu.org
|
||||
@set GCCFTPDIR /pub/gnu/gcc/@value{GCCUNTAR}
|
||||
@set GCCHTTPDIR /pub/gcc/releases/index.html
|
||||
@SETGCCPATCHVERSION@
|
||||
@ifset GCCPATCHVERSION
|
||||
@set GCCRTEMSPATCH @value{GCCUNTAR}-@value{GCCPATCHVERSION}.diff
|
||||
@end ifset
|
||||
@set GCCRPMRELEASE @GCCRPMRELEASE@
|
||||
|
||||
@c
|
||||
@c BINUTILS Version
|
||||
@c
|
||||
|
||||
@c The "official" binutils
|
||||
@set BINUTILSVERSION @BINUTILSVERSION@
|
||||
@set BINUTILSUNTAR binutils-@value{BINUTILSVERSION}
|
||||
@set BINUTILSTAR @value{BINUTILSUNTAR}.tar.gz
|
||||
@set BINUTILSFTPSITE ftp.gnu.org
|
||||
@set BINUTILSFTPDIR /pub/gnu/binutils
|
||||
@SETBINUTILSPATCHVERSION@
|
||||
@ifset BINUTILSPATCHVERSION
|
||||
@set BINUTILSRTEMSPATCH @value{BINUTILSUNTAR}-@value{BINUTILSPATCHVERSION}.diff
|
||||
@end ifset
|
||||
@set BINUTILSRPMRELEASE @BINUTILSRPMRELEASE@
|
||||
|
||||
@c
|
||||
@c NEWLIB Version
|
||||
@c
|
||||
|
||||
|
||||
@set NEWLIBVERSION @NEWLIBVERSION@
|
||||
@set NEWLIBUNTAR newlib-@value{NEWLIBVERSION}
|
||||
@set NEWLIBTAR @value{NEWLIBUNTAR}.tar.gz
|
||||
@set NEWLIBFTPSITE sources.redhat.com
|
||||
@set NEWLIBFTPDIR /pub/newlib
|
||||
@SETNEWLIBPATCHVERSION@
|
||||
@ifset NEWLIBPATCHVERSION
|
||||
@set NEWLIBRTEMSPATCH @value{NEWLIBUNTAR}-@value{NEWLIBPATCHVERSION}.diff
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c GDB Version
|
||||
@c
|
||||
|
||||
@set GDBVERSION @GDBVERSION@
|
||||
@set GDBUNTAR gdb-@value{GDBVERSION}
|
||||
@set GDBTAR @value{GDBUNTAR}.tar.gz
|
||||
@set GDBFTPSITE ftp.gnu.org
|
||||
@set GDBFTPDIR /pub/gnu/gdb
|
||||
@SETGDBPATCHVERSION@
|
||||
@ifset GDBPATCHVERSION
|
||||
@set GDBRTEMSPATCH @value{GDBUNTAR}-@value{GDBPATCHVERSION}.diff
|
||||
@end ifset
|
||||
@set GDBRPMRELEASE @GDBRPMRELEASE@
|
||||
@set GDBFTPURL ftp://@value{GDBFTPSITE}@value{GDBFTPDIR}/@value{GDBTAR}
|
||||
|
||||
@c
|
||||
@c RTEMS Version
|
||||
@c
|
||||
|
||||
@set RTEMSVERSION RTEMS @value{VERSION}
|
||||
@set RTEMSUNTAR rtems-@value{VERSION}
|
||||
@set RTEMSTAR @value{RTEMSUNTAR}.tar.bz2
|
||||
@set RTEMSFTPSITE ftp.rtems.com
|
||||
@set RTEMSFTPDIR /pub/rtems
|
||||
@@ -1,29 +0,0 @@
|
||||
buildada.texi
|
||||
buildrt.texi
|
||||
gdb.texi
|
||||
index.html
|
||||
intro.texi
|
||||
Makefile
|
||||
Makefile.in
|
||||
mdate-sh
|
||||
require.texi
|
||||
rtems_footer.html
|
||||
rtems_header.html
|
||||
sample.texi
|
||||
stamp-vti
|
||||
started_ada
|
||||
started_ada.aux
|
||||
started_ada.cp
|
||||
started_ada.dvi
|
||||
started_ada.fn
|
||||
started_ada*.html
|
||||
started_ada.info
|
||||
started_ada.ky
|
||||
started_ada.log
|
||||
started_ada.pdf
|
||||
started_ada.pg
|
||||
started_ada.ps
|
||||
started_ada.toc
|
||||
started_ada.tp
|
||||
started_ada.vr
|
||||
version.texi
|
||||
@@ -1,56 +0,0 @@
|
||||
#
|
||||
# COPYRIGHT (c) 1988-2002.
|
||||
# On-Line Applications Research Corporation (OAR).
|
||||
# All rights reserved.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
PROJECT = started_ada
|
||||
EDITION = 1
|
||||
|
||||
include $(top_srcdir)/project.am
|
||||
include $(top_srcdir)/main.am
|
||||
|
||||
GENERATED_FILES = buildada.texi buildrt.texi gdb.texi intro.texi \
|
||||
require.texi sample.texi
|
||||
|
||||
COMMON_FILES += $(top_srcdir)/common/cpright.texi
|
||||
|
||||
FILES = tversions.texi
|
||||
|
||||
info_TEXINFOS = started_ada.texi
|
||||
started_ada_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES)
|
||||
|
||||
intro.texi: intro.t tversions.texi
|
||||
$(BMENU2) -c -p "Top" \
|
||||
-u "Top" \
|
||||
-n "Requirements" < $< > $@
|
||||
|
||||
require.texi: require.t tversions.texi
|
||||
$(BMENU2) -c -p "GNAT Chat Mailing List" \
|
||||
-u "Top" \
|
||||
-n "Building the GNAT Cross Compiler Toolset" < $< > $@
|
||||
|
||||
buildada.texi: buildada.t tversions.texi
|
||||
$(BMENU2) -c -p "Insure GCC and GNAT Environment Variables Are Not Set" \
|
||||
-u "Top" \
|
||||
-n "Building RTEMS" < $< > $@
|
||||
|
||||
buildrt.texi: $(top_srcdir)/started/buildrt.t tversions.texi
|
||||
$(BMENU2) -c -p "Error Messages Indicating Configuration Problems" \
|
||||
-u "Top" \
|
||||
-n "Building the Sample Application" < $< > $@
|
||||
|
||||
sample.texi: sample.t tversions.texi
|
||||
$(BMENU2) -c -p "Using the RTEMS configure Script Directly" \
|
||||
-u "Top" \
|
||||
-n "Building the GNU Debugger" < $< > $@
|
||||
|
||||
gdb.texi: gdb.t tversions.texi
|
||||
$(BMENU2) -c -p "Application Executable" \
|
||||
-u "Top" \
|
||||
-n "" < $< > $@
|
||||
|
||||
EXTRA_DIST = buildada.t gdb.t intro.t require.t sample.t
|
||||
CLEANFILES += started_ada.info
|
||||
@@ -1,698 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@chapter Building the GNAT Cross Compiler Toolset
|
||||
|
||||
This chapter describes the steps required to acquire the
|
||||
source code for a GNU cross compiler toolset, apply
|
||||
any required RTEMS specific patches, compile that
|
||||
toolset and install it.
|
||||
|
||||
@section Create the Archive and Build Directories
|
||||
|
||||
Start by making the @code{archive} directory to contain the downloaded
|
||||
source code and the @code{tools} directory to be used as a build
|
||||
directory. The command sequence to do this is shown
|
||||
below:
|
||||
|
||||
@example
|
||||
mkdir archive
|
||||
mkdir tools
|
||||
@end example
|
||||
|
||||
This will result in an initial directory structure similar to the
|
||||
one shown in the following figure:
|
||||
|
||||
@example
|
||||
@group
|
||||
/whatever/prefix/you/choose/
|
||||
archive/
|
||||
tools/
|
||||
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@c @ifset use-html
|
||||
@c @html
|
||||
@c <IMG SRC="sfile12c.jpg" WIDTH=417 HEIGHT=178
|
||||
@c ALT="Starting Directory Organization">
|
||||
@c @end html
|
||||
@c @end ifset
|
||||
|
||||
@section Get All the Pieces
|
||||
|
||||
This section lists the components of an RTEMS cross development system.
|
||||
Included are the locations of each component as well as any required RTEMS
|
||||
specific patches.
|
||||
|
||||
@subheading @value{GCCVERSION}
|
||||
@example
|
||||
FTP Site: @value{GCCFTPSITE}
|
||||
Directory: @value{GCCFTPDIR}
|
||||
File: @value{GCCTAR}
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{GCCFTPSITE}@value{GCCFTPDIR}/@value{GCCTAR},Download @value{GCCVERSION}}
|
||||
URL: ftp://@value{GCCFTPSITE}@value{GCCFTPDIR}/@value{GCCTAR}
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading @value{GNAT-VERSION}
|
||||
@example
|
||||
FTP Site: @value{GNAT-FTPSITE}
|
||||
Directory: @value{GNAT-FTPDIR}
|
||||
File: @value{GNAT-TAR}
|
||||
@ifset use-html
|
||||
@c URL: @uref{ ftp://@value{GNAT-FTPSITE}@value{GNAT-FTPDIR}/@value{GNAT-TAR}, Download @value{GNAT-VERSION}}
|
||||
URL: ftp://@value{GNAT-FTPSITE}@value{GNAT-FTPDIR}/@value{GNAT-TAR}
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading @value{BINUTILSVERSION}
|
||||
@example
|
||||
FTP Site: @value{BINUTILSFTPSITE}
|
||||
Directory: @value{BINUTILSFTPDIR}
|
||||
File: @value{BINUTILSTAR}
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{BINUTILSFTPSITE}@value{BINUTILSFTPDIR}/@value{BINUTILSTAR}, Download @value{BINUTILSVERSION}}
|
||||
URL: ftp://@value{BINUTILSFTPSITE}@value{BINUTILSFTPDIR}/@value{BINUTILSTAR}
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading @value{NEWLIBVERSION}
|
||||
@example
|
||||
FTP Site: @value{NEWLIBFTPSITE}
|
||||
Directory: @value{NEWLIBFTPDIR}
|
||||
File: @value{NEWLIBTAR}
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{NEWLIBFTPSITE}@value{NEWLIBFTPDIR}/@value{NEWLIBTAR}, Download @value{NEWLIBVERSION}}
|
||||
URL: ftp://@value{NEWLIBFTPSITE}@value{NEWLIBFTPDIR}/@value{NEWLIBTAR}
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading @value{RTEMSVERSION}
|
||||
@example
|
||||
FTP Site: @value{RTEMSFTPSITE}
|
||||
Directory: @value{RTEMSFTPDIR}
|
||||
File: @value{RTEMSTAR}
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}, Download RTEMS components}
|
||||
URL: ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading RTEMS Hello World
|
||||
@example
|
||||
FTP Site: @value{RTEMSFTPSITE}
|
||||
Directory: @value{RTEMSFTPDIR}
|
||||
File: hello_world_ada.tgz
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/ada_tools/hello_world_ada.tgz, Download RTEMS Hello World}
|
||||
URL: ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/ada_tools/hello_world_ada.tgz
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@subheading RTEMS Specific Tool Patches and Scripts
|
||||
@example
|
||||
FTP Site: @value{RTEMSFTPSITE}
|
||||
Directory: @value{RTEMSFTPDIR}/ada_tools/source
|
||||
File: @value{BUILDTOOLSTAR}
|
||||
@ifset BINUTILSRTEMSPATCH
|
||||
File: @value{BINUTILSRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset NEWLIBRTEMSPATCH
|
||||
File: @value{NEWLIBRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset GCCRTEMSPATCH
|
||||
File: @value{GCCRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset GNAT-RTEMSPATCH
|
||||
File: @value{GNAT-RTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset use-html
|
||||
@c URL: @uref{ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/ada_tools/source, Download RTEMS patches}
|
||||
URL: ftp://@value{RTEMSFTPSITE}@value{RTEMSFTPDIR}/ada_tools/source
|
||||
@end ifset
|
||||
@end example
|
||||
|
||||
@section Unarchiving the Tools
|
||||
|
||||
While in the @code{tools} directory, unpack the compressed
|
||||
tar files using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xzf ../archive/@value{GCCTAR}
|
||||
tar xzf ../archive/@value{GNAT-TAR}
|
||||
tar xzf ../archive/@value{BINUTILSTAR}
|
||||
tar xzf ../archive/@value{NEWLIBTAR}
|
||||
tar xzf ../archive/@value{BUILDTOOLSTAR}
|
||||
@end example
|
||||
|
||||
After the compressed tar files have been unpacked, the following
|
||||
directories will have been created under tools.
|
||||
|
||||
@itemize @bullet
|
||||
@item @value{BINUTILSUNTAR}
|
||||
@item @value{GCCUNTAR}
|
||||
@item @value{GNAT-UNTAR}
|
||||
@item @value{NEWLIBUNTAR}
|
||||
@end itemize
|
||||
|
||||
There will also be a set of scripts in the current directory
|
||||
which aid in building the tools and RTEMS. They are:
|
||||
|
||||
@itemize @bullet
|
||||
@item bit_ada
|
||||
@item bit_gdb
|
||||
@item bit_rtems
|
||||
@item common.sh
|
||||
@item user.cfg
|
||||
@end itemize
|
||||
|
||||
When the @code{bit_ada} script is executed later in this process,
|
||||
it will automatically create two other subdirectories:
|
||||
|
||||
@itemize @bullet
|
||||
@item src
|
||||
@item build-$@{CPU@}-tools
|
||||
@end itemize
|
||||
|
||||
Similarly, the @code{bit_gdb} script will create the
|
||||
subdirectory @code{build-$@{CPU@}-gdb} and
|
||||
the @code{bit_rtems} script will create the
|
||||
subdirectory @code{build-$@{CPU@}-rtems}.
|
||||
|
||||
The directory tree should look something like the following figure:
|
||||
|
||||
@example
|
||||
@group
|
||||
/whatever/prefix/you/choose/
|
||||
archive/
|
||||
@value{GCCTAR}
|
||||
@value{GNAT-TAR}
|
||||
@value{BINUTILSTAR}
|
||||
@value{NEWLIBTAR}
|
||||
@value{RTEMSTAR}
|
||||
@value{BUILDTOOLSTAR}
|
||||
@ifset GCCRTEMSPATCH
|
||||
@value{GCCRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset BINUTILSRTEMSPATCH
|
||||
@value{BINUTILSRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset NEWLIBRTEMSPATCH
|
||||
@value{NEWLIBRTEMSPATCH}
|
||||
@end ifset
|
||||
@ifset GNAT-RTEMSPATCH
|
||||
@value{GNAT-RTEMSPATCH}
|
||||
@end ifset
|
||||
hello_world_ada.tgz
|
||||
bit_ada
|
||||
tools/
|
||||
@value{BINUTILSUNTAR}/
|
||||
@value{GCCUNTAR}/
|
||||
@value{GNAT-UNTAR}/
|
||||
@value{NEWLIBUNTAR}/
|
||||
bit_ada
|
||||
bit_gdb
|
||||
bit_rtems
|
||||
common.sh
|
||||
user.cfg
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@c @ifset use-html
|
||||
@c @html
|
||||
@c <IMG SRC="bit_ada.jpg" WIDTH=816 HEIGHT=267 ALT="Directory Organization">
|
||||
@c @end html
|
||||
@c @end ifset
|
||||
|
||||
@c
|
||||
@c Host Specific Notes
|
||||
@c
|
||||
|
||||
@section Host Specific Notes
|
||||
|
||||
@subsection Solaris 2.x
|
||||
|
||||
The build scripts are written in "shell". The program @code{/bin/sh}
|
||||
on Solaris 2.x is not robust enough to execute these scripts. If you
|
||||
are on a Solaris 2.x host, then change the first line of the files
|
||||
@code{bit_ada}, @code{bit_gdb}, and @code{bit_rtems} to use the
|
||||
@code{/bin/ksh} shell instead.
|
||||
|
||||
@c
|
||||
@c Reading the Documentation
|
||||
@c
|
||||
|
||||
@section Reading the Tools Documentation
|
||||
|
||||
Each of the tools in the GNU development suite comes with documentation.
|
||||
It is in the reader's and tool maintainers' interest that one read the
|
||||
documentation before posting a problem to a mailing list or news group.
|
||||
|
||||
|
||||
@c
|
||||
@c GCC patches
|
||||
@c
|
||||
|
||||
@section Apply RTEMS Patch to GCC
|
||||
|
||||
@ifclear GCCRTEMSPATCH
|
||||
No RTEMS specific patches are required for @value{GCCVERSION} to
|
||||
support @value{RTEMSVERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset GCCRTEMSPATCH
|
||||
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GCCUNTAR}
|
||||
zcat ../../archive/@value{GCCRTEMSPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GCCUNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file which is properly applied.
|
||||
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c BINUTILS patches
|
||||
@c
|
||||
|
||||
@section Apply RTEMS Patch to binutils
|
||||
|
||||
@ifclear BINUTILSRTEMSPATCH
|
||||
No RTEMS specific patches are required for @value{BINUTILSVERSION} to
|
||||
support @value{RTEMSVERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset BINUTILSRTEMSPATCH
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{BINUTILSUNTAR}
|
||||
zcat ../../archive/@value{BINUTILSRTEMSPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{BINUTILSUNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file which is properly applied.
|
||||
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c Newlib patches
|
||||
@c
|
||||
|
||||
@section Apply RTEMS Patch to newlib
|
||||
|
||||
@ifclear NEWLIBRTEMSPATCH
|
||||
No RTEMS specific patches are required for @value{NEWLIBVERSION} to
|
||||
support @value{RTEMSVERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset NEWLIBRTEMSPATCH
|
||||
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{NEWLIBUNTAR}
|
||||
zcat ../../archive/@value{NEWLIBRTEMSPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{NEWLIBUNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file which is properly applied.
|
||||
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c GNAT patches
|
||||
@c
|
||||
|
||||
@section Apply RTEMS Patch to GNAT
|
||||
|
||||
@ifclear GNAT-RTEMSPATCH
|
||||
No RTEMS specific patches are required for @value{GNAT-VERSION} to
|
||||
support @value{RTEMSVERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset GNAT-RTEMSPATCH
|
||||
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GNAT-UNTAR}
|
||||
zcat ../../archive/@value{GNAT-RTEMSPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GNAT-UNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file which is properly applied.
|
||||
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c Copy the ada directory
|
||||
@c
|
||||
|
||||
|
||||
@section Copy the ada Subdirectory to the GCC Source Tree
|
||||
|
||||
Copy the ada subtree in the patched subtree of
|
||||
tools/@value{GNAT-UNTAR}/src to the
|
||||
tools/@value{GCCUNTAR} directory:
|
||||
|
||||
@example
|
||||
cd tools/@value{GNAT-UNTAR}/src
|
||||
cp -r ada ../../@value{GCCUNTAR}
|
||||
@end example
|
||||
|
||||
|
||||
@c
|
||||
@c Localizing the Configuration
|
||||
@c
|
||||
|
||||
@section Localizing the Configuration
|
||||
|
||||
Edit the @code{user.cfg} file to alter the settings of various
|
||||
variables which are used to tailor the build process.
|
||||
Each of the variables set in @code{user.cfg} may be modified
|
||||
as described below:
|
||||
|
||||
@table @code
|
||||
@item INSTALL_POINT
|
||||
is the location where you wish the GNU C/C++ cross compilation tools for
|
||||
RTEMS to be built. It is recommended that the directory chosen to receive
|
||||
these tools be named so that it is clear from which gcc distribution it
|
||||
was generated and for which target system the tools are to produce code for.
|
||||
|
||||
@b{WARNING}: The @code{INSTALL_POINT} should not be a subdirectory
|
||||
under the build directory. The build directory will be removed
|
||||
automatically upon successful completion of the build procedure.
|
||||
|
||||
@item BINUTILS
|
||||
is the directory under tools that contains @value{BINUTILSUNTAR}.
|
||||
For example:
|
||||
|
||||
@example
|
||||
BINUTILS=@value{BINUTILSUNTAR}
|
||||
@end example
|
||||
|
||||
@item GCC
|
||||
is the directory under tools that contains @value{GCCUNTAR}.
|
||||
For example,
|
||||
|
||||
@example
|
||||
GCC=@value{GCCUNTAR}
|
||||
@end example
|
||||
|
||||
Note that the gnat version is not needed because the gnat source
|
||||
is built as part of building gcc.
|
||||
|
||||
@item NEWLIB
|
||||
is the directory under tools that contains @value{NEWLIBUNTAR}.
|
||||
For example:
|
||||
|
||||
@example
|
||||
NEWLIB=@value{NEWLIBUNTAR}
|
||||
@end example
|
||||
|
||||
@item BUILD_DOCS
|
||||
is set to "yes" if you want to install documentation. This requires
|
||||
that tools supporting documentation production be installed. This
|
||||
currently is limited to the GNU texinfo package.
|
||||
For example:
|
||||
|
||||
@example
|
||||
BUILD_DOCS=yes
|
||||
@end example
|
||||
|
||||
@item BUILD_OTHER_LANGUAGES
|
||||
is set to "yes" if you want to build languages other than C and C++. At
|
||||
the current time, the set of alternative languages includes Java, Fortran,
|
||||
and Objective-C. These alternative languages do not always build cross.
|
||||
Hence this option defaults to "no".
|
||||
|
||||
For example:
|
||||
|
||||
@example
|
||||
BUILD_OTHER_LANGUAGES=yes
|
||||
@end example
|
||||
|
||||
@b{NOTE:} Based upon the version of the compiler being used, it may not
|
||||
be possible to build languages other than C and C++ cross. In many cases,
|
||||
the language run-time support libraries are not "multilib'ed". Thus the
|
||||
executable code in these libraries will be for the default compiler settings
|
||||
and not necessarily be correct for your CPU model.
|
||||
|
||||
@item RTEMS
|
||||
is the directory under tools that contails @value{RTEMSUNTAR}.
|
||||
|
||||
@item ENABLE_RTEMS_POSIX
|
||||
is set to "yes" if you want to enable the RTEMS POSIX API support.
|
||||
At this time, this feature is not supported by the UNIX ports of RTEMS
|
||||
and is forced to "no" for those targets. This corresponds to the
|
||||
@code{configure} option @code{--enable-posix}.
|
||||
|
||||
This must be enabled to support the GNAT/RTEMS run-time.
|
||||
|
||||
@item ENABLE_RTEMS_ITRON
|
||||
is set to "yes" if you want to enable the RTEMS ITRON API support.
|
||||
At this time, this feature is not supported by the UNIX ports of RTEMS
|
||||
and is forced to "no" for those targets. This corresponds to the
|
||||
@code{configure} option @code{--enable-itron}.
|
||||
|
||||
@item ENABLE_RTEMS_MP
|
||||
is set to "yes" if you want to enable the RTEMS multiprocessing
|
||||
support. This feature is not supported by all RTEMS BSPs and
|
||||
is automatically forced to "no" for those BSPs. This corresponds to the
|
||||
@code{configure} option @code{--enable-multiprocessing}.
|
||||
|
||||
@item ENABLE_RTEMS_CXX
|
||||
is set to "yes" if you want to build the RTEMS C++ support including
|
||||
the C++ Wrapper for the Classic API. This corresponds to the
|
||||
@code{configure} option @code{--enable-cxx}.
|
||||
|
||||
@item ENABLE_RTEMS_TESTS
|
||||
is set to "yes" if you want to build the RTEMS Test Suite. If this
|
||||
is set to "no", then only the Sample Tests will be built. Setting
|
||||
this option to "yes" significantly increases the amount of disk
|
||||
space required to build RTEMS.
|
||||
This corresponds to the @code{configure} option @code{--enable-tests}.
|
||||
|
||||
@item ENABLE_RTEMS_TCPIP
|
||||
is set to "yes" if you want to build the RTEMS TCP/IP Stack. If a
|
||||
particular BSP does not support TCP/IP, then this feature is automatically
|
||||
disabled. This corresponds to the @code{configure} option
|
||||
@code{--enable-tcpip}.
|
||||
|
||||
@item ENABLE_RTEMS_NONDEBUG
|
||||
is set to "yes" if you want to build RTEMS in a fully optimized
|
||||
state. This corresponds to executing @code{make} after configuring
|
||||
the source tree.
|
||||
|
||||
@item ENABLE_RTEMS_DEBUG
|
||||
is set to "yes" if you want to build RTEMS in a debug version.
|
||||
When built for debug, RTEMS will include run-time code to
|
||||
perform consistency checks such as heap consistency checks.
|
||||
Although the precise compilation arguments are BSP dependent,
|
||||
the debug version of RTEMS is usually built at a lower optimization
|
||||
level. This is usually done to reduce inlining which can make
|
||||
tracing code execution difficult. This corresponds to executing
|
||||
@code{make VARIANT=debug} after configuring
|
||||
the source tree.
|
||||
|
||||
@item INSTALL_RTEMS
|
||||
is set to "yes" if you want to install RTEMS after building it.
|
||||
This corresponds to executing @code{make install} after configuring
|
||||
and building the source tree.
|
||||
|
||||
@item ENABLE_RTEMS_MAINTAINER_MODE
|
||||
is set to "yes" if you want to enabled maintainer mode functionality
|
||||
in the RTEMS Makefile. This is disabled by default and it is not
|
||||
expected that most users will want to enable this. When this option
|
||||
is enabled, the build process may attempt to regenerate files that
|
||||
require tools not required when this option is disabled.
|
||||
This corresponds to the @code{configure} option
|
||||
@code{--enable-maintainer-mode}.
|
||||
|
||||
@end table
|
||||
|
||||
@section Running the bit_ada Script
|
||||
|
||||
After the @code{bit_ada} script has been modified to reflect the
|
||||
local installation, the modified @code{bit_ada} script is run
|
||||
using the following sequence:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
./bit_ada <target configuration>
|
||||
@end example
|
||||
|
||||
Where <target configuration> is one of the following:
|
||||
|
||||
@itemize @bullet
|
||||
@item hppa1.1
|
||||
@item i386
|
||||
@item m68k
|
||||
@item powerpc
|
||||
@item sh
|
||||
@item sparc
|
||||
@end itemize
|
||||
|
||||
NOTE: The above list of target configurations is the list of RTEMS supported
|
||||
targets. Only a subset of these have been tested with GNAT/RTEMS. For more
|
||||
information, contact your GNAT/RTEMS representative.
|
||||
|
||||
The build process can take a while to complete. Many users find it
|
||||
handy to run the build process in the background, capture the output
|
||||
in a file, and monitor the output. This can be done as follows:
|
||||
|
||||
@example
|
||||
./bit_ada <target configuration> >bit.log 2>&1 &
|
||||
tail -f bit.log
|
||||
@end example
|
||||
|
||||
If no errors are encountered, the @code{bit_ada} script will conclude by
|
||||
printing messages similar to the following:
|
||||
|
||||
@example
|
||||
|
||||
The src and build-i386-tools subdirectory may now be removed.
|
||||
|
||||
Started: Fri Apr 10 10:14:07 CDT 1998
|
||||
Finished: Fri Apr 10 12:01:33 CDT 1998
|
||||
@end example
|
||||
|
||||
If the @code{bit_ada} script successfully completes, then the
|
||||
GNU C/C++ cross compilation tools are installed.
|
||||
|
||||
If the @code{bit_ada} script does not successfully complete, then investigation
|
||||
will be required to determine the source of the error.
|
||||
|
||||
@c
|
||||
@c Common Problems
|
||||
@c
|
||||
|
||||
@section Common Problems
|
||||
|
||||
@subsection Error Message Indicates Invalid Option to Assembler
|
||||
|
||||
If a message like this is printed then the new cross compiler
|
||||
is most likely using the native assembler instead of the cross
|
||||
assembler or vice-versa (native compiler using new cross assembler).
|
||||
This can occur for one of the following reasons:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item Binutils Patch Improperly Applied
|
||||
@item Binutils Not Built
|
||||
@item Current Directory is in Your PATH
|
||||
|
||||
@end itemize
|
||||
|
||||
If you are using binutils 2.9.1 or newer with certain older versions of
|
||||
gcc, they do not agree on what the name of the newly
|
||||
generated cross assembler is. Older binutils called it @code{as.new}
|
||||
which became @code{as.new.exe} under Windows. This is not a valid
|
||||
file name, so @code{as.new} is now called @code{as-new}. By using the latest
|
||||
released tool versions and RTEMS patches, this problem will be avoided.
|
||||
|
||||
If binutils did not successfully build the cross assembler, then
|
||||
the new cross gcc (@code{xgcc}) used to build the libraries can not
|
||||
find it. Make sure the build of the binutils succeeded.
|
||||
|
||||
If you include the current directory in your PATH, then there
|
||||
is a chance that the native compiler will accidentally use
|
||||
the new cross assembler instead of the native one. This usually
|
||||
indicates that "." is before the standard system directories
|
||||
in your PATH. As a general rule, including "." in your PATH
|
||||
is a security risk and should be avoided. Remove "." from
|
||||
your PATH.
|
||||
|
||||
NOTE: In some environments, it may be difficult to remove "."
|
||||
completely from your PATH. In this case, make sure that "."
|
||||
is after the system directories containing "as" and "ld".
|
||||
|
||||
@subsection Error Messages Indicating Configuration Problems
|
||||
|
||||
If you see error messages like the following,
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item cannot configure libiberty
|
||||
@item coff-emulation not found
|
||||
@item etc.
|
||||
|
||||
@end itemize
|
||||
|
||||
Then it is likely that one or more of your gnu tools is
|
||||
already configured locally in its source tree. You can check
|
||||
for this by searching for the @code{config.status} file
|
||||
in the various tool source trees. The following command
|
||||
does this for the binutils source:
|
||||
|
||||
@example
|
||||
find @value{BINUTILSUNTAR} -name config.status -print
|
||||
@end example
|
||||
|
||||
The solution for this is to execute the command
|
||||
@code{make distclean} in each of the GNU tools
|
||||
root source directory. This should remove all
|
||||
generated files including Makefiles.
|
||||
|
||||
This situation usually occurs when you have previously
|
||||
built the tool source for some non-RTEMS target. The
|
||||
generated configuration specific files are still in
|
||||
the source tree and the include path specified during
|
||||
the RTEMS build accidentally picks up the previous
|
||||
configuration. The include path used is something like
|
||||
this:
|
||||
|
||||
@example
|
||||
-I../../@value{BINUTILSUNTAR}/gcc -I/@value{BINUTILSUNTAR}/gcc/include -I.
|
||||
@end example
|
||||
|
||||
Note that the tool source directory is searched before the
|
||||
build directory.
|
||||
|
||||
This situation can be avoided entirely by never using
|
||||
the source tree as the build directory -- even for
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@chapter Building the GNU Debugger
|
||||
|
||||
GDB is not currently RTEMS aware. The following configurations have been
|
||||
successfully used with RTEMS applications:
|
||||
|
||||
@itemize @bullet
|
||||
@item Sparc Instruction Simulator (SIS)
|
||||
@item PowerPC Instruction Simulator (PSIM)
|
||||
@item DINK32
|
||||
@end itemize
|
||||
|
||||
Other configurations of gdb have successfully been used by RTEMS users
|
||||
but are not documented here.
|
||||
|
||||
@section Unarchive the gdb Distribution
|
||||
|
||||
Use the following commands to unarchive the gdb distribution:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xzf ../archive/@value{GDBTAR}
|
||||
@end example
|
||||
|
||||
The directory @value{GDBUNTAR} is created under the tools directory.
|
||||
|
||||
@c
|
||||
@c GDB GNAT Patch
|
||||
@c
|
||||
|
||||
@section Apply GNAT Patch to GDB
|
||||
|
||||
@ifclear GDB-GNATPATCH
|
||||
No GNAT specific patches are required for @value{GDBVERSION} to
|
||||
support @value{RTEMSVERSION} and @value{GNAT-VERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset GDB-GNATPATCH
|
||||
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
zcat archive/@value{GDB-GNATPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file.
|
||||
|
||||
To see the files that have been modified use the sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
find . -name "*.orig" -print
|
||||
@end example
|
||||
|
||||
The files that are found, have been modified by the patch file.
|
||||
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c GDB RTEMS Patch
|
||||
@c
|
||||
|
||||
@section Apply RTEMS Patch to GDB
|
||||
|
||||
@ifclear GDBRTEMSPATCH
|
||||
No RTEMS specific patches are required for @value{GDBVERSION} to
|
||||
support @value{RTEMSVERSION}.
|
||||
@end ifclear
|
||||
|
||||
@ifset GDBRTEMSPATCH
|
||||
|
||||
Apply the patch using the following command sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
zcat archive/@value{GDBRTEMSPATCH} | patch -p1
|
||||
@end example
|
||||
|
||||
Check to see if any of these patches have been rejected using the following
|
||||
sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
find . -name "*.rej" -print
|
||||
@end example
|
||||
|
||||
If any files are found with the .rej extension, a patch has been rejected.
|
||||
This should not happen with a good patch file.
|
||||
|
||||
To see the files that have been modified use the sequence:
|
||||
|
||||
@example
|
||||
cd tools/@value{GDBUNTAR}
|
||||
find . -name "*.orig" -print
|
||||
@end example
|
||||
|
||||
The files that are found, have been modified by the patch file.
|
||||
|
||||
@end ifset
|
||||
|
||||
|
||||
@section GDB with Sparc Instruction Simulation (SIS)
|
||||
|
||||
@subheading Make the Build Directory
|
||||
|
||||
Create a build directory for the SIS Debugger
|
||||
|
||||
@example
|
||||
cd tools
|
||||
mkdir build-sis
|
||||
@end example
|
||||
|
||||
@subheading Configure for the Build
|
||||
|
||||
Configure the GNU Debugger for the
|
||||
Sparc Instruction Simulator (SIS):
|
||||
|
||||
@example
|
||||
cd tools/build-sis
|
||||
../@value{GDBUNTAR}/configure --target-sparc-erc32-aout \
|
||||
--program-prefix=sparc-rtems- \
|
||||
--disable-gdbtk \
|
||||
--enable-targets=all \
|
||||
--prefix=<INSTALL_POINT_FOR_SIS>
|
||||
@end example
|
||||
|
||||
Where <INSTALL_POINT_FOR_SIS> is a unique location where the gdb
|
||||
with SIS will be created.
|
||||
|
||||
@subheading Make the Debugger
|
||||
|
||||
From tools/build-sis execute the following command sequence:
|
||||
|
||||
@example
|
||||
make all install
|
||||
@end example
|
||||
|
||||
NOTE: The @code{make} utility used should be GNU make.
|
||||
|
||||
@section GDB with PowerPC Instruction Simulator
|
||||
|
||||
@subheading Make the Build Directory
|
||||
|
||||
Create a build directory for the SIS Debugger
|
||||
|
||||
@example
|
||||
cd tools
|
||||
mkdir build-ppc
|
||||
@end example
|
||||
|
||||
@subheading Configure for the Build
|
||||
|
||||
Configure the GNU Debugger for the PowerPC
|
||||
Instruction Simulator (PSIM):
|
||||
|
||||
@example
|
||||
cd tools/build-ppc
|
||||
../@value{GDBUNTAR}/configure \
|
||||
--target=powerpc-unknown-eabi \
|
||||
--program-prefix=powerpc-rtems- \
|
||||
--enable-sim-powerpc \
|
||||
--enable-sim-timebase \
|
||||
--enable-sim-inline \
|
||||
--enable-sim-hardware \
|
||||
--enable-targets=all \
|
||||
--prefix=<INSTALL_POINT_FOR_PPC>
|
||||
@end example
|
||||
|
||||
Where <INSTALL_POINT_FOR_PPC> is a unique location where the gdb
|
||||
with PSIM will be created.
|
||||
|
||||
|
||||
@subheading Make the Debugger
|
||||
|
||||
From tools/build-ppc execute the following command sequence:
|
||||
|
||||
@example
|
||||
make all install
|
||||
@end example
|
||||
|
||||
NOTE: The @code{make} utility used should be GNU make.
|
||||
|
||||
@section GDB for DINK32
|
||||
|
||||
@subheading Make the Build Directory
|
||||
|
||||
Create a build directory for the DINK32 Debugger
|
||||
|
||||
@example
|
||||
cd tools
|
||||
mkdir build-dink32
|
||||
@end example
|
||||
|
||||
@subheading Configure for the Build
|
||||
|
||||
Configure the GNU Debugger to communicate with
|
||||
the DINK32 ROM monitor:
|
||||
|
||||
@example
|
||||
cd tools/build-dink32
|
||||
../@value{GDBUNTAR}/configure --target-powerpc-elf \
|
||||
--program-prefix=powerpc-rtems- \
|
||||
--enable-targets=all \
|
||||
--prefix=<INSTALL_POINT_FOR_DINK32>
|
||||
@end example
|
||||
|
||||
Where <INSTALL_POINT_FOR_DINK32> is a unique location where the
|
||||
gdb Dink32 will be created.
|
||||
|
||||
@subheading Make the Debugger
|
||||
|
||||
From tools/build-dink32 execute the following command sequence:
|
||||
|
||||
@example
|
||||
make all install
|
||||
@end example
|
||||
|
||||
NOTE: The @code{make} utility used should be GNU make.
|
||||
@@ -1,162 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@chapter Introduction
|
||||
|
||||
The purpose of this document is to guide you through the process of
|
||||
installing a GNU cross development environment to use with RTEMS.
|
||||
|
||||
If you are already familiar with the concepts behind a cross compiler and
|
||||
have a background in Unix, these instructions should provide the bare
|
||||
essentials for performing a setup of the following items:
|
||||
|
||||
@itemize @bullet
|
||||
@item GNAT/RTEMS Cross Compilation Tools on your host system
|
||||
@item RTEMS OS for the target host
|
||||
@item GDB Debugger
|
||||
@end itemize
|
||||
|
||||
The remainder of this chapter provides background information on real-time
|
||||
embedded systems and cross development and an overview of other
|
||||
resources of interest on the Internet. If you are not familiar with
|
||||
real-time embedded systems or the other areas, please read those sections.
|
||||
These sections will help familiarize you with the
|
||||
types of systems RTEMS is designed to be used in and the cross development
|
||||
process used when developing RTEMS applications.
|
||||
|
||||
@section Real-Time Embedded Systems
|
||||
|
||||
Real-time embedded systems are found in practically every facet of our
|
||||
everyday lives. Today's systems range from the common telephone, automobile
|
||||
control systems, and kitchen appliances to complex air traffic control
|
||||
systems, military weapon systems, an d production line control including
|
||||
robotics and automation. However, in the current climate of rapidly changing
|
||||
technology, it is difficult to reach a consensus on the definition of a
|
||||
real-time embedded system. Hardware costs are continuing to rapidly decline
|
||||
while at the same time the hardware is increasing in power and functionality.
|
||||
As a result, embedded systems that were not considered viable two years ago
|
||||
are suddenly a cost effective solution. In this domain, it is not uncommon
|
||||
for a single hardware configuration to employ a variety of architectures and
|
||||
technologies. Therefore, we shall define an embedded system as any computer
|
||||
system that is built into a larger system consisting of multiple technologies
|
||||
such as digital and analog electronics, mechanical devices, and sensors.
|
||||
|
||||
Even as hardware platforms become more powerful, most embedded systems are
|
||||
critically dependent on the real-time software embedded in the systems
|
||||
themselves. Regardless of how efficiently the hardware operates, the
|
||||
performance of the embedded real-time software determines the success of the
|
||||
system. As the complexity of the embedded hardware platform grows, so does
|
||||
the size and complexity of the embedded software. Software systems must
|
||||
routinely perform activities which were only dreamed of a short time ago.
|
||||
These large, complex, real-time embedded applications now commonly contain
|
||||
one million lines of code or more.
|
||||
|
||||
Real-time embedded systems have a complex set of characteristics that
|
||||
distinguish them from other software applications. Real-time embedded
|
||||
systems are driven by and must respond to real world events while adhering to
|
||||
rigorous requirements imposed by the environment with which they interact.
|
||||
The correctness of the system depends not only on the results of
|
||||
computations, but also on the time at which the results are produced. The
|
||||
most important and complex characteristic of real-time application systems is
|
||||
that they must receive and respond to a set of external stimuli within rigid
|
||||
and critical time constraints.
|
||||
|
||||
A single real-time application can be composed of both soft and hard
|
||||
real-time components. A typical example of a hard real-time system is a
|
||||
nuclear reactor control system that must not only detect failures, but must
|
||||
also respond quickly enough to prevent a meltdown. This application also has
|
||||
soft real-time requirements because it may involve a man-machine interface.
|
||||
Providing an interactive input to the control system is not as critical as
|
||||
setting off an alarm to indicate a failure condition. However, th e
|
||||
interactive system component must respond within an acceptable time limit to
|
||||
allow the operator to interact efficiently with the control system.
|
||||
|
||||
@section Cross Development
|
||||
|
||||
Today almost all real-time embedded software systems are developed in a
|
||||
@b{cross development} environment using cross development tools. In the cross
|
||||
development environment, software development activities are typically
|
||||
performed on one computer system, the @b{host} system, while the result of the
|
||||
development effort (produced by the cross tools) is a software system that
|
||||
executes on the @b{target} platform. The requirements for the target platform are
|
||||
usually incompatible and quite often in direct conflict with the requirements
|
||||
for the host. Moreover, the target hardware is often custom designed for a
|
||||
particular project. This means that the cross development toolset must allow
|
||||
the developer to customize the tools to address target specific run-time
|
||||
issues. The toolset must have provisions for board dependent initialization
|
||||
code, device drivers, and error handling code.
|
||||
|
||||
The host computer is optimized to support the code development cycle with
|
||||
support for code editors, compilers, and linkers requiring large disk drives,
|
||||
user development windows, and multiple developer connections. Thus the host
|
||||
computer is typically a traditional UNIX workstation such as are available
|
||||
from SUN or Silicon Graphics, or a PC running either a version of MS-Windows
|
||||
or UNIX. The host system may also be required to execute office productivity
|
||||
applications to allow the software developer to write documentation, make
|
||||
presentations, or track the project's progress using a project management
|
||||
tool. This necessitates that the host computer be general purpose with
|
||||
resources such as a thirty-two or sixty-four bit processor, large amounts of
|
||||
RAM, a monitor, mouse, keyboard, hard and floppy disk drives, CD-ROM drive,
|
||||
and a graphics card. It is likely that the system will be multimedia capable
|
||||
and have some networking capability.
|
||||
|
||||
Conversely, the target platform generally has limited traditional computer
|
||||
resources. The hardware is designed for the particular functionality and
|
||||
requirements of the embedded system and optimized to perform those tasks
|
||||
effectively. Instead of hard driverss and keyboards, it is composed of
|
||||
sensors, relays, and stepper motors. The per-unit cost of the target platform
|
||||
is typically a critical concern. No hardware component is included without
|
||||
being cost justified. As a result, the processor of the target system is
|
||||
often from a different processor family than that of the host system and
|
||||
usually has lower performance. In addition to the processor families
|
||||
targeted only for use in embedded systems, there are versions of nearly every
|
||||
general-purpose process or specifically tailored for real-time embedded
|
||||
systems. For example, many of the processors targeting the embedded market
|
||||
do not include hardware floating point units, but do include peripherals such
|
||||
as timers, serial controllers, or network interfaces.
|
||||
|
||||
@section Resources on the Internet
|
||||
|
||||
This section describes various resources on the Internet which are of
|
||||
use to GNAT/RTEMS users.
|
||||
|
||||
@subsection RTEMS Mailing List
|
||||
|
||||
rtems-users@@rtems.com
|
||||
|
||||
This mailing list is dedicated to the discussion of issues related
|
||||
to RTEMS, including GNAT/RTEMS. If you have questions about RTEMS,
|
||||
wish to make suggestions, or just want to pick up hints, this is a
|
||||
good list to subscribe to. Subscribe by sending an empty mail
|
||||
message to rtems-users-subscribe@@rtems.com. Messages sent
|
||||
to rtems-users@@rtems.com are posted to the list.
|
||||
|
||||
@subsection CrossGCC Mailing List
|
||||
|
||||
crossgcc@@cygnus.com
|
||||
|
||||
This mailing list is dedicated to the use of the GNU tools in
|
||||
cross development environments. Most of the discussions
|
||||
focus on embedded issues. Subscribe by sending a message with
|
||||
the one line "subscribe" to crossgcc-request@@cygnus.com.
|
||||
|
||||
The crossgcc FAQ as well as a number of patches and utiliities
|
||||
of interest to cross development system users are available
|
||||
at ftp://ftp.cygnus.com/pub/embedded/crossgcc.
|
||||
|
||||
@subsection GNAT Chat Mailing List
|
||||
|
||||
chat@@gnat.com
|
||||
|
||||
This mailing list is dedicated to the general discussion
|
||||
of GNAT specific issues. The discussions try to avoid
|
||||
more general Ada95 language issues which have other
|
||||
forums. Subscribe by sending a message with
|
||||
the one line "subscribe" to chat-request@@gnat.com.
|
||||
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@chapter Requirements
|
||||
|
||||
A fairly large amount of disk space is required to perform the build of the
|
||||
GNU C/C++ Cross Compiler Tools for RTEMS. The following table may help in
|
||||
assessing the amount of disk space required for your installation:
|
||||
|
||||
@example
|
||||
+------------------------------------+--------------------------+
|
||||
| Component | Disk Space Required |
|
||||
+------------------------------------+--------------------------+
|
||||
| archive directory | 40 Mbytes |
|
||||
| tools src unarchived | 200 Mbytes |
|
||||
| each individual build directory | up to 500 Mbytes |
|
||||
| each installation directory | 20-200 Mbytes |
|
||||
+------------------------------------+--------------------------+
|
||||
@end example
|
||||
|
||||
It is important to understand that the above requirements only address
|
||||
the GNU C/C++ Cross Compiler Tools themselves. Adding additional
|
||||
languages such as Fortran or Objective-C can increase the size
|
||||
of the build and installation directories. Also, the unarchived
|
||||
source and build directories can be removed after the tools are
|
||||
installed.
|
||||
|
||||
After the tools themselves are installed, RTEMS must be built
|
||||
and installed for each Board Support Package that you wish
|
||||
to use. Thus the precise amount of disk space required
|
||||
for each installation directory depends highly on the number
|
||||
of RTEMS BSPs which are to be installed. If a single BSP is
|
||||
installed, then the additional size of each install directory
|
||||
will tend to be in the 40-60 Mbyte range.
|
||||
|
||||
There are a number of factors which must be taken into
|
||||
account in oreder to estimate the amount of disk space required
|
||||
to build RTEMS itself. Attempting to build multiple BSPs in
|
||||
a single step increases the disk space requirements. Similarly
|
||||
enabling optional features increases the build and install
|
||||
space requirements. In particular, enabling and building
|
||||
the RTEMS tests results in a significant increase in build
|
||||
space requirements but since the test are not installed has
|
||||
no impact on installation requirements.
|
||||
|
||||
The instructions in this manual should work on any computer running
|
||||
a UNIX variant. Some native GNU tools are used by this procedure
|
||||
including:
|
||||
|
||||
@itemize @bullet
|
||||
@item GCC
|
||||
@item GNAT
|
||||
@item GNU make
|
||||
@end itemize
|
||||
|
||||
In addition, some native utilities may be deficient for building
|
||||
the GNU tools.
|
||||
|
||||
@section Native GNAT
|
||||
|
||||
The native GNAT must be installed in the default location or built
|
||||
from source. No GCC or GNAT environment variables should be set during
|
||||
the build or use of the cross GNAT/RTEMS toolset as this could result in
|
||||
an unpredictable mix of native and cross toolsets.
|
||||
|
||||
Binaries for native GNAT installations are available at the primary
|
||||
GNAT ftp site (@value{GNAT-FTP}. Installation instructions are
|
||||
included with the binary GNAT distributions. The binary installation
|
||||
should be installed in the default location or installed in a
|
||||
non-default location and used ONLY to build a native GNAT from source.
|
||||
This final native GNAT will be used to build the GNAT/RTEMS cross
|
||||
development toolset.
|
||||
|
||||
@subsection Verifying Correct Operation of Native GNAT
|
||||
|
||||
It is imperative that the native GNAT installation work correctly for
|
||||
the installation of GNAT/RTEMS to succeed. It is recommended that the
|
||||
user verify that the native GNAT is installed correctly by performing
|
||||
these tests:
|
||||
|
||||
@subsubsection Native Hello World Test
|
||||
|
||||
Place the following Ada source code in hello.adb:
|
||||
|
||||
@example
|
||||
with Text_IO; use Text_IO;
|
||||
|
||||
procedure Hello is
|
||||
begin
|
||||
Put_Line ( "Hello World");
|
||||
end Hello;
|
||||
@end example
|
||||
|
||||
Use the following command sequence to ompile and execute the above program:
|
||||
|
||||
@example
|
||||
gnatmake hello
|
||||
./hello
|
||||
@end example
|
||||
|
||||
If the message @code{Hello World} is printed, then the native installation
|
||||
of GNAT operates well enough to proceed.
|
||||
|
||||
@subsubsection Insure GCC and GNAT Environment Variables Are Not Set
|
||||
|
||||
If any of the following commands produce output, then you have
|
||||
environment variables overriding the default behavior of the
|
||||
native GNAT toolset. These variables will conflict with the cross
|
||||
toolset. Please resolve this problem before proceeding further.
|
||||
|
||||
@example
|
||||
echo $GCC_EXEC_PREFIX
|
||||
echo $ADA_INCLUDE_PATH
|
||||
echo $ADA_OBJECTS_PATH
|
||||
echo $LD_RUN_PATH
|
||||
echo $C_INCLUDE_PATH
|
||||
@end example
|
||||
@@ -1,57 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@chapter Building the Sample Application
|
||||
|
||||
@section Unpack the Sample Application
|
||||
|
||||
Use the following command to unarchive the sample application:
|
||||
|
||||
@example
|
||||
cd tools
|
||||
tar xzf ../archive/hello_world_ada.tgz
|
||||
@end example
|
||||
|
||||
@section Create a BSP Specific Makefile
|
||||
|
||||
Provided are example Makefiles for multiple BSPs. Copy one of these to
|
||||
the file Makefile.<BOARD_SUPPORT_PACKAGE> and edit it as appropriate for
|
||||
your local configuration.
|
||||
|
||||
Use the <INSTALLATION_POINT> and <BOARD_SUPPORT_PACKAGE> specified when
|
||||
configuring and installing RTEMS.
|
||||
|
||||
@section Build the Sample Application
|
||||
|
||||
Use the following command to start the build of the sample application:
|
||||
|
||||
@example
|
||||
cd tools/hello_world_ada
|
||||
make -f Makefile.<BOARD_SUPPORT_PACKAGE>
|
||||
@end example
|
||||
|
||||
NOTE: GNU make is the preferred @code{make} utility. Other @code{make}
|
||||
implementations may work but all testing is done with GNU make.
|
||||
|
||||
If the BSP specific modifications to the Makefile were correct and
|
||||
no errors are detected during the sample application build, it is
|
||||
reasonable to assume that the build of the GNAT/RTEMS Cross Compiler Tools
|
||||
for RTEMS and RTEMS itself for the selected host and target
|
||||
combination was done properly.
|
||||
|
||||
@section Application Executable
|
||||
|
||||
If the sample application has successfully been build, then the application
|
||||
executable is placed in the following directory:
|
||||
|
||||
@example
|
||||
tools/hello_world_ada/o-optimize/<filename>.exe
|
||||
@end example
|
||||
|
||||
How this executable is downloaded to the target board is very dependent
|
||||
on the BOARD_SUPPORT_PACKAGE selected.
|
||||
@@ -1,110 +0,0 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename started_ada.info
|
||||
@setcontentsaftertitlepage
|
||||
@syncodeindex vr fn
|
||||
@synindex ky cp
|
||||
@paragraphindent 0
|
||||
@c %**end of header
|
||||
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@c
|
||||
@c Master file for the Getting Started (C) Guide
|
||||
@c
|
||||
|
||||
@include version.texi
|
||||
@include common/setup.texi
|
||||
@include common/rtems.texi
|
||||
|
||||
@c
|
||||
@c Now set all the tool version dependent information
|
||||
@c
|
||||
@include tversions.texi
|
||||
|
||||
@ifset use-ascii
|
||||
@dircategory RTEMS On-Line Manual
|
||||
@direntry
|
||||
* Getting Started with GNAT/RTEMS: (started_ada)
|
||||
@end direntry
|
||||
@end ifset
|
||||
|
||||
@c
|
||||
@c Title Page Stuff
|
||||
@c
|
||||
|
||||
@c
|
||||
@c I don't really like having a short title page. --joel
|
||||
@c
|
||||
@c @shorttitlepage Getting Started with RTEMS
|
||||
|
||||
@setchapternewpage odd
|
||||
@settitle Getting Started with GNAT/RTEMS
|
||||
@titlepage
|
||||
@finalout
|
||||
|
||||
@title Getting Started with GNAT/RTEMS
|
||||
@subtitle Edition @value{EDITION}, for @value{VERSION}
|
||||
@sp 1
|
||||
@subtitle @value{UPDATED}
|
||||
@author On-Line Applications Research Corporation
|
||||
@page
|
||||
@include common/cpright.texi
|
||||
@end titlepage
|
||||
|
||||
@c This prevents a black box from being printed on "overflow" lines.
|
||||
@c The alternative is to rework a sentence to avoid this problem.
|
||||
|
||||
@contents
|
||||
|
||||
@include intro.texi
|
||||
@include require.texi
|
||||
@include buildada.texi
|
||||
@include buildrt.texi
|
||||
@include sample.texi
|
||||
@include gdb.texi
|
||||
|
||||
@ifinfo
|
||||
@node Top, Introduction, (dir), (dir)
|
||||
@top started_ada
|
||||
|
||||
This is the online version of the Getting Started with GNAT/RTEMS.
|
||||
|
||||
@menu
|
||||
* Introduction::
|
||||
* Requirements::
|
||||
* Building the GNAT Cross Compiler Toolset::
|
||||
* Building RTEMS::
|
||||
* Building the Sample Application::
|
||||
* Building the GNU Debugger::
|
||||
@end menu
|
||||
|
||||
@c * Command and Variable Index::
|
||||
@c * Concept Index::
|
||||
@end ifinfo
|
||||
@c
|
||||
@c
|
||||
@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here
|
||||
@c
|
||||
|
||||
@c @node Command and Variable Index, Concept Index, GDB for DINK32, Top
|
||||
@c @unnumbered Command and Variable Index
|
||||
|
||||
@c There are currently no Command and Variable Index entries.
|
||||
|
||||
@c @printindex fn
|
||||
|
||||
@c @node Concept Index, , Command and Variable Index, Top
|
||||
@c @unnumbered Concept Index
|
||||
|
||||
@c There are currently no Concept Index entries.
|
||||
@c @printindex cp
|
||||
|
||||
@bye
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2002.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
|
||||
@c
|
||||
@c This file contains all toolset version dependent information
|
||||
@c
|
||||
|
||||
@c
|
||||
@c Comment out setting the "XYZ-RTEMSPATCH" variable if there is no
|
||||
@c patch required. The documentation will detect this and print
|
||||
@c an appropriate message in a short section.
|
||||
@c
|
||||
|
||||
|
||||
@c
|
||||
@c GCC Version
|
||||
@c
|
||||
|
||||
@set GCCVERSION gcc 2.8.1
|
||||
@set GCCTAR gcc-2.8.1.tar.gz
|
||||
@set GCCUNTAR gcc-2.8.1
|
||||
@set GCCFTPSITE ftp.gnu.org
|
||||
@set GCCFTPDIR /pub/gnu/gcc
|
||||
@set GCCRTEMSPATCH gcc-2.8.1-rtems-gnat-3.13p-20000429.diff.gz
|
||||
|
||||
@c
|
||||
@c GNAT Version
|
||||
@c
|
||||
|
||||
@set GNAT-VERSION gnat 3.13p
|
||||
@set GNAT-TAR gnat-3.13p-src.tar.gz
|
||||
@set GNAT-UNTAR gnat-3.13p-src
|
||||
@set GNAT-FTPSITE NONE
|
||||
@set GNAT-FTPDIR NO_DIRECTORY
|
||||
@set GNAT-RTEMSPATCH gnat-3.13p-rtems-20000829.diff
|
||||
|
||||
@c
|
||||
@c BINUTILS Version
|
||||
@c
|
||||
|
||||
@c The "official" binutils
|
||||
@set BINUTILSVERSION binutils 2.10
|
||||
@set BINUTILSTAR binutils-2.10.tar.gz
|
||||
@set BINUTILSUNTAR binutils-2.10
|
||||
@set BINUTILSFTPSITE ftp.gnu.org
|
||||
@set BINUTILSFTPDIR /pub/gnu/binutils
|
||||
@set BINUTILSRTEMSPATCH binutils-2.10-rtems-gnat-3.13p-20001107.diff
|
||||
|
||||
@c
|
||||
@c NEWLIB Version
|
||||
@c
|
||||
|
||||
@set NEWLIBVERSION newlib 1.8.2
|
||||
@set NEWLIBTAR newlib-1.8.2.tar.gz
|
||||
@set NEWLIBUNTAR newlib-1.8.2
|
||||
@set NEWLIBFTPSITE sources.redhat.com
|
||||
@set NEWLIBFTPDIR /pub/newlib
|
||||
@set NEWLIBRTEMSPATCH newlib-1.8.2-rtems-20000606.diff.gz
|
||||
|
||||
@c
|
||||
@c GDB Version
|
||||
@c
|
||||
|
||||
@set GDBVERSION gdb 4.17
|
||||
@set GDBTAR gdb-4.17.tar.gz
|
||||
@set GDBUNTAR gdb-4.17
|
||||
@set GDBFTPSITE ftp.gnu.org
|
||||
@set GDBFTPDIR /pub/gnu/gdb/
|
||||
@set GDBRTEMSPATCH gdb-4.17-rtems-gnat-3.13p-20000918.diff
|
||||
@c @set GDB-GNATPATCH gdb-ada-patch-1.17.8.gz
|
||||
|
||||
@c
|
||||
@c RTEMS Version
|
||||
@c
|
||||
|
||||
@set RTEMSVERSION RTEMS Snapshot
|
||||
@set RTEMSTAR rtems-ss-DATE.tgz
|
||||
@set RTEMSUNTAR rtems-DATE
|
||||
@set RTEMSFTPSITE ftp.rtems.com
|
||||
@set RTEMSFTPDIR /pub/rtems/snapshots/current
|
||||
|
||||
@@ -98,7 +98,7 @@ an object name:
|
||||
#include <rtems.h>
|
||||
#include <rtems/bspIo.h>
|
||||
|
||||
void print_name(rtems_id the_object)
|
||||
void print_name(rtems_id id)
|
||||
@{
|
||||
char buffer[10]; /* name assumed to be 10 characters or less */
|
||||
char *result;
|
||||
|
||||
@@ -226,7 +226,11 @@ on the target hardware.
|
||||
This type is deprecated. Use "float" instead.
|
||||
|
||||
@findex rtems_status_codes
|
||||
@item @code{@value{DIRPREFIX}status_codes} is the
|
||||
@item @code{@value{DIRPREFIX}status_codes} is the return type for most
|
||||
RTEMS services. This is an enumerated type of approximately twenty-five
|
||||
values. In general, when a service returns a particular status code, it
|
||||
indicates that a very specific error condition has occurred.
|
||||
|
||||
@findex rtems_task
|
||||
@item @code{@value{DIRPREFIX}task} is the return type for an
|
||||
RTEMS Task.
|
||||
|
||||
@@ -194,13 +194,28 @@ implementation error to use RTEMS_SELF from an ISR.
|
||||
@item Interrupt Management
|
||||
|
||||
@itemize -
|
||||
@item rtems_interrupt_enable
|
||||
@item rtems_interrupt_enable
|
||||
@item rtems_interrupt_disable
|
||||
@item rtems_interrupt_flash
|
||||
@item rtems_interrupt_is_in_progress
|
||||
@item rtems_interrupt_catch
|
||||
@end itemize
|
||||
|
||||
@item Clock Management
|
||||
|
||||
@itemize
|
||||
@item rtems_clock_set
|
||||
@item rtems_clock_get
|
||||
@item rtems_clock_get_tod
|
||||
@item rtems_clock_get_tod_timeval
|
||||
@item rtems_clock_get_seconds_since_epoch
|
||||
@item rtems_clock_get_ticks_per_second
|
||||
@item rtems_clock_get_ticks_since_boot
|
||||
@item rtems_clock_get_uptime
|
||||
@item rtems_clock_set_nanoseconds_extension
|
||||
@item rtems_clock_tick
|
||||
@end itemize
|
||||
|
||||
@item Message, Event, and Signal Management
|
||||
|
||||
@itemize -
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@c
|
||||
@c COPYRIGHT (c) 1988-2008.
|
||||
@c COPYRIGHT (c) 1988-2010.
|
||||
@c On-Line Applications Research Corporation (OAR).
|
||||
@c All rights reserved.
|
||||
@c
|
||||
@@ -83,8 +83,8 @@ RTEMS allocates a Partition Control
|
||||
Block (PTCB) from the PTCB free list. This data structure is
|
||||
used by RTEMS to manage the newly created partition. The number
|
||||
of buffers in the partition is calculated based upon the
|
||||
specified partition length and buffer size, and returned to the
|
||||
calling task along with a unique partition ID.
|
||||
specified partition length and buffer size. If successful,the
|
||||
unique partition ID is returned to the calling task.
|
||||
|
||||
@subsection Obtaining Partition IDs
|
||||
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
2010-10-01 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
PR 1708/build:
|
||||
* aclocal/check-cpuopts.m4: Fix m4-quoting.
|
||||
|
||||
2010-09-23 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
* aclocal/check-cpuopts.m4: Add AC_LANG_SOURCE.
|
||||
|
||||
2008-09-10 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
* aclocal/canonical-target-name.m4: Remove TI C4x and NIOS2 ports from
|
||||
|
||||
@@ -13,12 +13,12 @@ AS_IF([test "${enable_project_root+set}" = set],[
|
||||
AC_CACHE_CHECK(
|
||||
[for $1],
|
||||
[rtems_cv_$1],
|
||||
[AC_COMPILE_IFELSE([
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||
#include <rtems/system.h>
|
||||
#ifndef $1
|
||||
choke me
|
||||
#endif
|
||||
],
|
||||
])],
|
||||
[rtems_cv_$1=yes],
|
||||
[rtems_cv_$1=no])
|
||||
])
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.9.4]))
|
||||
m4_define([_RTEMS_VERSION],[4.9.5]))
|
||||
|
||||
m4_define([RTEMS_API],[4.9])
|
||||
|
||||
Reference in New Issue
Block a user