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

📄 drt_watg.cmm

📁 数字通信第四版原书的例程
💻 CMM
字号:
# Copyright (C) 1994-96, The MathWorks, Inc.
# All Rights Reserved.          
# $Revision: 1.2 $  $Date: 1996/04/05 13:58:31 $
#
# Edited for use with CommunicationToolbox, v1.0.
#
# File     : drt_watg.cmm
# Abstract :
#
#       Template makefile for building DOS-based real-time version of
#       SIMULINK model using generated C code and the Watcom C/386
#       Compiler with GNU MAKE.
#
#       Note that this template be can automatically customized using make_rt.m
#       and the "Generate and Build Real-time" option under the "Code" menu
#       heading.
#
#       The error:
#         "C:\MATLAB\BIN\GMAKE.EXE: virtual memory exhausted. Stop."
#       will occur if your system does not have enough conventional memory.
#       For GMAKE to work properly, you should have at least 425K bytes of
#       free conventional memory.  See the "mem" command.
#

#------------------------ Macros Read By make_rt -------------------------
#
# Note: These macros are parsed by make_rt.  Thus they should not contain
#       other macros, as these macros will not be expanded.
#
MAKE = gmake
QUOTE = "
HOST = PC
BUILD = yes

#-------------------------- Customization Macros -------------------------
#
# The following set of macros are customized by the make_rt program.
#
MODEL           = |>MODEL_NAME<|
MAKEFILE        = |>MAKEFILE_NAME<|
S_FUNCTIONS     = |>S_FUNCTION_FILENAMES<|
INTEGRATOR      = |>INTEG_SRC_FILENAME<|
LOGGER          = |>LOG_SRC_FILENAME<|
COMM_LINK       = |>COMM_LINK_FILENAME<|

INTEG_DEFINES   = |>INTEG_DEFINES<|
LOGGING_DEFINES = |>LOGGING_DEFINES<|

MATLAB_ROOT     = |>MATLAB_ROOT<|

#------------------------------ Tool Locations ---------------------------
#
# Modify the following three macros to reflect where you have installed
# MATLAB, the Watcom C/386 Compiler, and the Phar Lap Assembler.  The
# Phar Lap Assembler is not required.  It is only used to compile rt_fpu.asm,
# which is also supplied in object file form.
#
WATCOM_ROOT = c:\watcom
PHARLAP_ROOT = c:\phar386

#---------------------------- Tool Definitions ---------------------------

ifeq ($(OS),Windows_NT)
CC = $(WATCOM_ROOT)\binnt\wcc386
LD = $(WATCOM_ROOT)\binnt\wcl386
else
CC = $(WATCOM_ROOT)\binw\wcc386
LD = $(WATCOM_ROOT)\binw\wcl386
endif

AS = $(PHARLAP_ROOT)\bin\386asm
PRINTENV = $(MATLAB_ROOT)\bin\printenv

#------------------------------ Include Path -----------------------------

CODEGEN_ROOT = $(MATLAB_ROOT)\codegen

MATLAB_INCLUDES = \
 -I$(MATLAB_ROOT)\simulink\include \
 -I$(CODEGEN_ROOT)\common\include \
 -I$(CODEGEN_ROOT)\rt\common \
 -I$(CODEGEN_ROOT)\rt\dos\os \
 -I$(MATLAB_ROOT)\toolbox\comm\commsfun \

COMPILER_INCLUDES = -I$(WATCOM_ROOT)\h

INCLUDES = $(MATLAB_INCLUDES) $(COMPILER_INCLUDES)

#-------------------------------- C Flags --------------------------------

# Required Options
REQ_OPTS = -fpi87 -3s

# Optimization Options
OPT_OPTS = -oaxt

# Debug Options
DBG_OPTS = -d2

# User Options
OPTS =

CC_OPTS = $(REQ_OPTS) $(OPT_OPTS) $(DBG_OPTS) $(OPTS)

CPP_REQ_DEFINES = -DMODEL_NAME=$(MODEL) -DMULTITASKING

CFLAGS := $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES) \
 $(INTEG_DEFINES) $(LOGGING_DEFINES)
CFLAGS1 := $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES)
CFLAGS2 := $(INTEG_DEFINES) $(LOGGING_DEFINES)

ASFLAGS = -twocase -nolist
LDFLAGS = -l=dos4g -x

#----------------------------- Source Files ------------------------------

REQ_SRCS = $(MODEL).c rt_main.c rt_keybd.c rt_sim.c simstruc.c rt_cpu.c
OPT_SRCS = timer.c
S_FCN_SRCS = $(S_FUNCTIONS)
INT_SRCS = $(INTEGRATOR)
LOG_SRCS = $(LOGGER)

C_SRCS = $(REQ_SRCS) $(OPT_SRCS) $(S_FCN_SRCS) $(INT_SRCS) $(LOG_SRCS)
C_OBJS = $(C_SRCS:%.c=%.obj)

ASM_SRCS = rt_fpu.asm modf.asm frexp.asm 
ASM_OBJS = $(ASM_SRCS:%.asm=%.obj)

OBJS = $(C_OBJS) $(ASM_OBJS)
OB2S = $(OBJS:%.obj=%.ob2)

LIBS =

PROGRAM = $(MODEL).exe

#--------------------- Exported Environment Variables --------------------
#
# Because of the 128 character command line length limitations in DOS, we
# use environment variables to pass additional information to the WATCOM
# Compiler and Linker
#
ifeq ($(OS),Windows_NT)
PATH := $(WATCOM_ROOT)\binnt;$(WATCOM_ROOT)\bin;$(WATCOM_ROOT)\binb
else
PATH := $(WATCOM_ROOT)\bin;$(WATCOM_ROOT)\binw;$(WATCOM_ROOT)\binw
endif
WATCOM := $(WATCOM_ROOT)

#--------------------------------- Rules ---------------------------------

# Note: Uses response file to pass in arbitrary number of object files.
$(PROGRAM) : $(MODEL).lnk $(OBJS)
	$(LD) /fe=$(MODEL).exe $(LDFLAGS) @$(MODEL).lnk $(LIBS) 
	del $(MODEL).lnk

$(MODEL).lnk ::
	@if exist $(MODEL).lnk del $(MODEL).lnk
	$(PRINTENV) CFLAGS
	
$(MODEL).lnk :: $(OB2S)

%.ob2 :
	@echo FILE $*.obj >> $(MODEL).lnk

%.obj : %.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : $(CODEGEN_ROOT)\rt\common\%.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : $(CODEGEN_ROOT)\rt\dos\os\%.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : $(CODEGEN_ROOT)\rt\dos\devices\%.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : $(MATLAB_ROOT)\simulink\src\%.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : $(MATLAB_ROOT)\toolbox\comm\commsfun\%.c $(MAKEFILE)
	$(CC) @CFLAGS1 @CFLAGS2 $<

%.obj : %.asm
	$(AS) $(ASFLAGS) $<

%.obj : $(CODEGEN_ROOT)\rt\dos\os\%.asm
	copy $(CODEGEN_ROOT)\rt\dos\os\$@ $@

fft387.obj : $(CODEGEN_ROOT)\rt\dos\os\fft387.obj
	copy $(CODEGEN_ROOT)\rt\dos\os\$@ $@

#----------------------------- Dependencies -------------------------------

rt_main.obj : $(MAKEFILE) $(MODEL).c

⌨️ 快捷键说明

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