📄 readme
字号:
## $Id: README,v 1.6 2000/08/11 19:26:31 joel Exp $#This is a README file for the MVME167 port of RTEMS 4.5.0.Please send any comments, improvements, or bug reports to:Charles-Antoine Gauthiercharles.gauthier@nrc.caorDarlene StewartDarlene.Stewart@nrc.ca Software Engineering GroupInstitute for Information TechnologyNational Research Council of CanadaOttawa, ON, K1A 0R6CanadaDisclaimer----------The National Research Council of Canada is distributing this RTEMSboard support package for the Motorola MVME167 as free software; youcan redistribute it and/or modify it under terms of the GNU GeneralPublic License as published by the Free Software Foundation; eitherversion 2, or (at your option) any later version. This software isdistributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public Licensefor more details. You should have received a copy of the GNU GeneralPublic License along with RTEMS; see file COPYING. If not, write tothe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.Under no circumstances will the National Research Council of Canadanor Her Majesty the Queen in right of Canada assume any liablilityfor the use this software, nor any responsibility for its quality orits support.Installation------------Nothing unique to the MVME167. It uses the standard build process form68k targets. You will need to edit linkcmds to put in the start addressof your board. We do TFTP transfers to our target. The mvme167.cfg filebuilds only the ELF images, which we download to the target, skippingover the first 0x54 bytes; Motorola S-records are not generated. Editthis file if you want S-records.Port DescriptionConsole driver---------------This BSP includes an termios-capable interrupt-driven I/O console driverthat supports all four serial ports on the MVME167 model. The port labelledSerial Port 1/Console on the MVME712 is normally used by 167Bug; do not open/dev/tty00 if you are debugging using 167Bug.Limited support is provided for polled terminal I/O. This is used whenrunning the timing tests, and by the printk() debug output function.Polled I/O may use termios, or it may bypass those services. The printk()function does not use termios. When polled I/O is used, the terminal settingsmust be set through 167-Bug; trying to change the line settings through RTEMShas no effect.Three is no support for using interrupt-driven I/O without termios support.The default configuration is to use polled I/O and to bypass termios. Thisis done so the test can be built at the same time as the rest of the system.It is highly recommended that the defaults be changed in the mvme167.cfg fileto reflect the desired defaults, or that the appropriate parameters be set upin NVRAM to select the appropriate I/O modes at boot time.When configured for interrupt-driven I/O, the console is initialized withwhatever parameters are set up in termios before it calls the firtOpen drivercallback, EXCEPT THAT HARDWARE HANDSHAKING IS TURNED OFF, i.e. CLOCAL is setin the struct termios c_cflag field. We use 3-wire cables for I/O, and findhardware handshaking a pain. If you enable hardware handshaking, you must driveCTS* low on the CD2401 for output to occur. If the port is in the DTEconfiguration, you must drive the RS-232 CTS line to space; if the port isin the DCE configuration, you must drive the RS-232 RTS line to space.To use interrupt-driven I/O, set the CD2401_IO_MODE manifest constant to 1 inrtems/make/custom/mvme167.cfg, or configure the appropriate parameter inUser Area Non-volatile RAM. See the Configuration Parameters section belowfor instructions on setting up NVRAM.To use termios, set the CD2401_USE_TERMIOS manifest constant to 1 inrtems/make/custom/mvme167.cfg, or configure the appropriate parameter inUser Area Non-volatile RAM. See the Configuration Parameters sectionbelow for instructions on setting up NVRAM.The RTEMS console, i.e. the port used by stdin, stdout and stderr (do notconfuse it with the port labelled Console on the MVME712), must bespecified in the rtems/make/custom/mvme167.cfg file, or in the NVRAMparameters. Set the value of CONSOLE_MINOR appropriately. See below for alist of choices. See the Configuration Parameters section below forinstructions on setting up NVRAM.The RTEMS printk port, i.e. the port where printk sends it debugging outputtext, must be specified in the rtems/make/custom/mvme167.cfg file, or in theNVRAM parameters. Set the value of PRINTK_MINOR appropriately. See below for alist of choices. See the Configuration Parameters section below forinstructions on setting up NVRAM.Interrupt-driven and polled I/O cannot be mixed in the MVME167, except thatprintk always used polled I/O without termios. If interrupt-driven I/O isused and printk is used, do not open the device that printk uses from anRTEMS application.Console and printk port choices: 0 - /dev/tty0, Serial Port 1/Console on the MVME712M. 1 - /dev/tty1, Serial Port 2/TTY01 on the MVME712M. 2 - /dev/tty2, Serial Port 3 on the MVME712M. 3 - /dev/tty3, Serial Port 4 on the MVME712M.Setting the RTEMS console to port 0 when interrupt-driven I/O is specifiedwill prevent 167-Bug from using that port.To use polled I/O on port 2 or 3, the port must be configured in 167-Bug. Seethe "PF" command in the "Debugging Package for Motorola 68K CISC CPUs User'sManual", part number 68KBUG.Floating-point--------------The MC68040 has a built-in FPU. This FPU does not implement all theinstruction of the MC68881/MC68882 floating-point coprocessors inhardware. The -m68040 compilation options instructs gcc to not generatethe missing instructions. All of the RTEMS code is built this way. Someof the missing functionality must be supplied by external libraries. Therequired functions are part of libgcc.a.The issue gets complicated because libc, libm and libgcc do not come asm68040-specific variants. The default variants of these libraries are for theMC68020 and MC68030. There are specific variants for the MC68000 (which haslimited addressing modes with respect to later family members), and specificvariants for systems without a floating-point unit, either a built-in FPU ora coprocessor. These latter variants will be referred to as the msoft-floatvariants. There is a msoft-float variant for the MC68000, and one for theother family members.The default variants of libc, libm and libgcc appear to work just fine for theMC68040, AS LONG AS NO FLOATING POINT FUNCTIONS ARE CALLED. In particular,printf() and scanf() raise unimplemented floating-point instruction exceptionsat run time. Expect almost every function that must compute a floating-pointresult to also raise unimplemented floating-point instruction exceptions. Donot use these variants if your application does any floating-point operations,unless you use the Motorola FPSP package (described further down).The msoft-float variants do print out floating-point numbers properly, but wehave not tested them extensively, so use them with caution. In particular,the Paranoia test fails when linked with the msoft-float variants of thelibraries; it goes into an infinite loop after milestone 40.MSOFT_FLOAT VARIANTS MUST BE USED TOGETHER. If you use the msoft-float variantof libc and libm, you must also linked with the msoft-float variant of libgcc,otherwise calls such as printf() print out floating-point values incorrectly.RTEMS comes with the Motorola FPSP (Floating-Point Support Package) for theMC68040 (rtems/c/src/lib/libcp/m68k/m68040/fpsp). This package emulates themissing floating-point instructions. It is built automatically for theMVME167 and installed in bsp_start().The FPSP allows the use of the default variants of libc, libm and libgcc.It also runs the paranoia test properly, and prints out the correct results.It should probably be used in preference to the msoft-float libraries, as itappears to work better. The disadvantage of the FPSP is that it increases thesize of the executable by about 60KB and that it relies on run timeexceptions.If your application does not do any floating-point operations at all, youshould consider disabling the FPSP. In bsp_start(), emove the call toM68KFPSPInstallExceptionHandlers(), and uncomment the three lines inmvme167.cfg that redefine which variants of libc, libm and libgcc to linkagainst.Configuration Parameters------------------------If Jumper J1-4 is installed, certain configuration parameters may be read fromthe first 31 bytes of User Area NVRAM starting at 0xFFFC0000. In this case, theremaining J1-[5-7] jumpers are ignored, and the user is responsible for writingthe appropriate values in NVRAM (via 167-Bug) in order to alter the defaultbehaviour. A zero value in NVRAM results in the default behaviour. The paramatersthat are configurable and their default settings are described below. Cache Mode (0xFFFC0000 - 1 byte) Set the following bits in the byte to set the desired cache mode: bit 0 0 - data cache disable 1 - data cache enable bit 1 0 - instruction cache disable 1 - instruction cache enable bits 2 & 3: 00 = cachable, write-through 01 = cachable, copyback 10 = noncachable, serialized 11 = noncachable Console driver I/O mode (0xFFFC0001 - 1 byte) Set the following bits in the byte to set the desired I/O mode: bit 0 0 - do not use termios 1 - use termios bit 1 0 - polled I/O 1 - interrupt-driven I/O
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -