⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmxread.doc

📁 上传一个带源代码的嵌入式实时多任务操作系统CMX
💻 DOC
📖 第 1 页 / 共 2 页
字号:
**************************************************************************
*									 *
*                 Supplemental Documentation File 			 *
* 	      for CMX CMX-RTX version 5.30 as of 9/24/99 		 *
*	  	  for use with Tasking C 80C166 tools			 *
*			CMXBug version 1.2				 *
*		      CMXTracker version 1.1				 *
*	    	   Copyright(c) CMX Co. 1999.				 *
*									 *
**************************************************************************
PLEASE NOTE:

The CMX sample files (ex. cmxlg.*, buglg.*, etc.) were configured
for the CMX PC being used to build these sample programs. The user
can easily go into the respective files and EDIT the drive and path
of where their TASKING C tools reside, the include directory, where
the CMX files are located, etc.

This will then allow you to use the project files, make files, batch 
files that are then configured for your PC.

TRADEMARKS:
CMX is a trademark of CMX Company.

NOTE: The following BSO/Tasking versions were used by CMX to create the
CMX code that is supplied to the user.

Tasking C compiler version V6.0 r5

************************************************************
			WARNING:

	The biggest error that user does, is forget to use the
CMX K_Task_End function just before the task end brace. This MUST
be done, unless the task will NEVER execute its end brace. If
this is not done, serious undesirable consequences may and will
happen.

************************************************************
			WARNING:

Depending upon the memory models that the user will be using,
the user should use the proper MAKE66?.MAK file for the
proper memory model, and then follow the steps outlined below.

 Also If the user has different versions of Tasking 80C166 tools then 
above, then they MUST use their version to compile ALL CMX functions, ALL 
CMX assembly files, and use the Librarian to create a new CMX library.
This is not hard to do. Just run the make.exe on the MAKE66?.MAK file
and then re-assemble all of the cxskv5?.asm assembly files. 
**************************************************************

NOTE: user may want to print this document out. It is suggested that the
printer be in the compressed mode and then perform the next step:
COPY cmxread.doc LPT1	
	or
COPY cmxread.doc LPT2	

NOTE: All users should read this whole document, even if all does not apply.


****************************************************************

some Tasking LIBRARY FUNCTIONS may not be re-entrant when dealing 
with interrupts, if they use any globals.
BE CAREFUL.

****************************************************************

Working with the Tasking compiler.
_____________________________________________


1. The user should NOT invoke a switch (option) that delays
stack adjustment after each function call UNLESS they are 
aware of its consenquences. The user should keep in mind that
each task has its own stack and it is advisable not to have
HUGE stacks for each task, thus allowing for delayed stack adjustment.
The user may use the switch (option) if they so choose though.

2. If the user is using FLOATING POINT MATH, the user should be aware 
that the Tasking fppopus function is coded incorrectly. Thus
the user should make sure that BSO fixes the coding problem, with the 
FPPUSHUS and FPPOPUS functions. Also there is a switch in the CMX 
assembly modules, that must be set to 1.

3. If the user is having INTERRUPTS using the switches -FR or -Fr 
because the interrupt is going to use floating point math or call
a function that uses floating point math and the interrupt does
NOT have its own floating point stack, then you MUST go into
the compiler generated assembly code and reverse the 
K_OS_Intrp_Exit (K_OS_Intrp_Exit_No_Frame) and __fppopus CALLS. The following is
the compiler generated assembly code without modifications
	...
	CALLS SEG _K_OS_Intrp_Exit,_K_OS_Intrp_Exit
	CALLS SEG __fppopus,__fppopus
	...
YOU MUST switch the above 2 lines, so it looks like this
	...
	CALLS SEG __fppopus,__fppopus
	CALLS SEG _K_OS_Intrp_Exit,_K_OS_Intrp_Exit
	...

Working with the Tasking linker.
_____________________________________________

1. the USER stack area generated by the linker, is only used until CMX 
is entered by the K_OS_Start function.

The following should be linked in for CMX to perform properly

1. the user file (or copy of cmx_init.c file) which includes the
file cxconfig.h (or copy of cxconfig.h file), which is the configuration
file that the user will edit.

2. the proper memory model assembly cxskv5?.asm file, which is the 
CMX assembly file, that does the context switching, interrupt handler, 
interrupt pipe, etc.  

