|
Q: "How many of the microprocessor's timers does the Nucleus Plus RTOS occupy?" A: Nucleus Plus RTOS uses just one timer for generating all timing services provided by the kernel. In the event no timing services are required, then no CPU timer is required. Typically our customers use 10ms as the granularity of the kernel timer, although this can be modified depending on the needs of your application.
Q: Does Nucleus Plus support the FEC (Fast Ethenet Controller) on the 860T? A:Yes.
Q:"Does Nucleus have a protect mechanism?" A: Nucleus PLUS uses a protection structure to avoid data corruption within a service. The structure maintains a list of pointers to the task or interrupt thread control structures that are using the protected area as well as an indication that another thread is waiting for the protected area.
Q:"Does Nucleus support intertask communication?" A: Nucleus PLUS provides mailboxes, queues and pipes for task communication. These are independent public facilities and association with tasks or other system facilities are determined by the application. Each structure may be dynamically created and deleted and there is no preset limit on the number of each structure the application may use.
Q:"What's the difference between a queue and a pipe?" A:Both provide a method to achieve task communication. Nucleus PLUS queue messages consists of one or more 32-bit words. Pipe messages consists of one or more bytes. For communication not requiring word-sized messages, Nucleus PLUS pipes provide a method of message passing that does not require filler within the message.
Q: "As soon as the demo program is started in a MPC board, a decrementer interrupt is taken and the program stops. Why?" A: If your debugger is trapping the decrementer interrupt, this is the problem. When SingleStep starts up and takes control of the board, it initializes the DER register to a value that causes all interrupts to be trapped by the debugger. The Nucleus demo requires the decrementer interrupt for correct operation, so the initialization value for the DER must be changed to allow the decrementer interrupt to be handled by Nucleus. This should be done by modifying the configuration file that SingleStep uses to initialize the hardware. The configuration file has the extension .CFG and is normally found in the \cmd sub directory of the SingleStep product installation. In the configuration file, the following line: @ DER = 0xFFE7400F should be changed to @ DER = 0xFCC7400F
After this change has been made, SingleStep will be able to initialize the hardware without trapping the decrementer or external interrupts.
Q:"How does Nucleus PLUS handle interrupts?" A: Nucleus PLUS uses a two stage interrupt handling scheme, which accomplishes the following: Interrupts are locked out for as brief a time as possible Interrupt service routines can be associated with particular interrupt vectors dynamically, from the application.
A Low level Interrupt Service Routine is registered with a specific interrupt vector, using the NU_Register_LISR service call. It is this LISR which responds directly when the interrupt signal is asserted. This routine does only the most immediate portion of interrupt servicing. This can be as little as clearing the cause of the interrupt and 'Activating' a High level Interrupt Service Routine with a call to NU_Activate_HISR. When this short LISR completes, it returns control to the scheduler, not to the point of interrupt. As soon as control passes to the scheduler, the 'Activated' HISR is found ready to run, and control passes to the HISR, which runs to completion, unless another interrupt signal is asserted before it can finish. Interrupts are re-enabled in the process of returning control to the scheduler. To take full advantage of the opportunity to minimize interrupt latency, as much of the interrupt servicing as possible should take place in the HISR, rather than in the LISR.
The HISR has much in common with a task. Like a task, it runs subject to the scheduler, but because all HISR's run at a priority above all tasks, no task will run before all 'Activated' HISR's have completed. This includes the task that was interrupted by the 'Activating' LISR. Any changes to the readiness status of tasks that result from calls made by the HISR will not take affect until the HISR is finished.
A LISR has practically no access to system calls, except for NU_Activate_HISR and a handful of informational calls.
HISRs are allowed to make practically any system service call, as long it does not lead to a suspension. This makes it necessary to use the NU_NO_SUSPEND option for many of the service calls where suspension could otherwise occur. Nothing should be allowed to prevent a HISR from running to completion.
Q:"What are Board support packages?" A:If an OS comes only as binary executables, or as an object library, the vendor must either provide a version built to run on your exact hardware, or provide the routines to handle hardware specific functions and interface with the more generic binary code. They often call this target specific code a 'Board Support Package', and if none is available for your board, you either change boards or wait for the BSP to be done.
With a source code OS, the situation is much different. With every port, we provide the source code to the target-specific low level routines. In almost every case, (including our embedded x86 port) these have been built and run on at least one actual target board. We refer to that as a 'run-time package' for that particular board. If you want to use a different board, you alter these files to match your particular peripheral set and memory mapping, and move on.
We generally do not attempt to initialize and provide a driver for every peripheral device on a board (or on a highly integrated chip). We do enough to get our demonstration program running, which requires, at a minimum, that a timer be initialized to provide a periodic interrupt. This must be captured and serviced by Nucleus PLUS in order to provide the system timer.
In a couple of rare cases, we have provided for more complete support of the peripherals on a particular target board. We refer to this additional peripheral support as a 'board support package'. As you can see, with us, 'board support package' refers to something that, while admittedly a convenience, is by no means necessary in order to use Nucleus PLUS on a particular target board.
Practically all of the many customers who have used PLUS have done so without 'board support packages' from us. Many of those customers have used boards for which even a "run-time package" was not available.
Q:"Does Nucleus PC Development Kit allow simulation of hardware interrupts?" A:The Nucleus PC Kit does not allow simulation of hardware interrupts, but it does offer the possibility of experimenting with the real thing. For example, an experimental interrupt handler could be registered for IRQ4 and another PC could be used to fire characters at COM1. Of course, the BIOS must pass those interrupts to the anticipated IRQ, and the BIOS intervention may impose a speed limit, but this technique should still provide better simulation of interrupts than what would be possible with a software-only scheme.
Q:"Does Accelerated Technology do anything about priority inversion?" A:We have a protection mechanism that works like a software monitor. It uses a scheme comparable to priority inheritance when a higher priority task needs a resource that is in the exclusive possession of a lower priority task. The lower priority task is allowed to run just far enough to release the resource, and then control returns to the higher priority task, which is then able to continue, with exclusive access to the resource it needed.
Q:"Why does PLUS run all tasks in Supervisor mode instead of using User Mode for tasks and Supervisor mode for PLUS system calls?" A:Portability and ease of use. Without having to worry about User/Supervisor mode, the PLUS function calls can be function calls. Without it, you usually have to map all of the OS function calls into some type of software trap mechanism. This complicates the system and usually adds overhead that is not needed. Also, our PLUS is a Real Time Kernel, not a full blown OS. The distinction is that a Kernel needs to be small and efficient while still providing System Calls that are robust. A Trap mechanism adds code and hurts performance.
Q:"What target boards have Nucleus PLUS been tested on for the Motorola MPC860?" A:Nucleus PLUS has been tested on the FADS and MBX boards for the Motorola MPC860, as well as on the EST SBC860.
Q: "Is Microsoft going to package Visual C++ 1.52 (16 bit windows or DOS application development) with Visual C++ 5.0 like they did with Visual C++ 4.0." A:No. Microsoft has decided to provide Visual C++ 1.52 as well as the Visual C++ 4.1 & 4.2 subscription versions as customer service disks to their Visual C++ 5.0 customers. The customer service disks can be ordered at 1-800-360.7561.
Q: "How does the BDM work regarding the ColdFire 5206 processor?" A:BDM communicates directly to the core through a JTAG connection. This means that there is no need for on board monitor to be running. Basically, the BDM is a much less intrusive and more robust means of debugging.
Q: "What is the intrusiveness of DBUG+?" A:DBUG+ runs as a task. It is minimally intrusive until a command is received, at which point Nucleus DBUG+ will query the kernel for information and return it to the host.
Q: "Can Nucleus PLUS be used without BIOS?" A: Yes, Nucleus PLUS can be used without BIOS.
Q: "How can you define your own MIB using Nucleus SNMP?" A: ATI's Nucleus SNMP product comes with an example enterprise MIB which provides an example of how to define your own MIB.
Q: "What drivers are supported by Nucleus PLUS?" A:
Chip Set/ Driver Boards 91C92 SMC 83C690 SMC (83C790 may be software compatible) 83932 (SONIC) National Semiconductor MB86960 (NICE) FUJITSU 68360 (QUICC) Motorola PP860 (PQUICC) Power PC 860 Packet Driver Can be used with any card whose manufacturer supplies a packet driver Am7990 (LANCE) AMD Am79C970 (PCnet family) AMD (All chips in the PCnet Family-Am79C960, Am79C961, Am79C970- are software compatible) Am79C94 (MACE) AMD DP83902 (Nec2000) National Semiconductor (Can be used with any NE2000 compatible) PCM-NE2000 WinSystems sells an NE2000 board that plugs into a PC/104 bus. CS8900 Crystal/Cirrus SLIP Serial Line IP - UART Chip driver will be supplied with driver PPP Point to Point Protocol - UART Chip driver will be supplied with driver 85c30 Synchronous serial driver. DEC21143 10/100mb device. 860TFEC 10/100mb Fast Ethernet Controller on PPC86OT
Q: "What does the "Debug" compile flag do?" A: The Debug compile flag must be enabled to allow for source code debugging. The debug option insert the source code information into the object file so the debugger can reference the source code to the executable code.
Q: "What is the size of Nucleus PLUS and other Nucleus components?" A:
Plus: 14-45k ROM 2-7k RAM Net4.0: 50-60k ROM 80-100k RAM SNMP: 30-50k ROM 100-140k RAM RMON: 60-100k ROM 110-120k RAM PPP: 25-30k ROM 5kRAM SMTP: 28k ROM 23k RAM POP3: 8k ROM 12k RAM SPAN: 16k ROM WebServe: 15-21k ROM 3-5k RAM Grafix: 120-160k ROM 1-20 mb RAM CLIB: 35-40k ROM FILE: 35k ROM WEBBROWSE: 600k ROM
Q: "How do I modify the assembly file to get a new port when I am using another compiler with Nucleus PLUS?" A: Basically, the batch files need to be modified to support the new tools. The three assembly files may need to be modified to support different assembler directive key words or syntax. Also, with some ports there may exist a start up routine required by the compiler. This routine may be different depending on the tools.
Q: "Does Nucleus PLUS answer to OSEK specifications (cars)?" A: ATI is developing a version of OSEK to be released 3rd Quarter of 1999. Nucleus OSEK will initially support the Siemens C167. Q: "What is your licensing policy?" A: ATI's licensing policy is one CPU, one product, one development facility. We provide the source code without royalty fees as a benefit to the user.
Q: "What does Accelerated Technology have regarding PCMCIA support and what is the strategy?" A: ATI has a PCMCIA driver for ATA type devices (hard drives). We have a third party which supports plug and play (hot swapping) PCMCIA devices.
Q: "Do we offer I20 support?" A: No, we do not offer I20 support.
Q: "Does PLUS have virtual memory support?" A: No, it does not.
Q: "Does PLUS have memory paging?" A: No, it does not.
Q: "Does Accelerated Technology offer BDM Support?" A: Yes, ATI offers BDM support through SDS Single Step.
Q: "Do we offer flash file support?" A: A third party provides support for flash and disk on chip devices for ATI.
Q: "Is PLUS scalable?" A: Yes, Nucleus PLUS is definitely scalable.
Q: "Are all products sold by ATI provided with source code?" A: All target and prototyping products are delivered with source code. Development tools such as debuggers, compilers and the host side of UDB do not come with source code.
Q: "Is Nucleus ROMable?" A: Yes, Nucleus is ROMable.
Q: "When will support for Dynamic Downloading be offered?" A: A Dynamic Downloading product is currently under development and may be released in the 3rd Q of 1999.
Q: "Does Nucleus have a BSP?" A: A BSP is not required for Nucleus PLUS since source code is provided. The Nucleus PLUS code supplied has initialization code for a particular eval board. This code sets up the interrupt vector table, an interrupt handler for the timer used by Plus timer services and sometimes cache and MMU (depending on CPU). Certain peripherals may also be initialized.
Q: "Do you offer Posix support?" A: No, we do not.
Q: "Does UDB come with UART?" A: UDB comes with a UART driver. The host to target communication is accomplished over the serial driver.
Q: "Do we offer support for Streams?" A: No, we do not.
Q: "Do you offer support for CGI?" A: Yes, we do.
Q: "Does Nucleus PLUS support intertask communication?" A: Yes, Nucleus PLUS supports intertask communication through pipes, queues and mailboxes.
Q: "Does Nucleus support multiple threads?" A: Yes, it does.
Q: "Does Nucleus have a protect mechanism?" A: An MMU product, which will provide protection services, is under development. Nucleus Plus provides protection mechanisms for kernel objects. Semaphores are provided for general protection needs.
Q: "Does Nucleus C++ support the full set of ANSI C++ features such as exception handling and run time type information?" A: This is more a question of what the particular compiler supports. If the compiler supports the new ANSI feature, then Nucleus C++ will support the feature. The one exception is thread-safety of C++ Exceptions. We have only built-in thread-safe Exception support using Diab Data. Unwinding the stack in the presence of multiple threads requires synchronization of specific implementation details in a particular compiler's implementation. Support for thread-safe Exception handling on other platforms will be done on a request basis.
|