r1_6_2_st_tool

所属分类:单片机开发
开发工具:C/C++
文件大小:9744KB
下载次数:221
上传日期:2006-11-18 10:18:59
上 传 者schlin2999
说明:  ST方案机顶盒开发系统平台,其中有一些例子.
(program development platform, which has some of the examples.)

文件列表:
r1_6_2_st_tool (0, 2005-01-03)
r1_6_2_st_tool\autorun.inf (55, 1997-07-28)
r1_6_2_st_tool\ctl3d32.dll (25088, 1997-07-28)
r1_6_2_st_tool\inquest.ico (766, 1997-07-28)
r1_6_2_st_tool\libcxx2.lib (25555, 1999-07-23)
r1_6_2_st_tool\logo.bmp (72318, 1997-07-28)
r1_6_2_st_tool\setup.exe (47616, 1997-07-28)
r1_6_2_st_tool\setup.ins (63856, 1998-10-18)
r1_6_2_st_tool\setup.pkg (11529, 1998-10-18)
r1_6_2_st_tool\st20.rc (440, 1998-06-07)
r1_6_2_st_tool\uninst.exe (286723, 1997-07-28)
r1_6_2_st_tool\version (1906, 1998-10-20)
r1_6_2_st_tool\_inst32i.ex_ (306666, 1997-07-28)
r1_6_2_st_tool\_isdel.exe (8192, 1997-07-28)
r1_6_2_st_tool\_isuser.dll (22528, 1998-09-03)
r1_6_2_st_tool\_setup.dll (10752, 1997-07-28)
r1_6_2_st_tool\_setup.lib (43957, 1997-07-28)
r1_6_2_st_tool\make.exe (77882, 2002-03-27)
r1_6_2_st_tool\bin (0, 2005-01-03)
r1_6_2_st_tool\bin\console.exe (4608, 1998-05-07)
r1_6_2_st_tool\bin\conspawn.exe (4608, 1998-05-07)
r1_6_2_st_tool\bin\debrtos.dll (121344, 1998-10-12)
r1_6_2_st_tool\bin\genedsrv.exe (6656, 1998-05-07)
r1_6_2_st_tool\bin\jpidiag.exe (109056, 1998-10-15)
r1_6_2_st_tool\bin\libmsg.dll (5632, 1998-05-07)
r1_6_2_st_tool\bin\msvcrt40.dll (312832, 1995-09-29)
r1_6_2_st_tool\bin\noteserv.exe (6656, 1998-05-07)
r1_6_2_st_tool\bin\ntdinst.exe (25088, 1998-10-12)
r1_6_2_st_tool\bin\ptcomp.exe (95232, 1998-06-07)
r1_6_2_st_tool\bin\ptlink.exe (164864, 1998-06-07)
r1_6_2_st_tool\bin\st20cc.exe (215040, 1998-10-13)
r1_6_2_st_tool\bin\st20cfxx.exe (759808, 1998-06-07)
r1_6_2_st_tool\bin\st20gcpp.exe (130560, 1998-06-07)
r1_6_2_st_tool\bin\st20icc.exe (1170432, 1998-10-14)
r1_6_2_st_tool\bin\st20libr.exe (227840, 1998-06-07)
r1_6_2_st_tool\bin\st20link.exe (498176, 1998-10-18)
r1_6_2_st_tool\bin\st20list.exe (185856, 1998-06-07)
r1_6_2_st_tool\bin\st20o.dll (36864, 1998-06-03)
r1_6_2_st_tool\bin\st20run.exe (1217536, 1998-10-18)
r1_6_2_st_tool\bin\st20sim.exe (445952, 1998-06-07)
... ...