3. The user should also specify the CMX library liba66?.lib file, which 
contains all the CMX library calls. Depends upon memory model used

4. Tasking "C" library for the proper "C" memory model.

5. all user's modules that pertain to the program that the user is creating

NOTE: it is advisable for the user to create a "username.ili/ilo" file
which is a command file that the linker will read and process, so the
user does not have to specify all the link options when linking. This
command file creation is descibed in detail in the Tasking manual.


For all users:
______________

NOTE: ALL the cxskv5?.asm files have been updated to help fix problems
in the 80C16x family silicon steps. The following have been added, according
to infomation that CMX has recieved. This does NOT mean that the compiler
also includes these fixes!

1. After BCLR IEN, CMX hax placed 2 NOP's instructions:
EX:
	BCLR IEN
	NOP		;added
	NOP		;added
	...	 	now back to regular code

2. Prior to RETI, CMX hax placed BLDDH PSW,#0F0H,#0F0H, followed also by 2 
NOP's instructions:
EX:
	BFLDH	PSW,#0F0H,#0F0H
	NOP		;added
	NOP		;added
	RETI	 	now back to regular code


**********************************************************************

	The user should read the manual COMPLETELY, before attempting
to work with CMX.

	The user should study the examples shipped by CMX. The user should 
try initially small and non-complex programs, as to understand how
CMX works and ties together with the Tasking "C" compiler, linker,
assembler, and librarian.

	The user should try NON-PAGED memory models initially, this
way the PAGING of code/ram will not add complexity to the user
while they are understanding and getting familiar with CMX

	The user should study the cmxsamp.c file that 
shows the user, 1 way to create the scheduling frequency with the timer 
interrupt. It is up to the user to create the CODE for invoking 
the CMX K_OS_Tick_Update call and choosing thier specific scheduling frequency.

	All the CMX assembly files "cxskv5?.asm" have a conditional
switch that allows the user to have the LOW POWER MODE invoked, if all
tasks can NOT run. This switch is set to 0, thus disabling the POWER DOWN
MODE. The user is free to set this "@SET" to a non zero value if they
would like POWER DOWN MODE capabilities. Also the CMX assembly files
must be assembled first by the MACRO ASSEMBLER. Then by the ASSEMBLER.

	The K_OS_Tick_Update.c function has been removed from the CMX library file
and is now contained within the cmx_init.c file. Also NO interrupt
task should EVER call a CMX function directly, so do NOT declare a
CMX function to be "GLOBAL" with the pragma directive.

	The CMX UART functions are ALL contained within the cmxio3.c 
file. They are NOT individual function modules or part of the CMX
library module(s). The user will have to edit this file, to properly
set up the particular CPU UART registers, the size of the buffers, etc.

	Below is a list of all files shipped by CMX and an explanation
of each.

 FILE:

ROOT directory

cmxread.doc	;this file

version.cmx	;Text file which shows what version of CMX is supplied
		;Should not be modified, Used for telephone support only

cxconfig.h	;This file is edited by the user and is the configuration 
		;file. (note: could be a copy of this and renamed).
		;Each time this or a copy of this file gets edited and 
		;changes made, the user MUST compile the cmx_init.c file
		;which includes this file. NOTE: if the user creates or
		;has a copy of this file under a different name, they
		;should go in to the cmx_init.c file (or copy) and change
		;the #include to bring in the proper .h module.

bgconfig.h	;Copy of cxconfig.h file, with defines set for the bugsamp
		;demo program. Enables CMXBug and bug_init.c module looks
		;for this file.

tkconfig.h	;Copy of cxconfig.h file, with defines set for the trksamp
		;demo program. Enables CMXTracker and trk_init.c module looks
		;for this file.

cmx_init.c	;Is the source code that that should be compiled by 
		;by the user each time the cxconfig.h file (or copy)
		;gets edited. Note: this file may also be a copy, so
		;the user should compile the proper copy named file.
		;This file initializes all CMX variables according to 
		;the user parameters specified in the cxconfig.h
		;file. 

bug_init.c	;Copy of cmx_init.c module, to show CMXBug demo program.

trk_init.c	;Copy of cmx_init.c module, to show CMXTracker demo program.

cxver5.c	;this is the CMX "C" file that contains ALL the 
		;CMX functions. This should never be compiled and
		;is given to the user to view ALL the CMX functions
		;together. This is to conceptionize how ALL the
		;CMX functions work together.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -