📄 rd_usecooperatingminios.lis
字号:
.module RD_UseCooperatingMiniOs.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
.area data(ram, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
0000 _g_cCOSPROCCounter::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
0001 _g_cScheduleTest::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
0000 .dbfunc e NULL_PROC _NULL_PROC fc
.even
0000 _NULL_PROC::
0000 .dbline -1
0000 .dbline 89
0000 ; /***********************************************************
0000 ; * 函数库说明:合作调度器基本函数库 *
0000 ; * 版本: v1.01 *
0000 ; * 作者: 王卓然 *
0000 ; * 创建日期: 2006年8月28日 *
0000 ; * -------------------------------------------------------- *
0000 ; * [支 持 库] *
0000 ; * 支持库名称:RD_UseCooperatingMiniOs.h *
0000 ; * 需要版本: ----- *
0000 ; * 支持库说明:合作调度器基本声明库 *
0000 ; * *
0000 ; * 支持库名称:RD_MacroAndConst.h *
0000 ; * 需要版本: v0.04 &abv *
0000 ; * 支持库说明:系统常用宏定义库 *
0000 ; * -------------------------------------------------------- *
0000 ; * [版本更新] *
0000 ; * -------------------------------------------------------- *
0000 ; * [版本历史] *
0000 ; * -------------------------------------------------------- *
0000 ; * [使用说明] *
0000 ; * 1、在系统初始化的时候调用函数CmOSInit()来初始 *
0000 ; * 化消息对系统;同时通过定义宏 *
0000 ; * COS_REGISTER_PROC_FUNCTION来说明静态进程函 *
0000 ; * 数的消息处理函数和动作函数(使用函数指针)。 *
0000 ; * 每增加一个静态进程,要更新一次进程计数器 *
0000 ; * COS_Proc_Counter,保证每一个进程都能被有效 *
0000 ; * 的寻址。 *
0000 ; * 7、用户可以通过宏COS_PROCESS_COUNT来定义最大的 *
0000 ; * 进程PCB数量。这个数值直接影响系统允许的静态 *
0000 ; * 进程的数量,并要占用一定的空间。这个数目的 *
0000 ; * 最小值是1,因为默认有一个系统默认消息处理 *
0000 ; * 进程。 *
0000 ; * 8、用户需要COS_REGISTER_MSG_FUNCTION宏来说明 *
0000 ; * 系统进程的初始化函数,通过这个初始化函数告 *
0000 ; * 诉消息系统,一共有多少静态进程,并且说明这 *
0000 ; * 些静态进程的相关函数指针是什么。 *
0000 ; ***********************************************************/
0000 ;
0000 ; /********************
0000 ; * 头 文 件 配 置 区 *
0000 ; ********************/
0000 ; # include "RD_MacroAndConst.h"
0000 ; # include "RD_UseCooperatingMiniOs.h"
0000 ;
0000 ; /********************
0000 ; * 系 统 宏 定 义 *
0000 ; ********************/
0000 ;
0000 ; /*------------------*
0000 ; * 常 数 宏 定 义 *
0000 ; *------------------*/
0000 ; #ifndef COS_PROCESS_COUNT
0000 ; //# define COS_PROCESS_COUNT 8
0000 ; #error Need for COS_PROCESS_COUNT!
0000 ; #endif
0000 ;
0000 ; /*------------------*
0000 ; * 动 作 宏 定 义 *
0000 ; *------------------*/
0000 ; #ifndef COS_REGISTER_PROC_FUNCTION
0000 ; # define COS_REGISTER_PROC_FUNCTION
0000 ; #endif
0000 ;
0000 ; /********************
0000 ; * 结构体宏定义 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 函 数 声 明 区 *
0000 ; ********************/
0000 ; BOOL NULL_PROC(void);
0000 ; void CMOS_INIT(void);
0000 ; void Process_Task(void);
0000 ;
0000 ; /********************
0000 ; * 全局变量声明区 *
0000 ; ********************/
0000 ; volatile PROCESS ProcPCB[COS_PROCESS_COUNT+1];
0000 ; uint8 g_cCOSPROCCounter = 0;
0000 ; uint8 g_cScheduleTest = 0;
0000 ;
0000 ; /***********************************************************
0000 ; * 函数说明:空函数 *
0000 ; * 输入: 无 *
0000 ; * 输出: 无 *
0000 ; * 调用函数:无 *
0000 ; ***********************************************************/
0000 ; BOOL NULL_PROC(void)
0000 ; {
0000 .dbline 90
0000 ; return FALSE;
0000 0027 clr R16
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e CMOS_INIT _CMOS_INIT fV
0004 ; Reg1 -> R10,R11
0004 ; n1 -> R20
.even
0004 _CMOS_INIT::
0004 00D0 rcall push_xgset300C
0006 .dbline -1
0006 .dbline 111
0006 ; }
0006 ;
0006 ; /***********************************************************
0006 ; * 函数说明:消息队列系统初始化函数 *
0006 ; * 输入: 无 *
0006 ; * 输出: 无 *
0006 ; * 调用函数:COS_REGISTER_PROC_FUNCTION *
0006 ; * -------------------------------------------------------- *
0006 ; * [注意事项] *
0006 ; * 1、ProcPCB[]是一个函数指针数组,里面登记着 *
0006 ; * 所有系统合法的消息处理函数的地址。 *
0006 ; * 2、ProcPCB[]下标中,0为系统保留,其余为用户 *
0006 ; * 自定义。 *
0006 ; * 3、用户需要自己通过编写函数并通过连接宏 *
0006 ; * MSG_REGISTER_PROC_FUNCTION来注册合法消息处理 *
0006 ; * 函数。 *
0006 ; * 4、编程的时候,每增加一个静态的进程,就要增加一 *
0006 ; * 次进程计数器MSG_Proc_Counter。 *
0006 ; ***********************************************************/
0006 ; void CMOS_INIT(void)
0006 ; {
0006 .dbline 112
0006 ; uint8 n = 0;
0006 .dbline 114
0006 ;
0006 ; for (n = 0;n<COS_PROCESS_COUNT+1;n++)
0006 4427 clr R20
0008 14C0 rjmp L6
000A L3:
000A .dbline 115
000A ; {
000A .dbline 119
000A ; #ifdef _USE_MESSAGE_PROC
000A ; ProcPCB[n].ProcIO = SYS_DEFAULT;
000A ; #endif
000A ; ProcPCB[n].Proc = NULL_PROC;
000A 83E0 ldi R24,3
000C 849F mul R24,R20
000E 5001 movw R10,R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -