From Daniel.Wyss@ascom.ch Mon Dec 1 02:30:26 1997 From: "Daniel Wyss" Date: Mon Dec 1 02:30:33 PST 1997 Subject: VisiBroker C++ for Tornado --MimeMultipartBoundary Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: quoted-printable Hi I am Evaluating a CORBA ORB for VxWorks. - Dose any body have experience with VisiBroker C++ for Tornado and x86= . How are they? - Is it so Easy how the sellers it describes? - Does the VisiBroker ORB operate with a Orbix ORB to together? Thanks for helping Daniel ------------------------------------------------------ Daniel Wyss (ABLE5) SW - Entwicklung tel: +41 31 999 53 53 Ascom Autelca AG fax: +41 31 999 55 48 Br=FCnnenstrasse 66 E-Mail: daniel.wyss@ascom.ch 3018 Bern http://www.ascom.com/banking Switzerland ------------------------------------------------------ = --MimeMultipartBoundary-- From daemon@csg.lbl.gov Tue Dec 2 04:01:09 1997 From: daemon@csg.lbl.gov Date: Tue Dec 2 04:01:13 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Dec 2 04:01:06 PST 1997 Subject: Re: WDB_COMM_SERIAL Subject: PowerPC performance. ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: WDB_COMM_SERIAL Date: Mon, 01 Dec 1997 09:41:51 -0600 From: John Innis Organization: TTC of Texas Instruments, Inc. Message-ID: <3482DABF.9C990140@ti.com> References: <3479EFE0.137C@AKSpace.com> Why do you want to change the boot device? The WDB_COMM_SERIAL constant is used to tell the VxWorks instrumented kernel how to talk to the WindRiver debugger (WDB) it has nothing to do with booting. The manner in which your target boots is not related to the device used to talk to the debugger. Hope this helps, John Innis jinnis@ti.com Dan.Reed@omitron.com wrote: > If I use a raw serial connection by > #define WDB_COMM_TYPE WDB_COMM_SERIAL > > what do I put in for the boot param 'boot device'. > When typing help(h,?) I get a list of devices but nothing for a serial > line. > > Thanks, > Dan --------------------------- Newsgroups: comp.os.vxworks Subject: PowerPC performance. Date: 1 Dec 1997 20:02:46 GMT From: bpringle@teklogix.com (Bill Pringlemeir) Organization: Teklogix Inc. Message-ID: <65v556$kfr$1@news.interlog.com> Reply-To: bpringle@teklogix.com Hello, The VxWorks BSP for the MPC860 (PowerPC) disables both the I-cache and D-cache as far as I can tell. I have looked around for any information on this. Does anyone know why the caches are disabled? thanks, Bill --------------------------- End of New-News digest ********************** From c.j.slominski@larc.larc.nasa.gov Tue Dec 2 04:17:28 1997 From: "Christopher J. Slominski" Date: Tue Dec 2 04:17:31 PST 1997 --MimeMultipartBoundary Content-Type: text/plain; charset="us-ascii" Group, The System Administrator for my VxWorks host machine has upgraded to Tornado 1.0.1 / VxWorks 5.3.1. I no longer can connect remotely to my target. He does not know why, and WRS technical support has not helped. I do not use the WRS "launch", but simply use a UNIX shell script with the following commands. tgtsvr -V & windsh These commands always have worked in the past. Now I get the following diagnostics from the tgtsvr command. Waiting to attach to target server.........Warning: Cannot open display License server is down (error -4). The new installation was made to a different partition of the disk "/export/wind" as opposed to "/usr/wind". Is there any files that need to be updated that are not correctly modified by the WRS installation software? The host machine is a Sun workstation running Solaris. We have a "single-seat" VxWorks license. *----------------------------------------* | Christopher J. Slominski | | Computer Sciences Corporation (CSC) | | 3217 N. Armistead Ave. | | Hampton, VA 23666 | | (757) 766-8258 | | c.j.slominski@larc.nasa.gov | | NASA Mail Stop 931 | *----------------------------------------* --MimeMultipartBoundary-- From phil.quiney@gecm.com Tue Dec 2 06:20:06 1997 From: Philip Quiney Date: Tue Dec 2 06:20:10 PST 1997 Hi Christopher, We have just done the same upgrade to Tornado 1.0.1 but on a Sun/SunOS platform. > tgtsvr -V & > windsh > > These commands always have worked in the past. Now I get the following > diagnostics from the tgtsvr command. > > Waiting to attach to target server.........Warning: Cannot open display This problem is caused by the lack of the DISPLAY environment variable so the X application - the windsh cannot open a window on your screen. > License server is down (error -4). Wind River changed the license mechanism from the Flex system to using something called Elan. Either your system admin chap hasn't set this to start up when the host boots with a command line like: wlmd -e ${WIND_BASE}/.wind/license -l ${WIND_BASE}/.wind/wlmd.log -m 500k The state of the license manager can be found by the command wlmadmin -l > > The new installation was made to a different partition of the disk > "/export/wind" as opposed to "/usr/wind". Is there any files that need to > be updated that are not correctly modified by the WRS installation software? > > The host machine is a Sun workstation running Solaris. We have a > "single-seat" VxWorks license. > Perhaps the above suggestion dosen't apply to a single seat license, the above was what the release notes suggested & it worked for us... Regards Phil Q =============================================================================== Phil Quiney _/_/_/_/ _/ _/_/_/_/ email : phil.quiney@gecm.com GEC Marconi _/ _/ _/ _/ _/ tel : +44 1245 353221x3914 Communications Ltd _/_/_/_/ _/ _/ _/ _/_/ fax : +44 1245 275448 Chelmsford _/ _/_/_/_/ _/_/_/_/ England CM1 1PL _/ =============================================================================== From ctsarogr@mailhost.nsd.fmc.com Tue Dec 2 08:49:29 1997 From: ctsarogr@mailhost.nsd.fmc.com (Gideon R. Saroufiem) Date: Tue Dec 2 08:49:32 PST 1997 Subject: Classic CPU Balance-Loading Problem. Hello, We are trying to perform real-time simulations and we are getting time-out errors. We would like to use a VxWorks utility to monitor the CPU distribution (i.e. the breakdown of how much time a given cpu spends on a given procedure/task/function) We have the misfortune of having an api called ADS3000 that works as interface between the VxWorks OS and Unix OS. Unfortunately we lack the operating reference manual for VxWorks (didn't come with ADS3000 package) so we are in some sense 'working in the dark'. Could someone tell us how we would initiate such a utility from the VxWorks command-line or what C code would we need implement? Any ideas Please. Gideon. From jrowley@viasat.com Tue Dec 2 09:49:46 1997 From: jrowley@viasat.com (jrowley) Date: Tue Dec 2 09:49:50 PST 1997 Subject: Virtual Console I/O --MimeMultipartBoundary Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Using Tornado 1.0.1, I have redirected my stdio/stdout to a virtual console using the .wind/windsh.tcl file as documented in the Tornado Users Guide (Unix) page 187 - "I/O Redirection on Shell Startup". It seems to work fine, I can do my I/O through a window on my unix terminal, except that I am getting the irritating double character syndrome. I can't figure out how to turn the echo off for this virtual terminal! Has anybody run across this and the solution? Thanks for any help. -------------------------------------------------- Jeff Rowley 2290 Cosmos Court | Member, Technical Staff Carlsbad, CA 92009 | ViaSat (760) 438-7210 | -------------------------------------------------- --MimeMultipartBoundary-- From brett@rti.com Tue Dec 2 13:07:06 1997 From: brett@rti.com (Brett Murphy) Date: Tue Dec 2 13:07:09 PST 1997 Subject: Re: Classic CPU Balance-Loading Problem. Hi Gideon, > We are trying to perform real-time simulations > and we are getting time-out errors. > > We would like to use a VxWorks utility to monitor > the CPU distribution (i.e. the breakdown of how > much time a given cpu spends on a given > procedure/task/function) > > > Gideon. If you are running Tornado, try taking a look at the Browser facility's Spy Chart. That will give you CPU usage of your VxWorks tasks on the target. To get CPU usage at the function level you can use ScopeProfile. It will tell you function by function, what percentage of the CPU each has used since you started the profile. ScopeProfile will also give the task usage. This can be useful if you don't have Tornado yet. If you have StethoScope, then you also have ScopeProfile, since it ships with StethoScope. There's more information on our web site if you need it. -- Brett ============================================================================== = = = = Brett Murphy = Product Manager = = Real-Time Innovations, Inc. = email: brett@rti.com = = 155A Moffett Park Drive, Suite 111 = Phone: (408) 720-8312 = = Sunnyvale, CA 94089 = Fax: (408) 734-5009 = = = = ============================================================================== From aram.nahidipour@spdg.COM Tue Dec 2 14:15:52 1997 From: aram.nahidipour@spdg.COM (Aram Nahidipour) Date: Tue Dec 2 14:15:55 PST 1997 Subject: Re: Loading compressed objects Geoff, > > Aram, > > > Submitted-by aram.nahidipour@spdg.COM Tue Nov 25 15:22:19 1997 > > I am downloading a compressed object file from the net and > > decompess it using inflate() into memory. > > Then I use memDevCreate() to create a memory file which I open() later. > > ... > > Pretty dang clever! The bug is with memDrv.c memIoctl() function > lacking a FIOGETNAME function code and loadModule() not checking > the return code, I suspect. Just add it (target/src/config/memDrv.c) > rebuild, and all will be well. Thanks for the tight algorithm. > > I added the FIOGETNAME to memDrv ioctl but it is not working. loadModule() does not call ioctl with FIOGETNAME function. I don't know how it gets the module name. Thanks For your help Aram From cruz_nojunk@xyplex.com Tue Dec 2 16:07:56 1997 From: Roger Cruz Date: Tue Dec 2 16:07:59 PST 1997 Subject: Cross linked files in DOS FS --MimeMultipartBoundary Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I'm experiencing another FAT corruption in the DOS file system provided with 5.3. I already have the patch currently present in WRS' web site installed. A little background: My target is a pc486 which boots DOS first and does a couple of file manipulations (writes, reads and deletes). The user can then choose to boot VxWorks or perform some other configurations. To boot VxWorks I used the WRS supplied utitlity "vxload". Once VxWorks is running, I open a few files for reading and several other for writing. The user then powers off the target without doing an orderly shutdown (meaning that the files opened are never closed). A few times of doing this and eventually we start reading data from one file that belongs to another. What I know so far: If you open a file for write in VxWorks and right after turn off the unit, I get a problem with the FAT. A chkdsk immediately after shows that the file I created has an allocation error (size not correct). If I don't fix this problem right away, a few more open/close and deletes eventually lead to 2 files sharing the same disk cluster (a big no-no). How to get around: On every reboot, do a chkdsk and have it fix the problems. My problem: It takes to long to do a chkdsk everytime. Besides, I want to fix the original problem which is the right solution. RTOS should be able to handle someone plugging the plug without corrupting the HD. Has anybody else seen this problem? Any ideas on how to get around this problem in some other way? Thanks. PS. If you reply, please remove "_nojunk" from email address. -- Roger Cruz cruz_nojunk@xyplex.com Xyplex Networks w: 508-952-4783 295 Foster Street f: 508-952-4887 Littleton, MA 01460 --MimeMultipartBoundary-- From emery3@llnl.gov Tue Dec 2 16:08:46 1997 From: "Ann S Emery" Date: Tue Dec 2 16:08:50 PST 1997 Subject: "bfd assertion fail" error I have been trying to "make" a "test.c" file on a sun4-solaris2 host for an mv2604 target. "ldppc" seems to fail with the following message: bfd assertion fail /vobs/vpwr/host/src/gnu/bfd/elf.c:843 make: *** [test] Segmentation fault (core dumped) make: *** Deleting file 'test' I don't know if this matters, but GCC_EXEC_PREFIX is defined as /opt/wind/tor1.01/host/sun4-solaris2/lib/gcc-lib/ I would appreciate any insight you could give me about how to find out what is wrong. For example, what is "bfd" anyway? Thank you very much. From windnews@trinc.com Tue Dec 2 18:18:44 1997 From: windnews@trinc.com (VxWorks News) Date: Tue Dec 2 18:18:47 PST 1997 Subject: IEEE-1394 Solution from TRI for VxWorks David, TRI provides complete software support for IEEE-1394 for VxWorks. TRI 1394 software stack for VxWorks supports 1394 chipsets from IBM and TI currently. But only one layer (HAL) need to be changed if you need support for a different chipset. TRI's 1394 software stack is very well layered in architecture and can be easily ported to different processor architectures including SA110 or SA1100. The 1394 software stack has various modules like Hardware Adaptation Layer (HAL), Transaction Layer, Serial BUS Manager, Dispatcher etc. These modules are customizable. Over these modules the stack supports the protocols like SBP-2 both as a target & initiator, IP over 1394 and A/Vc. Also the stack will support SBP-2 with Mass Storage Profile for Mass Storage devices, SBP-2 with printer profile and IP1394. Please visit http://www.trinc.com or send a mail to info@trinc.com or call at 408-566-0280 x:201. -Sathyan From: David Leviner Date: Thu Nov 20 06:56:59 PST 1997 Subject: DEC SA-1100 StrongARM & IEEE 1394 Firewire support --MimeMultipartBoundary Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit VxWorks Gurus, Does anyone know if VxWorks supports the Digital Semicomductor SA-110 or SA-1100 StrongARM microprocessor, or any of the ARM microprocessors? If so to what degree? Is there a BSP available or in the works? Also, is there an interface for the IEEE 1394 firewire serial bus supported under VxWorks? Any bit of information concerning these two subjects would help. Thanks, David Leviner From philm@vannes.wrsec.fr Wed Dec 3 02:34:22 1997 From: philm@vannes.wrsec.fr (Philippe Maisonneuve) Date: Wed Dec 3 02:34:25 PST 1997 Subject: Re: Virtual Console I/O --MimeMultipartBoundary Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Jeff, This is a known problem (SPR# 6872) on Solaris 2.5 that does not show up in Solaris 2.4. 6872 Virtual console echoes twice its Tornado 1.0 FCS typed input. Solaris It is caused by a backward compatibility problem between the Solaris 2.5 and Solaris 2.4 streams package. The solution to this problem is to build Tornado on Solaris 2.5 but we could not do this in Tornado 1.0.1 since we had to support Solaris 2.4. Regards, Philippe > Submitted-by jrowley@viasat.com Tue Dec 2 09:49:46 1997 > Submitted-by: jrowley@viasat.com (jrowley) > > Using Tornado 1.0.1, I have redirected my stdio/stdout to a virtual > console using the .wind/windsh.tcl file as documented in the Tornado > Users Guide (Unix) page 187 - "I/O Redirection on Shell Startup". It > seems to work fine, I can do my I/O through a window on my unix > terminal, except that I am getting the irritating double character > syndrome. I can't figure out how to turn the echo off for this > virtual terminal! Has anybody run across this and the solution? > Thanks for any help. > > -------------------------------------------------- > Jeff Rowley 2290 Cosmos Court | > Member, Technical Staff Carlsbad, CA 92009 | > ViaSat (760) 438-7210 | > -------------------------------------------------- --MimeMultipartBoundary-- From daemon@csg.lbl.gov Wed Dec 3 04:00:32 1997 From: daemon@csg.lbl.gov Date: Wed Dec 3 04:00:36 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Dec 3 04:00:28 PST 1997 Subject: Re: VxWorks pricing ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks pricing Date: Mon, 01 Dec 1997 16:00:09 -1000 From: "Malcolm J. Northcott" Organization: Institute For Astronomy, University of Hawaii. Message-ID: <34836BA9.9A8@ifa.hawaii.edu> References: <3.0.3.16.19971120212647.5087072c@mail.gte.net> <3481ED85.AA3@williams-consulting.com> Using rtLinux... I've measured about 20 micro-seconds (thats not a typo I mean 20x10-6 s) interrupt latency on an old 25Mhz 486 pc while doing a full kernel compile. Thats about what we get with our Sparc 5 boards under VxWorks. The rt support is very crude compared with VxWorks, expecially as regards task syncronisation and scheduling. However for simple job requiring only a small number of tasks I suspect it would work just as well as vxWorks. Since all our hardware is based on VME, we are out of luck at the moment! On the positive side, the price is right, and it uses the same development environment as vxWorks. Joel Williams wrote: > > Al Kirke wrote: > > > > >Mike Anderson wrote: > > > > > -snip > > >I too have been a VxWorks fan for many years. I just had to make > > >the decision whether to use VxWorks on yet another project. The > > >steep price ($19K for one target/one seat) gave me great pause. > > -snip > > I based my last project on Linux. It used an embedded PC for a > hardware platform, and Linux as the development host and target. > Worked great. Much more stable than Tornado, much lower devleopment > costs and no royalites. I spent a whole lot less time installing > and supporting Linux than I have spent on Tornado/vxWorks. > And the support was much better, I had source code, and was able > to answer all questions within 1-2 hours. > > Linux is not hard "real time", but with a minimal bit of planning, I > have near-real time reliability to about 5ms accruacy. (The actual > kernel is about the same size as vxWorks kernel.) - -- Malcolm Northcott Institute for astronomy, 2680 Woodlawn Drive Honolulu Hi 96822. Tel: 808-956-8758 Fax: 808-956-4532 backup: 808-988-2790 Email: north@ifa.hawaii.edu WWW: http://queequeg.ifa.hawaii.edu/ --------------------------- End of New-News digest ********************** From Huang.Wu@nrc.ca Wed Dec 3 06:08:20 1997 From: "Wu, Huang" Date: Wed Dec 3 06:08:23 PST 1997 Subject: set vme167 to date --MimeMultipartBoundary Content-Type: text/plain Hello there, We are using a VME167 board with MC68040 processor (host sunos4). We do like to set the vme167 board to the day, but without using host or network since our final application will be a standalone system. We are quite sure there is a realtime clock in the hardware of vme167 since it works for OS9 realtime operating system. I once tried to set the time by i) including Posix Macro in configAll.h ii) using clock_setime(clock_id,&tp) to set time iii) using clock_getime(clock_id,&tpp) to get time But so long as I reboot the system, the initial time I get is always zero. (as one expected, everytime the system is rebooted, vxWorks resets the clock to zero). This seems to tell me we need to connect the hardware clock to the software somehow, which is not clear to me. Does anyone have any idea to illuminate me? Many thanks Huang huang.wu@nrc.ca Flight research Lab, NRC, Canada --MimeMultipartBoundary-- From dsunnarb@wavetech.net Wed Dec 3 07:05:52 1997 From: Dan Sunnarborg Date: Wed Dec 3 07:05:55 PST 1997 Subject: VxWorks Time and Date on x86 --MimeMultipartBoundary Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Can anyone tell me how to read the time and date out of the bios on an x86 so that I can write it to the VxWorks time/date data structure? Thanks! Dan Sunnarborg Software Engineer Applied Biometrics, Inc. dsunnarb@wavetech.net --MimeMultipartBoundary-- From wbrown@csg.lbl.gov Wed Dec 3 10:01:05 1997 From: wbrown@csg.lbl.gov (Bill Brown) Date: Wed Dec 3 10:01:08 PST 1997 Subject: From the "Keeper of the List" - "Secondary Exploders" - ___HELP!!!___ There are quite a few sites around the world that resend the VxWorks exploder messages. We have a bit of a problem and we need the help of those of you who maintain (or can maintain) those lists. "Kenny Cook " is receiving the exploder messages, which is not good as he has no interest in VxWorks. He's not on either of our lists. I'd appreciate it if you could check to see if your site has his address on its' remail list. If it does, please delete him. Many thanks, -bill Duty "Keeper of the List" From nrd1jrb@nrd.ups.com Wed Dec 3 11:47:12 1997 From: Jim Bucciferro Date: Wed Dec 3 11:47:16 PST 1997 Subject: Re: VxWorks Time and Date on x86 --MimeMultipartBoundary Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit the vxWorks Users Group Exploder wrote: > Hi, > > Can anyone tell me how to read the time and date out of the bios on > an x86 so that I can write it to the VxWorks time/date data structure? > > Thanks! > > Dan Sunnarborg Dave, I had the same problem. Here is the information from Wind River. This document tells all and works very well. If you are still having problems with this, let me know. I have some code that retrieves the CMOS time and sets the VxWorks clock. Jim Bucciferro ***************************************************** Subject: Re: PC486 Real time clock Date: Tue, 14 Oct 1997 16:36:59 -0700 From: wrs.com> > Hi, > Does the current BSP for the 386/486 read the realtime clock? Not for the dosFs, no it is not used. The i8253 is used for the system clock, a timer in the RTC is used as an aux clock. See src/drv/i8253Timer.c. > It seems to use the default of 01/01/80 and 00:00:00. I set the > dosFsDateTimeInstall to launch a function that gets the localtime, but > it returns the above date and time with the time incrementing. Yes. It is not setup to use the CMOS clock in the BSP. Nice enhancement, but not part of a generic vxWorks BSP implementation. If you do it, let us know. John > When I check the clock through DOS the date and time are correct. > Do I have to query the realtime clock myself, or does the 486 BSP supply > a function for this? Any help would be appreciated. > (This old note is *loosely* related...) TITLE: NMI and CMOS RTC information for VxWorks x86 AUTHOR: johnx SCOPE DISCOVERED ON HOST: All ------------------- ------------------- ARCHITECTURE: 80386, 80486 PC-AT/PS2 systems ------------------- ------------------- BSP: pc386, pc486, ev386ex ------------------- ------------------- PRODUCT / REVISION: Tornado 1.0 FCS ------------------- ------------------- DESCRIPTION OF PROBLEM: Answers questions concerning NMI and RTC. RESOLUTION: > My question concerns the BSP for the 386. > Port 0x70 of the standard PC/AT design controls the > Non-maskable interrupt and the address register for > the Real-time clock. Correct. In a PC/AT class system, IO ports 0x70 and 0x71 are used for the CMOS RTC clock. This clock is typically a Motorola MC146818 chip or compatible. This chip uses 64 memory registers for storage. 0x00-0x3f. (note: These are bits 0-5 for 0x70) Most PC/AT and PS2 class systems will also use this port to control a hardware 'AND' gate which is routed in the path of the processors NMI signal line. This allows software to effectively enable or disable the NMI signal line at the hardware level. Typically, Bit 7 (MSB) of port 0x70 controls the AND gate and is therefore used to enable/disable the NMI line. Setting bit 7 enables the NMI line, and clearing bit 7 disables the NMI line. In most PC-AT systems, the Basic Input/Output System (BIOS) sets (enables) this bit during the Power On Self Test(POST) right before boot- strapping to an OS. > Q1: Does VxWorks by default mask the NMI? No. The 80x86 cannot "mask" the NMI at the processor level. Nor, do we alter the setting of the NMI 'AND Gate' from what the BIOS has setup. (BIOS typically enables NMI AND Gate.) We need to be careful with terminology. There are three separate concepts: 1.) Controlling the NMI signal line in hardware via enabling/disabling the AND gate through IO port 0x70. 2.) Disabling an external interrupt level in the I8259 interrupt controller via sysIntEnablePIC(). 3.) Masking all maskable interrupts via intLock(). You cannot "mask" the processors non-maskable interrupt via intLock(). That is to say, you cannot disable NMI by setting the processors IF flag. This is why it is called a non-maskable interrupt. The masking of the 80x86 maskable interrupts is done using intLock(), which internally uses the processor IF flag. Setting the IF flag puts the processor in a mode in which it responds to maskable interrupts. Clearing the IF flag prevents the processor from responding to maskable interrupts. The IF flag has no effect non-maskable interrupts The NMI interrupt is always enabled in the 80x86 processor. (With one exception for when running a NMI handler in which case, the processor will not handle NMI to avoid exception runaway). As mentioned above, most AT class systems can enable/disable the 80x86 NMI line by passing the NMI signal line through an AND gate controlled by software, bit 7 in the CMOS I/O port. Hardware can clear the bit when the processor is reset, and software can set the bit when it is ready to handle NMI interrupts. This is typically done by the BIOS at cold boot. VxWorks doesn't alter this setting. > What > would happen if it was unmasked and an NMI occurred? If the processor received a NMI while vxWorks was running, the OS would attempt to print the message "Nonmaskable Interrupt" and dump system registers, suspend the running task, run a hook if one was installed via excHookAdd. If NMI happened at interrupt level, we would attempt to store the register information to memory (sysExcMsg) and trap to the vxWorks rom monitor. > Q2: Does VxWorks trap port 0x70 for reads and/or writes? No. > When I read this port I always get value 0xff > no matter what I write to the port. I don't believe you need to read (sysInByte) from IO address 0x70 for CMOS data. I think you write the CMOS register address you wish to read/write to port 70h; then read/write port 71h to get/set CMOS data. All addresses sent to port 70h should have Bits 7&6 clear, since Bit 7 of port 70h is used to enable/disable the NMI signal line. NOTE: If you really really want to mask the NMI through using port 70H, port 71H should be read immediately after or the RTC may be left in an strange unknown state. Once bitten... Be careful, make sure you have a good reason for disabling NMI. You access to the CMOS data by outputting to port 0x70 the offset of the byte you wish to receive alter. Then read/write the value of that current byte from port 71h. In this manner, applications can get or set values of CMOS settings. sysOutByte 0x70h, 0x04 <----- offset of current hour sysInByte 71h, var <----- var now contains current hour sysOutByte 71h, 1 <----- CMOS now thinks it is 1 : xx AM In order to be certain that the CORRECT offset is being read/written, it may be needed to protect this with a semaphore, or taskLock() & intLock(). > Q3: Does VxWorks read or write to the real-time clock? You bet. The (RTC) auxiliary clock uses this port. The spy() utility uses the aux. clock. See the source code in: %WIND_BASE%\target\src\Dr\timer\i8253Timer.c (non-windview) %WIND_BASE%\target\src\drv\timer\i8253TimerTS.c (windview) RTC_INDEX = 0x70 RTC_DATA = 0x71 (Note where we mask int's in sysAuxClkInt().) Here is some general information on CMOS RTC - Real Time Clock and Memory (ports 70h & 71h) (No assumptions are made to the accuracy of this data, refer to your hardwares data books.) % Reg# Description 00 RTC seconds 01 RTC seconds alarm 02 RTC minutes 03 RTC minutes alarm 04 RTC hours 05 RTC hours alarm 06 RTC day of week 07 RTC day of month 08 RTC month 09 RTC year 0A RTC Status register A: |7|6|5|4|3|2|1|0| RTC Status Register A | | | | ----------- rate selection Bits for divider output | | | | frequency (set to 0110 = 1.024kHz, 976.562ms) | --------------- 22 stage divider, time base being used; | (initialized to 010 = 32.768kHz) --------------- 1=time update in progress, 0=time/date available 0B RTC Status register B: |7|6|5|4|3|2|1|0| RTC Status Register B | | | | | | | ----- 1=enable daylight savings, 0=disable (default) | | | | | | ------ 1=24 hour mode, 0=12 hour mode (24 default) | | | | | ------- 1=time/date in binary, 0=BCD (BCD default) | | | | -------- 1=enable square wave frequency, 0=disable | | | --------- 1=enable update ended interrupt, 0=disable | | ---------- 1=enable alarm interrupt, 0=disable | ----------- 1=enable periodic interrupt, 0=disable ------------ 1=disable clock update, 0=update count normally 0C RTC Status register C (read only): |7|6|5|4|3|2|1|0| RTC Status Register C (read only) | | | | ----------- reserved (set to 0) | | | ----------- update ended interrupt enabled | | ----------- alarm interrupt enabled | ----------- periodic interrupt enabled ----------- IRQF flag 0D RTC Status register D (read only): |7|6-0| RTC Status Register D (read only) | ------ reserved (set to 0) ------- 1=CMOS RAM has power, 0=CMOS RAM has lost power 0E Diagnostic status byte: |7|6|5|4|3|2|1|0| Diagnostic Status Byte | | | | | | ------- reserved | | | | | -------- 1=time is invalid, 0=ok (POST validity check) | | | | --------- 1=fixed disk 0 failed initialization, 0=ok | | | ---------- 1=memory size doesn't match config info, 0=ok | | ----------- 1=invalid config info found, 0=ok (see below) | ------------ 1=config record checksum is bad, 0=ok ------------- 1=RTC lost power, 0=power state stable 0F Shutdown status byte: 0 soft reset or unexpected shutdown 1 shut down after memory size determination 2 shut down after memory test 3 shut down with memory error 4 shut down with boot loader request 5 JMP DWORD request with INT init 6 protected mode test 7 passed 7 protected mode test 7 failed 8 protected mode test1 failed 9 block move shutdown request A JMP DWORD request without INT init 10 Diskette drive type for A: and B: |7|6|5|4|3|2|1|0| Diskette drive type for A: and B: | | | | ----------- second diskette type ------------------ first diskette type 0000 no drive installed 0001 DSDD 48 TPI drive 0010 DSQD 96 TPI drive other values are reserved 11 Reserved 12 Fixed disk drive type for drive 0 and drive 1 |7|6|5|4|3|2|1|0| Diskette drive type for A: and B: | | | | ----------- second hard disk drive code (0000=no disk) ------------------ first hard disk drive code (0000=no disk) 13 Reserved 14 Equipment byte |7|6|5|4|3|2|1|0| Equipment byte | | | | | | | ----- 1=diskette drives installed, 0=none | | | | | | ------ 1=math coprocessor installed, 0=none | | | | --------- unused | | ---------- primary display ------------- number of diskette drives installed % Bits Bits % 54 Primary Display 76 Number of Drives 00 reserved 00 1 diskette drive 01 40 column color 01 2 diskette drives 10 80 column color 10 reserved 11 monochrome 11 reserved 15 LSB of system base memory in 1k blocks 16 MSB of system base memory in 1k blocks 17 LSB of total extended memory in 1k blocks 18 MSB of total extended memory in 1k blocks 19 Drive C extension byte (reserved AT) 1A Drive D extension byte (reserved AT) 1B 13 bytes reserved 2E CMOS checksum of bytes 10h-20h (MSB) 2F CMOS checksum of bytes 10h-20h (LSB) 30 LSB of extended memory size found above 1 megabyte during POST 31 MSB of extended memory size found above 1 megabyte during POST 32 Date century byte in BCD ( BIOS interface to read and set) 33 Information flags (set during power-on) |7|6|5-0| Information Flags | | ------ reserved | -------- initial setup message flag --------- 1=IBM 128k expansion installed, 0=none 34 12 bytes reserved SPR / PATCH: KEYWORDS: SIGN-OFF: --MimeMultipartBoundary-- From daemon@csg.lbl.gov Thu Dec 4 04:01:44 1997 From: daemon@csg.lbl.gov Date: Thu Dec 4 04:01:47 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Dec 4 04:01:41 PST 1997 Subject: Re: Zlib and compressed loads. Subject: SENS Subject: Re: Serial Ports....Setting Parity ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Zlib and compressed loads. Date: Mon, 01 Dec 1997 23:19:31 -0800 From: Dale Luck Organization: Shoreline Teleworks Message-ID: <3483B683.73B4@shoretel.com> References: <65v5kj$kfr$2@news.interlog.com> Reply-To: dale@shoretel.com Bill Pringlemeir wrote: > > Hello, > > Has anyone used the Zlib by Mark Adler and Jean-Loup Gailly > to make compressed VxWork images. I wrote a pseudo file system that uses the decompressor when reading files. I needed this because I didn't want to waste memory reading in a compressed file, inflating it, making a pseudo ram filesystem and then passing that into the loader. This wastes a huge amount of memory. You have to get the source code to zlib to make this work since vxworks for some reason does not document the underlieing compressor pieces so you can spoon feed it pieces of data as you read it from a file. Inflate is just not flexible enough. So you have to build all the pieces of the compressor system and include it in vxworks. I have not been able to get it to work over the net, but I'm able to read compressed files from a read only flash file system. On the V4300-mips we are using, I'd say we are getting a good 2-to-1 compression ratio. Dale Luck --------------------------- Newsgroups: comp.os.vxworks Subject: SENS Date: Tue, 2 Dec 1997 10:20:31 +0200 From: "David Gasul" Organization: Telegate Ltd. Message-ID: <660gfj$1gq$1@news.NetVision.net.il> Hi, Does anyone have experience with SENS (from WRS)? Specifically, I'd like to know the following: a. Where did it come from (I guess that it's an OEM and NOT original WRS development)? b. How it's distributed (object/source)? If only object form is available, what do you think about future developments and being stuck with a frozen implementation? c. Measured performance (please include configuration). Regards, Dave --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Serial Ports....Setting Parity Date: Wed, 03 Dec 1997 23:55:02 -0800 From: Michael Morrison Organization: My House Message-ID: <348661D6.CC259542@ringo.reno.nv.us> References: <348444B1.3CBC@radonc.washington.edu> Dave Reid wrote: > > Howdy... > I'm trying to get my MV167 board to talk via the > serial ports to a device that does 7-bits, even parity. I > know how to setup to do the 7-Bits option, but cannot find > any documentation on how to set the parity option. Can anyone > shed some light on this? > > Thanks in advance... > I had a similar problem with the i8250 uart driver which is for x86 boards. I found that the communication paramaters are hard coded in the driver. I had to hack the driver to change the comm parameters. Hey, what to you expect for $$$$50k? --------------------------- End of New-News digest ********************** From wheat@wg.com Thu Dec 4 08:35:45 1997 From: Lee Wheat Date: Thu Dec 4 08:35:48 PST 1997 Subject: internal arp routines --MimeMultipartBoundary Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit can anyone provide documentation or help regarding the internal arp routines like arpresolve? can they be used to actually perform the arp? is there another way to do it? lee wheat wheat@wg.com --MimeMultipartBoundary-- From chenyc@fnal.gov Thu Dec 4 13:03:58 1997 From: Yenchu Chen Date: Thu Dec 4 13:04:01 PST 1997 Subject: sleep for 100 micro seconds --MimeMultipartBoundary Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, We are doing data acquisition test. There is a task to grab events from our interface by doing DMA transfer. The single board computer is MVME167. We know for sure that once the DMA transfer is initiated it will take more than 150 micro seconds to turn around because of the event size. The question here is that we would like the task to sleep for that period and come back to check whether or not the DMA is done and keep going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 second. It is too long. We would like it to sleep for only 100 micro second or so. Any idea is appreciated. Best regards, Yen-Chu Chen chenyc@fnal.gov (630) 840-8871 (experiment) (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica) --MimeMultipartBoundary-- From currie@ghg.net Thu Dec 4 18:22:13 1997 From: currie@ghg.net (Alan Currie) Date: Thu Dec 4 18:22:16 PST 1997 Subject: Re: sleep for 100 micro seconds --MimeMultipartBoundary Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit > The question here is that we would like the task to sleep for that > period and come back to check whether or not the DMA is done and keep > going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 > second. It is too long. We would like it to sleep for only 100 micro > second or so. Any idea is appreciated. -- Your sysClkRate is currently set to 60 ticks per second. The units to taskDelay are in system clock ticks. If you want, you could set sysClkRate to 1000, and then your minimum taskDelay would be 1/1000 of a second. For a delay as small as what you need, I would build a small loop where you increment a counter and vary the loop to get the time delay you want. You could use timexN to help you do this to time this small function. <| Alan, Debbie, and Amanda Currie |___ ~~O __O currie@ghgcorp.com Houston, Tx |~~@\ _-\<,_-\<,_ '96 Santana Arriva & Burley D'Lite `(*)'--(*)/---|/-(*) --MimeMultipartBoundary-- From TOM2910@aol.com Thu Dec 4 21:35:32 1997 From: TOM2910 Date: Thu Dec 4 21:35:36 PST 1997 Subject: Problems when MPC860 is running in 50MHZ. Hi, I have a test program that runs without error and it services 16 TCP ports. But, the performance is not as good as I expected. So I crank up the system clock from 25MHz to 50MHz. After I modified the System Clock for the MPC860, I ran into the strange problem. The 16 TCP servers task will chock with all the Rcv_Q all full, which is display through "inetstatShow", but no data can be read from the socket. Does anyone have this problem and know how to fix it ? Thanks. -Tom From pbrett@hathaway-systems.com Fri Dec 5 01:16:51 1997 From: pbrett@hathaway-systems.com (Pete Brett) Date: Fri Dec 5 01:16:55 PST 1997 Subject: Re: Tornado on NT4.0 and PPP --MimeMultipartBoundary Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable On Wed, 26 Nov 97 10:31:05 PST, you wrote: >Submitted-by espin@idiom.com Wed Nov 26 10:31:00 1997 >Submitted-by: Geoffrey Espin >I've been unsuccessful in using NT4.0 as a pppd/server for >an i960 vxworks target. > >I installed DUN/RAS, setup up a modem (pc 2 pc cable and/or 9600 modem) >on COM1 and/or COM2 ports, tested h/w connectivity (i.e. was able to see >control chars come into NT4.0 hypertrm session from the vxworks target), >so what gives!? > Microsoft developed two new authentication protocols to use with PPP. MSCHAP or CHAP80 is simillar, but incompatible to CHAP (as far as I can remember, one of them uses DES and the other uses MD5). Shiva PAP is the Microsoft equivalent of PAP. Shiva PAP uses encripted passwords while PAP uses cleartext. In order to allow vxWorks to connect to NT, some registry editing is necessary. Do a search through the registry for SPAP / Shiva PAP and delete them. Then enable PAP at the vxWorks end and try to connect. The reason that this works is that during the negotiation for authentication method, an each implementation which knows of more than one method will prioritise methods. Where a peer attempts to use a method which is known, but not preferred, an implementation may reject it in favour of a more secure authentication. By deleting the registry settings which tell NT which DLL holds Shiva PAP, the negotiation is reduced to two methods known by each peer. Once MSCHAP is rejected, NT will now agree to use PAP. Further information can be found in Linux documentation on connecting to an NT server using PPP. Regards, Pete --MimeMultipartBoundary-- From roghol@lin.foa.se Fri Dec 5 02:07:26 1997 From: Roger Holmquist Date: Fri Dec 5 02:07:29 PST 1997 Subject: Re: sleep for 100 micro seconds --MimeMultipartBoundary Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable > We are doing data acquisition test. There is a task to grab events from >our interface by doing DMA transfer. The single board computer is MVME167. >We know for sure that once the DMA transfer is initiated it will take more >than 150 micro seconds to turn around because of the event size. > > The question here is that we would like the task to sleep for that >period and come back to check whether or not the DMA is done and keep >going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 >second. It is too long. We would like it to sleep for only 100 micro >second or so. Any idea is appreciated. > Well, isn=B4t this a typical interrupt-job? You should let the dma-operation initiate an iterrupt which sets a semaphore= =2E The task you are using for reading the DMA-data will wait for that semaphore and read the data instantly when the interrupt comes. This is how I read an A/D-converter every 20 us(!) on a MVME162-card and it just works fine! The only difference is that I time the data by one of the internal timers on the card, actually the wxWorks-supported AuxTimer, like: *************************************************** sysAuxClkRateSet(Sample_fq); printf("ClockSpeed set to %ld Hertz\n",Sample_fq); sysAuxClkConnect(ADC_IRQ_Routine,0); *************************************************** The above lines connects ADC_IRQ_Routine() to the timer and the function executes sample_Fq times per second. The routine looks like this: void ADC_IRQ_Routine() { adc_raw_diff_read(ADC_base, channel, gain, &(raw_data[irqcnt++])); /* Read from A/D (15 us), Diff sample-mode, increment sample-counter */ if (irqcnt >=3D Total_samples) semGive (ADC_Semaphore); /* All samples collected */ } You shuld just use semGive() and everything works fine... *** BUT *** there is a little problem.... Some heavy wxWorks utilities use the sysAuxClock like the Browser so you must be aware if that! A better solution is to use some other timer on board. The job should in that case be accomplished by other wxWorks routines like intConnect. And then you must be able to set one of the timers. That means that you have to solve 2 problems: 1) Find some suitable code, and/or at lest the adresses for manipulating those times. 2) Make the physical interface/address for the timers accesible to your code. This means that you eventually have to manipulate the wxWorks-kernel. Correct me if Im wrong! Either if I=B4m wrong or right, does anybody have any code-examples for that= ? Greetings / Roger #------------------------------------------------------------------# # Roger Holmquist, FOA, National Defence Research Establishment # # sect 750, Olaus Magnus v=E4g 42, Box 1165, 581 11 LINKOPING ------# #---------------------------- SWEDEN ------------------------------# # Phone: +46 13-318382 --------------------------------------------# # Fax: +46 13-318009 ----------------------------------------------# # Home: +46-13-214733 Mobile +46-706-250123 ----------------------# # Email: roghol@lin.foa.se ----------------------------------------# #------------------------------------------------------------------# --MimeMultipartBoundary-- From roghol@lin.foa.se Fri Dec 5 02:13:38 1997 From: Roger Holmquist Date: Fri Dec 5 02:13:41 PST 1997 Subject: Re: Problems when MPC860 is running in 50MHZ. --MimeMultipartBoundary Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >Submitted-by TOM2910@aol.com Thu Dec 4 21:35:32 1997 >Submitted-by: TOM2910 > >Hi, > >I have a test program that runs without error and it services 16 TCP ports. >But, the performance is not as good as I expected. So I crank up the >system clock from 25MHz to 50MHz. After I modified the System Clock >for the MPC860, I ran into the strange problem. > > The 16 TCP servers task will chock with all the Rcv_Q all full, which is > display through "inetstatShow", but no data can be read from the socket. > >Does anyone have this problem and know how to fix it ? Well, I don't know about this strange problem but I have another way of speeding up the TCP communication, so here is the "stupid" suggestion: Have you tried wxWorks zbuf? If you have, let me know about your experiences= ! Greetings / Roger #------------------------------------------------------------------# # Roger Holmquist, FOA, National Defence Research Establishment # # sect 750, Olaus Magnus v=E4g 42, Box 1165, 581 11 LINKOPING ------# #---------------------------- SWEDEN ------------------------------# # Phone: +46 13-318382 --------------------------------------------# # Fax: +46 13-318009 ----------------------------------------------# # Home: +46-13-214733 Mobile +46-706-250123 ----------------------# # Email: roghol@lin.foa.se ----------------------------------------# #------------------------------------------------------------------# --MimeMultipartBoundary-- From daemon@csg.lbl.gov Fri Dec 5 04:01:12 1997 From: daemon@csg.lbl.gov Date: Fri Dec 5 04:01:17 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Dec 5 04:01:09 PST 1997 Subject: Vxworks-search the web quickly with Search Spaniel Subject: Serial Ports....Setting Parity Subject: Advice on porting to VxWorks? Subject: Re: Serial Ports....Setting Parity Subject: Re: internal arp routines Subject: Re: Advice on porting to VxWorks? Subject: Re: Serial Ports....Setting Parity ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Vxworks-search the web quickly with Search Spaniel Date: Tue, 02 Dec 97 18:50:21 GMT From: smith@umes07.avl.co.at (Search Spaniel) Organization: Search Spaniel Message-ID: <250027902@searchspaniel.com> To Vxworks-search the most search engines in the shortest time, use the internet's newest search engine - Search Spaniel at: http://www.searchspaniel.com/ --------------------------- Newsgroups: comp.os.vxworks Subject: Serial Ports....Setting Parity Date: Tue, 02 Dec 1997 09:26:09 -0800 From: Dave Reid Organization: University of Washington Message-ID: <348444B1.3CBC@radonc.washington.edu> Howdy... I'm trying to get my MV167 board to talk via the serial ports to a device that does 7-bits, even parity. I know how to setup to do the 7-Bits option, but cannot find any documentation on how to set the parity option. Can anyone shed some light on this? Thanks in advance... dave - -- ============================================================= Dave Reid dave@radonc.washington.edu UW Medical Center (206)548-4536 Radiation Oncology Dept. Seattle, WA --------------------------- Newsgroups: comp.os.vxworks Subject: Advice on porting to VxWorks? Date: Thu, 04 Dec 1997 08:06:19 -0500 From: Andrew Sweeney Organization: The Internet Access Company, Inc. Message-ID: <3486AACB.14E3BF6F@assured-digital.com> Hi, I am just about to embark on a mission to port a 3rd party IP Stack to VxWorks. I will be using the if_fei interface (Ethernet Express Pro/100B). What it looks like I need to do is archive the 3rd party code into a lib that can be loaded or bound in with VxWorks. I also need to write wrapper code which will call etherInputAddHook() to define my input routine and to configure the if_fei device. What I don't understand is how where sys557Init () lives and what it does. Also, once I have defined an ethernet input hook does it run for all interfaces or can I have hooks for specific interfaces? I have written a MAC Diver to the Intel 82596 so I hope this will be easy. I know this is kind of vague description but any advice on porting a driver to VxWorks would be great. Thanks Andy - -- Andrew Sweeney andy@assured-digital.com 9 Goldsmith Street, Littleton, MA 01460 http://www.assured-digital.com/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Serial Ports....Setting Parity Date: Thu, 04 Dec 1997 10:39:59 -0500 From: Lawrence Pfeffer Organization: NIST Message-ID: <3486CECF.167E@nist.gov> References: <348444B1.3CBC@radonc.washington.edu> <348661D6.CC259542@ringo.reno.nv.us> Michael Morrison wrote: > > I had a similar problem with the i8250 uart driver which is for > x86 boards. I found > that the communication paramaters are hard coded in the driver. > > I had to hack the driver to change the comm parameters. > > Hey, what to you expect for $$$$50k? Michael, Would you be willing to share some details and/or code of your modified i8250 driver? Looks like I'm soon going to have to get x86 VxWorks to talk to an oddball (and non-changable) device. TIA, - -- Lawrence E. Pfeffer, Ph.D. (AKA Larry), voice: (301)975-6067, FAX: (301)869-6275 *Preferred* email: lawrence.pfeffer@nist.gov U.S. mail: NIST, Bldg. 226/Rm. B158, Gaithersburg, MD 20899 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: internal arp routines Date: 4 Dec 1997 18:55:38 GMT From: Hwa-Jin Bae Organization: The DeRome Mansion Message-ID: <666uba$lj5$1@news.idiom.com> References: <3486DD4F.32EC1B9F@wg.com> Lee Wheat wrote: > can anyone provide documentation or help regarding the internal arp routines > like arpresolve? can they be used to actually perform the arp? > is there another > way to do it? From 4.3BSD-tahoe UNIX kernel code: arpresolve(ac, m, destip, desten, usetrailers) register struct arpcom *ac; struct mbuf *m; register struct in_addr *destip; register u_char *desten; int *usetrailers; This is compatible with VxWorks. Another way to do it would be to simply send a IP packet out destined for desired target IP address. ping can be used, for example. This causes ARP request to be sent out (if there is no resolved cache entry already in the ARP table) and if successful an entry will be created in the ARP table. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Advice on porting to VxWorks? Date: 4 Dec 1997 18:59:22 GMT From: Hwa-Jin Bae Organization: The DeRome Mansion Message-ID: <666uia$lj5$2@news.idiom.com> References: <3486AACB.14E3BF6F@assured-digital.com> Andrew Sweeney wrote: > What I don't understand is how where sys557Init () lives and what it > does. Also, once I have defined an ethernet input hook does it run for > all interfaces or can I have hooks for specific interfaces? There should be a file (sys557Lib.c or sysNetif.c or sysLib.c) that contains sys557Init() in your BSP directory if your BSP already supports 557 driver. ether hooks are for all interfaces, unfortunately. when your hook routine is called you are given a pointer to "ifp" (struct ifnet) that tells you which network driver called you. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Serial Ports....Setting Parity Date: Thu, 04 Dec 1997 18:33:18 -0600 From: don@pixsci.com Organization: Deja News Posting Service Message-ID: <881281399.30685@dejanews.com> References: <348444B1.3CBC@radonc.washington.edu> <348661D6.CC259542@ringo.reno.nv.us> <3486CECF.167E@nist.gov> In article <3486CECF.167E@nist.gov>, Lawrence Pfeffer wrote: > > Michael Morrison wrote: > > > > I had a similar problem with the i8250 uart driver which is for > > x86 boards. I found > > that the communication paramaters are hard coded in the driver. > > > > I had to hack the driver to change the comm parameters. > > > > Hey, what to you expect for $$$$50k? > > Michael, > > Would you be willing to share some details and/or code of your > modified i8250 driver? Looks like I'm soon going to have to get x86 > VxWorks to talk to an oddball (and non-changable) device. > Well, I wasn't the original one to post, but I also made the change to the driver to accomplish setting parity etc. Here is a diff against the i8250Sio.c file (from Tornado 1.0.1 x86). I think you should be able to feed this into patch. If anyone wants to apply the fix, but has problems, please email me and I'll send you the whole file. - --don bowman (don@pixsci.com) *** i8250Sio.c Wed Jul 02 14:33:21 1997 - --- i8250Sio.c.orig Thu Dec 04 19:21:50 1997 *************** *** 174,240 **** int ix; int status; int baudH; int baudL; int oldlevel; - - int values; switch (request) { - - case SIO_HW_OPTS_SET: - - values = 0; - - if ((arg & CSIZE) == CS5) - - values = 0; - - else if ((arg & CSIZE) == CS6) - - values = 1; - - else if ((arg & CSIZE) == CS7) - - values = 2; - - else if ((arg & CSIZE) == CS8) - - values = 3; - - if (arg & STOPB) - - values |= (1<<2); - - if (arg & PARENB) - - values |= (1<<3); - - if (!(arg & PARODD)) - - values |= (1<<4); - - (*pChan->outByte) (pChan->lcr, values); - - status = OK; - - break; - - case SIO_HW_OPTS_GET: - - { - - int *retVal = (int *)arg; - - values = (*pChan->inByte)(pChan->lcr); - - if ((values & 0x3) == 0) - - *retVal = CS5; - - else if ((values & 0x3) == 1) - - *retVal = CS6; - - else if ((values & 0x3) == 2) - - *retVal = CS7; - - else if ((values & 0x3) == 3) - - *retVal = CS8; - - if (values & (1<<2)) - - *retVal |= STOPB; - - if (values & (1<<3)) - - *retVal |= PARENB; - - if (!(values & (1<<4))) - - *retVal |= PARODD; - - } - - status = OK; - - break; case SIO_BAUD_SET: oldlevel = intLock(); status = EIO; for (ix = 0; ix < NELEMENTS (baudTable); ix++) { if (baudTable [ix].rate == arg) /* lookup baud rate value */ { ! values = (*pChan->inByte)(pChan->lcr); ! (*pChan->outByte) (pChan->lcr, (char )(values | 0x80)); (*pChan->outByte) (pChan->brdh, MSB (baudTable[ix].preset)); (*pChan->outByte) (pChan->brdl, LSB (baudTable[ix].preset)); ! (*pChan->outByte) (pChan->lcr, (char )values); status = OK; break; } } - --- 174,198 ---- int ix; int status; int baudH; int baudL; int oldlevel; switch (request) { case SIO_BAUD_SET: oldlevel = intLock(); status = EIO; for (ix = 0; ix < NELEMENTS (baudTable); ix++) { if (baudTable [ix].rate == arg) /* lookup baud rate value */ { ! (*pChan->outByte) (pChan->lcr, (char)0x83); (*pChan->outByte) (pChan->brdh, MSB (baudTable[ix].preset)); (*pChan->outByte) (pChan->brdl, LSB (baudTable[ix].preset)); ! (*pChan->outByte) (pChan->lcr, 0x03); status = OK; break; } } *************** *** 244,258 **** case SIO_BAUD_GET: oldlevel = intLock(); status = EIO; ! values = (*pChan->inByte)(pChan->lcr); ! (*pChan->outByte) (pChan->lcr, (char )(values | 0x80)); baudH = (*pChan->inByte)(pChan->brdh); baudL = (*pChan->inByte)(pChan->brdl); ! (*pChan->outByte) (pChan->lcr, (char )values); for (ix = 0; ix < NELEMENTS (baudTable); ix++) { if ( baudH == MSB (baudTable[ix].preset) && baudL == LSB (baudTable[ix].preset) ) - --- 202,215 ---- case SIO_BAUD_GET: oldlevel = intLock(); status = EIO; ! (*pChan->outByte) (pChan->lcr, (char)0x83); baudH = (*pChan->inByte)(pChan->brdh); baudL = (*pChan->inByte)(pChan->brdl); ! (*pChan->outByte) (pChan->lcr, 0x03); for (ix = 0; ix < NELEMENTS (baudTable); ix++) { if ( baudH == MSB (baudTable[ix].preset) && baudL == LSB (baudTable[ix].preset) ) - -------------------==== Posted via Deja News ====----------------------- http://www.dejanews.com/ Search, Read, Post to Usenet --------------------------- End of New-News digest ********************** From brett.smith@wg.com Fri Dec 5 04:22:51 1997 From: "Brett Smith" Date: Fri Dec 5 04:22:55 PST 1997 Subject: Re[2]: sleep for 100 micro seconds --MimeMultipartBoundary Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > The question here is that we would like the task to sleep for that > period and come back to check whether or not the DMA is done and keep > going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 > second. It is too long. We would like it to sleep for only 100 micro > second or so. Any idea is appreciated. -- Your sysClkRate is currently set to 60 ticks per second. The units to taskDelay are in system clock ticks. If you want, you could set sysClkRate to 1000, and then your minimum taskDelay would be 1/1000 of a second. For a delay as small as what you need, I would build a small loop where you increment a counter and vary the loop to get the time delay you want. You could use timexN to help you do this to time this small function. <| Alan, Debbie, and Amanda Currie |___ ~~O __O currie@ghgcorp.com Houston, Tx |~~@\ _-\<,_-\<,_ '96 Santana Arriva & Burley D'Lite `(*)'--(*)/---|/-(*) --MimeMultipartBoundary-- Won't setting the sysClkRate to a very small value cause performance issues? You may need to do some analisys to determine an acceptable rate. Won't setting a sysClkRate=1000 cause an Interrupt 1000 times a second (incurring the overhead associated with interrupting a task, incrementing the clock value, and returning control to the task)? BWS --MimeMultipartBoundary-- From ste%narwhal@wago.de Fri Dec 5 07:12:36 1997 From: Steve James Date: Fri Dec 5 07:12:40 PST 1997 Subject: Samba (SMB) for VxWorks? This is a multi-part message in MIME format. --------------EB4CAC68E88916C3F74318A7 Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Anyone out there ported Samba (SMB or Rhumba) client to a VxWorks target? -- --Steve James, Senior Design Eng.--............................ --Wandel & Goltermann Ltd........--.+44 (0)1752 765367 (vmail). --Eurotech House, Burrington Way.--.+44 (0)1752 791101 (FAX)... --Plymouth, Devon. PL5 3LZ. U.K..--.+44 (0)1752 772773 (switcb) --------------EB4CAC68E88916C3F74318A7 Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Steve James Content-Disposition: attachment; filename="vcard.vcf" begin: vcard fn: Steve James n: James;Steve org: Wandel & Goltermann Ltd., Plymouth adr: Eurotech House, Burrington Way;;Honicknowle;Plymouth;Devon;PL5 3LZ;UK email;internet: narwhal!ste@wago.de title: Senior Design Engineer tel;work: +44 (0)1752 765367 tel;fax: +44 (0)1752 791101 x-mozilla-cpt: ;-1 x-mozilla-html: TRUE end: vcard --------------EB4CAC68E88916C3F74318A7-- From marc@onion.jhuapl.edu Fri Dec 5 07:26:18 1997 From: marc@onion.jhuapl.edu (Marcus H. Gates) Date: Fri Dec 5 07:26:22 PST 1997 Subject: Re: impact of changing clock rate We are using vxWorks 5.1.1 and are using a clock rate of 100 ticks/msec, we would like to switch to a higher clock rate (1000ticks/msec) and need to know if/how using a higher clock rate might negatively impact performance. Thanks Marc Gates From IMARUSCA@edc.ge.com Fri Dec 5 11:15:41 1997 From: "Marusca, Ioan" Date: Fri Dec 5 11:15:44 PST 1997 Subject: RE: PowerPC performance Hi, 1) If you have a PPC860 Rev.A1 chip the silicon bugs will prevent to run with I and D cache enabled. Starting with Rev.A2 chips cache bugs are fixed. 2) The caches must be disabled at the begining. The defines #define INCLUDE_CACHE_SUPPORT ; in configdb.h and #define USER_I_CACHE_ENABLE #define USER_D_CACHE_ENABLE #define INCLUDE_CACHE_SUPPORT are used to enable/disable at your wish the cache. Also the definitions #define USER_I_MMU_ENABLE #define USER_D_MMU_ENABLE #define INCLUDE_MMU_BASIC may be usefull. VxWorks sets the caches a bit later by calling #ifdef USER_I_CACHE_ENABLE cacheEnable (INSTRUCTION_CACHE); /* enable instruction cache */ #endif /* USER_I_CACHE_ENABLE */ in "bootConfig.c", "usrConfig.c" and #ifdef USER_D_CACHE_ENABLE cacheEnable (DATA_CACHE); /* enable data cache */ #endif /* USER_D_CACHE_ENABLE */ in "usrConfig.c" Some performance tests for ADS860 board with a simple program loop gave the following results - with DC and IC disabled @25MHz = 370 microsec - with DC and IC enabled @25MHz = 68 microsec (5.4 times faster) ========================================================== Ioan Marusca General Electric Multilin 215 Anderson Avenue, Markham, Ontario, L6E1B3, Canada Email: Ioan.Marusca@edc.ge.com Tel:(905)-201-2141 ========================================================== >Hello, > >The VxWorks BSP for the MPC860 (PowerPC) disables both the I-cache >and >D-cache as far as I can tell. I have looked around for any information on >this. >Does anyone know why the caches are disabled? > >thanks, >Bill From espin@idiom.com Fri Dec 5 11:35:17 1997 From: Geoffrey Espin Date: Fri Dec 5 11:35:21 PST 1997 Subject: Re: impact of changing clock rate --MimeMultipartBoundary Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Marc, et al, > Submitted-by marc@onion.jhuapl.edu Fri Dec 5 07:26:18 1997 > We are using vxWorks 5.1.1 and are using a clock rate of 100 ticks/msec, > we would like to switch to a higher clock rate (1000ticks/msec) and need > to know if/how using a higher clock rate might negatively impact performance. Obviously the more interrupts per second from any source will cost you something. A 1000/sec on lots of CPUs these days is probably not a big deal. If an interrupt costs you 5 microseconds: 1000 * 5 usec = 5 millisecs of mostly wasted time every second But note that you cannot use taskDelay() from an interrupt handler! :-) Attached is a portable sub-clock tick "hard" (busy loop) delay library. I can't believe how many times I've seen code like (bletch!): for (ix = 0; ix < 0x40000; ix++) ; /* spin wheels for 20 usecs (I hope) */ WRS does supply nanosleep() but is actually limited to system clock rate usually I think. Here's a shell friendly API for it (nano.c): #include "vxWorks.h" #include "time.h" void delayNano ( long nano_secs /* delay in nanoseconds */ ) { struct timespec ts; ts.tv_sec = 0; ts.tv_nsec = nano_secs; nanosleep (&ts, NULL); } If this works for you great... but again, not from an ISR. Attached are my delayLib.c and delayLib.h. If you have any suggestions or improvments let me know: espin@idiom.com. Geoff -- Geoffrey Espin espin@idiom.com -- +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= /* delayLib.c - self-calibrating hard delay routines */ /* modification history -------------------- 27Mar96,espin written. */ /* DESCRIPTION This module provides "hard" delay routines for micro and millisecond periods. EXAMPLE .CS -> delayMsec (1); /@ very first call used for calibration @/ -> timexN delayMsec, 10 timex: 75 reps, time per rep = 9555 +/- 222 (2%) microsecs value = 59 = 0x3b = ';' -> .CE The routines sysClkRateGet() and tickGet() are used to calibrate the timing loop the first time either routine is called. Therefore, the first call is much longer than requested. If the system clock rate is changed, a new calibration must be explicitly made by passing a negative delay duration. INTERNAL A one-shot timer could provide high resolution sub-clock tick delay... but then this would be board dependent. */ #include "vxWorks.h" #include "tickLib.h" #include "sysLib.h" #define DEBUG FALSE void delayUsec (unsigned int u); void delayMsec (unsigned int m); /******************************************************************************* * * delayUsec - hard delay for microseconds * * RETURNS: N/A */ #if DEBUG int delayLoop = 0; #endif /* DEBUG */ void delayUsec ( unsigned int u /* # of microsecs */ ) { #if !DEBUG static int delayLoop = 0; #endif /* !DEBUG */ int ix; int iy; if (delayLoop == 0 || u == 0xffffffff) /* need calibration? */ { int maxLoop; int start = 0; int stop = 0; int mpt = (1000 * 1000) / sysClkRateGet (); /* microsecs per tick */ for (delayLoop = 1; delayLoop < 0x1000 && stop == start; delayLoop<<=1) { for (stop = start = tickGet (); start == stop; start = tickGet ()) ; /* wait for clock turn over */ delayUsec (mpt); /* single recursion */ stop = tickGet (); } maxLoop = delayLoop / 2; /* loop above overshoots */ #if DEBUG printf ("maxLoop = %d\n", maxLoop); #endif /* DEBUG */ start = 0; stop = 0; if (delayLoop < 4) delayLoop = 4; for (delayLoop /= 4; delayLoop milliseconds * * RETURNS: N/A */ void delayMsec ( unsigned int m /* # of millisecs */ ) { delayUsec (m * 1000); } +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= /* delayLib.h - self-calibrating hard delay routines header file */ /* modification history -------------------- 27Mar96,espin written. */ #ifndef __INCdelayLibh #define __INCdelayLibh #if defined(__STDC__) || defined(__cplusplus) extern void delayUsec (unsigned int u); extern void delayMsec (unsigned int m); #else extern void delayUsec (); extern void delayMsec (); #endif /* __STDC__ || __cplusplus */ #endif /* __INCdelayLibh */ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= --MimeMultipartBoundary-- From jford@sadira.gb.nrao.edu Fri Dec 5 13:56:52 1997 From: John Ford Date: Fri Dec 5 13:57:00 PST 1997 Subject: Re: sleep for 100 micro seconds > Submitted-by chenyc@fnal.gov Thu Dec 4 13:03:58 1997 > Submitted-by: Yenchu Chen > > Hi, > > We are doing data acquisition test. There is a task to grab events from > our interface by doing DMA transfer. The single board computer is MVME167. > We know for sure that once the DMA transfer is initiated it will take more > than 150 micro seconds to turn around because of the event size. > > The question here is that we would like the task to sleep for that > period and come back to check whether or not the DMA is done and keep > going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 > second. It is too long. We would like it to sleep for only 100 micro > second or so. Any idea is appreciated. > > Best regards, Yen-Chu Chen > chenyc@fnal.gov > (630) 840-8871 (experiment) > (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica) > I am assuming that you don`t want to busy wait, as that pretty well misses to point of using DMA. The best way to do this is to program the DMA controller to generate an interrupt when done. Then, in the interrupt handler, give a semaphore. Meanwhile, your task that is waiting on the DMA controller can do a semTake(doneSem,WAIT_FOREVER). Then, when the DMA operation is done, the task will be unblocked. I use this technique to sync up a timer to a stepper motor index pulse, and for other short time delays. 1) The DMA interrupt handler: static int giveDone( ) { semGive (DMADoneSem); return 0; } 2) In the control task: control() { while(1) { DMAread(); // start DMA op semTake( DMADoneSem,WAIT_FOREVER ); // wait for DMA // do more useful stuff after DMA done } } Hope this is helpful -- John Ford National Radio Astronomy Observatory Green Bank, WV 24944-0002 jford@nrao.edu From daemon@csg.lbl.gov Sat Dec 6 04:00:37 1997 From: daemon@csg.lbl.gov Date: Sat Dec 6 04:00:42 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Dec 6 04:00:34 PST 1997 Subject: NFS question Subject: Memory Allocation Question Subject: Re: NFS question ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: NFS question Date: 02 Dec 1997 16:54:08 -0500 From: Tom Emerson Organization: Spyglass, Inc. Message-ID: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com> Using VxWorks 5.3.1 with the 486 BSP, Tornado 1.0.1. I'm attempting to NFS mount a directory exported from an Ultra and am having little luck: - -> nfsMount "makimoto","/d2/export","foo" value = 0 = 0x0 - -> nfsDevShow device name file system - ----------- ----------- foo makimoto:/d2/export - -> nfsAuthUnixSet "makimoto",1262,1000,0 value = 0 = 0x0 - -> nfsAuthUnixShow machine name = makimoto user ID = 1262 group ID = 1000 - -> cd "/foo/" couldn't change working directory to "/foo": no such file or directory value = -1 = 0xffffffff Huh? This is a host-side shell, so I suppose this makes sense. However - -> @cd "/foo/" undefined symbol: @cd Did I miss something when the kernel was configured? Any help is greatly appreciated. Thanks in advance, -tre - -- Tom Emerson Spyglass, Inc. Software Engineer Cambridge Research Center --------------------------- Newsgroups: comp.os.vxworks Subject: Memory Allocation Question Date: Tue, 2 Dec 1997 18:03:34 -0500 From: Kevin Bradley Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA Message-ID: This is related to something that just came up on my target machine. For arcane reasons, apparantly DMA buffers for x86 PCs need to be allocated below 16 MB so they can be addressed by the DMA controller (wonderful segmented 24-bit architecture on that, eh?). I just upgraded the target machine to have 32 MB of RAM from 16 MB, and my DMA device stopped working. I assume it's because "valloc" returned memory that was above 16MB. Therefore, my question lies in regard to how DMA memory is allocated, and what's the best way to make sure I've allocated a buffer meeting my constraints (must be page-aligned on a 64k boundary, overall address must be < 16MB)? cacheDmaMalloc() seems promising, but it makes no guarantees beyond being cache-safe (and I don't even know if that's an issue for x86 architectures anyway). I'm getting around it now with a "static" buffer allocated at compile time, but I'd rather not do that as it makes the executable that much larger, and I'm not certain that future conditions will guarantee that the kernel download will always live in the lower pages of RAM. -- Kevin --------------------------- Newsgroups: comp.os.vxworks Subject: Re: NFS question Date: Tue, 2 Dec 1997 17:55:04 -0500 From: Kevin Bradley Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA Message-ID: References: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com> Excerpts from netnews.comp.os.vxworks: 2-Dec-97 NFS question by Tom Emerson@spyglass.com > I'm attempting to NFS mount a directory exported from an Ultra > and am having little luck: > > -> nfsMount "makimoto","/d2/export","foo" > value = 0 = 0x0 > -> cd "/foo/" > couldn't change working directory to "/foo": no such file or directory > value = -1 = 0xffffffff This is because it's "foo", not "/foo" -- see example below. I have a 486 BSP also, although I'm using telnet rather than the host shell, so I can't help with the "@cd" command. It might be related to "INCLUDE_POSIX" somehow, but that's just a random guess. - --------------------------------------------------------------- - -> nfsDevShow device name file system - ----------- ----------- value = 0 = 0x0 - -> nfsMount "kalamari", "/dosd/Tornado", "foo" value = 0 = 0x0 - -> nfsDevShow device name file system - ----------- ----------- foo kalamari:/dosd/Tornado value = 0 = 0x0 - -> nfsMount "kalamari", "/dosd/Tornado", "/foo2" value = 0 = 0x0 - -> nfsDevShow device name file system - ----------- ----------- foo kalamari:/dosd/Tornado /foo2 kalamari:/dosd/Tornado value = 0 = 0x0 - -> cd "/foo2" value = 0 = 0x0 - -> pwd /foo2 value = 6 = 0x6 - -> cd "/foo" cd: error = 0xc0009. value = -1 = 0xffffffff = _end + 0xffe4c58f - -> pwd /foo2 value = 6 = 0x6 - -> cd "foo" value = 0 = 0x0 - -> pwd foo value = 4 = 0x4 - -> cd "/" value = 0 = 0x0 - -> pwd foo/ value = 5 = 0x5 - -> ls . .. .wind host share target value = 0 = 0x0 - -> cd "/foo2" value = 0 = 0x0 - -> pwd /foo2 value = 6 = 0x6 - -> ls . .. .wind host share target value = 0 = 0x0 - -------------------------------------------------------------- Devices mounted without a "/" appear to start in the "root" space, before "/". So "foo/blah" works, while "/foo/blah" doesn't. In your example, if you cd to "foo" rather than "/foo", I think it works. I don't know the conventions, but it seems to me that mounting as "foo" rather than "/foo" leads to confusion. Hope this helps. -- Kevin --------------------------- End of New-News digest ********************** From Phil_Watson@masirv.com Sat Dec 6 15:46:19 1997 From: Phil_Watson@masirv.com (Phil Watson) Date: Sat Dec 6 15:46:23 PST 1997 Subject: Re: comp.os.vxworks newsdigest > Date: 02 Dec 1997 16:54:08 -0500 > From: Tom Emerson > Organization: Spyglass, Inc. > Message-ID: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com> > > - -> nfsMount "makimoto","/d2/export","foo" > value = 0 = 0x0 > [snip] > > - -> cd "/foo/" > couldn't change working directory to "/foo": no such file or directory > value = -1 = 0xffffffff > > Huh? Try simply "cd "foo". Or insert the slash in your nfsMount command. /psw Philip Watson, Phil_Watson@masirv.com Manager, Embedded Software Development Matsushita Avionics Systems Corp. 15253 Bake Parkway Irvine, California, 92618 U.S.A. From daemon@csg.lbl.gov Sun Dec 7 04:00:27 1997 From: daemon@csg.lbl.gov Date: Sun Dec 7 04:00:30 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Dec 7 04:00:25 PST 1997 Subject: Re: set vme167 to date ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: set vme167 to date Date: 03 Dec 1997 19:47:52 -0800 From: Martin Shepherd Organization: California Institute of Technology. Message-ID: References: <199712031408.GAA29087@lbl.gov> <348582F8.7C35@sandia.gov> Don Small writes: > Wu, Huang wrote: > > We are using a VME167 board with MC68040 processor (host sunos4). We do > > like to set the vme167 board to the day.... >... > You are correct in what vxWorks does a boot time. I have added two new > functions to sysLib.c that will read the hardware clock and set the > vxWorks clock at boot time... Note that the MVME167 time-of-day clock only allows 2 BCD digits for the year, so it will presumably go to zero (or lock up at 99) in 2 years time, and your functions will break. Martin Shepherd (mcs@astro.caltech.edu) --------------------------- End of New-News digest ********************** From daemon@csg.lbl.gov Mon Dec 8 04:00:35 1997 From: daemon@csg.lbl.gov Date: Mon Dec 8 04:00:40 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Dec 8 04:00:31 PST 1997 Subject: Porting MPC 801 Subject: Re: set vme167 to date ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Porting MPC 801 Date: 2 Dec 1997 05:27:51 GMT From: "vincent" Organization: uking Message-ID: <01bd1676$328d1260$a1fbdf8b@vincent> Dears, I am trying to port my system using MPC 801, Does anyone can give me some suggestion about the BSP source and experience ? Thanks a lot vincent --------------------------- Newsgroups: comp.os.vxworks Subject: Re: set vme167 to date Date: Wed, 03 Dec 1997 09:04:08 -0700 From: Don Small Organization: Sandia National Laboratories Message-ID: <348582F8.7C35@sandia.gov> References: <199712031408.GAA29087@lbl.gov> Wu, Huang wrote: > > --MimeMultipartBoundary > Content-Type: text/plain > > Hello there, > > We are using a VME167 board with MC68040 processor (host sunos4). We do > like to set the > vme167 board to the day, but without using host or network since our > final > application will be a standalone system. We are quite sure there is a > realtime > clock in the hardware of vme167 since it works for OS9 realtime > operating > system. I once tried to set the time by > i) including Posix Macro in configAll.h > ii) using clock_setime(clock_id,&tp) to set time > iii) using clock_getime(clock_id,&tpp) to get time > But so long as I reboot the system, the initial time I get is always > zero. > (as one expected, everytime the system is rebooted, vxWorks resets the > clock to zero). > This seems to tell me we need to connect the hardware clock to the > software somehow, which > is not clear to me. > Does anyone have any idea to illuminate me? > > Many thanks > > Huang > huang.wu@nrc.ca > Flight research Lab, NRC, Canada > --MimeMultipartBoundary-- Huang, You are correct in what vxWorks does a boot time. I have added two new functions to sysLib.c that will read the hardware clock and set the vxWorks clock at boot time. Here are the new functions. #include #include unsigned int ReadBCD(unsigned char *ptr) { unsigned char cTemp; cTemp = *ptr & 0xff; return( (cTemp >> 4) * 10 + (cTemp & 0xf) ); } #define TOD_SEC 0xfffc1ff9 #define TOD_MIN 0xfffc1ffa #define TOD_HOUR 0xfffc1ffb #define TOD_WDAY 0xfffc1ffc #define TOD_MDAY 0xfffc1ffd #define TOD_MON 0xfffc1ffe #define TOD_YEAR 0xfffc1fff void SetTime( void ) { struct tm Time; struct timespec RealTime; time_t Now; char *buf; Time.tm_sec = ReadBCD((unsigned char *)TOD_SEC); Time.tm_min = ReadBCD((unsigned char *)TOD_MIN); Time.tm_hour = ReadBCD((unsigned char *)TOD_HOUR); Time.tm_mday = ReadBCD((unsigned char *)TOD_MDAY); Time.tm_mon = ReadBCD((unsigned char *)TOD_MON)-1; Time.tm_year = ReadBCD((unsigned char *)TOD_YEAR); Time.tm_wday = ReadBCD((unsigned char *)TOD_WDAY)-1; Time.tm_yday = 0; Time.tm_yday = 0; Time.tm_isdst = 0; printf("%d:%d:%d %d/%d/%d\n", Time.tm_hour, Time.tm_min, Time.tm_sec, Time.tm_mon, Time.tm_mday, Time.tm_year ); RealTime.tv_sec = mktime(&Time); RealTime.tv_nsec = 0; clock_settime(CLOCK_REALTIME, &RealTime); time(&Now); buf = ctime(&Now); printf("%s\n", buf); } Add these to the end of sysLib.c. Add a prototype of void SetTime(void); just before the sysHwInit2() function and then add SetTime(); as the last call in sysHwInit2. This works great for our stuff. We currently set the hardware clock with NTP (network time protocol) functions which initially came from the vxworks archive. You may just want to write your own function to set the hardware clock that you can call when this is necessary. Don Small --------------------------- End of New-News digest ********************** From annmarie.smiddy@wg.com Mon Dec 8 06:29:06 1997 From: "Annmarie Smiddy" Date: Mon Dec 8 06:29:10 PST 1997 Subject: 16550Sio driver ______________________________ Forward Header __________________________________ Subject: Author: Annmarie Smiddy at WG-RAL-ENG Date: 12/4/97 9:57 AM Has anyone had experience connecting/using the VxWorks ns16550Sio driver for the pc486 bsp package? I have various questions and would appreciate anyone I could contact via email. Thanks, Annmarie smiddy@wg.com From jean@tick.dev.ampersand.com Mon Dec 8 07:11:53 1997 From: Jean Nuccitelli Date: Mon Dec 8 07:11:56 PST 1997 Subject: DeviceNet Hello, Has anyone implemented a device driver under VxWorks that uses the DeviceNet and CAN communication protocol? Thanks in advance. Jean -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ Jean Nuccitelli email : jean@ampersand.com ~ ~ Ampersand, Inc. Phone #: 508-671-0785 ~ ~ Billerica, MA FAX # : 508-671-0786 ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From kheck@cs5.dasd.honeywell.com Mon Dec 8 08:38:32 1997 From: Kevin Heck Date: Mon Dec 8 08:38:35 PST 1997 Subject: Vxsim and networking I am trying to use VxSim to simulate a UDP connection between a client and a server. I am creating two VxSim processes, one being the server (vxsim0) and the other the client (vxsim1). Both of these processes are running on the same host which is a Sun running Solaris. It is my understanding that the vxsim0 process is assigned an IP address of 127.0.1.0 and the vxsim1 process is assigned an IP address of 127.0.1.1. I pretty much set up the interface like the example UDP client-server example in the VxWorks 5.3.1 Programmer's Guide. The problem that I am having is that when I send data from the client to the server, the server is supposed to be able to extract the client's IP address and port out of the "recvfrom" command's "from" argument. When I examine the IP address and port, however, the IP address is 0.0.0.0 and the port is 0. The data in the "buf" argument is correct. So it appears that the data can be sent from the client to the server but the server cannot send data back to the client, (unless I hardcode the port and IP address for the client on the server side, which I don't want to do). Is this an artifact of VxSim or possibly some other problem. Any ideas would be appreciated. Thank You, Kevin Heck kheck@cs5.dasd.honeywell.com From cliff.young@ariel.com Tue Dec 9 07:17:11 1997 From: "Clifford A. Young" Date: Tue Dec 9 07:17:14 PST 1997 Subject: Re: Vxsim and networking Kevin Heck wrote: > The problem that I am having is that when I send data from > the client to the server, the server is supposed to be able to > extract the client's IP address and port out of the "recvfrom" > command's "from" argument. When I examine the IP address and > port, however, the IP address is 0.0.0.0 and the port is 0. The > data in the "buf" argument is correct. So it appears that the > data can be sent from the client to the server but the server > cannot send data back to the client, (unless I hardcode the port > and IP address for the client on the server side, which I don't > want to do). Is this an artifact of VxSim or possibly some > other problem. Any ideas would be appreciated. > > Thank You, > > Kevin Heck > > kheck@cs5.dasd.honeywell.com > ensure that the length parameter is set to the sizeof the from structure (sockaddr). I know it looks like a value that is returned on the call, but it also must be set before the call to tell recvfrom() what the size of the structure to be filled is... here is an example: flen = sizeof(struct sockaddr); length = recvfrom( sd, tpkt, sizeof( ps_t ), 0, (struct sockaddr *)&from, &flen); Cliff -- \\|// {. .} _/_/_/_/_/_/_/_/oOOo_/_ U _/_oOOo_/_/_/_/_/_/_/_/_/_/_/ Clifford A. Young physical: Ariel Corp. 225 Old New Brunswick Ave. N.J. 08854 audible: (732)394-6009 visual: (732)562-1134 logical: cliff.young@ariel.com http://www.ariel.com _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ From kheck@cs5.dasd.honeywell.com Tue Dec 9 08:24:34 1997 From: Kevin Heck Date: Tue Dec 9 08:24:37 PST 1997 Subject: Re: Vxsim and networking Clifford A. Young wrote: > > Kevin Heck wrote: > > > The problem that I am having is that when I send data from > > the client to the server, the server is supposed to be able to > > extract the client's IP address and port out of the "recvfrom" > > command's "from" argument. When I examine the IP address and > > port, however, the IP address is 0.0.0.0 and the port is 0. The > > data in the "buf" argument is correct. So it appears that the > > data can be sent from the client to the server but the server > > cannot send data back to the client, (unless I hardcode the port > > and IP address for the client on the server side, which I don't > > want to do). Is this an artifact of VxSim or possibly some > > other problem. Any ideas would be appreciated. > > > > Thank You, > > > > Kevin Heck > > > > kheck@cs5.dasd.honeywell.com > > > > ensure that the length parameter is set to the sizeof the from structure > (sockaddr). I know it looks like a value that is returned on the call, > but it also must be set before the call to tell recvfrom() what the size > of the structure to be filled is... > > here is an example: > > flen = sizeof(struct sockaddr); > length = recvfrom( sd, tpkt, sizeof( ps_t ), > 0, (struct sockaddr *)&from, &flen); > > Cliff > > -- > > \\|// > {. .} > _/_/_/_/_/_/_/_/oOOo_/_ U _/_oOOo_/_/_/_/_/_/_/_/_/_/_/ > Clifford A. Young > physical: Ariel Corp. 225 Old New Brunswick Ave. N.J. 08854 > audible: (732)394-6009 > visual: (732)562-1134 > logical: cliff.young@ariel.com http://www.ariel.com > _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ Thanks Cliff, that was exactly the problem. From npr@jach.hawaii.edu Tue Dec 9 10:55:42 1997 From: Nick Rees Date: Tue Dec 9 10:55:46 PST 1997 Subject: AIA compatible parallel IF boards I need to interface to a CCD camera that downloads its data via an American Imaging Association (AIA) compatible digital interface board. The sort of card I need is basically a DMA engine with 16 inputs for pixel data and a pixel clock input, a line enable input and a frame enable input. I can possibly live without the line and frame enable. All lines are RS 422 differential input so the total number of inputs (including 2 grounds) is typically 40. Such boards exists from multiple vendors for PC's but, of course, I want to use VxWorks in either PMC or VME form factors. Has anybody had a similar experience, is there and recommendations or suggestions? Thanks Nick Rees From daemon@csg.lbl.gov Wed Dec 10 04:00:44 1997 From: daemon@csg.lbl.gov Date: Wed Dec 10 04:00:50 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Dec 10 04:00:41 PST 1997 Subject: Parallel Port on FORCE40 Subject: How do you time a context switch? Subject: DOS filesystem Errors ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Parallel Port on FORCE40 Date: Thu, 04 Dec 1997 11:13:25 +0100 From: Hap Organization: European Space Agency Message-ID: <34868243.48866328@Technologist.com> Hi Everybody, I would like to use the PI/T2 port (Connector B12) as a centronix interface on the FORCE. Therefore I need to write my own driver. Does anybody have some experience or examples which could help me in the first steps. Regards ... Hap - ----------------------------------------------- Hap@ws.estec.esa.nl --------------------------- Newsgroups: comp.os.vxworks Subject: How do you time a context switch? Date: Tue, 09 Dec 1997 21:26:25 GMT From: cant_stand@spam.net (John R. Cobarruvias) Organization: Self Message-ID: <348db6c5.111838001@news.jsc.nasa.gov> ANTI SPAM EMAIL IN EFFECT. PLEASE SEND ANY EMAIL TO: johncoby@orbitworld.net So, how do you time a context switch? For instance, you are asked in a meeting "How fast is a context switch for vxWorks running on a Motorola MV2604?" How can you come up with this number without consulting WRS? --------------------------- Newsgroups: comp.os.vxworks Subject: DOS filesystem Errors Date: Tue, 09 Dec 1997 18:59:43 GMT From: jason@praxon.com (Jason Roybal) Organization: Praxon Inc. Message-ID: <348f94fa.613564258@news.alterdial.uu.net> Reply-To: jason@praxon.com I have been encountering frequent problems with using a DOS file system under VxWorks. While running a multi-threaded application, an error has occurred that I can't seem to get around. What happens is when one thread has a particular file open for reading, and another thread or separate application has the same file open for something other than read, a nasty error happens. The immediate symptom is the system locking up. When I reboot the target, the corrupt file can be opened for reading, but not for writing. Also, the directory that contains that file seems to go 'read-only', and not allow any files in it's level, or any sub-directory to be created or opened for write. The 'fopen' on any of these files doesn't return an error, but once I try to write (with 'write', 'fwrite', 'fprintf', etc), the system crashes _hard_. The only fix that I have been able to do is reboot in DOS, and run scandisk. Scandisk then detects directory structure errors all over the place. The particular errors are the lengths of files being mis-reported. However, fixing the directory entries with scandisk doesn't fix the problem. Any of the affected files must be deleted, and sometimes the directory affected must be removed and re-created. I have tried to delete the corrupt files without running scandisk first, (in VxWorks), and it kills the system as well. This vulnerability to errors is causing us serious concern. Has anyone encountered anything like this, and have any suggestions? Please respond via email to: jason@praxon.com Thanks! --------------------------- End of New-News digest ********************** From jford@sadira.gb.nrao.edu Wed Dec 10 05:21:58 1997 From: John Ford Date: Wed Dec 10 05:22:02 PST 1997 Subject: Re: AIA compatible parallel IF boards Greenspring has an Industry Pack module that has an FPGA on it. These could be used, I would think. look at the IP-Altera, IP-XiLinx ,IP-Unidig-I-D, IP-HSPIO These don`t have a DMA engine on them, but I would think that your CPU board would have one that could be used to DMA the data off the card. -- John Ford National Radio Astronomy Observatory Green Bank, WV 24944-0002 jford@nrao.edu From Susan.J.Henry@lmco.com Wed Dec 10 06:27:21 1997 From: Susan J Henry Date: Wed Dec 10 06:27:24 PST 1997 Subject: VxWorks and Printing Hello, Our project/targets is a completely standalone (romable) embedded application running off of a MVME1603 PPC board (they do not talk to one another) We have an ethernet connection to 2 printers that are on a LAN. There is no UNIX box to act as a print spooler (the "lp" command). The printer has a Jet Direct Ethernet card in it which acts as the print server. Does anyone have any tips or hints on how I might simulate this "lp" spool process in vxWorks? I am using a socket (tcp/ip protocol) to send the data to the printer. Any help would be appreciated. TIA, Sue Henry Lockheed Martin Naval Launching Systems 103 Chesapeake Park Plaza Baltimore, MD 21220 susan.j.henry@lmco.com 410.682.0776 From thomas.arand@oen.siemens.de Wed Dec 10 08:06:24 1997 From: thomas.arand@oen.siemens.de (Arand, Thomas) Date: Wed Dec 10 08:06:27 PST 1997 Subject: Flash File Sytem for VxWorks Hi VxWorks-world, we are trying to build a file system over a flash device. Has anyone done that with VxWorks? What software do you use? Where to get it from? What experiences? Any help is appreciated=21 Thomas Arand ---------------------------------------------------------------------- Thomas Arand Siemens AG Tel. +49 - 89 - 722 42296 Fax. +49 - 89 - 722 26572 thomas.arand=40oen.siemens.de From espin@idiom.com Wed Dec 10 11:32:35 1997 From: Geoffrey Espin Date: Wed Dec 10 11:32:39 PST 1997 Subject: How do you time a context switch? John, > Subject: How do you time a context switch? > From: cant_stand@spam.net (John R. Cobarruvias) > ANTI SPAM EMAIL IN EFFECT. PLEASE SEND ANY EMAIL TO: > johncoby@orbitworld.net > > So, how do you time a context switch? > For instance, you are asked in a meeting "How fast is a context switch > for vxWorks running on a Motorola MV2604?" > How can you come up with this number without consulting WRS? Roughly, -> sem = semBCreate (0, 0) -> timexFunc 0, semGive, sem -> timexFunc 1, semTake, sem -> timexN Establish baseline for give-take in single task context. -> repeat 0, semGive,sem -> timexN semTake, sem Shell task pri=1 blocks while infinitely looping repeat task at pri=100 context switches in for each give. Now subtract first result from second to get context switch without semaphore overhead, which usually would be present. Good enough for hand grenades... Geoff -- Geoffrey Espin espin@idiom.com From prewitt@ticipa.Works.ti.com Wed Dec 10 12:57:51 1997 From: prewitt@ticipa.Works.ti.com (Jim Prewitt) Date: Wed Dec 10 12:57:55 PST 1997 Subject: Does anyone know of any revisions to usrTime.c? Does anyone know of any revisions to the following: " /************************************************************************/ /* Copyright 1990 MBARI */ /************************************************************************/ /* Header: /u3/mc/vm/master/vw25/./src/makeplat/vxworks/usrTime/usrTime.c*/ /* Summary : Unix-compatible Time Routines for SBE VPU-30 under vxWorks*/ /* Filename : usrTime.c */ /* Author : Bob Herlien (rah) */ /* Project : New ROV */ /* Revision: 1.1.1.1 */ /* Created : 02/28/91 */ /************************************************************************/ " If there are revisions, does anyone know where I can obtain them? Regards, Jim Prewitt From dropka@swcp.com Wed Dec 10 13:58:20 1997 From: Tom Dropka Date: Wed Dec 10 13:58:23 PST 1997 Subject: DOS filesystem I'm using version 5.1, and my current project has a requirement to use the DOS filesystem. Since the dosFs performance is not very good and gets worse as the file gets bigger, I'm trying to implement a rawFs solution on top of contiguous DOS files. I can find the starting cluster number of all the files, but I don't know how to correlate that to blocks or sectors on a SCSI disk. Does anyone out there know how VxWorks relates clusters to blocks? Thanks, Tom Dropka Applied Technology Associates Albuquerque, NM From dropka@swcp.com Wed Dec 10 14:02:14 1997 From: Tom Dropka Date: Wed Dec 10 14:02:18 PST 1997 Subject: IP-SVGA I'm currently trying to write a driver for the Snijder MicroSystems IP-SVGA module. I think that's the same one that GreenSpring and Gespac sell. I know there's a Vx-ACRTC driver available, but I'm not sure what capabilities that provides. If anyone has experience with that driver or has written any simple text mode routines they'd be willing to share, I'd appreciate it. I've also got the TR-UVGA transition module. Thanks, Tom Dropka Applied Technology Associates Albuquerque, NM From kheck@cs5.dasd.honeywell.com Wed Dec 10 14:40:31 1997 From: Kevin Heck Date: Wed Dec 10 14:40:34 PST 1997 Subject: Socket error Existing code that originally was able to create a datagram socket using the simple call: client_socket = socket(PF_INET, SOCK_DGRAM, 0) now fails after I have added more code to my application. I am not calling any of the new code that I have added. I am trying to run this application using VxSim. What does it mean to get an error when creating a socket. I am speculating that there is not enough memory. When I invoke the VxSim process from the tornado launcher, it defaults to 3 megabytes. I tried bumping it up but I still get the same error. Any ideas? Thanks in advance, Kevin Heck kheck@cs5.dasd.honeywell.com From YF.Siu@eng.efi.com Wed Dec 10 16:22:28 1997 From: "Yuet Fung Siu" Date: Wed Dec 10 16:22:33 PST 1997 Subject: Re: DOS filesystem On Dec 10, 1:58pm, the vxWorks Users Group Exploder wrote: > Subject: DOS filesystem > Submitted-by dropka@swcp.com Wed Dec 10 13:58:20 1997 > Submitted-by: Tom Dropka > > I'm using version 5.1, and my current project has a requirement to use > the DOS filesystem. Since the dosFs performance is not very good and > gets worse as the file gets bigger, I'm trying to implement a rawFs > solution on top of contiguous DOS files. I can find the starting cluster > number of all the files, but I don't know how to correlate that to > blocks or sectors on a SCSI disk. Does anyone out there know how VxWorks > relates clusters to blocks? > The performance of dosFsLib should not be affected by the file size. It is affected by the cluster size though. The implementation of contiguous file (allocated by ioctl:FIOCONTIG) access under dosFs is actually quite efficient, and is similar to rawFs. The only tricks to ensure top performance: 1. allocate contiguous space 2. always read/write at cluster-size boundaries with transfer size equal to whole multiples of cluster-size. Otherwise, dosFs will do cluster buffering which will hurt performance. I did some benchmarking on dosFs (contiguous files only), rawFs and direct block device access with 10-100 MB transfer sizes. The results were actually quite similar. So I think the extra complication of bypassing dosFs is unnecessary and certainly not elegant. Hope this helps, YF From wangk@lx04.mphy.ustc.edu.cn Wed Dec 10 17:42:31 1997 From: Wang Kun Date: Wed Dec 10 17:42:43 PST 1997 Subject: A question of memory map Hi, I'm a new user of VxWorks.A problem embarrassed me.I'm looking for help. I'm working in a project on VMEbus.We use MVME177 board(CPU is mc68060 chip) as master.VxWorks(5.3 version) will be OS running in MVME177 board.We have two MVME177 board,.The first boot VxWorks and another boot into 177BUG.The problem is, When I boot VxWorks,I can't access all address space of VMEBUS above 0x03000000(48M) except of MVME177's reverse space (above 0xf0000000).When we monitor the address bus of VMEbus,We find there are not address signals above 0x0300000.But When I use another MVME177 board (177BUG),all is right.We can access all address space correctly.And I use a MVME167 board booting VxWorks to test,the problem is same. I have set the regiters of VMEchip2.It's no use Even if copy values of VMEchip2's registers from 177bug to VxWorks.I think this problem is concerning with VxWorks.Maybe you can help me. By the way,I have read some header files of BSP:/tornado/Target/Config/Mv177/Config.h,mv177.h and havn't found some concerning context. Thank you very much! From michael.reinermann@oen.siemens.de Thu Dec 11 03:28:08 1997 From: michael.reinermann@oen.siemens.de (Reinermann, Michael) Date: Thu Dec 11 03:28:11 PST 1997 Subject: EMANATE vs. WindNet SNMP Hello everybody, for a new project we are investigating which SNMP agent to use. Currently we are checking the two alternatives EMANATE and WindNet SNMP. Does anybody have experience with one of these agents for VxWorks 5.3 ? Does anybody know why WindRiver switched from the SNMP Research product = (sold for VxWorks version 5.2 and below) to the Epilogue based product = (VxWorks 5.3) ? I heard that Epilogue has been purchased by ISI and thus now belongs to = the company selling the VxWorks competitor pSOS =21 Has anybody ideas about effects on future releases, e.g. SNMPv3 support? Any hints will be greatly appreciated =21 Best regards, Michael Reinermann ---------------------------------------------------------------------- Michael Reinermann Siemens AG Tel. +49 - 89 - 722 34892 Fax. +49 - 89 - 722 26572 Michael.Reinermann=40oen.siemens.de From daemon@csg.lbl.gov Thu Dec 11 04:00:50 1997 From: daemon@csg.lbl.gov Date: Thu Dec 11 04:00:54 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Dec 11 04:00:47 PST 1997 Subject: input parameters mangled by taskSpawn Subject: Re: input parameters mangled by taskSpawn Subject: Jobs Subject: bootp -or- DHCP ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: input parameters mangled by taskSpawn Date: 10 Dec 1997 20:23:21 GMT From: aaron@swcp.com (Aaron Birenboim) Organization: PearTree Consulting Services Message-ID: <66mtnp$roh$1@sloth.swcp.com> I am running VW 5.2 on an MVME167b. I write a C function which passes its parameters to a spawned task. When I call the function from the shell (priority 10) it works great. When I call the function from a task running at priority 60, one of my parameters is mangled. Has anybody seen anything like this? Any advice? Here's some source code (edited) which describes my problem. If anybody is wants to see the actual code, I can provide it. I have not yet made simple code to re-produce the problem... but I plan to do that this afternoon. I was just wondering if this is a known problem. We have semi-duplicated the problem with simpler code... but not totally. so I'm providing edited source. the call, > fm "fnam","/tmp" from the shell works. The call : char s1[128]; char s2[128]; strcpy(s1,"s1"); strcpy(s2,"s2"); fm(s1,s2); as coded in a priority 60 task does NOT work. In BOTH cases, when fm prints its parameters, it looks OK. But when the 60 priority task called fm, ftpPut echos its parameters OK when in the shell task, but it reports s1(srcfile,dstfile) as a NULL string when called from the 60 priority task!!! /**************************************************/ int fm(char *rawName,char *dir) { char *host,*user,*wd; int task; host = "129.238.57.230"; /* mishabe */ user = "datamgr"; wd = "mypassword"; printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n" ,host,user,wd,rawName,dir,rawName); task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut, (int)host,(int)user,(int)wd,(int)rawName,(int)dir,(int)rawName,0,0,0,0); return task; } /***********************************************/ STATUS ftpPut(char *host, char *user, char *passwd, char *srcfile, char *dirname, char *dstfile) { printf("got (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n" ,host,user,passwdwd,srcfile,dirname,dstfile); return OK; } - -- Aaron Birenboim | aaron@ptree.abq.nm.us | Albuquerque, NM http://www.swcp.com/~aaron RESUME> http://www.swcp.com/~aaron/res.html PearTree Consulting (WWW, UNIX, Scientific Computing,...) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: input parameters mangled by taskSpawn Date: Wed, 10 Dec 1997 18:53:08 -0500 From: Kevin Bradley Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA Message-ID: <8oXmhYi00iWP0_54M0@andrew.cmu.edu> References: <66mtnp$roh$1@sloth.swcp.com> Excerpts from netnews.comp.os.vxworks: 10-Dec-97 input parameters mangled by.. by Aaron Birenboim@swcp.com > In BOTH cases, when fm prints its parameters, it looks OK. > But when the 60 priority task called fm, ftpPut echos > its parameters OK when in the shell task, but it > reports s1(srcfile,dstfile) as a NULL string when > called from the 60 priority task!!! >/**************************************************/ > >int fm(char *rawName,char *dir) >{ > char *host,*user,*wd; > int task; > > host = "129.238.57.230"; /* mishabe */ > user = "datamgr"; > wd = "mypassword"; > > printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n" > ,host,user,wd,rawName,dir,rawName); > > task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut, > (int)host,(int)user,(int)wd,(int)rawName,(int)dir,(int)rawName,0,0,0,0); > return task; >} This is going to sound really silly. The problem is that you're allocating the data on the stack, spawning the task, then exiting the spawner, thereby passing empty data (in the form of pointers to non-existant stack space) to the spawned task. "rawName" and "dir" are especially likely to disappear if passed as parameters on the stack from stack-allocated space. The shell allocates data with "malloc" (so it leaks a little) before calling. I suggest the following: Make copies of your passed parameters, for exactly this "disappearing data" problem, unless you know it's not going to disappear. It's easy enough to free them inside of your FTP task if you know the conventions. Try this: int fm(char *rawName, char *dir) { char *host, *user, *wd, *rawName2, *dir2; int task; rawName2 = (char *) malloc(sizeof(char) * (strlen(rawName)+1); strcpy(rawName2, rawName); dir2 = (char *) malloc(sizeof(char) * (strlen(dir)+1)); strcpy(dir2, dir); host = "127.0.0.1"; user = "user"; wd = "passwd"; printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n" ,host,user,wd,rawName2,dir2,rawName); task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut, (int)host,(int)user,(int)wd,(int)rawName2,(int)dir2,(int)rawName2,0,0,0,0); return task; } This way, all data passwd to "ftp_task" is either (1) global string data (constant, allocated at load time), or (2) malloc'd data. To be really safe, you could malloc() space for the constant strings as well, and then just free everything at the end of "ftp_task". Hope this helps... -- Kevin --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.arch.embedded,comp.protocols.smb Subject: Jobs Date: Wed, 10 Dec 1997 19:28:02 -0800 From: "Hwa-Jin Bae" Organization: Idiom Communications Message-ID: <66nm9l$7r0$1@news.idiom.com> Sender: readnews@204.32.126.155 Hi! There are many positions currently available in Network Power and Light division of Mylex Corporation, Fremont, CA. (near Ardenwood blvd. + Decoto) Some of the available positions are: - Director of HW - Software managers (2 positions) - manage a group of engineers (about 12 people) - understand product lifecycle - annual reviews - technical leadership - Software engineers (5+ positions) - SMB/NFS engineer (TCP/IP helpful) - Tools engineer (debuggers, GNU toolset, or other development tools) - Kernel engineer (Unix, VxWorks, RTOS) - filesystem engineer (BSD filesystems, other journalling FS, etc.) - Build engineers/ configuration management (CVS, RCS,clearcase, source safe) - Backup and tape utilities - Java GUI engineers - RAID, Scsi engineers - Software support - sustaining engineers (interface FAE's and marketing with Engineering) - test engineers If you are interested in any one of these positions please email me at hwa-jin@npal.com You can also check out our web site for more information: http://www.npal.com - -- Hwa-Jin Bae Network Power and Light http://www.npal.com --------------------------- Newsgroups: comp.os.vxworks Subject: bootp -or- DHCP Date: 4 Dec 1997 23:36:28 GMT From: ashrafis@rchnews1.nt.com (Siamak Razzaghe-Ashrafi) Organization: Northern Telecom Inc, Mission Park, CA Keywords: source code for bootp or DHCP Message-ID: <667eps$dt0@nrchh52.rich.nt.com> Hi All Please point me to the location I can get the bootp/DHCP server source for vxWorks 5.2. Thank you Ashrafis@nt.com - -- A Silent Rogue Warrior who loves to sing and dance ... everyThing, everyWhere, anyTime --------------------------- End of New-News digest ********************** From ensslin@3SOFT.de Thu Dec 11 05:36:24 1997 From: Friedrich Ensslin Date: Thu Dec 11 05:36:28 PST 1997 Subject: VxWorks FTP server Hi all, Is there anyone out there, who has successfully used one of these cute little graphical FTP clients for Windows95/NT in connection with the FTP server of VxWorks to upload / download files ? I have tried some of them without success. They seem to have problems to interprete the directory output delivered by the VxWorks server. Such a tool would be of great use for us, as we frequently need to update a set of files on our target's filesystem from Windows. Thanx in advance, ------------------------------------------------- Friedrich Ensslin 3SOFT GmbH Wetterkreuz 19a , D-91058 Erlangen , Germany phone: +49-9131-7701-0 , fax: +49-9131-7701-80 email: ensslin@3SOFT.de From tony.mayes@tecra.it Thu Dec 11 06:17:07 1997 From: tony.mayes@tecra.it Date: Thu Dec 11 06:17:11 PST 1997 Subject: Re: Flash File Sytem for VxWorks > Date: Wed, 10 Dec 97 08:06:29 PST > To: vxworks_users@csg.lbl.gov > From: vxwexplo@lbl.gov (the vxWorks Users Group Exploder) > Subject: Flash File Sytem for VxWorks > Submitted-by thomas.arand@oen.siemens.de Wed Dec 10 08:06:24 1997 > Submitted-by: thomas.arand@oen.siemens.de (Arand, Thomas) > > > Hi VxWorks-world, > > we are trying to build a file system over a flash device. Has anyone done > that with VxWorks? What software do you use? Where to get it from? What > experiences? > > Any help is appreciated=21 > > Thomas Arand > > We have done this using FlashLib which works well. The product originally came from an Isreali company but is now owned by Wind River. Try WRS they also have been working on their own Flash File system. Tony Mayes Email address tony.mayes@epid.eurotherm.co.uk Phone 031 975243 Fax 031 977512 Eurotherm SpA, Via XXIV Maggio, 22070 Guanzate (CO), Italy (NOTE: The opinions expressed within are my own and are not necessarily those of my employer) From WILLIAMK@wpg.lmcda.lmco.com Thu Dec 11 06:39:08 1997 From: "Williams, Kerry @ WIN" Date: Thu Dec 11 06:39:12 PST 1997 Subject: RE: A question of memory map I've experienced the same trouble myself. Reason for the trouble is that vxWorks disables mapping for memory addresses that do not exist on the target board. There are 2 possible ways to enable mapping of these areas. The method I prefer, is to edit the SYS_PHY_MEM_DESC[] array in $(WIND_BASE)\target\config\\sysLib.c . You can use The entry commented as /* Some A32 VME */ as a template for mapping your boards in. However, map only as much VME as you need to cover your target boards because the MMU needs to create records for every 8K of space you map. I mapped 1GB by mistake and it took the board 5 minutes to boot! The other method, which is great for mapping huge amounts of VME is to change the Transparent Translation Registers in your '060's MMU. I have a code snippet a picked up from this newsgroup when I asked this question. I can send it if you like, but I'm sure someone else will post it. Cheers, Kerry. ----- Kerry Williams Embedded Software Engineer Lockheed Martin Canada kerry.williams@lmco.com ---------- Submitted-by wangk@lx04.mphy.ustc.edu.cn Wed Dec 10 17:42:31 1997 Submitted-by: Wang Kun Hi, I'm a new user of VxWorks.A problem embarrassed me.I'm looking for help. I'm working in a project on VMEbus.We use MVME177 board(CPU is mc68060 chip) as master.VxWorks(5.3 version) will be OS running in MVME177 board.We have two MVME177 board,.The first boot VxWorks and another boot into 177BUG.The problem is, When I boot VxWorks,I can't access all address space of VMEBUS above 0x03000000(48M) except of MVME177's reverse space (above 0xf0000000).When we monitor the address bus of VMEbus,We find there are not address signals above 0x0300000.But When I use another MVME177 board (177BUG),all is right.We can access all address space correctly.And I use a MVME167 board booting VxWorks to test,the problem is same. I have set the regiters of VMEchip2.It's no use Even if copy values of VMEchip2's registers from 177bug to VxWorks.I think this problem is concerning with VxWorks.Maybe you can help me. By the way,I have read some header files of BSP:/tornado/Target/Config/Mv177/Config.h,mv177.h and havn't found some concerning context. Thank you very much! From Eli_Wittner@cti-pet.com Thu Dec 11 08:07:24 1997 From: "Eli Wittner" Date: Thu Dec 11 08:07:28 PST 1997 Subject: Re: VxWorks FTP server Friedrich Ensslin wrote: >>Is there anyone out there, who has successfully used one of these cute >>little graphical FTP clients for Windows95/NT in connection with the FTP >>server of VxWorks to upload / download files ? The shareware version of WS_FTP seems to work fine with vxWorks v5.1. Check out www.shareware.com. Eli Wittner CTI Cyclotron Systems, Inc. From mmcquade@pop.aa.net Thu Dec 11 08:45:46 1997 From: Mike McQuade Date: Thu Dec 11 08:45:50 PST 1997 Subject: Re: VxWorks FTP server At 05:36 AM 12/11/97 PST, you wrote: >Submitted-by ensslin@3SOFT.de Thu Dec 11 05:36:24 1997 >Submitted-by: Friedrich Ensslin > >Hi all, > >Is there anyone out there, who has successfully used one of these cute >little graphical FTP clients for Windows95/NT in connection with the FTP >server of VxWorks to upload / download files ? I have tried some of them >without success. They seem to have problems to interprete the directory >output delivered by the VxWorks server. >Such a tool would be of great use for us, as we frequently need to update a >set of files on our target's filesystem from Windows. > All of the GUI FTP clients that we have tried have the same problem, with WSFTP, you can do a CHG_DIR from the GUI, but by the time you do this, you may as well use FTP from the command line. It would help our customers if the GUI FTP clients worked correctly with our instruments, we use FTP to upload the new firmware. Id be interested in hearing from anyone that has used a GUI FTP app as well. Mike. From Eli_Wittner@cti-pet.com Thu Dec 11 10:04:14 1997 From: "Eli Wittner" Date: Thu Dec 11 10:04:21 PST 1997 Subject: Re: VxWorks FTP server Friedrich Ensslin wrote: >>Is there anyone out there, who has successfully used one of these cute >>little graphical FTP clients for Windows95/NT in connection with the FTP >>server of VxWorks to upload / download files ? I replied: >The shareware version of WS_FTP seems to work fine with vxWorks v5.1. >check out www.shareware.com. Subsequent testing has shown this to be not good advice. Sorry for the confusion. Eli Wittner CTI Cyclotron Systems, Inc. From cgrames@mdc.com Thu Dec 11 13:50:12 1997 From: Charlie Grames Date: Thu Dec 11 13:50:16 PST 1997 Subject: Socket error -Reply Kevin, errno should be set if socket() returns ERROR. Have you deciphered the errno value with printErrno()? Also, opening a socket is like opening a file, as far as file pointer consumption is concerned, and I think only fifty files may be open concurrently by default. However, if you are not calling any new code, I wouldn't think this would be the problem. Check errno. Charlie Grames The Boeing Company (314) 233-1956 Charles.R.Grames@boeing.com >>> the vxWorks Users Group Exploder 12/10/97 04:40pm >>> Submitted-by kheck@cs5.dasd.honeywell.com Wed Dec 10 14:40:31 1997 Submitted-by: Kevin Heck Existing code that originally was able to create a datagram socket using the simple call: client_socket = socket(PF_INET, SOCK_DGRAM, 0) now fails after I have added more code to my application. I am not calling any of the new code that I have added. I am trying to run this application using VxSim. What does it mean to get an error when creating a socket. I am speculating that there is not enough memory. When I invoke the VxSim process from the tornado launcher, it defaults to 3 megabytes. I tried bumping it up but I still get the same error. Any ideas? Thanks in advance, Kevin Heck From daemon@csg.lbl.gov Fri Dec 12 04:01:31 1997 From: daemon@csg.lbl.gov Date: Fri Dec 12 04:01:34 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Dec 12 04:01:29 PST 1997 Subject: mv162 SCSI-1 and SCSI-2 support Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: mv162 SCSI-1 and SCSI-2 support Date: 4 Dec 1997 23:35:45 GMT From: "Ron Tabor" Organization: Simpact, Inc Message-ID: <01bd010d$ef30d740$e28743cf@rtabor> Has anyone tried to configure a single vxWorks mv162 target image to support both SCSI-1 and SCSI-2 drives? I don't need the image to actually work with both drive types at the same time, just be able to work with one or the other. The image doesn't even have to be able to distinguish which type is installed (although it would be nice). I could set a flag in the boot parameters or something to tell it which set of SCSI init procedures to run. I have tried simply defining INCLUDE_SCSI2, which the vxWorks documentation says supports SCSI-1 applications, but this does not actually work with SCSI-1 drives. I've also tried several combinations of including source and headers for both SCSI-1 and SCSI-2 initialization so that I could select one or the other with boot parameters. This caused conflicts in header files and libraries with multiple definitions. I'm ready to go start messing in there further, but would like to know first if I have a chance. WRS tech support simply says it can't be done, but that just means that the basic BSP isn't designed to do it. Is there anything I can do? - - Ron --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: 11 Dec 1997 18:54:29 GMT From: mfb@mbunix.mitre.org (Michael F Brenner) Organization: The MITRE Corporation, Bedford Mass. Message-ID: <66pct5$cfp@top.mitre.org> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu> > ... 1 AD is year 0 ... No, 1 BC is year 0 in the Common Era (AD). > ... only math or computer geeks would use negative dates ... > ... like 0 AD or -1 AD ... No, electrical engineers and physicists also use negative years, as well as archeologists, astrologers, historians, and astronomers, or anyone else interested in tracing the appearance of historical events, such as satellite ephemerides, comets, or specific instances of the prophecies of Nostradamus. To limit the geeks to only math or computer scientists is to be incomplete. Mike the Mathematician --------------------------- End of New-News digest ********************** From wangk@lx04.mphy.ustc.edu.cn Fri Dec 12 06:16:33 1997 From: Wang Kun Date: Fri Dec 12 06:16:39 PST 1997 Subject: question of function nanosleep() When I download a program to VxWorks(5.3),the system display:the module maybe unusable because of including undefined symbol _nanosleep.I try to write a program which use function nanosleep().It can be complied.But when I download it,the same error message.How can I use this function?Should I buy some extra VxWorks components? From jmarc@wrs.com Fri Dec 12 07:26:34 1997 From: Jean-Marc de Maraumont Date: Fri Dec 12 07:26:37 PST 1997 Subject: postscript driver for vxworks Hi vx-workers I am looking for a postscript driver running under vxWorks. The idea is to be able to print a bit-map image to any postscript compatible printer. Have you heard about or seen such a driver, please let me know. Thanks, Jean-Marc /////// Jean-Marc Aubry De Maraumont Tel: +33 1 60 92 63 19 /////// ///// Field Application Engineer Fax: +33 1 60 92 63 15 ///// //// WIND RIVER SYSTEMS //// /// 19, Av de norvege Email: jmarc@wrsec.fr /// // ZA de Coutaboeuf 1 http://www.wrs.com // / 91953 LES ULIS cedex / From kb+@andrew.cmu.edu Fri Dec 12 09:32:33 1997 From: Kevin Bradley Date: Fri Dec 12 09:32:37 PST 1997 Subject: Re: question of function nanosleep() Excerpts from mail: 12-Dec-97 question of function nanosl.. > When I download a program to VxWorks(5.3),the system display:the module > maybe unusable because of including undefined symbol _nanosleep.I try to > write a program which use function nanosleep(). It can be complied. But > when I download it,the same error message.How can I use this > function? Should I buy some extra VxWorks components? nanosleep is a POSIX function, and lives in the header. See timerLib in the VxWorks reference manual. You might have to define "INCLUDE_POSIX" in the kernel configuration to get this to link in. Otherwise, I'm not sure why this isn't included. Note that under VxWorks, nanosleep has the same resolution as the system clock tick, so you can probably convert the nanosleep call into a corresponding taskDelay() call if you don't want to have all the POSIX functions in your kernel. Hope this helps. -- Kevin From uchenick@tis4000.com Fri Dec 12 09:53:43 1997 From: Gordon Uchenick Date: Fri Dec 12 09:53:47 PST 1997 Subject: No free mbufs under 5.1.1, MV162 We have noticed a problem when running vxWorks 5.1.1 on an MVME-162. The = application is data acquisition and a certain event requires that we = fire off many large Ethernet packets to 15 other nodes. These nodes = simultaneously respond with a large number of very small packets. Every = once in a while, the MV162 stops communicating on the Ethernet. = inetstatShow() shows that there is a significant amount of data in the = receive buffers for the TCP/IP sockets to the other nodes, but the tasks = serving those sockets is not being notified via select() that there is = data present. mbufShow() indicates that there are no free mbufs. Has anyone seen anything like this or know of any ways to find out what = happened? I'd appreciate any help I can get. Thanks in advance, Gordon Uchenick uchenick@tis4000.com 410-771-0022 From aram.nahidipour@spdg.COM Fri Dec 12 11:44:59 1997 From: aram.nahidipour@spdg.COM (Aram Nahidipour) Date: Fri Dec 12 11:45:04 PST 1997 Subject: Re: question of function nanosleep() Wang, > > When I download a program to VxWorks(5.3),the system display:the module > maybe unusable because of including undefined symbol _nanosleep.I try to > write a program which use function nanosleep().It can be complied.But > when I download it,the same error message.How can I use this > function?Should I buy some extra VxWorks components? > No you don't. Since your image does not use the nanosleep() function it is not included when you build your image. So to add that either add your module at compile time or use ar<..> and extract the object for nanosleep() and load it before loading your application. Hope this helps Aram From schumgl@anubis.network.com Fri Dec 12 12:50:26 1997 From: schumgl@anubis.network.com (Gary L. Schumacher) Date: Fri Dec 12 12:50:30 PST 1997 Subject: 21143 Enet driver for vxworks Hi, I am looking for a VxWorks driver for DEC's 21143 ethernet controller. Have you heard about or seen such a driver, please let me know. Thanks Gary Schumacher Network Systems Group gary.schumacher@network.com Brooklyn Park, MN +1-612-391-1386 From kyp@tailyn.com.tw Fri Dec 12 19:19:00 1997 From: "kyp" Date: Fri Dec 12 19:19:05 PST 1997 Subject: start vxwork problem I use 68EC020 CPU in vxworks. The cpu start address is in 0x0000. I make the hex file is start 0x0010000.(romInit) I how to start my system? Thanks for reply. From wangk@lx04.mphy.ustc.edu.cn Fri Dec 12 22:16:59 1997 From: Wang Kun Date: Fri Dec 12 22:17:03 PST 1997 Subject: Re: question of function nanosleep() Hi, Thank many friends for your help! I have checked the file configall.h.INCLUDE_POSIX_ALL and INCLUDE_POSIX_TIMERS have been defined,but I can find symbol nanosleep() and other functions defined in timerLib neither in symtbl.c nor using command 'lkup' in tornado shell.Files time.h and timer.h have been included when I make image. Maybe I should contact with the vendor. Thanks again. From wangk@lx04.mphy.ustc.edu.cn Sat Dec 13 01:40:44 1997 From: Wang Kun Date: Sat Dec 13 01:40:50 PST 1997 Subject: Re: question of function nanosleep() Hi, I have solved the problem.The file configall.h was written in format as follows: ..... #if FALSE ... #define INCLUDE_POSIX_ALL ... #endif .... Then I defined it and make the image.It's OK.But I have another question:Many items were hided in this block.Maybe there are some potential problems in the VxWorks image,How can I know? Thank you again,friends. From daemon@csg.lbl.gov Sat Dec 13 04:02:33 1997 From: daemon@csg.lbl.gov Date: Sat Dec 13 04:02:35 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Dec 13 04:02:30 PST 1997 Subject: Re: Handling Hardware watchdog timer Subject: Re: wrong perception of time ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Handling Hardware watchdog timer Date: Thu, 11 Dec 1997 22:10:07 -0600 From: donbock@flash.net (Don Bockenfeld) Organization: Flight Visions Message-ID: References: <01bd0685$a9630da0$df60a9ce@host.hooked.net> In article <01bd0685$a9630da0$df60a9ce@host.hooked.net>, "Raymond K.S. Yeung" wrote: > How does one handle h/w watchdog timer? > There's a debate as to whether the WD timer task > should be running at highest or lowest priority task > in a system. Our watchdog hardware times out after about 1 second. My watchdog task runs at a higher priority than any of the nominal application tasks. It wakes up twice a second and verifies the existence of the nominal tasks; and confirms that their task states are all legitimate. If everything is ok it resets the hardware watchdog; otherwise it forces an error exception. The lowest priority task is a background BIT [built-in test] task. I intend to add code to have it set a software watchdog flag every time it completes a cycle. I will then add code to the watchdog task to verify that this flag is set often enough to prove that none of the other nominal tasks are stuck in an infinite loop or otherwise hogging the CPU. I'm sure this strategy can be improved on. All of our other projects were implemented with simple control loops. This is our first foray into multitasking. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: wrong perception of time Date: Thu, 11 Dec 1997 22:16:50 -0600 From: donbock@flash.net (Don Bockenfeld) Organization: Flight Visions Message-ID: References: <34903856.70BF@vsl.com.au> In article <34903856.70BF@vsl.com.au>, andrewk@vsl.com.au wrote: > I am writing code on a 25 MHz PPC860 equipped Single-Board-Computer > from EST (EST 860 SBC) ... the board is as shipped, as is the BSP > which was supplied by EST. My problem is that the target doesn't > track time correctly - one second target time equals about 6 seconds > real-world time ... There's a sysClk... function in some BSPs that reports the expected number of clock interrupts per second. I suggest that you use it to verify that the value matches the actual interrupt rate. A mismatch can be corrected by calling another sysClk... function to set the expected number of clock interrupts per second. Sorry about the 's, but I'm at home and my references are at work. --------------------------- End of New-News digest ********************** From daemon@csg.lbl.gov Sun Dec 14 04:00:51 1997 From: daemon@csg.lbl.gov Date: Sun Dec 14 04:00:55 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Dec 14 04:00:49 PST 1997 Subject: Re: VxWorks FTP server Subject: Warm boot and Cold boot on a PPC ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks FTP server Date: Thu, 11 Dec 1997 17:53:42 GMT From: jason@praxon.com (Jason Roybal) Organization: Praxon Inc. Message-ID: <349027e6.782248814@news.alterdial.uu.net> References: <01BD0641.DA954B20@pc0055> Reply-To: jason@praxon.com On Thu, 11 Dec 1997 14:34:13 +-100, Friedrich Ensslin wrote: >Hi all, > >Is there anyone out there, who has successfully used one of these cute >little graphical FTP clients for Windows95/NT in connection with the FTP >server of VxWorks to upload / download files ? I have tried some of them >without success. They seem to have problems to interprete the directory >output delivered by the VxWorks server. >Such a tool would be of great use for us, as we frequently need to update a >set of files on our target's filesystem from Windows. > >Thanx in advance, > >------------------------------------------------- > Friedrich Ensslin > 3SOFT GmbH > Wetterkreuz 19a , D-91058 Erlangen , Germany > phone: +49-9131-7701-0 , fax: +49-9131-7701-80 > email: ensslin@3SOFT.de > > I've found the VxWorks FTP server uses a non-standard output format. This format confuses most GUI FTP clients, and even though it is working, it may appear that it isn't. In addition, the VxWorks FTP doesn't implement some basic commands, and no real security features (like enabling and disabling certain commands, or restricting directory access.) We ended up having to re-write it to get it to work with all the common FTP clients. If you don't have the ability to do this, you might need to stick to the DOS FTP. Good Luck! - ------------------------- Jason --------------------------- Newsgroups: comp.os.vxworks Subject: Warm boot and Cold boot on a PPC Date: Mon, 08 Dec 1997 11:36:59 -0400 From: "Barandiaran, Paul" Organization: NUWC Message-ID: <348C141A.3BE1@code80.npt.nuwc.navy.mil> Reply-To: Barandiaran_Paul@code80.npt.nuwc.navy.mil Does anyone know the difference between a warm boot and a cold boot on the PPC603e? I can successfully download a second vxworks kernel and start it using the warm boot address x104 but it just locks up when I jump to the cold boot address x100. I am using a radstone PPC board. thank you Paul Barandiaran barandiaran_paul@code80.npt.nuwc.navy.mil --------------------------- End of New-News digest ********************** From daemon@csg.lbl.gov Mon Dec 15 04:03:22 1997 From: daemon@csg.lbl.gov Date: Mon Dec 15 04:03:25 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Dec 15 04:03:21 PST 1997 Subject: Re: vxWorks DOS bugs - Filling a disk corrupts it Subject: Re: VxWorks ethernet driver problem? Subject: Re: 2000 problem Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks DOS bugs - Filling a disk corrupts it Date: 11 Dec 1997 06:33:36 GMT From: schuehle@t-online.de (Martin Sauter) Organization: Schuehle Measurement and Control Systems Message-ID: <66o1g0$fho$1@news00.btx.dtag.de> References: <348EED70.63CC@nt.com> Reply-To: ms@schuehle.com Owen, > Has anybody got a list of VXWorks dosFsLib bugs. We are investigating > two at the moment and are wondering has anybody cracked them yet? > > 1. a write to a disk does not return an error when the disk is full. It > also hangs the system. I've seen this happen in tests of our applications, too. Sometimes the file is written till the (RAM) disk is full and further write calls are ignored and the task survives. Sometimes the task that makes the write is suspended. Haven't figured out yet what I am doing differently in the two cases. We are using Tornado 1.0 and VxWorks 5.3.1 (x86 BSP). If you get any replies via e-mail I'd be happy if you could forward them to me. Martin --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks ethernet driver problem? Date: Mon, 8 Dec 1997 16:23:05 -0500 From: "Ted Rypma" Organization: H-P Panacom Div, Waterloo, ON Canada Message-ID: <66hoep$ijv$1@hppadbk.waterloo.hp.com> References: <34885399.9E1E695D@integralaccess.com> <348C0FA2.7B5883DD@integralaccess.com> Reply-To: "Ted Rypma" Shows you what happens when you read quickly and miss part of the information :-( If this behaviour is caused by the driver, there must be some buffer management in there causing your problem. - ---- Ted Rypma 289827 Michael Yip wrote in message <348C0FA2.7B5883DD@integralaccess.com>... >Ted, > >Thanks for your reply. > >Our application is doing straight bridging which and didn't require TCP. >The VxWorks function used was etherOutput(). --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Fri, 12 Dec 1997 21:33:29 -0600 From: Anthony Stanford Organization: netINS, Inc. Message-ID: References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> <66s89o$3c6$1@wbnws01.ne.highway1.com> <66sf6r$1h0@news3.euro.net> On 12 Dec 1997, Frank Bemelman wrote: > pgf@foxharp.boston.ma.us (Paul G. Fox) wrote: > >Stephen Zisk (zisk@adobe.com) wrote: > >: numbers in. Simple choices, like binary vs ascii representation, will > >: have much larger effects than 3- vs 4-digit representations. Third, the > > >not to mention the problems we're all gonna have in the year 10000. which > >of you is prepared for 5 digit years? :-) > > By the time we face that problem, we simply move from 9999 to 2000 > again. Now, THIS cuts right to the heart of the matter. What kind of idiot stores simple numerical data in ASCII, anyways? That is one point where C++ and I part company: I like my binary integers saved as (you guessed it) binary integers. There's a certain degree of portability lost (little-endian vs. MSB-first systems), but it's not that big an issue if you isolate the read & write functions adequately. Anthropologists, futurists, and programmers must all love me because most of what I write works just fine from the 31st century BCE to the 31st century AD, and uses only two bytes to store a date. There's a slight hiccup whenever you compare dates from one era to the other (i.e., BCE to AD or vice versa), but it isn't that hard to resolve. P.S.: BCE = Before Common Era - it's the politically correct version of BC (Before Christ), which assumes that you are talking to a Christian. I have no idea what the PC version of AD is (instead of Anno Domine), but I recall that the abbr. is either the same or so radically different that it wasn't worth remembering. If anyone remembers what it is, pls let me know, that I might re-add it to my store of useless trivia. --------------------------- Newsgroups: comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++,comp.os.vxworks Subject: Re: 2000 problem Date: 15 Dec 1997 07:12:48 GMT From: markj@southern.co.nz (Mark Jordan) Organization: Southern InterNet Services Message-ID: References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> Howdy, I Reckon we need an international standard for this date stuff. Something ANSI or ISO could look at perhaps? Maybe they are already? Cheers, Mark Jordan. --------------------------- End of New-News digest ********************** From hawthorne@aptec.com Mon Dec 15 07:14:28 1997 From: "James B. Hawthorne" Date: Mon Dec 15 07:14:31 PST 1997 Subject: Test Test From hawthorne@aptec.com Mon Dec 15 08:10:48 1997 From: "James B. Hawthorne" Date: Mon Dec 15 08:10:51 PST 1997 Subject: National Instruments GPIB-1014P I am starting a VME project where I need to support a National Instruments GPIB-1014P card. The target processor will be a Motorola MVME162-23 and the OS will be VxWorks. I am curious if anyone has or knows of a library that may be available to support GPIB-1014P. I have searched the web and so far have come up with nothing. Any help would be greatly appreciated!!! Jim Hawthorne Realtime Systems Engineer ================================================================= Applied Technology Associates | Phone: (505)767-1228 1900 Randolph Road SE | FAX: (505)768-1379 Albuquerque, New Mexico 87106 | email: hawthorne@aptec.com ================================================================= From POST@IMS.fhg.de Mon Dec 15 08:51:54 1997 From: Rainer Stelzer Date: Mon Dec 15 08:51:57 PST 1997 Subject: mail client Hi, I remember that about one year ago somebody published a small program for a simple SMTP-client in the VxWorks Users group. It would be kind if somebody could send it to me again. Thanks in advance. rainer -- ********************************************************************** fraunhofer institute of microelectronic circuits and systems department sat name rainer stelzer address finkenstrasse 61 47057 duisburg germany phone +0049/203/3783-238 fax +0049/203/3783-266 email rstelzer@ims.fhg.de ********************************************************************** From adamakis@nosc.mil Mon Dec 15 09:40:17 1997 From: Mike Adamakis Date: Mon Dec 15 09:40:20 PST 1997 Subject: Re: 2000 problem The PC version of AD is CE. No points for originality here. >P.S.: BCE = Before Common Era - it's the politically correct version of BC > (Before Christ), which assumes that you are talking to a Christian. I > have no idea what the PC version of AD is (instead of Anno Domine), but I > recall that the abbr. is either the same or so radically different that it > wasn't worth remembering. If anyone remembers what it is, pls let me > know, that I might re-add it to my store of useless trivia. > --- Mike Adamakis KOAM Engineering Systems 913 Catalina Blvd. San Diego, CA 92106 (619) 224-1736 (office) (619) 224-9795 (fax) adamakis@nosc.mil From js@eroch.mc.xerox.com Mon Dec 15 17:24:36 1997 From: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski) Date: Mon Dec 15 17:24:40 PST 1997 Subject: 2/29/2000 Broken!? ...Speaking of year 2000 related items: Has any one else noticed that the VxWorks time functions work OK up through the year 2037, but the date 2/29/2000 reports backs as "3/00/2000". All other leaps years seem to work correctly. -Jeff ------------------------------------------------------------------------------ Jeffrey R. Szczepanski Phone: (716) 264-6613 Xerox Engineering Systems 300 Main Street East Rochester, NY 14445 Email: js@eroch.mc.xerox.com ------------------------------------------------------------------------------ From frits.vosman@nmr.varian.com Mon Dec 15 19:01:42 1997 From: Frits Vosman x6952 Date: Mon Dec 15 19:01:46 PST 1997 Subject: Re: 2/29/2000 Broken!? All years divisible by 4 are leapyears. However, when the year is divisible by 400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 2/29/2000 will never happen! Frits Vosman From daemon@csg.lbl.gov Tue Dec 16 04:01:39 1997 From: daemon@csg.lbl.gov Date: Tue Dec 16 04:01:43 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Dec 16 04:01:37 PST 1997 Subject: VxWorks driver for SCSI Adaptec 7880 Subject: Re: How do you time a context switch? Subject: Re: set vme167 to date Subject: Re: 2000 problem Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks driver for SCSI Adaptec 7880 Date: 15 Dec 1997 19:22:52 GMT From: "Simon Tourangeau" Organization: Metrix Interlink Message-ID: <01bd098e$13a30a20$65c6cdcd@nelson.cgltech.com> Is there a driver available for VxWorks for the Adaptec 7880 SCSI controller or for the Adaptec AHA-2940 SCSI card ? Thanks Simon --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How do you time a context switch? Date: 9 Dec 1997 23:33:00 GMT From: don@mars.dgrc.doc.ca (Donald McLachlan) Organization: CRC Message-ID: <66kkfd$np1@crc-news.doc.ca> References: <348db6c5.111838001@news.jsc.nasa.gov> Reply-To: don@mars.dgrc.doc.ca I've never tried it but to avoid any other overhead (eg. of semaphores) how about: - from a main task create 2 invocations of a timer task. - Give these 2 tasks the same priority (lower higher #) than the "main" task. - get start time. - suspend "main" task. [control passes to the timer tasks] - timer tasks - while counter < limit [ grubby global variable ] - increment counter - taskDelay(0) [ forces context switch to other timer task ] - get stop time - display delta-time and context switch time. (counter / delta-time). - want to get rid of the time delay due to loop control? - edit the timer task and remove the taskDelay(0). - use timex to time the task/function. - sub this time from the time the first test reported and you should have it. (pretty close anyway). This is all seat-of-the-pants but it sounds reasonable to me. - -- Donald McLachlan e-mail Donald.McLachlan@crc.ca Communications Research Centre / DRX office 613-998-2845 3701 Carling Ave., fax 613-998-9648 Ottawa, Ontario K2H 8S2 Canada --------------------------- Newsgroups: comp.os.vxworks Subject: Re: set vme167 to date Date: 9 Dec 1997 16:59:27 -0700 From: bgeer@xmission.xmission.com (bgeer) Organization: XMission Internet (801 539 0900) Message-ID: <66km0v$gdd$1@xmission.xmission.com> References: <199712031408.GAA29087@lbl.gov> <348582F8.7C35@sandia.gov> >Wu, Huang wrote: >> We are using a VME167 board with MC68040 processor (host sunos4). We do >> like to set the >> vme167 board to the day, but without using host or network since our >> final >> application will be a standalone system. We are quite sure there is a >> realtime >> clock in the hardware of vme167 since it works for OS9 realtime >> operating >> system. The '162 board uses a MK48T0x real-time clock chip, where x indicates how much nonvolatile ram is included on-chip. Just in case anyone wanted to know...:-) - -- <> Robert Geer & Donna Tomky / * <> <> bgeer@xmission.com | _o * o * o <> <> Salt Lake City, Utah | -\<, * <\ <> U S A | O/ O __ /__, /> <> --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Tue, 16 Dec 1997 01:47:10 -0600 From: "Dennis Weldy" Organization: Intergraph Message-ID: References: <62fk8h$mjq@bcarh8ab.bnr.ca> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> <66s9kf$vhr$1@home.edu.stockholm.se> Joshua Waxman wrote in message ... >On Sat, 13 Dec 1997, Dennis Weldy wrote: > >> I guess some folks dont quite remember that folks have more storage on their >> desk tops nowdays than many entire mainframe shops had back in the 60's and >> 70s. :-) >> >'Tis true. But remember also that there still do exist some limitations >nowadays. For example, if the program is to be downloaded with a lot of >date/a, there is a speed consideration. Speed may also be no concern due >to a fast connection, but how about if the distribution is on floppies? >And if you sell the program to many people, those extra disks add up. And >let's say this is a program that will be ported also to palmtops. They >don't (yet) have limitless space. Yep. That is a consideration. Athough if its a large amount of data, CD would probably be a better distrubution mechanism, since they're pretty ubiquitous now. Compressing the daa prior to transmission or copying to a floppy wuld yield better results than sticking with a 2-date year (in general, IMHO). Typically, the dates I was thinking of has to do with customer records. Birthdates, transaction dates, calculation of interest, that sort of thing. > >Now back to the original topic. Someone made the remark that anyone who >didn't use 4 character years needs a good talking to by their managers. I >responded with what I admit now is a pretty yucky scheme, especially since >if you want real compression you can use the full 8 bits to represent or >the full 16 bits or whatever. The only real advantage to characters is >that you don't need to enter a hex editor to examine the data, and if that >is done frequently, a character based scheme might be better. Yes, I made the remark (or one similr) and will stick by it. Usually, its a good thing to discuss design issues with your manager (assuming they are sharp, which fortunately mine is). Yes, there may be a good reason for using 2-year dates, although I don't see it with the millenuim just around the corner. Now, as far as viewing the records, it'd still probably be a better thing to have a viewing program, Othherwise how does one remember what that field is? ;-) > >Let me pose a hypothetical case based on an actual program I wrote. Lets >say I want to make a calendar program for Jewish years, which are based on >lunar months occasionally being corrected to match the solar. This program >will provide all sorts of info for each date, which involves some >computations based on other dates. On my Pentium my inefficient coding >causes it to take three seconds to come up with a result. (This was for a >class assignment, so I really wasn't concerned with speed. But if I >was...) > >So to compare my data with another program to make sure my code was >correct, I downloaded a shareware program (JCAL75.ZIP) to compare results. >The way they operated, I guess to provide uniform speed, was to precompute >all the data and store it in a database. All their program did was look it >up. They only covered 300 years. My program had to cover years from the >Biblical creation date (now is 5758) until the end of time or MAX_INT, >whichever came first:) > >That would be a LOT of precomputed data. Part of the data would be the >equivalent Gregorian date (and Julian) date. Should I use 4 character >years? A better scheme would be to put each century in a different file >based on century, and then just store 2 characters. Or a different file >for each decade and use only one character. And then handle boundary >cases. In that case, perhaps it is. However, for a given century the years are nicely static. They dont change. You'd already dealt with the rollover. Although if you knew your program would be out of date next year (didnt handle the next calendar year, or the one after that) would y'consider this a good thing, or would y'try to provide a means to either precompute fairly far into the future or provide means of calculating it, even though it might be slower. What would y'do if only 5 years from now your 4-year date would be invalid? Now lets put the Jewish years into a new customer database. If you only had 2 years left for which your 4-year date would be valid bfore the fields woud have to be widened, would it be a good thing to go ahead & use 4? If it's 1000 years hence, then I think you could safely ignore it. :) > >I dislike general statements, like "anyone who doesn't use 4 digit dates >needs a good talking to from their managers." I think that some cases >should be judged independently. So in talking to the manager, they can explain their design decisions. If its a good one, then everythings fine. If not, its best to ctch it early. > >How would you handle this situation? What scheme would you use? Since the data is fairly static, probably some sort if hash table. Hashing of century sounds reasonable, as y'suggested. > >Josh Waxman > > >> Ulric Eriksson wrote in message <66s9kf$vhr$1@home.edu.stockholm.se>... >> >In article <3491939D.255C@adobe.com>, Stephen Zisk wrote: >> >> >> >>Save your brain cells for real performance and space issues. A lot of >> >>the costs companies are experiencing to "fix" the date problem are due >> >>to an earlier generation of programmers and programs suffering from >> >>attacks of terminal over-engineering of programming-time/space-saving >> >>trade-offs. Let's not fall into the same trap today! >> > >> >That's unfair to the earlier generation. Given the cost of storing >> >and handling two extra digits all these years, it may well be a net >> >saving to do the conversion now instead of in the sixties. >> > >> >Ulric >> >-- >> >"You say to-mah-to, I say to-mah-to, and he says to-mah-to, >> > but ISO disagrees with all three of us and says to-mah-to." >> >> >> >> > --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Mon, 15 Dec 1997 13:07:11 -0800 From: tsw@cagent.com (Tom Watson) Organization: CagEnt, Inc. Message-ID: References: <62fk8h$mjq@bcarh8ab.bnr.ca> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> <66s9kf$vhr$1@home.edu.stockholm.se> In article <66s9kf$vhr$1@home.edu.stockholm.se>, ulric@evelin.edu.stockholm.se (Ulric Eriksson) wrote: > In article <3491939D.255C@adobe.com>, Stephen Zisk wrote: > > > >Save your brain cells for real performance and space issues. A lot of > >the costs companies are experiencing to "fix" the date problem are due > >to an earlier generation of programmers and programs suffering from > >attacks of terminal over-engineering of programming-time/space-saving > >trade-offs. Let's not fall into the same trap today! > > That's unfair to the earlier generation. Given the cost of storing > and handling two extra digits all these years, it may well be a net > saving to do the conversion now instead of in the sixties. > Interestingly enough, I did a system that used 1 (one) digit years. Turns out that the Y2K problem quickly manifested itself as the code went from 1979 to 1980. The quick fix was to do "signed" comaprisons on the date encoding (which was the last digit of the year, and a day of year). Since the dates with '9' in BCD had the sign bit set, all was cool. Later I changed the code to use a lookup table from the 1 digit years to the 'n' digit years. The problem was brought home VERY quickly. The "saving grace" was that the company didn't last 10 years. The hardware did, and I did some consulting to fix the problems. Perhaps the decision was the proper one. It did save quite a bit of arithmetic, and allowed the compaction of dates to two nice BCD formed bytes. The product didn't need dates in the range of over 10 years, which relaxed the requirements. It is similar to writing dates on a scrap of paper, and only writing "December 15th" and knowing that the year is implied for the usefulness range of the paper. Legacy records (things like 30 year mortgages) need a bit more range. Televisions probably need only to know the day of the week. My VCR only needs to know the year to properly give the day of the week. The TRS80 model 100 can't even figure that out. It needs to be told the day of the week. If the microwave oven needs to know anything about days, it is sadly "overdesigned". Even a simple "Mickey Mouse" watch from the 50's doesn't know about days, and is perfectly Y2K compatable :-). - -- tsw@cagent.com (Home: tsw@johana.com) Please forward spam to: annagram@hr.house.gov (my Congressman), I do. --------------------------- End of New-News digest ********************** From jeking@sandia.gov Tue Dec 16 07:31:22 1997 From: "Jon E. King" Date: Tue Dec 16 07:31:25 PST 1997 Subject: Re: 2/29/2000 Broken!? >>All years divisible by 4 are leapyears. However, when the year is >>divisible by 400 it is not a leap year, ie 1600 and 2000 are NOT >>leapyears. the data 2/29/2000 will never happen! Not quite...the rule is all years divisible by 4, except when divisible by 100 and not by 400. In other words, 1700, 1800, 1900 were not leap years because they are divisble by 100. However, 1600 and 2000 are leap years because, although divisible by 100, they are divisible by 400. This info comes from the Royal Greenwich Observatory, and can be found (along with a history of the leap year phenomenon) at the following URL: http://www.ast.cam.ac.uk/RGO/leaflets/leapyear/leapyear.html Does anyone have any other information or experience with how VxWorks will handle 2/29/2000? This sounds like it needs some investigation... -- Jon E. King (jeking@sandia.gov) Testers & Experimental Groundstations Sandia National Laboratories PO Box 5800 Albuquerque, NM 87185-0965 (505)845-8908 / FAX (505)844-5993 From cgrames@mdc.com Tue Dec 16 07:35:24 1997 From: Charlie Grames Date: Tue Dec 16 07:35:28 PST 1997 Subject: Re: 2/29/2000 Broken!? -Reply No, you have it backwards. Century years divisible by 400 ARE leap years; century years NOT divisible by 400 are not. Thus 1600 was a leap year, as will be year 2000. 1700, 1800, and 1900 were not leap years. Anyway, back to the original comment: What routines were used to get the 3/00/2000 result? I used mktime() to create 2/29/2000 and printed out the resulting string created by asctime(), and the results were what I expected. Charlie Grames The Boeing Company (314) 233-1956 Charles.R.Grames@boeing.com >>> the vxWorks Users Group Exploder 12/15/97 09:01pm >>> Submitted-by frits.vosman@nmr.varian.com Mon Dec 15 19:01:42 1997 Submitted-by: Frits Vosman x6952 All years divisible by 4 are leapyears. However, when the year is divisible by 400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 2/29/2000 will never happen! Frits Vosman From vijay@hns.com Tue Dec 16 09:00:29 1997 From: "Vijay Kumar" Date: Tue Dec 16 09:00:32 PST 1997 Subject: Re: 2/29/2000 Broken!? -Reply Year 2000 is the leap year. So, Vxworks will handle 2/29/2000 . The rule is that every year which is divided by 4 is leap year except it is divided by 100( 1700,1900 is not) and but if divided by 400 (1600,2000). vijay -- VIJAY KUMAR From getker@sentientnet.com Tue Dec 16 09:44:37 1997 From: Jim Getker Date: Tue Dec 16 09:44:44 PST 1997 Subject: Re: 2/29/2000 Broken!? At 05:24 PM 12/15/97 PST, you wrote: >Submitted-by js@eroch.mc.xerox.com Mon Dec 15 17:24:36 1997 >Submitted-by: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski) > > >...Speaking of year 2000 related items: > >Has any one else noticed that the VxWorks time functions >work OK up through the year 2037, but the date 2/29/2000 reports backs >as "3/00/2000". All other leaps years seem to work correctly. > >-Jeff This is a problem in 5.2, but fixed in tornado. We got a 5.2 patch from wind river tech support. Jim ------------------------------------------------------------------- Jim Getker email: getker@sentientnet.com Sentient Networks Inc. phone: 408-473-8035 630 Alder Drive fax: 408-474-0333 Milpitas, CA 95035 From YF.Siu@eng.efi.com Tue Dec 16 09:54:27 1997 From: "Yuet Fung Siu" Date: Tue Dec 16 09:54:30 PST 1997 Subject: Re: 2/29/2000 Broken!? On Dec 16, 7:31am, the vxWorks Users Group Exploder wrote: > > Does anyone have any other information or experience with how VxWorks will > handle 2/29/2000? This sounds like it needs some investigation... > > -- > Jon E. King (jeking@sandia.gov) > Testers & Experimental Groundstations > Sandia National Laboratories > PO Box 5800 > Albuquerque, NM 87185-0965 > (505)845-8908 / FAX (505)844-5993 > There is a careless bug in the ansi and gm time code in VxWorks 5.2. This actually is not directly related to the leap year evaluation but it will show up in year 2000 too. If you set your time to 2/29/2000 23:59:55 and let it roll over, you will end up with the 3/0/2000 result. I'm not sure if the problem has been fixed in 5.3. YF From mam@pluto.dspt.com Tue Dec 16 10:13:21 1997 From: "Mark Menge" Date: Tue Dec 16 10:13:25 PST 1997 Subject: Dang nab it. ld doesn't clear the local bss variables ? Has anyone ever seen a bug where the BSS segment is not being cleared by the loadModule command? File.c: BssTest() { static int count; printf("Count addrs:0x%x value= %d\n\n", &count, count); return count; } ->ld < host:/file.o value = 16759184 = 0xffb990 = rtInf + 0x570 -> staticTest() Count addrs:0xbb3d9c value= -1809711128 Hmmmmmm. It works for global bss variables. From bwenholz@Pacesetter.COM Tue Dec 16 10:16:24 1997 From: bwenholz@Pacesetter.COM (Bruce Wenholz) Date: Tue Dec 16 10:16:28 PST 1997 Subject: Re: 2/29/2000 Broken!? ) )Submitted-by js@eroch.mc.xerox.com Mon Dec 15 17:24:36 1997 )Submitted-by: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski) ) ) )...Speaking of year 2000 related items: ) )Has any one else noticed that the VxWorks time functions )work OK up through the year 2037, but the date 2/29/2000 reports backs )as "3/00/2000". All other leaps years seem to work correctly. ) )-Jeff Yes This has been reported to WRS quite some time ago. We have already put a product oput the door using a wrapper function to adjust for that problem. ======================8<------------------------- e-mail: bwenholz@pacesetter.com (Bruce Wenholz) Pacesetter, Inc Sylmar, Ca 91342, USA From kb+@andrew.cmu.edu Tue Dec 16 13:40:32 1997 From: Kevin Bradley Date: Tue Dec 16 13:40:35 PST 1997 Subject: Re: Dang nab it. ld doesn't clear the local bss variables ? Excerpts from mail: 16-Dec-97 Dang nab it. ld doesn't cle.. by the U. G. Exploder@lbl.g > BssTest() > { > static int count; > printf("Count addrs:0x%x value= %d\n\n", &count, count); > return count; > } > > ->ld < host:/file.o > value = 16759184 = 0xffb990 = rtInf + 0x570 > > -> staticTest() > Count addrs:0xbb3d9c value= -1809711128 I tried just this on my machine, using the same code. This is what I get: -> ld < File.o value = 13968932 = 0xd52624 = File.o_bss + 0xc -> BssTest Count addrs:0xd52618 value= 0 If I initialize to some other value, viz: static int count = 257; then I get: -> ld < File.o value = 13968128 = 0xd52300 = File.o_bss + 0xc -> BssTest Count addrs:0xd52ddc value= 257 So I think it's something in your system somehow. This is for an x86 BSP using gcc 2.7.2.2 on Linux (so it's not Tornado's compiler) for VxWorks 5.3.1 (Tornado 1.0.1). -- Kevin From cgrames@mdc.com Tue Dec 16 14:02:27 1997 From: Charlie Grames Date: Tue Dec 16 14:02:30 PST 1997 Subject: Dang nab it. ld doesn't clear the local bss variables ? -Reply For what it's worth, I tried running this test on an MVME2604 running VxWorks 5.3.1 (GNU compiler), and it worked fine. Charlie Grames The Boeing Company (314) 233-1956 Charles.R.Grames@boeing.com >>> the vxWorks Users Group Exploder 12/16/97 12:13pm >>> Submitted-by mam@pluto.dspt.com Tue Dec 16 10:13:21 1997 Submitted-by: "Mark Menge" Has anyone ever seen a bug where the BSS segment is not being cleared by the loadModule command? File.c: BssTest() { static int count; printf("Count addrs:0x%x value= %d\n\n", &count, count); return count; } ->ld < host:/file.o value = 16759184 = 0xffb990 = rtInf + 0x570 -> staticTest() Count addrs:0xbb3d9c value= -1809711128 Hmmmmmm. It works for global bss variables. From Wynn.Rostek-1@kmail.ksc.nasa.gov Tue Dec 16 15:49:32 1997 From: Rostek-1 Wynn Date: Tue Dec 16 15:49:36 PST 1997 Subject: Signals in vxworks??? I want to install a signal handler in some TCP/IP socket library routines I developed in order to have the app close all open socket before it terminates. The problem is, when I #include , I end up with a whole series of messages complaining about not being able to find (No such file or directory): arch/i960/sigI960Codes.h, arch/mc68k/sigMc68kCodes.h arch/mips/sigMipsCodes.h arch/sparc/sigSparcCodes.h arch/i86/sigI86Codes.h When looking at sigCodes.h, it sure looks like only one of these should be included, which one that is included is based on the value of CPU_FAMILY, which I hope is the PPC. The actual error messages are: In file included from C:\Tornado\target/h/sigLib.h:24, from htdsock.c:31: C:\Tornado\target/h/sigCodes.h:24: arch/i960/sigI960Codes.h: No such file or directory C:\Tornado\target/h/sigCodes.h:28: arch/mc68k/sigMc68kCodes.h: No such file or directory C:\Tornado\target/h/sigCodes.h:32: arch/mips/sigMipsCodes.h: No such file or directory C:\Tornado\target/h/sigCodes.h:36: arch/sparc/sigSparcCodes.h: No such file or directory C:\Tornado\target/h/sigCodes.h:40: arch/i86/sigI86Codes.h: No such file or directory In file included from C:\Tornado\target/h/arch/ppc/sigPpcCodes.h:17, from C:\Tornado\target/h/sigCodes.h:44, from C:\Tornado\target/h/sigLib.h:24, from htdsock.c:31: Anyone have any ideas what I'm doing wrong? Wynn Rostek Lead Engineer, Advanced Development Laboratory DNX-20 Kennedy Space Center, FL 32899 wynn.rostek-1@ksc.nasa.gov Voice: (407) 867-6770 Fax: (407) 867-7435 From bhagvan@trinc.com Tue Dec 16 18:39:31 1997 From: bhagvan@trinc.com (Bhagvan-Cheeyandira) Date: Tue Dec 16 18:39:34 PST 1997 Subject: Qns on FTP Hi Had a question on FTP. When doing a ftpLogin() after a successful ftpHookup(), FTP is failing because of invalid 'user' and 'password' 1. Should the user and password be given when doing an FTP ? 2. If so, how do we set it on the remote side to accept these values. Any advice would be helpful. Thanks Bhagvan ------------------------------------------------------------------------- Bhagvan Cheeyandira email: bhagvan@trinc.com Technology Rendezvous Inc Phone(O): (408) 566 0280,Extn 311 3160 De La Cruz Blvd.,Suite 101 SantaClara, CA 95054, USA ------------------------------------------------------------------------- From vbkumar@wipinfo.soft.net Tue Dec 16 21:34:00 1997 From: V B Kumar Date: Tue Dec 16 21:34:12 PST 1997 Subject: Ethernet Driver Source ... Is there any Vxworks ethernet driver source available for any board in the public domain ? Thanks in advance. From philweb@sprynet.com Wed Dec 17 00:47:49 1997 From: "Philippe Weber" Date: Wed Dec 17 00:47:52 PST 1997 Subject: Re: 2000 problem -----Original Message----- >The PC version of AD is CE. No points for originality here. > >>P.S.: BCE =3D Before Common Era - it's the politically correct version = of BC >> (Before Christ), which assumes that you are talking to a = Christian. I=20 >> have no idea what the PC version of AD is (instead of Anno = Domine), but I >> recall that the abbr. is either the same or so radically = different that it >> wasn't worth remembering. If anyone remembers what it is, pls = let me >> know, that I might re-add it to my store of useless trivia. >> > I guess talking of year 1997 is also politically incorrect, as it = assumes you are talking to a Christian... From daemon@csg.lbl.gov Wed Dec 17 04:01:04 1997 From: daemon@csg.lbl.gov Date: Wed Dec 17 04:01:08 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Dec 17 04:01:01 PST 1997 Subject: NFS Hangs Subject: Re: mail client Subject: Loading vxWorks into Flash ROM on a MVME2604 Board Subject: Re: 2/29/2000 Broken!? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: NFS Hangs Date: Mon, 15 Dec 1997 10:09:28 -0500 From: "Joe W." Organization: US Army/Warrenton Training Center Message-ID: <34954828.E03A79FE@wtc.gov> I think I'm seeing what was discussed in this group several months ago... the NFS server daemon takes over 100% of the CPU on my VxWorks 5.3.1 card, and then I must reboot. Someone in the past suggested that there was a patched dosFsLib available, but I can't find anything about it on Wind River's site, except for something for x86 (we're using Solaris.) Any help would be much appreciated. - --Joe W (joew@wtc.gov) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: mail client Date: Tue, 16 Dec 1997 10:36:41 -0800 From: "Hwa-Jin Bae" Organization: Idiom Communications Message-ID: <676hd6$a00$1@news.idiom.com> References: <1997Dec15.171941+0000@av28> Sender: readnews@204.32.126.155 Rainer Stelzer wrote in message <1997Dec15.171941+0000@av28>... >Hi, >I remember that about one year ago somebody >published a small program for a simple >SMTP-client in the VxWorks Users group. http://www.pso.com/vxhacks.html --------------------------- Newsgroups: comp.os.vxworks Subject: Loading vxWorks into Flash ROM on a MVME2604 Board Date: Mon, 15 Dec 1997 12:38:14 -0500 From: Franklyn Smith Organization: Eastman Kodak Company Message-ID: <34956B06.24DD@kodak.com> Reply-To: Franklyn Smith I'm trying to load vxWorks into the Flash ROM on Motorola's MVME2604 board and I'm not having much luck! We can load the bootrom_uncmp program OK using the instructions in WRS target.txt file! Which vxWorks target should I be trying to load? Do I load it like I load the bootrom_uncmp program? Any information on this subject would be much appreciated! - -- /*******************************************************************\ * Franklyn R. Smith email: frs@kodak.com * * Commercial & Government Systems phone: (716) 253-6119 * * Eastman Kodak Company fax: (716) 253-5743 * * 1447 St Paul St * * Rochester, NY 14653-7005 * \*******************************************************************/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: 2/29/2000 Broken!? Date: 15 Dec 1997 22:37:46 -0500 From: Marc Unangst Organization: Carnegie Mellon Univ. -- Computer Science Dept. Message-ID: References: <199712160301.TAA01277@carbon13.nmr.varian.com> Sender: mju@teanininch.pdl.cs.cmu.edu Frits Vosman x6952 writes: > All years divisible by 4 are leapyears. However, when the year is divisible by > 400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data > 2/29/2000 will never happen! Sigh, let's debunk this one early. The year 2000 *is* a leap year. The rule is as follows: The rule for leap years under the Gregorian calendar is that all years divisible by four are leap years EXCEPT century years NOT divisible by 400. Thus 1700, 1800, and 1900 were not leap years, while 2000 will be one. This rule gives 97 leap years in 400 years or a mean year length of exactly 365.2425 days. [source: sci.astro FAQ, http://www.landfield.com/faqs/astronomy/faq/part3/section-8.html] - -Marc Unangst --------------------------- End of New-News digest ********************** From kyp@tailyn.com.tw Wed Dec 17 04:21:21 1997 From: "kyp" Date: Wed Dec 17 04:21:25 PST 1997 Subject: question for GUN I use Vxworks on WIN95. I try to output IEEE format but fail (my ICE support IEEE format). How to do it ? Thanks for replay. From ratkin@ix.netcom.com Wed Dec 17 05:10:19 1997 From: ratkin@ix.netcom.com Date: Wed Dec 17 05:10:22 PST 1997 Subject: Re: Re: 2/29/2000 Broken!? >Submitted-by frits.vosman@nmr.varian.com Mon Dec 15 19:01:42 1997 >Submitted-by: Frits Vosman x6952 > >All years divisible by 4 are leapyears. However, when the year is divisible by >400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data >2/29/2000 will never happen! > >Frits Vosman Actually the algorithm for leap years is all years divisible by four, except those divisible by 100, _except_ those divisible by 400 are leap years. So the years 1600 and 2000 _are_ leap years, but the year 1900 is not. Rob Atkin Tiger Innovations, L.L.C. Embedded Systems Consultants From aram.nahidipour@spdg.COM Wed Dec 17 07:14:16 1997 From: aram.nahidipour@spdg.COM (Aram Nahidipour) Date: Wed Dec 17 07:14:19 PST 1997 Subject: Re: Qns on FTP Bhagvan, > 1. Should the user and password be given when doing an FTP ? Yes. You may use "anonymous" user if your remote site support that. "anonymous" user typically does not need password. You can also use tftp which does not need user name or password. However your remote site must support it also. > 2. If so, how do we set it on the remote side to accept these values. > That depends on your remote site OS. Unix type os you use "adduser" script, NT has "User Manager" and vxworks has loginUserAdd() function. Hope this helps Aram From Francis.Hallahan@gsfc.nasa.gov Wed Dec 17 09:27:55 1997 From: Francis Hallahan Date: Wed Dec 17 09:27:58 PST 1997 Subject: Re: NFS Hangs (Ohhh Nooo! Not Again!) > Subject: NFS Hangs >------------------------------------------------------- >From: "Joe W." > >I think I'm seeing what was discussed in this group several months >ago... the NFS server daemon takes over 100% of the CPU on my VxWorks >5.3.1 card, and then I must reboot. Someone in the past suggested that >there was a patched dosFsLib available, but I can't find anything about >it on Wind River's site, except for something for x86 (we're >using Solaris.) > >Any help would be much appreciated. > >- --Joe W (joew@wtc.gov) > > >--------------------------- Joe, I worked this problem with WRS back in 1995. I am told that it was fixed and this is a NEW(?) problem. Regardless, the symptoms are exactly the same, and when I apply the fix I got to 5.2 and 5.3 BSPs the problem goes away! The problem is in dosFsLib but does not show up until you start using NFSd and/or FTPd. My SPR was SPR #4672 for Sun/68k; it should work with Solaris/68k. I believe there is also another SPR for this problem. Either way, you will need to contact WRS support at "support@wrs.com". I will refrain from flaming WRS here, I'll do that directly with them. Hope this helps, Frank Hallahan /-------------------------------------------------------------------------\ | Frank Hallahan | Hallahan@gsfc.nasa.gov | | Software Environment Leader - Code 521 | fbh@vlsi.gsfc.nasa.gov | | Computer Sciences Corporation | | | at Nasa Goddard Space Flight Center | Phone (301) 286 7064 | \-------------------------------------------------------------------------/ From kalalau!jmk@uu9.psi.com Wed Dec 17 12:57:03 1997 From: jmk@acut.com (Joel Katz) Date: Wed Dec 17 12:57:08 PST 1997 Subject: host,net, and service db's I'm trying to port some UNIX code that uses the Unix network database= utilities including {get,set,end}hostent {get,set,end}netent {get,set,end}svcent I'm assuming that vxWorks has some kind of internal data table that is= loosely equivalent to these databases in order to do networking. Does= anyone have any insight into where these might be so that I can emulate the= database functions rather than modify my source code? Any tips would be app= reciated. Joel Katz, Principal Engineer --- (603)-577-5895 Acuity Imaging, 9 Townsend West, Nashua, NH 03063 --- (603)-577-5965 (FAX) From Wynn.Rostek-1@kmail.ksc.nasa.gov Wed Dec 17 14:03:35 1997 From: Rostek-1 Wynn Date: Wed Dec 17 14:03:39 PST 1997 Subject: RE: NFS Hangs (Ohhh Nooo! Not Again!) OT >---------- >From: vxwexplo@lbl.gov[SMTP:vxwexplo@lbl.gov] >Sent: Wednesday, December 17, 1997 11:28 AM >To: Wynn.Rostek-1@kmail.ksc.nasa.gov >Subject: Re: NFS Hangs (Ohhh Nooo! Not Again!) > >I will refrain from flaming WRS here, I'll do that directly with them. > I'm really sorry you refrained. It's freezing here in the lab, and now I can't warm my hands. :-) > >Wynn Rostek >Lead Engineer, Advanced Development Laboratory >DNX-20 >Kennedy Space Center, FL 32899 > >wynn.rostek-1@ksc.nasa.gov > >Voice: (407) 867-6770 >Fax: (407) 867-7435 > > > > > From david.seltz@wrs.com Wed Dec 17 14:08:49 1997 From: David Seltz Date: Wed Dec 17 14:08:52 PST 1997 Subject: patching technology Hi Everyone, Does anyone know anything about "patching technology"? I know Pocketsoft makes a product called RTPatch that uses this method to compares two files, or two systems of files. It then stores only the changes into a small patch file. Using this patch and the patch-apply program, end-users can create the new file (or system of files) from the old file (or system of files). My customer is considering it as a way to dynamically make changes to their system in smaller chunks then the object modules our dynamic loader allows. Does anyone have any knowledge of this being used in a VxWorks environment (or any embedded environment)? Any help would be appreciated. Dave **************************************************************** David Seltz email: dseltz@wrs.com Field Application Engineer phone: 978-453-4100 x56 Wind River Systems Fax: 978-453-9834 fax 150 Industrial Ave, East www: http://www.wrs.com Lowell, MA 01852 **************************************************************** From mfischer@qualcomm.com Wed Dec 17 14:16:04 1997 From: Mark Fischer Date: Wed Dec 17 14:16:08 PST 1997 Subject: Re: host,net, and service db's According to the vxWorks Users Group Exploder: > anyone have any insight into where these might be so that I can emulate the= > database functions rather than modify my source code? Any tips would be app= Have you tried gdbm? prep.ai.mit.edu:/pub/gnu/gdbm-1.7.3.tar.gz Cheers, Mark ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From cruz_nojunk@xyplex.com Wed Dec 17 14:37:40 1997 From: Roger Cruz Date: Wed Dec 17 14:37:43 PST 1997 Subject: Re: DOS filesystem Errors > I've been having lots of problems with the DOS FS and WRS has been useless in helping me solve them. I have experience the lock up condition that you mentioned as well as other people in this list. The problem goes back to Feb 96 and it is not fixed in the patch in their web site. I obtained a work around from another user. Refer to TSR 49490 which makes some DOS Fs semaphores priority safe. The second problem that I have has to do with corruption in the FAT and directory structure. I too run scan disk which reports problems with the file size. What is worse is that over time, you'll get two files sharing the same cluster (TSR 49805). I still haven't received a satisfactory response from WRS. Please keep me posted with any news you get from them regarding these issues. Thanks, Roger PS. Remove "_nojunk" from email address if replying directly > Newsgroups: comp.os.vxworks > Subject: DOS filesystem Errors > Date: Tue, 09 Dec 1997 18:59:43 GMT > From: jason@praxon.com (Jason Roybal) > Organization: Praxon Inc. > Message-ID: <348f94fa.613564258@news.alterdial.uu.net> > Reply-To: jason@praxon.com > > I have been encountering frequent problems with using a DOS file > system under VxWorks. While running a multi-threaded application, an > error has occurred that I can't seem to get around. What happens is > when one thread has a particular file open for reading, and another > thread or separate application has the same file open for something > other than read, a nasty error happens. The immediate symptom is the > system locking up. When I reboot the target, the corrupt file can be > opened for reading, but not for writing. Also, the directory that > contains that file seems to go 'read-only', and not allow any files in > it's level, or any sub-directory to be created or opened for write. > The 'fopen' on any of these files doesn't return an error, but once I > try to write (with 'write', 'fwrite', 'fprintf', etc), the system > crashes _hard_. > > The only fix that I have been able to do is reboot in DOS, and > run scandisk. Scandisk then detects directory structure errors all > over the place. The particular errors are the lengths of files being > mis-reported. However, fixing the directory entries with scandisk > doesn't fix the problem. Any of the affected files must be deleted, > and sometimes the directory affected must be removed and re-created. > > I have tried to delete the corrupt files without running > scandisk first, (in VxWorks), and it kills the system as well. > > This vulnerability to errors is causing us serious concern. > Has anyone encountered anything like this, and have any suggestions? > > Please respond via email to: > > jason@praxon.com > > Thanks! > -- Roger Cruz cruz@xyplex.com Xyplex Networks w: 508-952-4783 295 Foster Street f: 508-952-4887 Littleton, MA 01460 From kyp@tailyn.com.tw Wed Dec 17 17:16:38 1997 From: "kyp" Date: Wed Dec 17 17:16:42 PST 1997 Subject: to Wang,Tom ( HT-EX) Hi Tom: I am from Taiwain. My company is TAILYN in the Taoyuan. I use Vxworks in DLC(digital loop carrier). I think,may be you can send email to kyp@tailyn.com.tw for me . - Kao Yi-Ping From daemon@csg.lbl.gov Thu Dec 18 04:00:27 1997 From: daemon@csg.lbl.gov Date: Thu Dec 18 04:00:30 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Dec 18 04:00:23 PST 1997 Subject: Language Internationalization ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Language Internationalization Date: Wed, 10 Dec 1997 13:08:26 -0500 From: Michael McGee Organization: Stratus Computer Inc, Marlboro MA Message-ID: <348EDA9A.222FC8AE@stratus.com> Does anyone know of an internationalization library available for VxWorks? I would really like a library that supports UNICODE strings. Thanks Mike --------------------------- End of New-News digest ********************** From thomas.arand@oen.siemens.de Thu Dec 18 06:23:42 1997 From: thomas.arand@oen.siemens.de (Arand, Thomas) Date: Thu Dec 18 06:23:46 PST 1997 Subject: WindView for IDTS465 BSP Hi VxWorks world, does anyone know how to include a timestamp driver to vxWorks in order to = = let WindView work properly with the IDTS465 eval board? Thanks in advance, Thomas ---------------------------------------------------------------------- Thomas Arand Siemens AG Tel. +49 - 89 - 722 42296 Fax. +49 - 89 - 722 26572 thomas.arand=40oen.siemens.de From currie@ghg.net Thu Dec 18 12:04:25 1997 From: currie@ghg.net (Alan Currie) Date: Thu Dec 18 12:04:35 PST 1997 Subject: Re: WindView for IDTS465 BSP the vxWorks Users Group Exploder wrote: > > Submitted-by thomas.arand@oen.siemens.de Thu Dec 18 06:23:42 1997 > Submitted-by: thomas.arand@oen.siemens.de (Arand, Thomas) > > Hi VxWorks world, > > does anyone know how to include a timestamp driver to vxWorks in order to = > = > let WindView work properly with the IDTS465 eval board? > We used a Tracemaker VME board to provide the timing info and non-intrusively gather data for windview across the backplane. From Richard.W.Mattox@lmco.com Thu Dec 18 13:30:52 1997 From: Richard W Mattox Date: Thu Dec 18 13:30:56 PST 1997 Subject: Ada vs C++/C Hello Fellow VxWorkers, I am taking an informal poll of the embedded software community that uses VxWorks as its RTOS. I want to know what language or languages you are programming in; C, C++, Ada 83, Ada 95, etc. Also, I would appreciate someone's response from Boeing since my program office is convinced that all of Boeing's software is written in Ada. Also, does anyone have any life cycle cost analysis data comparing Ada 95 to C++. I realize this would just be an estimate by analogy because there are no metrics data for Ada 95. Thanks for your input. Rick Mattox 410.682.2315 richard.w.mattox@lmco.com From ericn@technologies.ticketmaster.com Thu Dec 18 15:41:20 1997 From: ericn@technologies.ticketmaster.com (Eric Nelson) Date: Thu Dec 18 15:41:23 PST 1997 Subject: SIO drivers, TTY drivers and flow control This is a multi-part message in MIME format. ------=_NextPart_000_003E_01BD0BD3.D4C7A2A0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Am I missing something, or is there a problem with the new serial driver architecture? I have written an SIO driver for the MC68328, and am trying to make it support hardware flow control. The way I have done this in other environments is to check for space in the received-data ring buffer and = use this to set the RTS signal appropriately. The SIO/TTY architecture doesn't seem to support this for two reasons : 1. There is no obvious way that the SIO driver can find the ring =20 buffer. 2. There is no obvious way to insert code that executes when data = is =20 pulled from the ring buffer by an application. Does anybody know of a work-around? Thanks in advance. Eric Nelson Ticketmaster Technologies, Inc EricN@technologies.ticketmaster.com EricNelson@acm.org ------=_NextPart_000_003E_01BD0BD3.D4C7A2A0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Am I missing something, or is there a = problem with=20 the new serial driver
architecture?