OS/20 release 2.05.03 This release of OS/20 is for use with both the OS-link based toolset, (ST20-SWC, release 2.0, on both Sun and PC platforms) and DCU based toolset (Osprey, release 1.6). Known problems with this release: - (OS link only) the OS/20 trap handler is always copied into internal memory, by allocating from the internal memory partition. This means that it is not possible to have a completely static installation, despite the comments to the contrary in the user manual. - Normal priority semaphores still can not be signalled from interrupt handlers or high priority processes, however priority semaphores with timeouts can be used in this way. Interrupt latency ----------------- OS/20 has been designed to be used in set-top-box applications with a software demultiplexor. On current chips this requires a very low interrupt latency to ensure that packets are not dropped. The largest block of code for which interrupts are disabled is the scheduler trap handler, invoked by the hardware every time a context switch may be required. The length of time the trap handler executes for is heavily dependent on the environment it is run in. For this reason the internal memory partition is used for some critical allocations: - trap handler code - trap handler workspace - all important variables - normally all task's 'TDesc' structures (created using task_create) In addition is is recommended that the workspace for interrupt handlers is allocated from the internal memory partition, as the trap hander will have to access this to perform context switches while an interrupt is active. When all these actions are taken, it is possible to reduce the interrupt latency to a maximum of 6uS on a C4B core, less on a C2B. BETWEEN_HIGH_AND_LOW -------------------- In many cases the interrupt latency introduced by the scheduler trap handler is acceptable. However in some cases it may be necessary to reduce it even further. The configuration option BETWEEN_HIGH_AND_LOW allows the scheduler trap handler to run with high priority interrupts still enabled. The advantage of this configuration is that high priority processes and interrupts can run with only the hardware latency. However, an unfortunate side effect of doing this is that it is now the user's responsibility to ensure that the scheduler trap handler is not re-entered. Low priority interrupts are still disabled, so re-entrency can only occur if a high priority process or interrupt performs an operation which will generate a low priority scheduler trap. In particular this means that some operations cannot be used from high priority: - signalling a semaphore which could have a low priority OS/20 task waiting on it - performing any channel operations where the other end of the channel is connected to a low priority OS/20 task However communication between the high priority process and the low priority OS/20 task can still be performed, as long as it is through a mechanism which will defer the communication until it is safe to enter the trap handler. The easiest way to do this is to use a low priority interrupt, which is triggered from high priority but doesn't run until the high priority process has descheduled, and the trap handler has completed (if it was executing). An example of this is provided in the "examples/between" subdirectory. Building -------- To rebuild OS/20 (Unix): - cd to the top level directory of the OS/20 source tree - make -f makefile.top tp - libraries and header files will be copied into the dist-tp subdirectory - Ignore errors about failure to copy example files To rebuild OS/20 (PC): - cd to the top level directory of the OS/20 source tree - make -f makefile.top tp-pc - libraries and header files will be copied into the dist-tp subdirectory - Ignore errors about failure to copy example files Change history -------------- v2.02.01 - DCU 'product' release with Osprey 1.1. v2.02.02 - Fix DCU dependencies for OS-link release v2.02.03: - Changes to adapt to the new C1 calling conventions. v2.02.04: - A number of changes have been made to the scheduler trap handler to improve performance. - Code to move the scheduler trap handler's code into internal memory has been reinstated. - BETWEEN_HIGH_AND_LOW option reinstated. v2.03.00 - added #pragma ..._translate to all visible functions in the header files. - added CONF_INTERRUPT_RESTORE_REGS and CONF_INTERRUPT_PRIORITY_FIX macros and associated work arounds to overcome C2 silicon bugs. - added a task_class to the task structure to ensure the new function task_delete works correctly for tasks created with both task_create and task_init. - added a check to task_unlock to ensure SchedulerLock doesn't go negative. v2.03.01 - Removed the dependence on __CORE__ when compiling with the DCU toolset, and require Cx_CORE to be explicitly defined. - added functions interrupt_uninstall and interrupt_delete. v2.03.02 - added CONF_INTERNAL_CHANNEL_STATUS_FIX and CONF_SAVE_2DBLOCK_MOVE. - fixed a bug in kernel_initialize which failed to report one memory allocation failure. - moved interrupt controller related data from os20i.h to a new files: intregs.h. - fixed the return type of task_delete (was void, should have been int). - broke the interrupt.c file into multiple files, one function per file. - fixed a confusion in roottask_stack_size/_base for OS link, over what the 'base' of the stack means. This fixed a bug which prevented main returning correctly because the exit longjmp was being corrupted. v2.03.03 - added semaphore_wait_timeout for FIFO semaphores. v2.03.04 - fixed a bug in the implementation of semaphore_wait_timeout which could cause corruption of local workspace. v2.03.05 (internal release only) - A complete re-write of the semaphore_wait_timeout code, which resulted in a much more reliable mechanism. - Implemented a simple profiling mechanism, enabled by CONF_TIME_LOGGING. - Added message_delete_queue. - Fill in task stack with a known value to aid workspace usage calculations. v2.03.06 (internal release only) - Added CONF_HIGH_PRI_INTERRUPT_SWITCH to allow context switching from high priority interrupt handlers. - Added InterruptStack array to record details of interrupt stack usage, so that st20run can display interrupt handlers. - Commented out workspace filling, as it causes problems for some applications. To be investigated. v2.03.07 - Fixed a problem with the level triggered interrupt workaround, which prevented it working when compiled with the DCU toolset - Added CONF_INTERNAL_CHAN_ALT_FIX instead of using the CORE macros. - Added DDTS bug numbers for the workarounds in conf.h v2.03.08 - Inherit the breakpoint, error and system portion of Enables (groups 0-2) from the start up value. This allows more control over the selection of debugging flags. - Fixed a problem with semaphore_create_fifo which prevented it being used with semaphore_wait_timeout. v2.03.09 - Renamed various files to fit within 8.3 filename restrictions, and added PC makefiles - Change to C1 software interrupts to ensure that no interrupts are lost, or spurious interrupts triggered when there is nothing to do. v2.03.10 - restored CONF_HIGH_PRI_INTERRUPT_SWITCH code in kernel.c which was accidently deleted in 2.03.07 version. v2.04.00 - Changed timeouts on FIFO semaphores to use a doubly linked list, faster than the previous implementation. - Added support for timeouts on priority semaphores. - Changed the initialisation of timeouts on semaphores to require a different initialisation function, reduces complexity (no need to convert existing queue from singly linked to doubly linked lists) and memory requirements. Introduced four new functions: semaphore_init_fifo_timeout semaphore_create_fifo_timeout semaphore_init_priority_timeout semaphore_create_priority_timeout - Implemented timeouts on message queues. Four new functions: message_init_queue_timeout message_create_queue_timeout message_claim_timeout message_receive_timeout - Changed locks in message queue functions from task to interrupt, allowing them to be used from interrupt handlers. - Added CONF_C1_INTERRUPT_SYNC_FIX for a C1 interrupt bug. - Added locks around updates to software interrupts register, to remove possibility of spurious interrupts. - Clear pending bit in C1 interrupt handler when looping. Removes another source of possible spurious interrupts. - Split task.c into multiple files. - Wrote PC makefiles for OS-link toolset version. - Added per task data pointer, two new functions: task_data task_data_set - Modified task_id to make it work from high priority processes. - Replaced task_end function with task_exit, now callable from anywhere. - Added task exit function, and a new function: task_onexit_set - Renamed task_[gs]et_priority to task_priority and task_priority_set. - Removed __FULL_DEBUG__ to mean Inquest support and introduced two new macros CONF_INQUEST_SUPPORT and CONF_EXIT_TRAP_IDLE_SUPPORT. - Changed version numbering to use macros in kernel.h, and generate an information module which can be inspected with ilist/st20list. - Moved finished channel from the tdesc_t to task_t, as no STi5500's have the problem of channels in +ve addresses any more. v2.04.01 - Added KernelState and modified semaphore_init_generic so that task_lock only called when the kernel has been initialised. Avoids a NULL pointer dereference. - Changed interrupt number validity check in various functions from InterruptInputs (which was wrong anyway, it should have been InterruptNumbers) to INTERRUPT_INPUTS to allow more numbers than the hardware supports. v2.05.00 - Added support for C1. - Added task_suspend (and task_flags_suspended to task_init) and task_resume. - Implemented task_priority_set when applied to another task. - Added extern "C" in all header files v2.05.01 - Lots of C1 context switch performance improvements - Implementation of missing C1 functions (timeouts on semaphores and message queues, task_suspend, task_resume and task_wait). - Fixed a race condition in the CLEAR_PENDING work around, which could cause software interrupts to be lost. - Created a proper channel class, allowing channel_delete to be implemented - Implemented chan_reset, and removed the channel reset from chan_init_address - Made channel and semaphore lists available through function calls, in the same way as task lists were previously. - Changes to C2 kernel profiling: record min, max total and count for each path, and split one path into two, making a total of eight. - Changes to C2 time logging: introduced functions to retrieve the results and task_ps, introduced interrupt time logging and corresponding functions to retrieve results and interrupt_ps, put stack filling for tasks and interrupts back in, and added option to init functions to suppress it. - Added CONF_INTERRUPT_PARAM making the parameter to interrupt handlers option to reduce memory usage. - Renamed interrupt handler sections (Osprey toolset) to remove ambiguity, and bring into line with other OS/20 section names. v2.05.02 - Fixed task_priority_set() so that task with a new priority is scheduled accordingly. - Fixed task_wait() on C1 which caused a waiting task to deschedule indefinately when waiting on a task which had already terminated. - Several changes made to OS/20-C1. Timer interrupt handler has been fixed so that timer events are no longer missed. Interaction between OS/20 and plug-in module has been improved. Various enhancements made to plug-in module. - Introduced CONF_INTERRUPT_LOCK_RECORD to record the maximum time spent with interrupts disabled. v2.05.03 - Fixed a problem with priority based semaphores without timeout which was potentially not thread-safe. - Added -fd to PC makefile so that kernel accesses volatile data with a a device read/write.

近期下载者

相关文件


收藏者