I have written an SIO = driver for=20 the MC68328, and am trying to make it
support hardware flow control. = The way=20 I have done this in other
environments is to check for space in the=20 received-data ring buffer and use
this to set the RTS signal=20 appropriately.

The SIO/TTY architecture doesn't seem to support = this for=20 two reasons :
     1. There is no obvious way = that the=20 SIO driver can find the ring
 
        =20 buffer.
     2. There is no obvious way to insert = code=20 that executes when data is
 
        =20 pulled from the ring buffer by an application.

Does anybody know = of a=20 work-around?

Thanks in advance.


 
Eric=20 Nelson
Ticketmaster Technologies, Inc
EricN@technologies.ti= cketmaster.com
EricNelson
@acm.org
------=_NextPart_000_003E_01BD0BD3.D4C7A2A0-- From john.l.ahrens@boeing.com Thu Dec 18 16:04:06 1997 From: "John. L. Ahrens" Date: Thu Dec 18 16:04:10 PST 1997 Subject: Re: Ada vs C++/C the vxWorks Users Group Exploder wrote: > > Submitted-by Richard.W.Mattox@lmco.com Thu Dec 18 13:30:52 1997 > Submitted-by: Richard W Mattox > > Hello Fellow VxWorkers, > > I am taking an informal poll of the embedded software community that uses > VxWorks as its RTOS. I want to know what language or languages you are > programming in; C, C++, Ada 83, Ada 95, etc. Also, I would appreciate > someone's response from Boeing since my program office is convinced that all of > Boeing's software is written in Ada. Also, does anyone have any life cycle cost > analysis data comparing Ada 95 to C++. I realize this would just be an estimate > by analogy because there are no metrics data for Ada 95. Thanks for your input. > I know of Boeing systems using C, C++ and FORTRAN in realtime environments. Some are even flight systems (even military flight system). -- I don't speak for my employer. | You can't have an impact Test Systems Research & Development | without expecting a collision. john.l.ahrens@boeing.com | From ste%narwhal@wago.de Fri Dec 19 01:13:29 1997 From: Steve James Date: Fri Dec 19 01:13:33 PST 1997 Subject: Year 2000 29th Feb WAS Broken This is a multi-part message in MIME format. --------------32D8EEC50B507EBF54B957BF Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit There has been quite a bit of traffic on this group regarding this topic recently. Here are the latest facts from my experiences:- 1. Year 2000 IS a leap year, 2. Our VxWorks 5.3 (from Tornado 1.0) target incorrectly displays 29th Feb. 2000 as 0th Mar 2000, 3. I have been advised by WRS Support that this is fixed in VxWorks 5.3.1 (from Tornado 1.0.1), 4. The bug is in the gmtime module. 5. It manifested on our system in localtime_r(). With assistance from Support, we have used the VxWorks 5.3.1 gmtime.o object and linked it to our 5.3 target. This has safely fixed the bug and allowed us to postpone migration of our system to 5.3.1 until a more convenient time next year. -- --Steve James, Senior Design Eng.--............................ --Wandel & Goltermann Ltd........--.+44 (0)1752 765367 (vmail). --Eurotech House, Burrington Way.--.+44 (0)1752 791101 (FAX)... --Plymouth, Devon. PL5 3LZ. U.K..--.+44 (0)1752 772773 (switcb) --------------32D8EEC50B507EBF54B957BF Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Steve James Content-Disposition: attachment; filename="vcard.vcf" begin: vcard fn: Steve James n: James;Steve org: Wandel & Goltermann Ltd., Plymouth adr: Eurotech House, Burrington Way;;Honicknowle;Plymouth;Devon;PL5 3LZ;UK email;internet: narwhal!ste@wago.de title: Senior Design Engineer tel;work: +44 (0)1752 765367 tel;fax: +44 (0)1752 791101 x-mozilla-cpt: ;-1 x-mozilla-html: TRUE end: vcard --------------32D8EEC50B507EBF54B957BF-- From phil.quiney@gecm.com Fri Dec 19 03:16:32 1997 From: Philip Quiney Date: Fri Dec 19 03:16:40 PST 1997 Subject: Re: WindView for IDTS465 BSP Hi there, I would recommend reading the application note "Creating a VxWorks Timestamp Driver" (I believe it is supplied with the WindView software - or ask your WRS rep for a copy). Code required for the Timestamp driver gets added to the BSP sysLib.c file so it is worth checking to see if it is already there by searching sysLib.c for the string 'TIMESTAMP'. The hardware support required for the timestamp driver is described in the above application note. We simulated it in software via a high speed (500usec) interrupt but had to resort to not using 'intConnect' otherwise WindView showed the 'thread' as always being in the ISR handling the high speed tick. To build the support into the kernel you need to define the following in your BSP config.h file: #define INCLUDE_TIMESTAMP /* include timestamp timer */ #define INCLUDE_INSTRUMENTATION /* These for WindView */ #define INCLUDE_WINDVIEW Then re run make... Regards Phil Q > > Hi VxWorks world, > > does anyone know how to include a timestamp driver to vxWorks in order to = > = > let WindView work properly with the IDTS465 eval board? > > Thanks in advance, > > Thomas =============================================================================== Phil Quiney _/_/_/_/ _/ _/_/_/_/ email : phil.quiney@gecm.com GEC Marconi _/ _/ _/ _/ _/ tel : +44 1245 353221x3914 Communications Ltd _/_/_/_/ _/ _/ _/ _/_/ fax : +44 1245 275448 Chelmsford _/ _/_/_/_/ _/_/_/_/ England CM1 1PL _/ =============================================================================== From daemon@csg.lbl.gov Fri Dec 19 04:01:50 1997 From: daemon@csg.lbl.gov Date: Fri Dec 19 04:01:53 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Dec 19 04:01:48 PST 1997 Subject: BOOTP and Gateways Subject: vxWorks DOS bugs - Filling a disk corrupts it Subject: VxWorks & Linux ??? Subject: Re: 2000 problem Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: BOOTP and Gateways Date: Wed, 10 Dec 1997 19:27:57 +0000 From: Owen Friel Organization: Bell Northern Research Message-ID: <348EED3C.201F@nt.com> I've been trying to use bootpMsgGet to return a gateway address. However it always returns the BOOTP server address in the gateway field of the BOOTP_MSG. Is this a bug in the VXWorks BOOTP implemention? Alternatively it may be a bug in the CMU Bootp Server distributed with VxWorks. Is there a list of bugs for the CMU BOOTP 2.1 code or VxWorks implementation of BOOTP. Thanks, Owen --------------------------- Newsgroups: comp.os.vxworks Subject: vxWorks DOS bugs - Filling a disk corrupts it Date: Wed, 10 Dec 1997 19:28:48 +0000 From: Owen Friel Organization: Bell Northern Research Message-ID: <348EED70.63CC@nt.com> Has anybody got a list of VXWorks dosFsLib bugs. We are investigating two at the moment and are wondering has anybody cracked them yet? 1. a write to a disk does not return an error when the disk is full. It also hangs the system. 2. Filling a disk corrupts the FAT table. Having done "1" above the FAT is corrupted. Thanks in advance. Owen --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks & Linux ??? Date: 16 Dec 1997 11:42:23 -0500 From: Henning Pangels Organization: National Robotics Engineering Consortium Message-ID: Sender: hmp@eagle Is anyone out there seriously using linux as a host OS for VxWorks development? I'd like to hear about the ups and downs of that experience! Thanks, - -Henning Pangels - -- *---------------------------------------------------------------------* | Henning M. Pangels Assistant Director for Software Engineering | | hmp+@cmu.edu National Robotics Engineering Consortium | | | | http://rec.ri.cmu.edu/~hmp #10 40th Street | | Pittsburgh, PA 15201 | | Robotics Institute Phone: (412)681-6935 | | Carnegie Mellon University FAX: (412)681-6961 | *---------------------------------------------------------------------* --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: 11 Dec 1997 11:31:53 GMT From: je@bton.ac.uk (John English) Organization: University of Brighton Message-ID: <66oiv9$ljd@saturn.brighton.ac.uk> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <62lk9n$gqf@dg-rtp.dg.com> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu> <348F6DC1.2C81@flash.net> Followup-To: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Spaceman Spiff (csweber@flash.net) wrote: : This is the 20th century because years 1 - 99 are the first century, : 100 - 199 are the second century, and so on. No, a century is 100 years, not 99 -- the 1st century was 1-100, the 2nd century was 101-200, and the 20th century is 1901-2000 (inclusive); the 21st century starts on January 1st, 2001. - ----------------------------------------------------------------- John English | mailto:je@brighton.ac.uk Senior Lecturer | http://www.comp.it.bton.ac.uk/je Dept. of Computing | ** NON-PROFIT CD FOR CS STUDENTS ** University of Brighton | -- see http://burks.bton.ac.uk - ----------------------------------------------------------------- --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Thu, 11 Dec 1997 17:17:30 -0500 From: Joshua Waxman Organization: Yeshiva University Message-ID: References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <34906238.38C0@magmacom.com> On Thu, 11 Dec 1997, Barry Millman wrote: > Joshua Waxman wrote: > > > > > whas different from > > > 10/10/2001 from 10/10/2000? > > > Anyone who does not account, when making their fix, fir 2-digit months, 2 > > > digit days and 4 digit years probably needs a good talking to by their > > > managers. ;-) > > > > Why not 3 digit years? A date in 1900's can be written as 10/10/9xx, in > > 2000 as 10/10/0xx, and so on until the end of 2899. While there was reason > > to worry about the turn of the millenium, I doubt that the code written > > today will be used in a couple hundred years. > > > > Josh Waxman > > Josh: > Your suggestion scares the pants off me! I have seen too many systems > that diddled dates, and they all suffered for it! > > First, how many bytes would you save with this technique? A gigabyte? > It all depends how much data in general you are talking about. If you have a LOT of data and lets say 1/100 of it is data information, and that information is being backed up daily, then it can quickly add up to a gigabyte. > Now, how much code needs to be added whenever any of these fields need > to be manipulated. How would you store the data....probably as a string > of bytes. Think of all the conversion code to handle this "savings". > Surely we are not talking about primary storage here. There would be no one who has gigabytes of data residing in RAM. Conversions would be done on read from a file, and then no other conversion code would be necessary except on write. In general, I agree, it can create a lot of problems, and I never really thought in general otherwise. But there might be some case where it is not better to save space. > In all data processing, we must look at the big picture. Sometimes we must also look at each case individually. > > Sorry about the flame, No problem. > Barry > Josh Waxman > > -- > =========================================================================== > Click, Click, Comment > > to make suggestions, commments, complaints and feedback FAST to > thousands of organizations worldwide via > > http://www.sugbox.com > =========================================================================== > > --------------------------- End of New-News digest ********************** From mfischer@qualcomm.com Fri Dec 19 14:48:42 1997 From: Mark Fischer Date: Fri Dec 19 14:48:46 PST 1997 Subject: objectives? All, Was wondering, has anyone ever run Objective-C applications on target? If so, any caveats? If not, why not? Mark Fischer Qualcomm, Inc. From sfakhour@nortel.ca Fri Dec 19 16:13:49 1997 From: "Salim Fakhouri" Date: Fri Dec 19 16:13:52 PST 1997 Subject: Strange SNMP GetNext behaviour Hi everyone, I am using WindNet SNMPv1/v2c version 1.0 and am noticing some strange behaviour with GetNext: Basically, when a table is empty I see that the getNext function for this table is called several times. My function executes nextproc_no_next() so I do not understand why the SNMP agent calls it several times. Has anyone noticed the same thing? Thanks. Salim Fakhouri Nortel Email: sfakhour@nortel.ca From LegoasMarcoA@space.honeywell.com Fri Dec 19 22:52:24 1997 From: "Legoas, Marco A (FL51)" Date: Fri Dec 19 22:52:27 PST 1997 Subject: VxWorks in Flight Software? Does anyone know if VxWorks has ever been used in any type flight control software? Thanks for your answer Marco Legoas malegoas@space.honeywell.com From daemon@csg.lbl.gov Sat Dec 20 04:01:12 1997 From: daemon@csg.lbl.gov Date: Sat Dec 20 04:01:16 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Dec 20 04:01:07 PST 1997 Subject: Re: 2000 problem Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Tue, 16 Dec 1997 16:50:58 -0600 From: Mike Snyder Organization: Accu-Scan/Superior School Supplies Message-ID: <6770tv$8ts@mtinsc04.worldnet.att.net> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> Reply-To: wyndo@cxo.com > I find it depressing that half-assed solutions are still being promoted > in the name of chimeral space savings. First of all, if you are doing > backups, you are probably using some compression to get more onto the > tapes. This will negate any "savings" you might get from a 3-digit date. > Second, you have not talked about what format you are storing the > numbers in. Simple choices, like binary vs ascii representation, will > have much larger effects than 3- vs 4-digit representations. Third, the > cost of a gigabyte of tape storage is so small compared to the cost of > maintaining code to handle a three-digit date scheme as to be trivial. What will happen: After a decade or two, the majority of computer users will get tired of having dates expressed in 4 (or even 3) digits since "who cares" about the 1900's. Software will return to 2-digit dates because people won't care to see previous-century dates. IMHO. Mike. --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Fri, 12 Dec 1997 07:58:04 -0500 From: "Marty Doane" Message-ID: <3491375c.0@diamond.diamondmm.com> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <62lk9n$gqf@dg-rtp.dg.com> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu> <348F6DC1.2C81@flash.net> <66oiv9$ljd@saturn.brighton.ac.uk> <34901488.4994@bedrockcomputers.demon.co.uk> <34908FE6.72AF@flash.net> <3491152F.24E4@bedrockcomputers.demon.co.uk> >If Christ had been born in the year 0 A.D., it would have been a different >matter. But they hadn't QUITE got around to the idea of zero by then. So it >got labelled as 1. Weep all you want, but that's how it turned out. Actually, most historians believe Christ was born in 4 BC. I guess that means we're already in the next millenium. Story of my life - missed it again. Marty Doane Rapistan Systems --------------------------- End of New-News digest ********************** From daemon@csg.lbl.gov Sun Dec 21 04:01:20 1997 From: daemon@csg.lbl.gov Date: Sun Dec 21 04:01:23 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Dec 21 04:01:18 PST 1997 Subject: Re: VxWorks & Linux ??? Subject: Only $5.00/mo. for 45,000+ Uncensored Usenet Newsgroups Subject: Re: 2000 problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks & Linux ??? Date: Tue, 16 Dec 1997 23:00:21 -0800 From: Michael Morrison Organization: My House Message-ID: <34977885.B3759FB4@ringo.reno.nv.us> References: Henning Pangels wrote: > > Is anyone out there seriously using linux as a host OS for VxWorks > development? I'd like to hear about the ups and downs of that > experience! > Thanks, Yes, I use it to target a Pentium SBC. My Boss went and bought Tornado for M$-Windows, but since I just can't use that crap, I got myself set up with Linux. The hardest part was getting the stock GDB to work. There isn't a canned config for i486-vxworks targets, so I had to do some hacking to get it to work correctly. I use the 'ddd' front end for GDB, which is really an excellent program. Targeting a 68k should be easy as there is a canned config for vxworks. The binutils package configuration went just fine as it has a canned config for i486-aout targets. GCC worked just fine after I figured out the correct arguments for the 'configure' script. On the down side, WRS doesn't support Linux, so you are on your own as far as problems you may encounter with the compiler, linker et-al. I haven't had any problems so this isn't an issue for me. GDB will only work when you configure vxworks to operate in the older 5.2 configuration. However, I was able to compile thier WDB code and do some "Tornado" browser stuff, like connect with the target server and get the stack sizes etc. On the up side, you can use one of the finest operating systems on the planet to do your real-time development. It's unfortunate that WRS doesn't support Linux as a development platform. Michael Morrison mike@ringo.reno.nv.us --------------------------- Newsgroups: comp.os.vxworks Subject: Only $5.00/mo. for 45,000+ Uncensored Usenet Newsgroups Date: 16 Dec 97 20:36:12 GMT From: ycrxxfhi@realnews.net Organization: Realnews Message-ID: <3496e63c.0@diamond.diamondmm.com> - --PART_BOUNDARY_KJEZMEYJIR Content-Type: text/html; charset=us-ascii; name="test.html" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="test.html" Content-Base: "file:///C|/test.html" - --PART_BOUNDARY_KJEZMEYJIR Need good access to the usenet newsgroups? Don't want to switch your ISP or pay to much? Than maybe we can help. We offer access to usenet for the flat rate price of $5 a month. Over 40,000 groups to search from and we are adding feeds as fast as we can..We sell company,School and ISP accounts starting at only $49.95 a month..Go to www.realnews.net to signup online. Your login and password will be sent to you in less then 24 hours.. You can also call 203-888-4527 to signup the same day... For the first 100 new customers you can get realnews along with a unlimited dialup ppp account for only $9.97 a month. Thats right both accounts for $9.97 a month when paying 12 months in advance..We have dialup access to most major US cities. - --PART_BOUNDARY_KJEZMEYJIR --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: 17 Dec 1997 11:21:21 GMT From: "Leon Jones" Organization: British Telecom Message-ID: <01bd0aa1$4b7ae6c0$LocalHost@default> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <34906238.38C0@magmacom.com> <3491939D.255C@adobe.com> <6770tv$8ts@mtinsc04.worldnet.att.net> I think this is extremely unlikely bearing in mind the attention that this problem has earned this time round. I may be wrong but I don't care anyway - I'll be dead!!! Leon leon.jones@lineone.net Mike Snyder wrote in article <6770tv$8ts@mtinsc04.worldnet.att.net>... [snip previous post] | After a decade or two, the majority of computer users will get tired of | having dates expressed in 4 (or even 3) digits since "who cares" about | the 1900's. Software will return to 2-digit dates because people won't | care to see previous-century dates. IMHO. | | Mike. | --------------------------- End of New-News digest ********************** From bmcgonig@captain.mariners.com Sun Dec 21 20:07:40 1997 From: Brian Date: Sun Dec 21 20:07:43 PST 1997 Subject: Minimal VxWorks size Hi folks.. Im wondering if anyone knows the minimal size that I can get VxWorks down to in my shippable system? I have a 486, I dont need Network, disk drives. I need serial. So far I sould only get it down to approx. 300K. Im sure that I should be able to do better than that. My approach has been deleting some of the #includes in configall.h and config.h. Is there another/better way? Thanx brian From kyp@tailyn.com.tw Mon Dec 22 01:19:29 1997 From: "kyp" Date: Mon Dec 22 01:19:34 PST 1997 Subject: =?BIG5?B?Zm9yIElFRUUgZm9ybWF0?= everybody, Where can found a2i68k to convert a.out to IEEE format. Thanks to replay. From daemon@csg.lbl.gov Mon Dec 22 04:00:39 1997 From: daemon@csg.lbl.gov Date: Mon Dec 22 04:00:43 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Dec 22 04:00:37 PST 1997 Subject: Looking for good Flash File System Subject: Signal/interrupt problems in VxSim 5.3.1 Subject: FIOFSTATGET Subject: What is breakpoint -9? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Looking for good Flash File System Date: 17 Dec 1997 12:36:51 GMT From: "Simon Tourangeau" Organization: Metrix Interlink Message-ID: <01bd0ae7$a22b1ee0$65c6cdcd@nelson.cgltech.com> I am looking for a Flash File System for VxWorks to be used on x86 architecture with 28f016 flashes... As anybody used such drivers ? Which would you recommend ? Anybody used the one from RST ? Thanks Simon Tourangeau --------------------------- Newsgroups: comp.os.vxworks Subject: Signal/interrupt problems in VxSim 5.3.1 Date: Thu, 18 Dec 1997 07:47:45 -0500 From: "John H. Zouck" Organization: Johns Hopkins University Applied Physics Lab, Laurel, MD, USA Message-ID: I am new to VxSim, but have a running system (with Tornado) on a SPARC 20/Solaris workstation, and have gotten the demo and some more sophisticated programs running. However, I am having trouble with getting signals working as user interrupts. Even with the simplest code, I kill the entire Vxworks process each time I issue the 'kill' command from a csh session to the process running tgtsvr. I have tried both user signals (16 and 17 on Solaris) with equal unsuccess. I can issue the kill with the clock signal (14 on Solaris) and not kill the process, but others kill it, just like the signal was not set up to be handled. I've tried doing the intConnect from the shell and wrioting a programs that does the intConnect. Neither work. I must have missed some step in setting up the signal. From the shell: intConnect( 16, logMsg, "Interrupt...\n") Then from another solaris session: kill -16 That disconnects the tgtsvr process. Here's the code, derived from the demo code included in VxSim: ====================================================================== #include "vxWorks.h" #include "taskLib.h" #include "stdio.h" #include "iv.h" // Includes ivSimSolaris.h static int icount = 0; static void my_int_handler( int ); // // A simple demo routine // void demo(int param) { int status; // find out what task we are and print message printf("Hello from task (%s) built by jhz. Startup parameter was %d.\n", taskName(0), param); // Connect interrupt from signal to handler // SIGUSR1 in solaris = 16 status = intConnect ( 16, my_int_handler, 0); printf ("Interrupt connect status response: %d\n", status); for (;;) { taskDelay( 100); printf ("Interrupt count = %d\n", icount); } } static void my_int_handler( int val ) { icount++; } ============================ John H. Zouck The Johns Hopkins University Applied Physics Laboratory ============================ --------------------------- Newsgroups: comp.os.vxworks Subject: FIOFSTATGET Date: Wed, 17 Dec 1997 10:00:49 -0800 From: Phil Staub Organization: Audio Precision, Inc. Message-ID: <34981351.3C3D@ap.com> Reply-To: phils@ap.com In the process of developing a device driver to provide input to a flex/bison parser, I encountered an ioctl call that getc() --------------------------- Newsgroups: comp.os.vxworks Subject: What is breakpoint -9? Date: Wed, 17 Dec 1997 10:29:43 -0800 From: Phil Staub Organization: Audio Precision, Inc. Message-ID: <349818B4.4FBC@ap.com> Reply-To: phils@ap.com In using Tornado 1.0.1 with a custom BSP for x86, I have encountered a situation in single stepping that I'd appreciate some clarification on. When attached to a task, and single-stepping, I get the following warning with every step: Disabling unsettable breakpoints: - -9 warning: Error setting breakpoint: WTX Error 0x100ca (AGENT_MEM_ACCESS_ERROR) Cannot insert breakpoint -9: The single step seems to work just fine. I see what I *think* this is telling me (that it's trying to put a breakpoint in ROM), but I don't know what breakpoint -9 is, nor why it is occurring on each step, even though it says it is disabling the breakpoint. Is this some sort of internal breakpoint or something? Thanks, Phil --------------------------- End of New-News digest ********************** From enrico.ferro@elsag.it Mon Dec 22 07:57:14 1997 From: Enrico Ferro Date: Mon Dec 22 07:57:18 PST 1997 Subject: "Packed" structures Hi guys, I have a little perplexity about the option "packed" to be associated to a structure. I have always used the following: packed struct myStruct { char a; char b; int c; }; Now, from the GNU toolkit manual I seem to understand that the "packed" directive must be repeated for each entry of the structure like: struct myStruct { char a __attribute__((packed)); char b __attribute__((packed)); int c; }; Am I correct on my assumption? Or there is a better way I have not figured out? I thank in advance whoever may want to clarify this issue to me. Enrico Ferro Elsag Bailey Hartmann & Braun S.p.A. Via Hermada 6, 16154 Genova - Italy Tel. 0039-10-6586222 --- Fax. 0039-10-6586210 Home 0039-10-6517797 Work E-mail Enrico.Ferro@elsag.it Backup work e-mail address Enrico.Ferro@usa.net Home e-mail cluinfo@clu.assicomitalia.it From wbrown@csg.lbl.gov Mon Dec 22 09:42:20 1997 From: wbrown@csg.lbl.gov (Bill Brown) Date: Mon Dec 22 09:42:23 PST 1997 Subject: Administrivia - No support between 12/23/97 and 12/2/98 LBNL (which hosts this mailing list) will be closed down from December 23 until January 2. What this means is that admin requests will pile up in the mailbox until the second of January. AFAIK, there are no planned power outages or network interuptions so the list should be running on auto-pilot, so to speak. It's likely that one or two of us may have the opportunity to log in from home and check for problems, but there's no guarantees that this will happen. Best wishes to all for a joyful holiday season! -bill Duty "Keeper of the List" From kyp@tailyn.com.tw Tue Dec 23 00:38:25 1997 From: "kyp" Date: Tue Dec 23 00:38:30 PST 1997 Subject: Re : Alon for IEEE format >Kyp, > >I have an old version. It has not worked on my ICE debugger, though. >Try it if you wish, and tell me If it worked. It is UNIX based. > >Alon Hi Alon , Thank for your replay. Please send the file to my e-main "kyp@tailyn.com.tw". --Kyp From phil.quiney@gecm.com Tue Dec 23 01:57:50 1997 From: Philip Quiney Date: Tue Dec 23 01:57:53 PST 1997 Subject: Re: Minimal VxWorks size Hi there, > > Im sure that I should be able to do better > than that. My approach has been deleting > some of the #includes in configall.h and > config.h. Is there another/better way? > A better way of doing this is to leave the 'common' configAll.h file alone and put the changes in the BSP config.h file. Features you don't want you can #undef and any ones (eg POSIX timers) not normally included by default #included there. This works because config.h includes configAll.h itself so your changes to the standard set of features will be seen by the other BSP files. Also doing this allows you to have other BSP's with a more 'standard' set of features and have a seperate minimalist version for your deliverable system. FYI our 68k based VxWorks kernel yields the following size information text data bss dec hex filename 246384 6360 32804 285548 45b6c vxWorks This includes networking, debug etc but without floating point, shared memory networking or other ethernet (apart from the one we are using!!), rpc, symbol table.... here is the bit from our config.h....... /* Put in undefs for unwanted facilities for this target. This avoids altering * ../all/configAll.h which would affect other targets */ #undef INCLUDE_DOSFS /* dosFs file system */ #undef INCLUDE_ENP /* CMC Ethernet interface */ #undef INCLUDE_EX /* Excelan Ethernet interface */ #undef INCLUDE_ENV_VARS /* unix compatible environment variables */ #undef INCLUDE_FTP_SERVER /* ftp server */ /* #undef INCLUDE_GCC_FP */ /* gcc floating point support libraries */ /* #undef INCLUDE_LOGGING */ /* logTask logging facility */ /* #undef INCLUDE_NET_SHOW */ /* network info and status facilities */ #undef INCLUDE_PROXY_CLIENT /* proxy arp client (Slave Board) */ #undef INCLUDE_PIPES /* pipe driver */ #undef INCLUDE_RAMDRV /* ram disk driver */ #undef INCLUDE_RAWFS /* rawFs file system */ #undef INCLUDE_SM_NET /* backplane net interface */ #undef INCLUDE_TIMEX /* timexLib for exec timing */ #undef INCLUDE_MC68881 /* MC68881/2 (68040) floating pt coprocessor */ #undef INCLUDE_HW_FP /* potential hardware fp support */ #undef INCLUDE_RPC /* rpc package */ #undef INCLUDE_RT11FS /* rt11Fs file system */ #undef INCLUDE_TFTP_CLIENT /* tftp client */ #undef INCLUDE_CACHE_SUPPORT #undef INCLUDE_I_CACHE_MODE #undef INCLUDE_D_CACHE_MODE #undef INCLUDE_I_CACHE_ENABLE #undef INCLUDE_D_CACHE_ENABLE #undef INCLUDE_B_CACHE_ENABLE #undef INCLUDE_SM_SEQ_ADDR #undef INCLUDE_MMU_FULL #undef INCLUDE_MMU_BASIC #undef INCLUDE_NET_SYM_TBL /* Put in 'show' routines for testing (Hack 2-05-97) */ #define INCLUDE_SHOW_ROUTINES Hope this helps... Regards Phil Q =============================================================================== Phil Quiney _/_/_/_/ _/ _/_/_/_/ email : phil.quiney@gecm.com GEC Marconi _/ _/ _/ _/ _/ tel : +44 1245 353221x3914 Communications Ltd _/_/_/_/ _/ _/ _/ _/_/ fax : +44 1245 275448 Chelmsford _/ _/_/_/_/ _/_/_/_/ England CM1 1PL _/ =============================================================================== From daemon@csg.lbl.gov Tue Dec 23 04:00:40 1997 From: daemon@csg.lbl.gov Date: Tue Dec 23 04:00:45 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Dec 23 04:00:37 PST 1997 Subject: Looking for equivalence of "rsh" Subject: Re: Ada vs C++/C ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Looking for equivalence of "rsh" Date: 17 Dec 1997 20:38:01 GMT From: "Raymond K.S. Yeung" Organization: AdiCom Wireless Message-ID: <01bd0b2c$03d81000$df60a9ce@host.hooked.net> I've a workstation (Windows 95 or NT environment) connected to a vxWorks target. What is the simplest way to leverage the wealth of commands (e.g. reboot, rename, ls etc) already available on the target? A very straight-forward way is to have SNMP transport a command across the connection, have SNMP agent to interpret it and translate it into vxWorks system call. But then I thought if there's equivalence of "rsh", we can eliminate the work on SNMP agent side. Would "rpc" be something worth looking into? Any ideas? Thanks, Raymond --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ada vs C++/C Date: Fri, 19 Dec 1997 09:05:45 -0500 From: "Robert L. Spooner" Organization: Applied Research Laboratory Message-ID: <349A7F39.9D6B1522@psu.edu> References: <67c794$ao5@overload.lbl.gov> Reply-To: rls19@psu.edu We use Ada 83, soon will be using Ada 95. We do this by choice, not because we are required to by our sponsors. Regards, Bob Richard W Mattox wrote: > Hello Fellow VxWorkers, > > I am taking an informal poll of the embedded software community that uses > VxWorks as its RTOS. I want to know what language or languages you are > programming in; C, C++, Ada 83, Ada 95, etc. Also, I would appreciate > someone's response from Boeing since my program office is convinced that all of > Boeing's software is written in Ada. Also, does anyone have any life cycle cost > analysis data comparing Ada 95 to C++. I realize this would just be an estimate > by analogy because there are no metrics data for Ada 95. Thanks for your input. > > Rick Mattox > 410.682.2315 > richard.w.mattox@lmco.com - -- Robert L. Spooner Registered Professional Engineer Research Assistant Intelligent Control Systems Group Applied Research Laboratory Phone: (814) 863-4120 The Pennsylvania State University FAX: (814) 863-7843 P. O. Box 30 State College, PA 16804-0030 RLS19@psu.edu --------------------------- End of New-News digest ********************** From mabrouk@nortel.ca Tue Dec 23 05:50:55 1997 From: "Mabrouk Aboughanaima" Date: Tue Dec 23 05:50:59 PST 1997 Subject: Compiling vxWorks with gdwarf option Hi All, I'm developing a C++ application using vxWorks 5.3.1 for a PowerPC860 platform. I need to comiple with -gdwarf options so I can use debug it with SingleStep emulator but the GNU compiler that comes with vxWorks does not suppoert this option for C++. Does anyone know or did have this problem and how they fixed it. I heard that DIAB compiler supports -gwarf option for C++ does anyone know how to comiple vxWorks with the DIAB comipler? Any help will be greatly apprecaited. Please e_mail or call me. Thanks a million. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Mabrouk Aboughanaima + Tel: (613) 763-6000 + + CDMA Radio Software + ESN: 393-6000 + + Nortel Wireless Networks + FAX: (613) 763-2686 + + P.O. Box 3511, Station 'C' + Internet: mabrouk@nortel.ca + + Ottawa K1Y 4H7 Canada + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From J.Hayden@Dialogic.com Tue Dec 23 07:40:24 1997 From: "Hayden, John" Date: Tue Dec 23 07:40:28 PST 1997 Subject: IP type of service Hi, I would like to change the precedence bits in the Type of Service field of the IP header of outbound datagrams for an individual socket. Does anyone know of and API to control the generation of these bits on outbound IP datagrams ? Is there an ioctl parameter that will allow me to set/clear these bits? Thanks in advance, John From ktsubota@keck.hawaii.edu Tue Dec 23 17:54:01 1997 From: ktsubota@keck.hawaii.edu (Kevin Tsubota) Date: Tue Dec 23 17:54:08 PST 1997 Subject: trying to add 64M offboard memory to system pool ---------- X-Sun-Data-Type: text X-Sun-Data-Description: text X-Sun-Data-Name: text X-Sun-Charset: us-ascii X-Sun-Content-Lines: 33 Configuration: frc40 16M cpu micro memory MM6260AD 64M memory card vxWorks 5.1.1 and vxWorks 5.3.1 We have a frc40 16M CPU card running vxWorks and needed more memory so we purchased a 64M memory card from micro memory. I've been able to read and write practically all 64M on the card, both as longs and doubles. However when I attempt to do a vxWorks ld command from the target shell I always get an error. I've had this error in vxWorks 5.1.1 and I've just upgraded to vxWorks 5.3.1 with the same results. I've tried it in the windsh and it loads but I get other errors. I would prefer to run it from the target shell as the startup script. I've been fighting this for some time now with help from vxWorks but I'm still at square one. Has anyone else done anything similiar? I've attached the output from vxWorks 5.3.1 target shell as well as my configAll.h and sysLib.c files. I'm using bfill to set the parity bit and memAddToPool and want to freely use the offboard memory without specifically addressing it. Thank You. Kevin Tsubota W.M. Keck Observatory (808)885-778 ktsubota@keck.hawaii.edu ---------- X-Sun-Data-Type: h-file X-Sun-Data-Description: h-file X-Sun-Data-Name: configAll.h X-Sun-Charset: us-ascii X-Sun-Content-Lines: 885 /* configAll.h - default configuration header */ /* Copyright 1984-1996 Wind River Systems, Inc. */ /* modification history -------------------- 06u.04feb96,ms added WDB support for NetROM 500 series. 06t,03dec96,dbt removed #ifdef INCLUDE_ANSI_ALL and #ifdef INCLUDE_MIB2_ALL (moved in usrDepend.c). 06s,15nov96,jag changed string associated with MIB2_SYS_DESCR (SPR# 7476) 06r,04oct96,elp added INCLUDE_SYM_TBL_SYNC (SPR# 6775). 06q,09aug96,dbt Moved the ifdef INCLUDE_POSIX_ALL to usrDepend.c (SPR #5524). 06p,29jul96,ms reworked the fix for SPR #5603. 06o,24jul96,ism hand-merged SIMSOLARIS. 06n,19jul96,dbt Moved the ifdef INCLUDE_CONFIGURATION_5_2 to usrDepend.c (SPR #5603). 06m,11jul96,jmb Eliminated alternative WDB macros names. SPR #5707 06l,21jun96,jmb long modhist -- deleted entries prior to 1994. SPR #6528 06k,20jun96,tpr added PowerPC 860 support. 06j,18jun96,dbt removed line INCLUDE_ADA (spr 6645) 06i,10jun96,tam changed STACK_RESIDENT to RAM_DST_ADRS for PPC 06j,16oct96.rjc deleted snmp memory partition defines 06j,12aug96.rjc changes for snmpdMemoryAlloc changes 06i,22apr96,kkk fixed typo on CPU_FAMILY for PPC (SPR# 6385) 06h,04apr96,rjc Modifications for snmp v1 agent for 5.3 06g,07mar96,dat WDB comm config can be specified on make command line 06f,05mar96,tpr Added RESERVED for PowerPC. 06e,04dec95,vin increased EVT_STACK_SIZE to 7000. 06d,06sep95,jag deleted unnecessary STREAMS defines. 06c,01aug95,dzb renamed STREAMS macros. Added STREAMS_PROTO_INIT_RTN macro. 06b,28jul95,jag Changed INCLUDE_STREAMS_LOG to INCLUDE_STREAMS_STRACE and INCLUDE_STREAMS_STERR. Changed STREAMS_LOG_CONFIG_DIR to STREAMS_STRERR_OUTPUT_DIR and STREAMS_STRACE_OUTPUT_DIR 06a,26jul95,dzb adjusted default socket macro for STREAMS. 05z,25jul95,dzb added INCLUDE_BSD_SOCKET and DEFAULT_XXX_SOCKET. 05y,18jul95,dzb added PPP_CONNECT_DELAY. 05x,11jul95,dzb modified INCLUDE_PPP inclusion. 05w,26jun95,dzb removed PPP_OPT_USEHOSTNAME option. 05v,22jun95,sgv Added STREAMS support 05u,21jun95,dzb Added INCLUDE_PPP_CRYPT for unbundled crypt() support. 05t,20jun95,dzb added PPP support. 06e,23sep95,tpr changed VM_PAGE_SIZE for PPC family. 06d,19jun95,caf additional PPC support. 06e,11oct95,ms made 5.2 configuration easier to recreate (SPR #5134). 06d,10oct95,dat backward compatible BSP_VERSION and BSP_REV 06c,28sep95,dat new #define INCLUDE_WDB_ANNOUNCE 06b,21sep95,ms switched some WDB macros between here and usrWdb.c 06a,27jun95,ms renamed WDB_COMM_XXX macros 05z,21jun95,ms added INCLUDE_WDB_TTY_TEST and INCLUDE_WDB_EXIT_NOTIFY 05y,21jun95,tpr added #define INCLUDE_WDB_MEM. 05x,13jun95,srh Updated C++ support triggers. 05w,07jun95,ms WDB_STACK_SIZE is now CPU dependant. 05v,07jun95,p_m added INCLUDE_FORMATTED_IO. suppressed spy from default configuration. 05u,01jun95,ms all WDB macros start with WDB_ (usrWdb.c modhist has details). 05t,22may95,ms added WDB agent support. + p_m suppressed shell, symbol table and debug support from default configuration. 05s,29mar95,kdl added INCLUDE_GCC_FP. 05r,28mar95,kkk added scalability MACROS, changed edata and end to arrays (SPR #3917), added misc constants SM_PKTS_SIZE and SM_CPUS_MAX (SPR #4130), added misc constant CONSOLE_BAUD_RATE 05q,24mar95,tpr added #define USER_B_CACHE_ENABLE (SPR #4168). 05p,14mar95,caf restored mips resident rom support (SPR #3856). 05o,18jan95,tmk Added MC68060 case for HW_FP 06c,25may95,yao changed to use _end for FREE_MEM_ADRS for PowerPC. 06b,12jan95,caf added PPC floating point support. 06a,09jan95,yao added PPC support. 05n,10dec94,kdl Moved INCLUDE_POSIX_ALL to unincluded (SPR 3822). 05m,10dec94,caf undid mod 05a, use _sdata for resident roms (SPR #3856). 05l,09dec94,jag Added INCLUDE_MIB2_AT. 05k,17nov94,kdl Added INCLUDE_NFS_SERVER (excluded); removed TRON references. 05j,13nov94,dzb Moved INCLUDE_PING to excluded. 05i,11nov94,dzb Added ZBUF_SOCK, TCP_DEBUG, and PING defines. 05h,11nov94,jag cleanup of SNMP and MIB defines. 05g,04nov94,kdl initial merge cleanup. 05b,16jun94,caf defined INCLUDE_ELF for MIPS, updated copyright notice. 04x,20jul94,ms changed INCLUDE_HPPA_OUT to INCLUDE_SOM_COFF 05d,11apr94,jag Removed conditions for definition of NFS_GROUP and NFS_USER ID for SNMP demo support. 05c,18feb94,elh (SNMP VERSION) moved INCLUDE_POSIX_ALL to false section. Added support for the mib2 library. 05f,25may94,kdl (POSIX VERSION) removed erroneous NFS def's. 05e,23mar94,smb (POSIX VERSION) removed PASSIVE_MODE 05d,15mar94,smb renamed tEvtTask parameters. 05c,15feb94,smb added define of WV_MODE 05b,12jan94,kdl (POSIX VERSION) turned off instrumentation, added INCLUDE_POSIX_ALL; added INCLUDE_POSIX_SIGNALS; changed INCLUDE_POSIX_MEM_MAN to INCLUDE_POSIX_MEM; added NUM_SIGNAL_QUEUES. */ /* DESCRIPTION This header contains the parameters that define the default configuration for VxWorks. */ #ifndef INCconfigAllh #define INCconfigAllh #include "smLib.h" #include "vme.h" #include "iv.h" /******************************************************************************/ /* */ /* INCLUDED SOFTWARE FACILITIES */ /* */ /******************************************************************************/ #define INCLUDE_BOOTP /* bootp */ #define INCLUDE_BSD_SOCKET /* include the BSD socket library */ #define INCLUDE_CACHE_SUPPORT /* include cache support package */ #define INCLUDE_CONSTANT_RDY_Q /* constant insert time ready queue */ #define INCLUDE_ENV_VARS /* unix compatable environment variables */ #define INCLUDE_EXC_HANDLING /* include basic exception handling */ #define INCLUDE_EXC_TASK /* miscelaneous support task */ #define INCLUDE_FLOATING_POINT /* floating point I/O */ #define INCLUDE_FORMATTED_IO /* formatted I/O */ #define INCLUDE_FTP_SERVER /* ftp server */ #define INCLUDE_GCC_FP /* gcc floating point support libraries */ #define INCLUDE_IO_SYSTEM /* include I/O system */ #define INCLUDE_LOGGING /* logTask logging facility */ #define INCLUDE_MEM_MGR_FULL /* full featured memory manager */ #define INCLUDE_MSG_Q /* include message queues */ #define INCLUDE_NETWORK /* network subsystem code */ #define INCLUDE_NET_INIT /* network subsystem initialization */ #define INCLUDE_NET_SHOW /* network info and status facilities */ #define INCLUDE_PROXY_CLIENT /* proxy arp client (Slave Board) */ #define INCLUDE_PIPES /* pipe driver */ #define INCLUDE_SELECT /* select() facility */ #define INCLUDE_SEM_BINARY /* include binary semaphores */ #define INCLUDE_SEM_MUTEX /* include mutex semaphores */ #define INCLUDE_SEM_COUNTING /* include counting semaphores */ #define INCLUDE_SIGNALS /* software signal library */ #define INCLUDE_STDIO /* standard I/O */ #define INCLUDE_TASK_HOOKS /* include kernel callouts */ #define INCLUDE_TASK_VARS /* task variable package */ #define INCLUDE_TFTP_CLIENT /* tftp client */ #define INCLUDE_TIMEX /* timexLib for exec timing */ #define INCLUDE_TTY_DEV /* attach serial drivers */ #define INCLUDE_WATCHDOGS /* include watchdogs */ #define INCLUDE_WDB /* WDB debug agent */ #define INCLUDE_ANSI_ALL /* includes complete ANSI C library functions */ #define INCLUDE_ANSI_ASSERT /* ANSI-C assert library functionality */ #define INCLUDE_ANSI_CTYPE /* ANSI-C ctype library functionality */ #define INCLUDE_ANSI_LOCALE /* ANSI-C locale library functionality */ #define INCLUDE_ANSI_MATH /* ANSI-C math library functionality */ #define INCLUDE_ANSI_STDIO /* ANSI-C stdio library functionality */ #define INCLUDE_ANSI_STDLIB /* ANSI-C stdlib library functionality */ #define INCLUDE_ANSI_STRING /* ANSI-C string library functionality */ #define INCLUDE_ANSI_TIME /* ANSI-C time library functionality */ /******************************************************************************/ /* */ /* KECK CUSTOMIZATION */ /* */ /******************************************************************************/ /* EPICS requires both the symbol table, loader, and shell within VxWorks */ #define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */ /* allow NFS facilities */ #define INCLUDE_NFS /* nfs package */ #define INCLUDE_NFS_SERVER /* nfs server */ #define INCLUDE_NFS_MOUNT_ALL /* automatically mount all NFS file systems */ #define INCLUDE_RDB /* remote debugging package */ #define INCLUDE_RPC /* rpc package */ /* allow target shell interaction (ie. console port) */ #define INCLUDE_SHELL /* interactive c-expression interpreter */ #define INCLUDE_SYM_TBL /* symbol table package */ #define INCLUDE_SYM_TBL_SYNC /* synchronize host and target symbol tables */ #define INCLUDE_NET_SYM_TBL /* load symbol table from network */ #define INCLUDE_STAT_SYM_TBL /* create user-readable error status */ #define INCLUDE_LOADER /* object module loading */ #define INCLUDE_UNLOADER /* object module unloading */ /* allow execution of startup script on boot */ #define INCLUDE_STARTUP_SCRIPT /* execute start-up script */ /* allow remote access to target shell */ #define INCLUDE_RLOGIN /* remote login */ #define INCLUDE_TELNET /* telnet-style remote login */ /* misc routines */ #define INCLUDE_SECURITY /* shell security for network access */ #define INCLUDE_SHOW_ROUTINES /* show routines for system facilities*/ #define INCLUDE_SPY /* spyLib for task monitoring */ /* CPU-SPECIFIC INCLUDED SOFTWARE FACILITIES */ /* include support for possibly existing floating point coprocessor */ #if (CPU==MC68020 || CPU==MC68040 || CPU==MC68060 || CPU==CPU32) #define INCLUDE_MC68881 /* MC68881/2 (68040) floating pt coprocessor */ #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* CPU==MC68020 || CPU==MC68040 || CPU==MC68060 || CPU==CPU32 */ #if (CPU_FAMILY == SPARC) && defined(INCLUDE_FLOATING_POINT) #define INCLUDE_SPARC_FPU /* SPARC Floating-Point Unit */ #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* CPU_FAMILY == SPARC */ #if (CPU_FAMILY==MIPS) #define INCLUDE_R3010 /* R3010 float point co-processor */ #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* CPU_FAMILY==MIPS */ #if ((CPU_FAMILY==PPC) && (CPU!=PPC403) && (CPU!=PPC860)) #define INCLUDE_PPC_FPU /* PowerPC floating point unit */ #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* (CPU_FAMILY==PPC) && (CPU!=PPC403) */ #if (CPU==I960KB) #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* I960KB */ #if (CPU_FAMILY==I80X86) #define INCLUDE_I80387 /* I80387 float point co-processor */ #define INCLUDE_HW_FP /* potential hardware fp support */ #endif /* CPU_FAMILY==I80X86 */ /* define appropriate object module format for a given architecture */ #if ((CPU_FAMILY==MIPS) || (CPU_FAMILY==PPC) || (CPU_FAMILY==SIMSPARCSOLARIS)) #define INCLUDE_ELF /* ELF object modules */ #else #if ((CPU_FAMILY==I960) || (CPU_FAMILY==AM29XXX)) #define INCLUDE_COFF /* COFF object modules */ #else #if (CPU_FAMILY==SIMHPPA) #define INCLUDE_SOM_COFF #else /* default */ #define INCLUDE_AOUT /* a.out object modules */ #endif #endif #endif /* INCLUDED HARDWARE SUPPORT */ #if CPU_FAMILY==MIPS #define INCLUDE_EGL /* include Interphase Ethernet interface */ #else #define INCLUDE_EX /* include Excelan Ethernet interface */ #endif /* CPU_FAMILY==MIPS */ #define INCLUDE_ENP /* include CMC Ethernet interface*/ #define INCLUDE_SM_NET /* include backplane net interface */ #define INCLUDE_SM_SEQ_ADDR /* shared memory network auto address setup */ /******************************************************************************/ /* */ /* EXCLUDED FACILITIES */ /* */ /******************************************************************************/ #if FALSE #define INCLUDE_CPLUS /* include C++ support */ #define INCLUDE_CPLUS_MIN /* include minimal C++ support */ #define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */ #define INCLUDE_CPLUS_VXW /* include VxWorks wrapper classes */ #define INCLUDE_CPLUS_TOOLS /* include Tools class library */ #define INCLUDE_CPLUS_HEAP /* include Heap class library */ #define INCLUDE_CPLUS_BOOCH /* include Booch Components library */ #define INCLUDE_DEBUG /* pre-tornado debugging */ #define INCLUDE_DEMO /* include simple demo instead of shell */ #define INCLUDE_DOSFS /* dosFs file system */ #define INCLUDE_INSTRUMENTATION /* windView instrumentation */ #define INCLUDE_MIB2_ALL /* All of MIB 2 */ #define INCLUDE_MIB2_SYSTEM /* the system group */ #define INCLUDE_MIB2_TCP /* the TCP group */ #define INCLUDE_MIB2_ICMP /* the ICMP group */ #define INCLUDE_MIB2_UDP /* the UDP group */ #define INCLUDE_MIB2_IF /* the interfaces group */ #define INCLUDE_MIB2_AT /* the AT group */ #define INCLUDE_MIB2_IP /* the IP group */ /* INCLUDE_MMU_BASIC is defined by many bsp's in config.h. If INCLUDE_MMU_FULL * is defined in configAll.h and INCLUDE_MMU_BASIC is defined in config.h, * then INCLUDE_MMU_FULL will take precedence. */ #define INCLUDE_MMU_BASIC /* bundled mmu support */ #define INCLUDE_MMU_FULL /* unbundled mmu support */ #define INCLUDE_PING /* ping() utility */ #define INCLUDE_POSIX_AIO /* POSIX async I/O support */ #define INCLUDE_POSIX_AIO_SYSDRV/* POSIX async I/O system driver */ #define INCLUDE_POSIX_ALL /* include all available POSIX functions */ #define INCLUDE_POSIX_FTRUNC /* POSIX ftruncate routine */ #define INCLUDE_POSIX_MEM /* POSIX memory locking */ #define INCLUDE_POSIX_MQ /* POSIX message queue support */ #define INCLUDE_POSIX_SCHED /* POSIX scheduling */ #define INCLUDE_POSIX_SEM /* POSIX semaphores */ #define INCLUDE_POSIX_SIGNALS /* POSIX queued signals */ #define INCLUDE_POSIX_TIMERS /* POSIX timers */ #define INCLUDE_PPP /* include Point-to-Point Procotol */ #define INCLUDE_PROTECT_TEXT /* text segment write protection (unbundled) */ #define INCLUDE_PROTECT_VEC_TABLE /* vector table write protection (unbundled)*/ #define INCLUDE_PROXY_DEFAULT_ADDR /* Use ethernet addr to generate bp addrs */ #define INCLUDE_PROXY_SERVER /* proxy arp server (Master Board) */ #define INCLUDE_RAMDRV /* ram disk driver */ #define INCLUDE_RAWFS /* rawFs file system */ #define INCLUDE_RT11FS /* rt11Fs file system */ #define INCLUDE_SLIP /* include serial line interface */ #define INCLUDE_SM_OBJ /* shared memory objects (unbundled) */ #define INCLUDE_SNMPD /* SNMP Agent */ #define INCLUDE_STANDALONE_SYM_TBL /* compiled-in symbol table */ #define INCLUDE_SW_FP /* software floating point emulation */ #define INCLUDE_TCP_DEBUG /* TCP debug facility */ #define INCLUDE_TFTP_SERVER /* tftp server */ #define INCLUDE_WINDVIEW /* WindView command server */ #define INCLUDE_ZBUF_SOCK /* zbuf socket interface */ #define INCLUDE_LN /* include AMD LANCE interface */ #define INCLUDE_LNSGI /* include AMD LANCE interface for SGI VIP10 */ #define INCLUDE_MED /* include Matrix network interface*/ #define INCLUDE_NIC /* include National NIC interface */ #define INCLUDE_ANSI_5_0 /* include only version 5.0 ANSI support */ #define INCLUDE_BP_5_0 /* version 5.0 backplane driver */ #define INCLUDE_DELETE_5_0 /* define delete() function as in VxWorks 5.0 */ #define INCLUDE_STREAMS_ALL /* Complete Streams subsystem */ #define INCLUDE_STREAMS /* CORE Streams (stream head) */ #define INCLUDE_STREAMS_SOCKET /* Streams Socket layer and socket library */ #define INCLUDE_STREAMS_TLI /* Streams TLI layer and TLI library */ #define INCLUDE_STREAMS_AUTOPUSH /* SVR4 autopush mechanism */ #define INCLUDE_STREAMS_DLPI /* Streams DLPI to mbuf compatible driver */ #define INCLUDE_STREAMS_DEBUG /* Streams Debugging facility */ #define INCLUDE_STREAMS_STRACE /* Streams trace utility */ #define INCLUDE_STREAMS_STRERR /* Streams error log utility */ #define DEFAULT_STREAMS_SOCKET /* default to Streams socket for AF_INET */ #endif /* FALSE */ /******************************************************************************/ /* */ /* KERNEL SOFTWARE CONFIGURATION */ /* */ /******************************************************************************/ #define USER_I_CACHE_MODE CACHE_WRITETHROUGH /* default mode */ #define USER_D_CACHE_MODE CACHE_WRITETHROUGH /* default mode */ #define USER_I_CACHE_ENABLE /* undef to leave disabled*/ #define USER_D_CACHE_ENABLE /* undef to leave disabled*/ #define USER_B_CACHE_ENABLE /* undef to leave disabled*/ #define USER_I_MMU_ENABLE /* undef to leave disabled*/ #define USER_D_MMU_ENABLE /* undef to leave disabled*/ #define SYM_TBL_HASH_SIZE_LOG2 8 /* 256 entry hash table symbol table */ #define STAT_TBL_HASH_SIZE_LOG2 6 /* 64 entry hash table for status */ #define MQ_HASH_SIZE 0 /* POSIX message queue hash table size * 0 = default */ #define NUM_SIGNAL_QUEUES 16 /* POSIX queued signal count */ #define FREE_RAM_ADRS (end) /* start right after bss of VxWorks */ /* I/O system parameters */ #define NUM_DRIVERS 20 /* max 20 drivers in drvTable */ #define NUM_FILES 50 /* max 50 files open simultaneously */ #define NUM_DOSFS_FILES 20 /* max 20 dosFs files open */ #define NUM_RAWFS_FILES 5 /* max 5 rawFs files open */ #define NUM_RT11FS_FILES 5 /* max 5 rt11Fs files open */ #define MAX_LOG_MSGS 50 /* max 50 log msgs */ #define NUM_TTY 2 /* number of tty channels */ #define CONSOLE_TTY 0 /* console channel */ #define CONSOLE_BAUD_RATE 9600 /* console baud rate */ #ifdef INCLUDE_SLIP #define SLIP_TTY 1 /* serial line IP channel */ #endif /* INCLUDE_SLIP */ #define MAX_LIO_CALLS 0 /* max outstanding lio calls 0=default */ #define MAX_AIO_SYS_TASKS 0 /* max aio system tasks, 0 = default */ #define AIO_TASK_PRIORITY 0 /* aio system tasks prior, 0 = default */ #define AIO_TASK_STACK_SIZE 0 /* aio tasks stack size, 0 = default */ /* kernel and system task parameters by architecture */ #if CPU_FAMILY==MC680X0 #define INT_LOCK_LEVEL 0x7 /* 68k interrupt disable mask */ #define ROOT_STACK_SIZE 10000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 10000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x1000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 1000 /* size of ISR stack, in bytes */ #define TRAP_DEBUG 2 /* trap 2 - breakpoint trap */ #define VEC_BASE_ADRS ((char *) LOCAL_MEM_LOCAL_ADRS) #endif /* CPU_FAMILY==MC680X0 */ #if CPU_FAMILY==SPARC #define INT_LOCK_LEVEL 15 /* SPARC interrupt disable level */ #define ROOT_STACK_SIZE 10000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 50000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x2000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 10000 /* size of ISR stack, in bytes */ #define VEC_BASE (LOCAL_MEM_LOCAL_ADRS + 0x1000) #define VEC_BASE_ADRS ((char *) VEC_BASE) #endif /* CPU_FAMILY==SPARC */ #if CPU_FAMILY==SIMSPARCSUNOS || CPU_FAMILY==SIMHPPA || CPU_FAMILY==SIMSPARCSOLARIS #define INT_LOCK_LEVEL 0x1 /* interrupt disable mask */ #define ROOT_STACK_SIZE 20000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 50000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x2000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 50000 /* size of ISR stack, in bytes */ #define VEC_BASE_ADRS 0 /* dummy */ #endif /* CPU_FAMILY==SIMSPARCSUNOS || CPU_FAMILY==SIMHPPA || CPU_FAMILY==SIMSPARCSOLARIS */ #if CPU_FAMILY==I960 #define INT_LOCK_LEVEL 0x1f /* i960 interrupt disable mask */ #define ROOT_STACK_SIZE 20000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 40000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x2000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 1000 /* size of ISR stack, in bytes */ #define TRAP_DEBUG 0 /* n/a for the 80960 */ #define VEC_BASE_ADRS NONE /* base register not reconfigurable */ #endif /* CPU_FAMILY==I960 */ #if CPU_FAMILY==MIPS #define INT_LOCK_LEVEL 0x1 /* R3K interrupt disable mask */ #define ROOT_STACK_SIZE (20000) /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE (20000) /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE (0x2000)/* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE (5000) /* size of ISR stack, in bytes */ #define VEC_BASE_ADRS ((char *) 0x0) /* meaningless in R3k land */ #define VME_VECTORED FALSE /* use vectored VME interrupts */ #define TRAP_DEBUG 0 /* trap 0 - breakpoint trap */ #endif /* CPU_FAMILY==MIPS */ #if CPU_FAMILY==PPC #define INT_LOCK_LEVEL 0x0 /* not used */ #define ROOT_STACK_SIZE (20000) /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE (20000) /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x2000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE (5000) /* size of ISR stack, in bytes */ #define VEC_BASE_ADRS ((char *) 0x0) #endif /* CPU_FAMILY==PPC */ #if CPU_FAMILY==I80X86 #define INT_LOCK_LEVEL 0x0 /* 80x86 interrupt disable mask */ #define ROOT_STACK_SIZE 10000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 10000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x1000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 1000 /* size of ISR stack, in bytes */ #define TRAP_DEBUG 0 /* not used */ #define VEC_BASE_ADRS ((char *) LOCAL_MEM_LOCAL_ADRS) #endif /* CPU_FAMILY==I80X86 */ #if CPU_FAMILY==AM29XXX #define INT_LOCK_LEVEL 0x0001 /* 29k all interrupts disable mask */ #define ROOT_STACK_SIZE 10000 /* size of root's stack, in bytes */ #define SHELL_STACK_SIZE 40000 /* size of shell's stack, in bytes */ #define WDB_STACK_SIZE 0x2000 /* size of WDB agents stack, in bytes */ #define ISR_STACK_SIZE 10000 /* size of ISR stack, in bytes */ #define TRAP_DEBUG 15 /* trap 2 - breakpoint trap */ #define VEC_BASE_ADRS ((char *) LOCAL_MEM_LOCAL_ADRS) #endif /* CPU_FAMILY==AM29XXX */ /* WDB debug agent configuration */ #ifdef INCLUDE_WDB /* optional agent facilities */ #define INCLUDE_WDB_BANNER /* print banner after agent starts */ #define INCLUDE_WDB_VIO /* virtual I/O support */ #define INCLUDE_WDB_TTY_TEST /* test serial line communcation */ /* core agent facilities - do not remove */ #define INCLUDE_WDB_CTXT /* context control */ #define INCLUDE_WDB_FUNC_CALL /* spawn function as separate task */ #define INCLUDE_WDB_DIRECT_CALL /* call function in agents context */ #define INCLUDE_WDB_EVENTS /* host async event notification */ #define INCLUDE_WDB_GOPHER /* gopher info gathering */ #define INCLUDE_WDB_BP /* breakpoint support */ #define INCLUDE_WDB_EXC_NOTIFY /* notify host of exceptions */ #define INCLUDE_WDB_EXIT_NOTIFY /* notify the host of task exit */ #define INCLUDE_WDB_MEM /* optional memory services */ #define INCLUDE_WDB_REG /* get/set hardware registers */ /* agent mode */ #define WDB_MODE WDB_MODE_DUAL /* WDB_MODE_[DUAL|TASK|EXTERN] */ /* agent communication paths */ #define WDB_COMM_NETWORK 0 /* vxWorks network - task mode */ #define WDB_COMM_SERIAL 1 /* raw serial - bimodal */ #define WDB_COMM_TYCODRV_5_2 2 /* older serial driver - task mode */ #define WDB_COMM_ULIP 3 /* vxSim packet device - bimodal */ #define WDB_COMM_NETROM 4 /* netrom packet device - bimodal */ #define WDB_COMM_CUSTOM 5 /* custom packet device - bimodal */ /* communication path configuration */ #ifndef WDB_COMM_TYPE #define WDB_COMM_TYPE WDB_COMM_NETWORK /* default path is the network */ #endif #ifndef WDB_TTY_CHANNEL #define WDB_TTY_CHANNEL 1 /* default Sio SERIAL channel */ #endif #ifndef WDB_TTY_DEV_NAME #define WDB_TTY_DEV_NAME "/tyCo/1" /* default TYCODRV_5_2 device name */ #endif #ifndef WDB_TTY_BAUD #define WDB_TTY_BAUD 9600 /* default baud rate */ #endif #ifndef WDB_ULIP_DEV #define WDB_ULIP_DEV "/dev/ulip14" /* default ULIP packet device */ #endif #define WDB_NETROM_TYPE 400 /* default is old 400 series */ #define WDB_NETROM_WIDTH 1 /* width of a ROM word. This macro * is not used for the 500 series. */ #define WDB_NETROM_INDEX 0 /* index into word of pod zero */ #define WDB_NETROM_NUM_ACCESS 1 /* of pod zero per byte read */ #define WDB_NETROM_ROMSIZE ROM_SIZE /* size of a single ROM. If your * board has N ROMs, this definition * must be divided by N to be right */ #define WDB_NETROM_POLL_DELAY 2 /* # clock ticks to poll for input */ /* miscelaneous agent constants */ #define WDB_MTU 1500 /* max RPC message size */ #define WDB_POOL_SIZE ((sysMemTop() - FREE_RAM_ADRS)/16) /* memory pool for host tools */ #define WDB_SPAWN_STACK_SIZE 0x5000 /* default stack size of spawned task */ #endif /* INCLUDE_WDB */ /* WindView event task and buffer parameters */ #define EVT_STACK_SIZE 7000 #define WV_EVT_STACK EVT_STACK_SIZE #define EVT_PRIORITY 0 #define WV_EVT_PRIORITY EVT_PRIORITY #define EVTBUFFER_SIZE 20000 #define EVTBUFFER_ADDRESS (char *)NULL /* WindView command server task parameters */ #define WV_SERVER_STACK 10000 #define WV_SERVER_PRIORITY 100 /* WindView event task */ /* WindView event collection mode * * The WindView collection mode can be one of the following, * CONTINUOUS_MODE - continuous collection and display of events * POST_MORTEM_MODE - collection of events only */ #define WV_MODE CONTINUOUS_MODE /******************************************************************************/ /* */ /* "GENERIC" BOARD CONFIGURATION */ /* */ /******************************************************************************/ /* device controller I/O addresses when included */ #define IO_ADRS_EI ((char *) 0x000fff00) /* 32A,32D i82596CA Ethernet */ #define IO_ADRS_EX ((char *) 0x00ff0000) /* 24A,32D Excelan Ethernet */ #define IO_ADRS_ENP ((char *) 0x00de0000) /* 24A,32D CMC Ethernet */ #define IO_ADRS_EGL ((char *) 0x00004000) /* 16A,16D Interphase Enet */ #define IO_AM_EX VME_AM_STD_SUP_DATA /* Excelan address modifier */ #define IO_AM_EX_MASTER VME_AM_STD_SUP_DATA /* Excellan AM for DMA access */ #define IO_AM_ENP VME_AM_STD_SUP_DATA /* CMC address modifier */ /* device controller interrupt vectors when included */ #define INT_VEC_ENP 192 /* CMC Ethernet controller*/ #define INT_VEC_EX 193 /* Excelan Ethernet controller*/ #define INT_VEC_EGL 200 /* Interphase Ethernet controller*/ /* device controller interrupt levels when included */ #define INT_LVL_EGL 5 /* Interphase Ethernet controller */ #define INT_LVL_EX 2 /* Excelan Ethernet controller */ #define INT_LVL_ENP 3 /* CMC Ethernet controller */ /******************************************************************************/ /* */ /* "MISCELLANEOUS" CONSTANTS */ /* */ /******************************************************************************/ /* shared memory objects parameters (unbundled) */ #define SM_OBJ_MAX_TASK 40 /* max # of tasks using smObj */ #define SM_OBJ_MAX_SEM 60 /* max # of shared semaphores */ #define SM_OBJ_MAX_MSG_Q 10 /* max # of shared message queues */ #define SM_OBJ_MAX_MEM_PART 4 /* max # of shared memory partitions */ #define SM_OBJ_MAX_NAME 100 /* max # of shared objects names */ #define SM_OBJ_MAX_TRIES 100 /* max # of tries to obtain lock */ /* shared memory network parameters - defaults to values DEFAULT_PKTS_SIZE * and DEFAULT_CPUS_MAX in smPktLib.h respectively */ #define SM_PKTS_SIZE 0 /* shared memory packet size */ #define SM_CPUS_MAX 0 /* max # of cpus for shared network */ /* low memory layout */ #if (CPU_FAMILY == I80X86) #define GDT_BASE_OFFSET 0x800 #define SM_ANCHOR_OFFSET 0x1100 #define BOOT_LINE_OFFSET 0x1200 #define EXC_MSG_OFFSET 0x1300 #elif (CPU_FAMILY == PPC) #define SM_ANCHOR_OFFSET 0x4100 #define BOOT_LINE_OFFSET 0x4200 #define EXC_MSG_OFFSET 0x4300 #else #define SM_ANCHOR_OFFSET 0x600 #define BOOT_LINE_OFFSET 0x700 #define EXC_MSG_OFFSET 0x800 #endif /* (CPU_FAMILY == I80X86) */ /* The backplane driver onboard anchor at the following address */ #define SM_ANCHOR_ADRS ((char *) (LOCAL_MEM_LOCAL_ADRS+SM_ANCHOR_OFFSET)) /* The bootroms put the boot line at the following address */ #define BOOT_LINE_ADRS ((char *) (LOCAL_MEM_LOCAL_ADRS+BOOT_LINE_OFFSET)) #define BOOT_LINE_SIZE 255 /* use 255 bytes for bootline */ /* The boot line is stored in non-volatile RAM at the following offset */ #define NV_BOOT_OFFSET 0 /* store the boot line at start of NVRAM */ /* Messages from exceptions during exceptions go at the following address */ #define EXC_MSG_ADRS ((char *) (LOCAL_MEM_LOCAL_ADRS+EXC_MSG_OFFSET)) /* Backplane H/W support */ #define SM_TAS_TYPE SM_TAS_HARD /* hardware supports test-and-set */ /* Resident ROMs constants */ #if (CPU_FAMILY==I960) #define STACK_SAVE 512 /* maximum stack used to preserve */ #else /* sparc or others */ #if ((CPU_FAMILY==SPARC) || (CPU_FAMILY==PPC)) #define STACK_SAVE 0x1000 #else /* all other architecutes */ #define STACK_SAVE 0x40 /* maximum stack used to preserve */ #endif /* mips cpp no elif */ #endif #if (CPU_FAMILY==SPARC) #define RESERVED 0x2000 /* vector table base plus table size */ #else /* 68000 or others */ #if (CPU==MC68000) #define RESERVED 0x400 /* avoid zeroing MC68302 vector table */ #else #if (CPU_FAMILY == PPC) #define RESERVED 0x4400 /* avoid zeroing EXC_MSG */ #else /* all other architectures */ #define RESERVED 0 #endif #endif /* mips cpp no elif */ #endif #if ((CPU_FAMILY == MIPS) || (CPU_FAMILY == PPC)) #define STACK_RESIDENT RAM_DST_ADRS #else #define STACK_RESIDENT _sdata #endif #if (_STACK_DIR == _STACK_GROWS_DOWN) #ifdef ROM_RESIDENT #define STACK_ADRS STACK_RESIDENT #else #define STACK_ADRS _romInit #endif /* ROM_RESIDENT */ #else /* _STACK_DIR == _STACK_GROWS_UP */ #ifdef ROM_RESIDENT #define STACK_ADRS (STACK_RESIDENT-STACK_SAVE) #else #define STACK_ADRS (_romInit-STACK_SAVE) #endif /* ROM_RESIDENT */ #endif /* _STACK_DIR == _STACK_GROWS_UP */ /* Default Boot Parameters */ #define HOST_NAME_DEFAULT "bootHost" /* host name */ #define TARGET_NAME_DEFAULT "vxTarget" /* target name (tn) */ #define HOST_USER_DEFAULT "target" /* user (u) */ #define HOST_PASSWORD_DEFAULT "" /* password */ #define SCRIPT_DEFAULT "" /* startup script (s) */ #define OTHER_DEFAULT "" /* other (o) */ /* Default NFS parameters - constants may be changed here, variables * may be changed in usrConfig.c at the point where NFS is included. */ #define NFS_USER_ID 2001 /* dummy nfs user id */ #define NFS_GROUP_ID 100 /* dummy nfs user group id */ /* Login security initial user name and password. * Use vxencrypt on host to find encrypted password. * Default password provided here is "password". */ #ifdef INCLUDE_SECURITY #define LOGIN_USER_NAME "target" #define LOGIN_PASSWORD "bReb99RRed" /* "password" */ #endif /* INCLUDE_SECURITY */ /* install environment variable task create/delete hooks */ #ifdef INCLUDE_ENV_VARS #define ENV_VAR_USE_HOOKS TRUE #endif /* INCLUDE_ENV_VARS */ /* * default page size for MMU is 8k. * 68040 will also work with 4k page size * powerPC is only 8k */ #if (CPU_FAMILY == PPC) #define VM_PAGE_SIZE 4096 #else /* (CPU_FAMILY != PPC) */ #define VM_PAGE_SIZE 8192 #endif /* (CPU_FAMILY != PPC) */ /* STREAMS Configuration Parameters */ /* the following define the STREAMS default configuration parameters */ #define STREAMS_MEM_MAX 102400 /* max STREAMS memory usage */ #define STREAMS_MEM_PART_ADDR 0x0 /* mem partition address, NULL=alloc */ #define STREAMS_MEM_PART_SIZE 0x0 /* mem partition size, NULL=max */ #define STREAMS_PUSH_MAX 9 /* max pushable modules */ #define STREAMS_MSGSZ_MAX 4096 /* max data message size */ #define STREAMS_CTLSZ_MAX 1024 /* max control message size */ #define STREAMS_PROTO_INIT_RTN NULL /* streams protocol init routine */ /* The "/tmp" directory for storing log files will work only if the * communication protocol between the host and target is "ftp" or "rsh" . * If "nfs" is being used then the directory has to be set to the * directory exported by the host system. */ #define STREAMS_STRERR_OUTPUT_DIR "/tmp" /* Directory for strerr utility */ #define STREAMS_STRACE_OUTPUT_DIR "/tmp" /* Directory for strace file */ /* SNMP configuration parameters */ /* MIB-2 Variable defaults - see RFC 1213 for complete description */ #define MIB2_SYS_DESCR "VxWorks SNMPv1/v2c Agent" #define MIB2_SYS_CONTACT "Wind River Systems" #define MIB2_SYS_LOCATION "Planet Earth" /* MIB2_SYS__OBJID_LEN is the number of elements in the object id * MIB_2_SYS_OBJID is the object id. The default is "0.0" which * has the length of 2 */ #define MIB2_SYS_OBJID_LEN 2 #define MIB2_SYS_OBJID { 0, 0 } #define SNMP_TRACE_LEVEL 0 /* Must be >= 0 and <= 3 with higher */ /* values giving more info and 0 */ /* giving no info */ #define PPP_TTY 1 /* default PPP serial channel */ #define PPP_OPTIONS_STRUCT /* use PPP options macros */ #define PPP_OPTIONS_FILE NULL /* use PPP options file */ #define PPP_CONNECT_DELAY 15 /* delay to establish link */ #undef INCLUDE_PPP_CRYPT /* include PPP crypt support */ /* PPP options flags - set to 1 to turn on option */ #define PPP_OPT_NO_ALL 0 /* Don't allow any options */ #define PPP_OPT_PASSIVE_MODE 0 /* Set passive mode */ #define PPP_OPT_SILENT_MODE 0 /* Set silent mode */ #define PPP_OPT_DEFAULTROUTE 0 /* Add default route */ #define PPP_OPT_PROXYARP 0 /* Add proxy ARP entry */ #define PPP_OPT_IPCP_ACCEPT_LOCAL 0 /* Acpt peer's IP addr for us */ #define PPP_OPT_IPCP_ACCEPT_REMOTE 0 /* Acpt peer's IP addr for it */ #define PPP_OPT_NO_IP 0 /* Disable IP addr negot. */ #define PPP_OPT_NO_ACC 0 /* Disable addr/control compr */ #define PPP_OPT_NO_PC 0 /* Disable proto field compr */ #define PPP_OPT_NO_VJ 0 /* Disable VJ compression */ #define PPP_OPT_NO_VJCCOMP 0 /* Disable VJ conct-ID compr */ #define PPP_OPT_NO_ASYNCMAP 0 /* Disable async map negot. */ #define PPP_OPT_NO_MN 0 /* Disable magic num negot. */ #define PPP_OPT_NO_MRU 0 /* Disable MRU negotiation */ #define PPP_OPT_NO_PAP 0 /* Don't allow PAP auth */ #define PPP_OPT_NO_CHAP 0 /* Don't allow CHAP auth */ #define PPP_OPT_REQUIRE_PAP 0 /* Require PAP auth */ #define PPP_OPT_REQUIRE_CHAP 0 /* Require CHAP auth */ #define PPP_OPT_LOGIN 0 /* Use login dbase for PAP */ #define PPP_OPT_DEBUG 0 /* Enable daemon debug mode */ #define PPP_OPT_DRIVER_DEBUG 0 /* Enable driver debug mode */ /* PPP options strings - set to desired string to turn on option */ #define PPP_STR_ASYNCMAP NULL /* desired async map */ #define PPP_STR_ESCAPE_CHARS NULL /* chars to escape on xmits */ #define PPP_STR_VJ_MAX_SLOTS NULL /* max VJ compr header slots */ #define PPP_STR_NETMASK NULL /* netmask value */ #define PPP_STR_MRU NULL /* MRU value for negotiation */ #define PPP_STR_MTU NULL /* MTU value for negotiation */ #define PPP_STR_LCP_ECHO_FAILURE NULL /* max LCP echo failures */ #define PPP_STR_LCP_ECHO_INTERVAL NULL /* time for LCP echo requests */ #define PPP_STR_LCP_RESTART NULL /* timeout for LCP */ #define PPP_STR_LCP_MAX_TERMINATE NULL /* max LCP term-reqs */ #define PPP_STR_LCP_MAX_CONFIGURE NULL /* max LCP conf-reqs */ #define PPP_STR_LCP_MAX_FAILURE NULL /* max conf-naks for LCP */ #define PPP_STR_IPCP_RESTART NULL /* timeout for IPCP */ #define PPP_STR_IPCP_MAX_TERMINATE NULL /* max IPCP term-reqs */ #define PPP_STR_IPCP_MAX_CONFIGURE NULL /* max IPCP conf-reqs */ #define PPP_STR_IPCP_MAX_FAILURE NULL /* max # conf-naks for IPCP */ #define PPP_STR_LOCAL_AUTH_NAME NULL /* local name for auth */ #define PPP_STR_REMOTE_AUTH_NAME NULL /* remote name for auth */ #define PPP_STR_PAP_FILE NULL /* PAP secrets file */ #define PPP_STR_PAP_USER_NAME NULL /* username for PAP peer auth */ #define PPP_STR_PAP_PASSWD NULL /* password for PAP peer auth */ #define PPP_STR_PAP_RESTART NULL /* timeout for PAP */ #define PPP_STR_PAP_MAX_AUTHREQ NULL /* max PAP auth-reqs */ #define PPP_STR_CHAP_FILE NULL /* CHAP secrets file */ #define PPP_STR_CHAP_RESTART NULL /* timeout for CHAP */ #define PPP_STR_CHAP_INTERVAL NULL /* CHAP rechallenge interval */ #define PPP_STR_CHAP_MAX_CHALLENGE NULL /* max CHAP challenges */ /* for backward compatibility with old 1.0 BSPs */ #ifndef BSP_VERSION # define BSP_VERSION "1.0" /* old 1.0 style BSP */ # define BSP_VER_1_0 TRUE #endif #ifndef BSP_REV # define BSP_REV "/0" /* old 1.0 style BSP */ #endif #endif /* INCconfigAllh */ ---------- X-Sun-Data-Type: c-file X-Sun-Data-Description: c-file X-Sun-Data-Name: sysLib.c X-Sun-Charset: us-ascii X-Sun-Content-Lines: 952 /* sysLib.c - Force SYS68K/CPU-40, -41 system-dependent library */ /* Copyright 1984-1996 Wind River Systems, Inc. */ #include "copyright_wrs.h" /* modification history -------------------- 02g,04mar97,db added sysPhysMemTop(). added LOCAL_MEM_AUTOSIZE. removed NOMANUAL from header of sysHwInit2().(SPR #7947) 02f,16dec96,dat fixed SPR 3219, FGA_CTL7 not set correctly. 02e,16dec96,myz fixed SPR#: 3797 02d,10oct96,dat merge from Windview102 (added m68230Timer.c timestamp driver) 02c,21jun96,wlf doc: cleanup. 02b,14nov95,myz connect serial interrupt handler in sysHwInit2 02a,29sep95,dat new BSP revision id 01z,14apr95,myz moved serial configuration to sysSerial.c. 01y,17oct94,rhp delete blank line in this comment block (SPR 3713). 01x,12feb93,caf use LANCE address macro in sysPhysMemDesc (SPR 1928). 01w,02feb93,dzb tweak to sysBusToLocalAdrs() (SPR 1764). updated copyright. 01v,31oct92,caf MMU now maps 16MB as cached space for RAM. 01u,22oct92,caf changed sysPhysMemDesc[] to use LOCAL_MEM_SIZE. modified sysToMonitor() accommodate 5.0.x boot ROMs (SPR 1688). fixed initialization of DUSCC chips (SPR 1689). changed sysMemTop() to use FRC40_MEM_SIZE macro. 01t,20oct92,caf reworked EAGLE module interface. initialized *FGA_ICRLOCAL7. made VMEbus accesses CACHEABLE_NOT (SPR 1686). 01s,29sep92,caf removed relative path. 01r,24sep92,gae doc tweak. 01q,16sep92,gae pared down DESCRIPTION. 01p,11sep92,caf added sysPhysMemDesc, disabled MMU in sysToMonitor(). 01o,03sep92,caf extracted last two bytes of Ethernet address from NVRAM. 01n,02sep92,caf changed nvRamLib.c to nvRam.c. 01m,11aug92,ccc added SCSI support. 01l,16jul92,caf added support for Eagle-01c and Eagle-02 modules. 01k,14jul92,caf moved VMEbus interrupt and mailbox routines to fga002Vme.c. ANSIfied. 01j,09jul92,caf added support for rev 2 hardware (search for REV2). moved sysNvRamSet() and sysNvRamGet() to nvRamLib.c. moved sys[Aux]Clk routines to m68562Timer.c. created sysHwInit2() to connect additional interrupts. 01i,26may92,rrr the tree shuffle 01h,07jan92,jdi documentation cleanup. shl ANSI cleanup. 01g,04oct91,rrr passed through the ANSIfication filter -changed VOID to void -changed copyright notice 01f,15sep91,jpb removed exBusAdrsSpace. The AM is passed as arg to exattach. 01e,20Aug91,jpb Fixed spelling errors. 01d,18Aug91,jcf rewrote sysMemTop(). 01c,18aug91,jdi documentation cleanup. 01b,25jul91,jpb fixed auxiliary clock, non slot 1 shared memory access, and documentation 01a,07jun91,jpb adaptation for 68040 support and validation according to WRS coding conventions, original from Mike McCrary (Force). */ /* DESCRIPTION This library provides board-specific routines. The chip drivers included are: m68562Sio.c - Motorola MC68562 DUSCC tty driver nvRam.c - non-volatile RAM library m68562Timer.c - MC68562 DUSCC timer library fga002Vme.c - Force Computers FGA-002 gate array VMEbus library fga002Dma.c - Force Computers FGA-002 DMA library frcEagle01.c - Force Eagle-01c module library frcEagle02.c - Force Eagle-02 module library INCLUDE FILES: sysLib.h SEE ALSO: .pG "Configuration" */ /* includes */ #include "vxWorks.h" #include "vme.h" #include "ioLib.h" #include "sysLib.h" #include "tyLib.h" #include "config.h" #include "vxLib.h" #include "intLib.h" #include "string.h" #include "private/vmLibP.h" #include "drv/multi/m68562.h" /* defines */ #define DUSCC_BASE_ADRS FRC40_DUSCC1_BASE_ADRS /* for m68562Timer.c */ /* globals */ PHYS_MEM_DESC sysPhysMemDesc [] = { /* adrs and length parameters must be page-aligned (multiples of 0x2000) */ /* ram */ { (void *) LOCAL_MEM_LOCAL_ADRS, (void *) LOCAL_MEM_LOCAL_ADRS, 0x1000000, /* 16MB (adjust if necessary) */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE }, /* some a32 vme */ { (void *) 0x1000000, (void *) 0x1000000, 0x8000000, /* 128MB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT }, /* message broadcast area */ { (void *) 0xfa000000, (void *) 0xfa000000, 0x1000000, /* 16MB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT }, /* a16 and a24 vme */ { (void *) 0xfb000000, (void *) 0xfb000000, 0x2000000, /* 32MB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT }, #ifdef LN_POOL_ADRS /* LANCE Ethernet */ { (void *) LN_POOL_ADRS, (void *) LN_POOL_ADRS, 0x82000, /* 520KB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT }, #endif /* LN_POOL_ADRS */ #ifdef FRC40_E002_FLASH_BASE_ADRS /* eagle-2 flash eprom */ { (void *) FRC40_E002_FLASH_BASE_ADRS, (void *) FRC40_E002_FLASH_BASE_ADRS, 0x20000, /* 128K bytes, adjust if necessary */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE_NOT | VM_STATE_CACHEABLE_NOT }, #endif /* system EPROM */ { (void *) ROM_BASE_ADRS, (void *) ROM_BASE_ADRS, ROM_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE_NOT | VM_STATE_CACHEABLE_NOT }, /* local I/O, SRAM */ { (void *) 0xff800000, (void *) 0xff800000, 0x600000, /* 6MB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT }, /* boot EPROM */ { (void *) 0xffe00000, (void *) 0xffe00000, 0x100000, /* 1MB */ VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE_NOT | VM_STATE_CACHEABLE_NOT } }; int sysPhysMemDescNumEnt = NELEMENTS (sysPhysMemDesc); int sysBus = BUS; /* system bus type (VME_BUS, etc) */ int sysCpu = CPU; /* system cpu type (MC680x0) */ char *sysBootLine = BOOT_LINE_ADRS; /* address of boot line */ char *sysExcMsg = EXC_MSG_ADRS; /* catastrophic message area */ int sysProcNum; /* processor number of this cpu */ int sysFlags; /* boot flags */ char sysBootHost[BOOT_FIELD_LEN]; /* name of host from which we booted */ char sysBootFile[BOOT_FIELD_LEN]; /* name of file from which we booted */ /* * The Force CPU-40 has the licensed inet number of 00.80.42.c0.xx.xx. * * The last two bytes are initialized in sysHwInit2(). */ unsigned char lnEnetAddr[6] = {0x00, 0x80, 0x42, 0xc0, 0x00, 0x00}; #include "mem/nvRam.c" #include "timer/m68230Timer.c" /* for timestamp driver only */ #include "timer/m68562Timer.c" #include "vme/fga002Vme.c" #include "sysSerial.c" #ifdef EAGLE_C_FILE #include EAGLE_C_FILE #endif /* EAGLE_C_FILE */ #undef DUSCC_BASE_ADRS /******************************************************************************* * * sysModel - return the model name of the CPU board * * This routine returns the model name of the CPU board. * * RETURNS: A pointer to the string "Force SYS68K/CPU-40". */ char *sysModel (void) { return ("Force SYS68K/CPU-40"); } /******************************************************************************* * * sysBspRev - return the BSP version and revision number * * This routine returns a pointer to a BSP version and revision number, for * example, 1.1/0. BSP_REV is concatenated to BSP_VERSION and returned. * * RETURNS: A pointer to the BSP version/revision string. */ char * sysBspRev (void) { return (BSP_VERSION BSP_REV); } /******************************************************************************* * * sysAbortInt - handle NMI from ABORT switch on front panel * * RETURNS: N/A */ LOCAL void sysAbortInt (void) { *FGA_ISABORT = 0x0; /* acknowledge interrupt */ sysToMonitor (BOOT_WARM_NO_AUTOBOOT); } /******************************************************************************* * * sysHwInit - initialize the system hardware * * This routine initializes various features of the Force SYS68K/CPU-40, * -41 boards. It is called from usrInit() in usrConfig.c. * * This routine initializes and turns off the timers, and sets up the FGA-002 * VMEbus interface chip. * * NOTE: This routine should not be called directly by the user application. * * RETURNS: N/A */ void sysHwInit (void) { char zero = 0; /* used to force compilers to use move instead of clr */ #ifdef EAGLE_C_FILE sysEagleInit (); /* initialization specific to Eagle module */ #endif /* EAGLE_C_FILE */ /* Initialize PIT1 ports */ /* Timer */ *PIT_TCR (FRC40_PIT1_BASE_ADRS) = TIMER_CTL_7; /* disable timer */ *PIT_TVIR (FRC40_PIT1_BASE_ADRS) = INT_VEC_PIT1; /* * Port General * Unidirectional, 8 bit mode, H34 disabled, H12 enabled, low assert */ *PIT_PGCR (FRC40_PIT1_BASE_ADRS) = zero; /* PC4/DMAREQ is PC4, no DMA, PC5/PIRQ is PIRQ, PC6/PIACK is PC6 */ *PIT_PIVR (FRC40_PIT1_BASE_ADRS) = INT_VEC_PIT1; *PIT_PSRR (FRC40_PIT1_BASE_ADRS) = PIRQ; /* * Port A - Rotary Switches * Bit I/O - Pin Definable single buffered * output, non-latched input */ *PIT_PACR (FRC40_PIT1_BASE_ADRS) = PORT_SUBMODE_3; *PIT_PADDR (FRC40_PIT1_BASE_ADRS) = zero; /* all inputs */ /* * Port B - A31-A24 Control for slave access * Bit I/O - Pin definable * single buffered output, non-latched input */ *PIT_PBCR (FRC40_PIT1_BASE_ADRS) = PORT_SUBMODE_3; /* submode 1X */ *PIT_PBDR (FRC40_PIT1_BASE_ADRS) = zero; /* A31..A24 */ *PIT_PBDDR (FRC40_PIT1_BASE_ADRS) = 0xff; /* all outputs */ /* * Port C - Snoop Control * PC0,PC1,PC6,PC7 output, others input */ *PIT_PCDR (FRC40_PIT1_BASE_ADRS) = zero; /* Snooping does not work */ *PIT_PCDDR (FRC40_PIT1_BASE_ADRS) = 0xd3; /* Changed for REV2 */ /* Initialize PIT2 ports */ /* Timer */ *PIT_TCR (FRC40_PIT2_BASE_ADRS) = TIMER_CTL_7; /* disable timer */ *PIT_TVIR (FRC40_PIT2_BASE_ADRS) = INT_VEC_PIT2; /* * Port General * Mode 0, (Unidirectional 8 bit Mode), H34 && H12 disabled. */ *PIT_PGCR (FRC40_PIT2_BASE_ADRS) = zero; /* PC4/DMAREQ = PC4, PC5/PIRQ = PC5, PC6/PIACK = PC6 */ *PIT_PIVR (FRC40_PIT2_BASE_ADRS) = INT_VEC_PIT2; *PIT_PSRR (FRC40_PIT2_BASE_ADRS) = PIRQ; /* * Port A - I/O Port via B12 * Bit I/O - Pin Definable single buffered * output, non-latched input */ *PIT_PACR (FRC40_PIT2_BASE_ADRS) = PORT_SUBMODE_3; /* submode 1x */ *PIT_PADDR (FRC40_PIT2_BASE_ADRS) = zero; /* all I/O */ /* * Port B - Memory size, board ID. * Bit I/O - Pin Definable single * buffered output, non-latched input */ *PIT_PBCR (FRC40_PIT2_BASE_ADRS) = PORT_SUBMODE_3; /* submode 1X */ *PIT_PBDDR (FRC40_PIT2_BASE_ADRS) = zero; /* all input */ /* * Port C - RAM Characteristics: type, burst, parity, enable A24 slave. * PC2 - RAMtype, PC4-Burst Capable, PC6-Parity Capable, PC0-1-Unused, * PC3-5-Int, PC7 Enable A24 Access */ *PIT_PCDR (FRC40_PIT2_BASE_ADRS) = zero; /* A24 not enabled */ *PIT_PCDDR (FRC40_PIT2_BASE_ADRS) = 0x80; /* Input 1,2,4,6 */ /* Changed for REV2 */ /* Initialize the M68562 serial devices */ sysSerialHwInit(); /* Initialize the FGA-002 */ /* set FGA to allow DUSCC chips to provide vector */ *FGA_LOCALIACK = FGA_LOCALIACK_EXT_500NS | (FGA_LOCALIACK_EXT_500NS << 2); /* enable RMW cycles */ *FGA_CTL15 |= FGA_CTL15_SHAREDRMW; *FGA_CTL16 &= ~0x80; /* Must have unaligned off to get RMW to work! */ /* Changed for REV2 */ *FGA_CTL1 &= ~FGA_CTL1_SCON; /* FGA arbitration off */ /* disable dual porting of memory. It is enabled in sysProcNumSet() */ *FGA_ENAMCODE = zero; /* dual port from the beginning of RAM */ *FGA_MAINUM = zero; /* local base = 0x0 */ *FGA_MAINUU = zero; /* (start of RAM) */ /* set VME dual port base address */ *FGA_VMEPAGE = (LOCAL_MEM_BUS_ADRS & 0xf0000000) >> 28; /* A31-A28 */ *FGA_BOTTOMPAGEU = (LOCAL_MEM_BUS_ADRS & 0x0ff00000) >> 20; /* A27-A20 */ *FGA_BOTTOMPAGEL = (LOCAL_MEM_BUS_ADRS & 0x000ff000) >> 12; /* A19-A12 */ /* set VME dual port top access location */ *FGA_TOPPAGEU = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 + sysPhysMemTop ()) & 0x0ff00000) >> 20; /* A27-A20 */ *FGA_TOPPAGEL = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 + sysPhysMemTop ()) & 0x000ff000) >> 12; /* set mailbox accesses to be either user or supervisor */ *FGA_CTL5 |= FGA_CTL5_VME_A16_BOTH; /* initialize vector register */ *FGA_CTL3 = INT_VEC_FGA >> 4; /* initialize interrupt control registers */ *FGA_ICRMBOX0 = INT_LVL_MBOX; *FGA_ICRMBOX1 = INT_LVL_MBOX; *FGA_ICRMBOX2 = INT_LVL_MBOX; *FGA_ICRMBOX3 = INT_LVL_MBOX; *FGA_ICRMBOX4 = INT_LVL_MBOX; *FGA_ICRMBOX5 = INT_LVL_MBOX; *FGA_ICRMBOX6 = INT_LVL_MBOX; *FGA_ICRMBOX7 = INT_LVL_MBOX; *FGA_ICRTIM0 = INT_LVL_FGA_TIMER; *FGA_ICRFMB0REF = INT_LVL_MBOX; *FGA_ICRFMB1REF = INT_LVL_MBOX; *FGA_ICRFMB0MES = INT_LVL_MBOX; *FGA_ICRFMB1MES = INT_LVL_MBOX; *FGA_ICRDMANORM = INT_LVL_DMA; *FGA_ICRDMAERR = INT_LVL_DMA; *FGA_ICRPARITY = INT_LVL_PARITY; *FGA_ICRVME1 = 1; /* one to one makes sense */ *FGA_ICRVME2 = 2; *FGA_ICRVME3 = 3; *FGA_ICRVME4 = 4; *FGA_ICRVME5 = 5; *FGA_ICRVME6 = 6; *FGA_ICRVME7 = 7; /* extended interrupt control registers */ *FGA_ICRABORT = INT_LVL_ABORT | FGA_ICR_EDGE | FGA_ICR_AUTOCLEAR; *FGA_ICRACFAIL = INT_LVL_ACFAIL | FGA_ICR_AUTOCLEAR; *FGA_ICRSYSFAIL = INT_LVL_SYSFAIL | FGA_ICR_AUTOCLEAR; *FGA_ICRLOCAL0 = INT_LVL_RTC | FGA_ICR_AUTOCLEAR; *FGA_ICRLOCAL2 = INT_LVL_PIT1 | FGA_ICR_AUTOCLEAR; *FGA_ICRLOCAL3 = INT_LVL_PIT2 | FGA_ICR_AUTOCLEAR; *FGA_ICRLOCAL4 = INT_LVL_DUSCC1 | FGA_ICR_AUTOCLEAR; /* actually external */ *FGA_ICRLOCAL5 = INT_LVL_DUSCC2 | FGA_ICR_AUTOCLEAR; /* actually external */ #ifndef EAGLE_C_FILE *FGA_ICRLOCAL1 = NULL; /* no EAGLE module installed */ *FGA_ICRLOCAL6 = NULL; /* no EAGLE module installed */ *FGA_ICRLOCAL7 = NULL; /* no EAGLE module installed */ #endif /* EAGLE_C_FILE */ /* setup VMEbus arbitration registers */ /* * On this board (CPU-40) the arbitration cannot be controlled via * software. That is, the enable/disable capability is by hardware * jumper only. The CPU-40 utilizes an device that contains a 4 level * arbiter; therefore the FGA arbiter is disabled. The arbitration * method used is still under software control. Bus request level, is * under either hardware or software control, as decided by software when * the arbiter is initialized. Currently, it is set up to allow the user * to set jumper B19 in order to set the bus request level. */ /* * It is still required to set up the FGA for the VMEbus release cycles, * as those are independent from arbitration. */ /* Set up release cycles */ *FGA_CTL7 = (*FGA_CTL7 & ~0x7) | FGA_CTL7_RAT_64US; /* RAT */ *FGA_CTL7 &= ~FGA_CTL7_NO_RELEASE_ON_BCLR; /* RBCLR */ /* This should still work with FGA arbitration disabled. */ *FGA_CTL8 |= FGA_CTL8_FAIR_ARB; /* FAIR */ /* Set up the arbiter */ *FRC40_ARB = 0x0; /* Priority, request level via jumper */ /* disable FMB channels 1 and 0; slot code set in sysProcNumSet */ *FGA_CTL5 = FGA_CTL5_VME_A16_BOTH; /* enable a few choice interrupts */ *FGA_ICRLOCAL2 |= FGA_ICR_ENABLE; /* PIT1 */ *FGA_ICRLOCAL4 |= FGA_ICR_ENABLE; /* DUSCC1 */ *FGA_ICRLOCAL5 |= FGA_ICR_ENABLE; /* DUSCC2 */ /* The RTC, FDC, SCSI, LANCE are not initialized here but in the drivers */ } /******************************************************************************* * * sysHwInit2 - additional system configuration and initialization * * This routine connects system interrupts and does any additional * configuration necessary. * * RETURNS: N/A */ void sysHwInit2 (void) { /* connect sys clock and aux clock interrupts */ (void) intConnect (INUM_TO_IVEC (INT_VEC_CLOCK), sysClkInt, NULL); (void) intConnect (INUM_TO_IVEC (INT_VEC_AUX_CLOCK), sysAuxClkInt, NULL); /* connect serial device interrupts */ sysSerialHwInit2 (); /* connect and enable the ABORT switch interrupt */ if (intConnect (INUM_TO_IVEC (INT_VEC_ABORT), sysAbortInt, 0) != ERROR) *FGA_ICRABORT |= FGA_ICR_ENABLE; /* connect the mailbox interrupt */ (void) intConnect (INUM_TO_IVEC (INT_VEC_MBOX), sysMailboxInt, 0); /* extract the last two bytes of Ethernet address out of non-volatile RAM */ #ifdef FRC40_E002_FLASH_BASE_ADRS /* ** the ethernet address for CPU 40 Eagle-02 version is stored in the ** EAGLE-02 Flash Eprom at address 0xfe8000ac, according to Force company. */ #undef NV_ENET_ADRS #define NV_ENET_ADRS ((char *)FRC40_E002_FLASH_BASE_ADRS + 0xac) #endif lnEnetAddr [4] = (UCHAR) NV_ENET_ADRS [0]; lnEnetAddr [5] = (UCHAR) NV_ENET_ADRS [1]; } /******************************************************************************* * * sysPhysMemTop - get the address of the top of memory * * This routine finds the size of memory. * * When LOCAL_MEM_AUTOSIZE is defined, the memory size is determined at run * time by probing memory. If LOCAL_MEM_AUTOSIZE is not defined, then the * memory size is taken from the macro LOCAL_MEM_SIZE. * * NOTE * The Parallel Interface/Timer (PIT) port B has 3 input bits containing the * encoded memory size. * * RETURNS: The address of the top of memory. */ char *sysPhysMemTop (void) { static char * memTop = NULL; if (memTop == NULL) { #ifdef LOCAL_MEM_AUTOSIZE memTop = (char *) (FRC40_MEM_SIZE); #else memTop = (char *)(LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE); #endif } return memTop; } /******************************************************************************* * * sysMemTop - get the address of the top of logical memory * * This routine returns the address of the first unusable byte of memory. * VxWorks will not use any memory at or above this address. * * The user can reserve local memory from the board by declaring the * macro USER_RESERVED_MEM with the amount of memory to reserve. This * routine will return a pointer to the first byte of the reserved memory * area. * * RETURNS: The address of the top of usable memory. */ char *sysMemTop (void) { static char * memTop = NULL; if (memTop == NULL) { memTop = sysPhysMemTop () - USER_RESERVED_MEM; } return memTop; } /******************************************************************************* * * sysToMonitor - transfer control to the ROM monitor * * This routine transfers control to the ROM monitor. Normally, it is called * only by reboot()--which services ^X--and by bus errors at interrupt level. * However, in some circumstances, the user may wish to introduce a * to enable special boot ROM facilities. * * RETURNS: Does not return. */ STATUS sysToMonitor ( int startType /* parameter passed to ROM to tell it how to boot */ ) { FUNCPTR pRom = (FUNCPTR) (ROM_TEXT_ADRS + 8); /* disable the MMU */ VM_ENABLE (FALSE); /* disable system clock to allow reboot with 5.0.x boot ROMs (SPR 1688) */ sysClkDisable (); (*pRom) (startType); return (OK); /* in case we ever continue from ROM monitor */ } /******************************************************************************* * * sysLocalToBusAdrs - convert a local address to a bus address * * This routine gets the VMEbus address that accesses a specified local * memory address. * * RETURNS: OK, or ERROR if the address space is unknown or not mapped. * * SEE ALSO: sysBusToLocalAdrs() */ STATUS sysLocalToBusAdrs ( int adrsSpace, /* bus address space in which busAdrs resides */ char *localAdrs, /* local address to convert */ char **pBusAdrs /* where to return bus address */ ) { if ((int) localAdrs < LOCAL_MEM_LOCAL_ADRS || localAdrs >= sysPhysMemTop ()) { /* this is off-board memory - just return local address */ *pBusAdrs = localAdrs; return (OK); } /* * this is on-board memory - map to bus address space; * the following memory mapping is established in sysProcNumSet(): * - only processor 0 has memory on bus, * - the memory is placed in EXT space at * address LOCAL_MEM_BUS_ADRS. */ switch (adrsSpace) { case VME_AM_SUP_SHORT_IO: case VME_AM_USR_SHORT_IO: return (ERROR); /* no A16 access to RAM */ case VME_AM_STD_SUP_PGM: case VME_AM_STD_SUP_DATA: case VME_AM_STD_USR_PGM: case VME_AM_STD_USR_DATA: return (ERROR); /* no A24 access to RAM */ case VME_AM_EXT_SUP_PGM: case VME_AM_EXT_SUP_DATA: case VME_AM_EXT_USR_PGM: case VME_AM_EXT_USR_DATA: *pBusAdrs = localAdrs + LOCAL_MEM_BUS_ADRS; return (OK); default: return (ERROR); } } /******************************************************************************* * * sysBusToLocalAdrs - convert a bus address to a local address * * This routine gets the local address that accesses a specified VMEbus * memory address. * * RETURNS: OK, or ERROR if the address is unknown or the mapping is * not possible. * * SEE ALSO: sysLocalToBusAdrs() */ STATUS sysBusToLocalAdrs ( int adrsSpace, /* bus address space in which busAdrs resides */ char *busAdrs, /* bus address to convert */ char **pLocalAdrs /* where to return local address */ ) { switch (adrsSpace) { case VME_AM_SUP_SHORT_IO: case VME_AM_USR_SHORT_IO: *pLocalAdrs = (char *) (0xfcff0000 | (0x0000ffff & (unsigned int) busAdrs)); return (OK); case VME_AM_STD_SUP_ASCENDING: case VME_AM_STD_SUP_PGM: case VME_AM_STD_SUP_DATA: case VME_AM_STD_USR_ASCENDING: case VME_AM_STD_USR_PGM: case VME_AM_STD_USR_DATA: busAdrs = (char *) ((unsigned int) busAdrs & 0x00ffffff); if ((unsigned int) busAdrs > (unsigned int) 0x00feffff) return (ERROR); *pLocalAdrs = (char *) (0xfc000000 | (unsigned int) busAdrs); return (OK); case VME_AM_EXT_SUP_ASCENDING: case VME_AM_EXT_SUP_PGM: case VME_AM_EXT_SUP_DATA: case VME_AM_EXT_USR_ASCENDING: case VME_AM_EXT_USR_PGM: case VME_AM_EXT_USR_DATA: if ((UINT) busAdrs < (UINT) sysPhysMemTop () || (UINT) busAdrs > (UINT) 0xf9ffffff) { return (ERROR); } *pLocalAdrs = busAdrs; return (OK); default: return (ERROR); } } /******************************************************************************* * * sysProcNumGet - get the processor number * * This routine returns the processor number for the CPU board, which is * set with sysProcNumSet(). * * RETURNS: The processor number for the CPU board. * * SEE ALSO: sysProcNumSet() */ int sysProcNumGet (void) { return (sysProcNum); } /******************************************************************************* * * sysProcNumSet - set the processor number * * This routine sets the processor number for the CPU board. Processor numbers * should be unique on a single backplane. * * RETURNS: N/A * * SEE ALSO: sysProcNumGet() */ void sysProcNumSet ( int procNum ) { sysProcNum = procNum; /* * Shared RAM is made open to dual-port VME access only if this is * the system controller (processor 0). This can be overridden here * to make the memory accessible for other processor numbers, but * make sure that the addressing scheme used causes no address * conflicts on VME. It has been tested in this configuration also. */ if (procNum == 0) { /* * SYSCON slot 1 capabilities (bus arbitration) is * selected with a hardware jumper. */ /* dual-port memory for extended (A32) access only */ /* set VME dual port base address */ *FGA_VMEPAGE = (LOCAL_MEM_BUS_ADRS & 0xf0000000) >> 28; /* A31-A28 */ *FGA_BOTTOMPAGEU = (LOCAL_MEM_BUS_ADRS & 0x0ff00000) >> 20;/* A27-A20 */ *FGA_BOTTOMPAGEL = (LOCAL_MEM_BUS_ADRS & 0x000ff000) >> 12;/* A19-A12 */ /* set VME dual port top access location */ *FGA_TOPPAGEU = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 + sysPhysMemTop ()) & 0x0ff00000) >> 20; /* A27-A20 */ *FGA_TOPPAGEL = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 + sysPhysMemTop ()) & 0x000ff000) >> 12; *FGA_ENAMCODE = FGA_ENAMCODE_EXTUSRDAT_RW | FGA_ENAMCODE_EXTSUPDAT_RW; /* * standard (A24) access could also be enabled through the * PI/T2 port C bit 7 (=1), which uses the PI/T1 port B as * bits 24-31 of 32 bit address. See User's Manual. */ } /* set VME short address space base for FGA-002; each proc w/ unique adrs */ *FGA_MYVMEPAGE = (FRC40_FGA_VME_ADRS >> 8); /* set FMB slot code */ *FGA_FMBCTL &= ~FGA_FMBCTL_SLOT_MASK; /* LOCAL_MEM_BUS_ADRS == 16M * (procNum+1) */ *FGA_FMBCTL |= (procNum & FGA_FMBCTL_SLOT_MASK); } /******************************************************************************* * * sysBusTas - test and set a location across the bus * * This routine performs a 680\f2x\f10 test-and-set instruction across the * backplane. * * RETURNS: TRUE if the value had not been set but is now, or FALSE if the * value was set already. * * SEE ALSO: vxTas() */ BOOL sysBusTas ( char *adrs /* address to be tested and set */ ) { return (vxTas (adrs)); } /* miscellaneous support routines */ /******************************************************************************* * * sysSysfailConnect - connect a routine to the SYSFAIL signal * * This routine connects a specified routine to the CPU board's SYSFAIL signal. * * RETURNS: OK, or ERROR if the routine cannot be connected to the SYSFAIL * signal. * * SEE ALSO: intConnect() */ STATUS sysSysfailConnect ( VOIDFUNCPTR routine, /* routine to be connected to SYSFAIL signal */ int arg /* argument with which to call routine */ ) { if (intConnect (INUM_TO_IVEC (INT_VEC_SYSFAIL), routine, arg) == ERROR) return (ERROR); *FGA_ICRSYSFAIL |= FGA_ICR_ENABLE; return (OK); } /******************************************************************************* * * sysAcfailConnect - connect a routine to the ACFAIL signal * * This routine connects a specified routine to the CPU board's ACFAIL signal. * * RETURNS: OK, or ERROR if the routine cannot be connected to the ACFAIL * signal. * * SEE ALSO: intConnect() */ STATUS sysAcfailConnect ( VOIDFUNCPTR routine, /* routine to be connected to ACFAIL signal */ int arg /* argument with which to call routine */ ) { if (intConnect (INUM_TO_IVEC (INT_VEC_ACFAIL), routine, arg) == ERROR) return (ERROR); *FGA_ICRACFAIL |= FGA_ICR_ENABLE; return (OK); } /******************************************************************************* * * sysFrontPanelSwitches - read the front panel switches of the CPU * * This routine returns the values of the CPU's front panel switches. * * RETURNS: The combined value of the two 4-bit rotary switches. */ int sysFrontPanelSwitches (void) { return (*PIT_PAAR (FRC40_PIT1_BASE_ADRS)); } ---------- X-Sun-Data-Type: default X-Sun-Data-Description: default X-Sun-Data-Name: vxexplo.log X-Sun-Charset: us-ascii X-Sun-Content-Lines: 352 Press any key to stop auto-boot... 1 auto-booting... boot device : ln processor number : 0 host name : host file name : /usr/local/vw/wind/target/config/frc40/vxWorks inet on ethernet (e) : 128.171.96.84:ffffff00 host inet (h) : 128.171.96.162 user (u) : target ftp password (pw) : xxxxxxxx flags (f) : 0x28 target name (tn) : cpu4 startup script (s) : nfs.hq Attaching network interface ln0... done. Attaching network interface lo0... done. Loading... 523072 + 52976 + 35584 Starting at 0x1000... Attaching network interface ln0... done. Attaching network interface lo0... done. Mounting NFS file systems from host host for target cpu4: ...done Loading symbol table from host:/usr/local/vw/wind/target/config/frc40/vxWorks.sym ...done ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R) ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]]] ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]] ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]] ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]]] ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System ]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.3.1 ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5 ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-1997 CPU: Force SYS68K/CPU-40. Processor #0. Memory Size: 0x1000000. BSP version 1.1/1. WDB: Ready. Executing startup script nfs.hq ... # # $Id: nfs.hq,v 1.8 1997/07/24 20:56:43 ktsubota Exp $ # # script to nfs mount individual disks onto VxWorks when booted # routeAdd "128.171.136.0","128.171.96.1" value = 0 = 0x0 routeAdd "128.171.95.0", "128.171.96.1" value = 0 = 0x0 hostAdd "kahala","128.171.96.178" value = 0 = 0x0 hostAdd "hana","128.171.96.176" value = 0 = 0x0 hostAdd "kapua","128.171.96.152" value = 0 = 0x0 hostAdd "polihua","128.171.96.180" value = 0 = 0x0 hostAdd "papahaku","128.171.96.181" value = 0 = 0x0 # hostAdd "kamehame","128.171.96.159" value = 0 = 0x0 # nfsMount "kamehame","/kamehame","/home/kamehame" value = 0 = 0x0 # nfsMount "kahala","/kahala","/home/kahala" value = 0 = 0x0 nfsMount "hana","/hana/wlupton","/home/wlupton" value = 0 = 0x0 nfsMount "kapua","/kapua/hlewis","/home/hlewis" value = 0 = 0x0 nfsMount "polihua","/polihua","/home/polihua" value = 0 = 0x0 nfsMount "papahaku","/sunos/local/kroot","/kroot" value = 0 = 0x0 nfsMount "papahaku","/sunos/local/epics","/usr/local/epics" value = 0 = 0x0 # hostShow hostname inet address aliases -------- ------------ ------- cpu4 128.171.96.84 localhost 127.0.0.1 host 128.171.96.162 kahala 128.171.96.178 hana 128.171.96.176 kapua 128.171.96.152 polihua 128.171.96.180 papahaku 128.171.96.181 kamehame 128.171.96.159 value = 0 = 0x0 nfsDevShow device name file system ----------- ----------- /home/kamehame kamehame:/kamehame /home/kahala kahala:/kahala /home/wlupton hana:/hana/wlupton /home/hlewis kapua:/kapua/hlewis /home/polihua polihua:/polihua /kroot papahaku:/sunos/local/kroot /usr/local/epics papahaku:/sunos/local/epics value = 0 = 0x0 Done executing startup script nfs.hq -> " value = 532000 = 0x81e20 = _shellHistSize + 0x4 sysMemTop value = 16777216 = 0x1000000 memShow 1 FREE LIST: num addr size --- ---------- ---------- 1 0xffea28 28 2 0xf8a7c0 32 3 0xfa1edc 16 4 0xfa2028 32 5 0xffef08 20 6 0xfa3648 20 7 0xffec28 20 8 0xfa2858 400 9 0xffd8f8 180 10 0xfa378c 168 11 0xf91ae4 404 12 0xf8929c 3708 13 0xf8e204 13968 14 0xf6a860 104988 15 0xf51634 102848 16 0xf93a70 24 17 0x18d2d0 14313040 18 0xffc000 6376 19 0xff2000 8184 20 0xfe8000 8184 21 0xfde000 8184 22 0xfd4000 8112 SUMMARY: status bytes blocks avg block max block ------ --------- -------- ---------- ---------- current free 14578936 22 662678 14313040 alloc 571424 3470 164 - cumulative alloc 1238708 4077 303 - value = 0 = 0x0 bfill( 0x1000000, 0x4000000,0xffff) value = 65535 = 0xffff = _vfprintf + 0x1d3 memAddToPool( 0x1000000, 0x4000000 ) value = 0 = 0x0 sysMemTop value = 16777216 = 0x1000000 memShow 1 FREE LIST: num addr size --- ---------- ---------- 1 0x1000008 67108848 2 0xffea28 28 3 0xf8a7c0 32 4 0xfa1edc 16 5 0xfa2028 32 6 0xffef08 20 7 0xfa3648 20 8 0xffec28 20 9 0xfa2858 400 10 0xffd8f8 180 11 0xfa378c 168 12 0xf91ae4 404 13 0xf8929c 3708 14 0xf8e204 13968 15 0xf6a860 104988 16 0xf51634 102848 17 0xf93a70 24 18 0x18d2d0 14313040 19 0xffc000 6376 20 0xff2000 8184 21 0xfe8000 8184 22 0xfde000 8184 23 0xfd4000 8112 SUMMARY: status bytes blocks avg block max block ------ --------- -------- ---------- ---------- current free 81687784 23 3551642 67108848 alloc 571424 3470 164 - cumulative alloc 1250772 4085 306 - value = 0 = 0x0 cd "/home/kahala/ktsubota/kroot/rel/ao313/obs" value = 0 = 0x0 pwd /home/kahala/ktsubota/kroot/rel/ao313/obs value = 42 = 0x2a = '*' ld < dcs/bin/frc40/fmodFix value = 16298140 = 0xf8b09c = fmodFix_bss + 0x8 ld < epics/base/bin/frc40/iocCore ld error: error reading file (errno = 0x300046). value = 0 = 0x0 kt313.> printErrno 0x300046 S_nfsLib_NFSERR_STALE value = 22 = 0x16 kt313.> memShow 1 FREE LIST: num addr size --- ---------- ---------- 1 0xf9e254 316 2 0xffea7c 20 3 0x4ff9460 9040 4 0x4ff9068 356 5 0xf8b248 1384 6 0xf8ac74 72 7 0xf8abe8 24 8 0x1000008 66723916 9 0xffea28 28 10 0xf8a7c0 32 11 0xfa1edc 16 12 0xfa2028 32 13 0xffef08 20 14 0xfa3648 20 15 0xffec28 324 16 0xfa2858 400 17 0xffd8f8 2080 18 0xfa378c 2296 19 0xf91ae4 936 20 0xf8929c 4148 21 0xf8e204 13968 22 0xf6a860 122696 23 0xf51634 102848 24 0xf93a70 24 25 0x18d2d0 14313040 26 0xffc000 6376 27 0xff2000 8184 28 0xfe8000 8184 29 0xfde000 8184 30 0xfd4000 8112 SUMMARY: status bytes blocks avg block max block ------ --------- -------- ---------- ---------- current free 81337076 30 2711235 66723916 alloc 922132 3480 264 - cumulative alloc 1721380 4146 415 - value = 0 = 0x0 kt313.> From ktsubota@keck.hawaii.edu Tue Dec 23 18:49:11 1997 From: ktsubota@keck.hawaii.edu (Kevin Tsubota) Date: Tue Dec 23 18:49:14 PST 1997 Subject: Re: trying to add 64M offboard memory to system pool Sorry, just to clarify things, the nfs_stale handle is just one of a couple erorrs I encounter, others would be bus error or rpc error. Without the call to memAddToPool everything works fine. > From ktsubota Tue Dec 23 15:53:51 1997 > Date: Tue, 23 Dec 1997 15:53:45 -1000 > From: ktsubota (Kevin Tsubota) > To: vxwexplo@lbl.gov > Subject: trying to add 64M offboard memory to system pool > Cc: ktsubota > Content-Type: X-sun-attachment > Content-Length: 79458 > > > Configuration: > > frc40 16M cpu > micro memory MM6260AD 64M memory card > vxWorks 5.1.1 and vxWorks 5.3.1 > > We have a frc40 16M CPU card running vxWorks and needed more memory so > we purchased a 64M memory card from micro memory. I've been able > to read and write practically all 64M on the card, both as longs and > doubles. However when I attempt to do a vxWorks ld command from the > target shell I always get an error. I've had this error in vxWorks > 5.1.1 and I've just upgraded to vxWorks 5.3.1 with the same results. > > I've tried it in the windsh and it loads but I get other errors. > I would prefer to run it from the target shell as the startup script. > > I've been fighting this for some time now with help from vxWorks but > I'm still at square one. > > Has anyone else done anything similiar? > > I've attached the output from vxWorks 5.3.1 target shell as well as my configAll.h and sysLib.c files. > > I'm using bfill to set the parity bit and memAddToPool and want to freely use > the offboard memory without specifically addressing it. > > Thank You. > > Kevin Tsubota > W.M. Keck Observatory > (808)885-778 > ktsubota@keck.hawaii.edu From daemon@csg.lbl.gov Thu Dec 25 04:01:04 1997 From: daemon@csg.lbl.gov Date: Thu Dec 25 04:01:08 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Dec 25 04:01:01 PST 1997 Subject: Re: 2000 problem Subject: Re: Adding functions to lib*-files _with_ entry in symbol-table ------------------------------------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++ Subject: Re: 2000 problem Date: Sat, 20 Dec 1997 14:28:30 -0600 From: "Tim Clark" Organization: DigiPhone Corporation, Bryan/College Station Texas 409-693-8885 Message-ID: <67hdc6$um3@news.myriad.net> References: <62fk8h$mjq@bcarh8ab.bnr.ca> <66rnkc$lpa$1@wbnws01.ne.highway1.com> <1997Dec16.124609.399@nntp.muohio.edu> FYI, Its approximately 12 years. Randy Kaelber wrote in message <1997Dec16.124609.399@nntp.muohio.edu>... >Paul G. Fox (pgf@foxharp.boston.ma.us) wrote: > >> the century starts when people want it to. we've played with the calendar >> enough times in the past (isn't there a whole 11 years missing somewhere? >> or is it only 11 days? :-) that insisting on counting by 100's or by >> 1000's, is being picky. > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Adding functions to lib*-files _with_ entry in symbol-table Date: Wed, 24 Dec 1997 17:12:39 -0800 From: Ingo Pakleppa Organization: CTS Network Services Message-ID: <34A1B306.280518E@cts.com> References: <34A1315F.41C67EA6@fzi.de> Reply-To: ingop@cts.com Check out the userSymXXX.c files; there are several of them (I think, three - - which one to use is a matter of maintainability; choose what you consider appropriate). In order to included your functions in the symbol table, you'll need to put two entries into one of these files, one to include the function from the .o file (which will keep the linker from throwing it out), and one to actually put it into the symbol table. It's pretty simple, just follow the pattern from all the other functions that are already there. Torsten Rupp wrote: > Hello, > > I like to add own functions to the lib*gnuvx.a-files (e. g. > libMC68040gnuvx.a). I have no problems to add the .o-file, but if the > functions included in the lib*gnuvx.a-file are not referenced by some > functions of the vxWorks kernel image they will be removed by the linker > at creation time of the image (I tried different options for the linker, > but I had no success). I know that I can add some .o-files to the > vxWorks image with the MACH_EXTRA option in the makefile, but I want to > add some special functions to the lib*-files. Does anybody how to > > - add functions to some lib*gnuvx.a-file _AND_ > - to include the added functions in the vxWorks symbol-table? > > Thank you very much! > > Bye, > > Torsten > > -- > Computer Science Research Center (FZI) phone : +49-721-9654-302 > Mobility Management and Robotics fax : +49-721-9654-309 > Haid-und-Neu-Str. 10-14 e-mail: rupp@fzi.de > D-76131 Karlsruhe (Germany) www : www.fzi.de/robot --------------------------- End of New-News digest ********************** From 93352560@aol.com Fri Dec 26 11:24:24 1997 From: 93352560@aol.com Date: Fri Dec 26 11:24:28 PST 1997 Subject: Congratulations, AOL Member! Congratulations Member! You have been selected from the Membership Directory to REGISTER for a 9 Days/8 Nights FLORIDA/BAHAMAS Vacation and a CRUISE with full accommodations aboard the ship!! Only $299 per person! We are a high volume wholesaler that promotes tourism to hotels, resorts and cruise lines. So we are able to offer you great rates. This vacation is designed for your total enjoyment, and also to help us establish some good word-of-mouth advertising. If qualified your fabulous Caribbean package will include: * 3 Days/2 Nights in Disney World, Orlando, Florida * 3 Days/3 Nights in Sunny Ft. Lauderdale, Florida * 3 Days/2 Nights in beautiful Grand Bahama Island * A Round Trip Cruise from and to the Bahamas with all your meals and entertainment included aboard the ship * A Complimentary Alamo Rental Car with unlimited mileage for your stay in Florida Send us e-mail with the following information. If you qualify one of our Experienced Travel Representatives will contact you with the full details: BONUS! FIRST 500 QUALIFIED ENTRANTS WILL ALSO RECEIVE * 3 Days/3 Nights in Colonial Williamsburg, Virginia * 4 Days/3 Nights in beautiful Cancun, Mexico * 4 Days/3 Nights in exciting Las Vegas Full Name: ______________ Address: ______________ State: ______________ Age: ______________ Day Phone: (__)_________ Night Phone:(__)_________ All trips are 100% transferable, so you may give it to a friend or a relative as well! Important: All fields must me filled out completely in order to be qualified! Must be 21 years of age or older and have a major credit card for car rental deposit. Click to REGISTER This info will remain completely confidential! From beany31@hotmail.com Mon Dec 29 03:18:44 1997 From: beany31@hotmail.com Date: Mon Dec 29 03:18:47 PST 1997 Subject: ALL You CAN Be Dear Friend, Your name was given to me, as a person with the ambition to make changes in your life, and the ability, and desire to succeed. I am sending you this information below as a possible source of your endeavor. This may not be for everybody, but with increasing information you can better understand, Determin, and attain your goals. This Report will enlighten you to ways of making Extra Income, or It can be the start of a New Career. You Make It Happen with this "step by step" Proven Plan for the year 2000. AFTER READING this report, & you see How This Can Work for YOU, e-mail me the order form below with all the information filled out completely ...... and I will send to You "167 BUSINESSES & FINANCIAL REPORTS". This comes to you on a disk, with full information. (1) You can use to build your own business, with the tools and samples for Marketing, and tips and suggestions regarding Advertising, along with several different and varied slicks. (2) You can print each report (375 pages for all reports) out and sell each of them for the price you set, or (3) You can reprint the disk and sell it. Reports with this quality and quantity on a disk have sold for as high as $100. It is yours to do with what you would like, and build your business and Future as Big as your Dreams and Desires allow you. This is a reg $43.95 Value, for a limited time it is yours for $29.95 US Funds (incl s & h ) [An additional $15.00 US s & h if you are outside the US or Canada.] The Very Best to you in the New Year, and if you order before December 31st, I will send you a booklet " SAVING YOU MONEY ON YOUR TAXES ". If you do not want this type mail or information, place REMOVE in the Subject and return. We will remove your name. ( beany32@hotmail.com ) Thank You for your time it was greatly appreciated. ------------------------------------------------------------------------------------- TO ORDER: Send $29.95 (s&h included) additional $15 US if you live outside the US or Canada. Mastercard_____ Visa____ American Express____ Name_________________________________________ Address_________________________________________________ State/Province/Zip_______________________________________________ Country_______________________E-Mail________________________________ Phone____________________________Fax_________________________________ CREDITCARD Information: Name (as it appears on card)________________________________________________ Card Name & Number___________________________________________________ Expiration Date:__________________________________________________ beany32@hotmail.com " Make A Happy Day.........LIFE Is But A MOMENT " From daemon@csg.lbl.gov Mon Dec 29 04:00:24 1997 From: daemon@csg.lbl.gov Date: Mon Dec 29 04:00:28 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Dec 29 04:00:21 PST 1997 Subject: Realtime C++ Query Subject: Re: Realtime C++ Query ------------------------------------------------------- Newsgroups: comp.arch.embedded,comp.realtime,comp.os.vxworks Subject: Realtime C++ Query Date: Sun, 21 Dec 1997 13:19:50 -0800 From: Harvey Taylor Organization: Organization? What organization?! Message-ID: <349D87F6.367A@despam.pangea.ca> Greetings, Several people where I work want to use C++ to develop VxWorks [GNU 2.7.2] device drivers. I would like to know what people's opinions are on using: -templates -multiple inheritance -virtual functions in a real time embedded environment... Comments? Experiences? - -het - -- "Simplicity is the ultimate sophistication." - old Apple logo Harvey Taylor het@despam_pangea.ca http://www.despam_pangea.ca/~het --------------------------- Newsgroups: comp.arch.embedded,comp.realtime,comp.os.vxworks Subject: Re: Realtime C++ Query Date: Sun, 21 Dec 1997 19:30:05 -0800 From: Ingo Pakleppa Organization: CTS Network Services Message-ID: <349DDEBC.F760615A@cts.com> References: <349D87F6.367A@despam.pangea.ca> Reply-To: ingop@cts.com All of these features are completely deterministic (well, for multiple inheritance, that's arguable ), so they should not have any effect on realtime performance. They will of course affect raw speed performance, but usually only in minute amounts, and often for the better rather than for the worse. And they can affect the memory footprint significantly. Templates are essentially nothing but the good old C macros in new clothes - well, at least, almost. The code in the template is going to get expanded multiple times - once for every combination of template parameters, or the code might get inlined (this depends on compiler and options; I'm not sure what GNU does). Either way, it means that your programs can get a considerably larger footprint. You can often minimize that effect by putting everything that is truly independent of the template parameters into a base class, and deriving the template class from that base class, keeping only those pieces of code that directly depend on the template parameters in the template class. Multiple inheritance is a mess, plain and simple, although some people feel that it's the greatest thing since sliced bread. This is a design issue unrelated to embedded systems. My advice is to avoid it like the plague, although there are situations that do justify using multiple inheritance. You'll find many people feeling very strongly about it either way - and few in the middle. As far as realtime embedded systems go: multiple inheritance per se shuldn't have any effect, although it can compound the memory needs of virtual functions. Virtual functions - ah, the beauty of C++. You will hear many people say that virtual functions make code slower. On the surface, that seems to be true - virtual functions are invoked indirectly through a jump table (aka vTable), which means an additional pointer dereferencing every time the virtual functions are invoked. However, in the bigger picture, the opposite is usually true - without virtual function, you'd usually have to implement the same functionality with a, sometimes length, list of if statements or a switch - and they execute a lot slower than the indirect function call. Or you could use function pointers - but then, you'd again have the extra indirection. One problem with virtual functions may be that the jump tables can take up a considerable amount of space in memory - so if that is at premium, you may want to restrict use of virtual functions to a few well-deserved cases. Moreover, if you have a virtual function in a template (even if you don't override it), you'll generate a vTable for each set of template parameters - compounding the problem. Harvey Taylor wrote: > Greetings, > Several people where I work want to use C++ to develop > VxWorks [GNU 2.7.2] device drivers. I would like to > know what people's opinions are on using: > -templates > -multiple inheritance > -virtual functions > in a real time embedded environment... > > Comments? Experiences? > > -het > > -- > "Simplicity is the ultimate sophistication." - old Apple logo > > Harvey Taylor het@despam_pangea.ca http://www.despam_pangea.ca/~het --------------------------- End of New-News digest ********************** From amolkho@madge.com Mon Dec 29 06:28:04 1997 From: "Adi Molkho ELdevmt-TA" Date: Mon Dec 29 06:28:07 PST 1997 Subject: REMOVE +---------------------------------+ Adi Molkho Madge Networks amolkho@lannet.com 972-3-6458351 From daemon@csg.lbl.gov Tue Dec 30 04:00:22 1997 From: daemon@csg.lbl.gov Date: Tue Dec 30 04:00:30 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Dec 30 04:00:14 PST 1997 Subject: Site of the day ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Site of the day Date: 22 Dec 1997 22:31:55 GMT From: Information Organization: Information Message-ID: <67mpor$237$129@news.nacamar.de> Check it out http://193.195.1.1/cgi-bin/grusha/ad/bluechip/ricochet.cgi?FroeberJ --------------------------- End of New-News digest ********************** From daemon@csg.lbl.gov Wed Dec 31 04:00:41 1997 From: daemon@csg.lbl.gov Date: Wed Dec 31 04:00:45 PST 1997 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Dec 31 04:00:40 PST 1997 Subject: Re: Strange SNMP GetNext behaviour Subject: Please tell me about all VME Applications. Subject: Moto MVME2303 ppc exceptions, interrupts, signals ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Strange SNMP GetNext behaviour Date: Mon, 22 Dec 1997 18:19:15 -0600 From: "Douglas A. Gribben" Organization: Netcom Message-ID: <349F0383.AC33644D@ix.netcom.com> References: <199712200013.QAA20623@lbl.gov> Salim Fakhouri wrote: > > Basically, when a table is empty I see > that the getNext function for this table > is called several times. My function > executes nextproc_no_next() so I do not > understand why the SNMP agent calls it > several times. > If the Manager issues a GetNext with multiple varbinds and your function doesn't take responsibility for all of them (that's what the for loop on vbp is for in the sample code) the next method will get called ad nauseum. It's harmless. --------------------------- Newsgroups: comp.os.vxworks Subject: Please tell me about all VME Applications. Date: 28 Dec 1997 20:02:52 GMT From: lsrsearch@aol.com (LSRsearch) Organization: AOL http://www.aol.com Message-ID: <19971228200200.PAA16397@ladder02.news.aol.com> Help, I am looking for VME applications. Specifically, I am trying to come up with an exhaustive list of all the applications for VME and down to as much detail/specifics as possible. I am creating a chart with the categories being: Specific Application, CPU type, Competing/Replacement Technology, Leading OEMs, Typical End-Products and Market Potential. Any help with my effort is greatly appreciated. Responding directly to my email address (LSRsearch@aol.com) is easier for me. Thanks, Lisa Solomon --------------------------- Newsgroups: comp.os.vxworks Subject: Moto MVME2303 ppc exceptions, interrupts, signals Date: 30 Dec 97 20:43:40 GMT From: "Shawn McCurdy" Organization: ComsatRSI Baseband Technologies Message-ID: <01bd1564$071e96c0$796f8586@smccurdy.comsatrsibb.com> I am thoroughly confused regarding the handling of what the various literature terms "exceptions" or "interrupts". I am working in the Tornado 1.0.1 environment, PC-hosted, with a MVME2303 (very similar to a 2603) PPC board. I thought that maybe signals were the way to go, but they really only handle a subset of the exceptions listed in the PPC literature. So looking in the VxWorks ref. manual, there is an excArchLib and an intArchLib. Each one has a connect routine. Is there some difference between these libraries - when does one use an exception handler as opposed to an interrupt handler? The terms exception and interrupt seem to be loosely interchangeable. And when is it preferred to handle an exception with a signal handler rather than using one of these other mechanisms? If there are examples or better documentation on this stuff that someone can point me at I would appreciate it. I am finding Wind River's BSP and lack of documentation very frustrating to deal with. Shawn McCurdy e-mail: gordon@magicnet.net --------------------------- End of New-News digest ********************** From rjpage@mit.edu Wed Dec 31 05:29:08 1997 From: "Russell J. Page, Sr." Date: Wed Dec 31 05:29:11 PST 1997 Subject: Advertising Hi All: I don't know about the rest of you out there, but I am getting pretty fed up with the unsolicited advertising as of late. This is SUPPOSSED to be a forum for users of vxWorks. I can accept "advertising" from WRS or other vendors of products related to our work, however advertising for life insurance, on-line gambling and just about any product you can think of, is out of line. What's worse, is when these items these items get incorporated into the daily digest. Personally, I believe "help wanted" ads are also out of place here, but TMHO. Isn't there something that can be done, maybe require registration of users, to eliminate some of this clutter ? Russ -- ----------------------------------------------------------------- |Russell J. Page, Sr. Phone (617) 253-9585 | |MIT Bates Linear Accelerator Ctr. FAX (617) 253-9799 | |PO Box 846 email :rjpage@mit.edu | |Middleton, MA 01949 http://mitbates.mit.edu/ | ----------------------------------------------------------------- From chenyc@fnal.gov Wed Dec 31 08:47:43 1997 From: Yenchu Chen Date: Wed Dec 31 08:47:46 PST 1997 Subject: Re: Advertising Hi, I agree with Russ that we should at least try to keep this forum clean. Anything being put out here should be VxWorks or at least VME related. Best regards, Yen-Chu Chen chenyc@fnal.gov (630) 840-8871 (experiment) (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica) From mabrouk@nortel.ca Wed Dec 31 10:07:17 1997 From: "Mabrouk Aboughanaima" Date: Wed Dec 31 10:07:20 PST 1997 Subject: Compiling vxWorks with gdwarf option Hi All, I'm developing a C++ application using vxWorks 5.3.1 for a PowerPC860 platform. I need to connect interrupt service routines to handle external = interrupts. My code works fine for edge interrupt but I can not get to work= = for LEVEL interrupts it seems to hang or crash VxWorks OS and I have to reb= oot = to establish the Tornado connection. = Here is how I'm coding the interrupts for edge triggered. unsinged long immrBase =3D vxImmrGet(); intConnect(IV_IRQ1, isr, 0); *SIEL(immrBase) |=3D SIEL_ED1; //Set for edge interrupt *SIMASK(immrBase) |=3D SIMASK_IRM1; // set the mask bit for IRQ1 //Here is the isr function void isr(void) { unsigned long immrBase2 =3D vxImmrGet(); *SIPEND(immrBase2) =3D SIPEND_IRQ1; // handle the interrupt here } As I said this code works fine all time. But the following code which is ve= ry similar to the above execpt I set the bit for LEVEL instead of EDGE does= not work Please if you see anything wrong let me know as soon as possible. unsinged long immrBase =3D vxImmrGet(); intConnect(IV_IRQ1, isr, 0); *SIEL(immrBase) &=3D ~(SIEL_ED1); //Set for LEVEL ie clear that bit *SIMASK(immrBase) |=3D SIMASK_IRM1; // set the mask bit for IRQ1 //Here is the isr function void isr(void) { unsigned long immrBase2 =3D vxImmrGet(); *SIPEND(immrBase2) =3D SIPEND_IRQ1; //handle the interrupt - = } Any help will be greatly apprecaited. Please e_mail or call me. Thanks a million. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Mabrouk Aboughanaima + Tel: (613) 763-6000 + + CDMA Radio Software + ESN: 393-6000 + + Nortel Wireless Networks + FAX: (613) 763-2686 + + P.O. Box 3511, Station 'C' + Internet: mabrouk@nortel.ca + + Ottawa K1Y 4H7 Canada + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ = = = =