由于尝试采用BC3.1创建uCOS-II的应用工程失败,失败原因及现象见上一篇中所描述。
因此,这里绕了一个圈,实现了两方面的需求:
一方面可以采用BC3.1的工程管理功能,实现对开发项目的管理,如增添文件等等功能
。可以对单独的文件进行编译(除了汇编文件),这样就可以在BC开发环境下,进行
代码的编写、编译、调试。
另一方面可以消除原来连接出错的问题,生成exe文件。基本思想是利用BC3.1的集成
开发环境,同时编写.mak文件进行编译、连接生成exe文件。现在以书上的第一个例子
为例,说明如下:
1.创建目录,如D:/SOFTWARE/mybaby
2.在mybaby目录下创建四个文件夹IX86L、OS、PC、SOURCE、TEST。
3.打开BC编译环境,创建工程TEST.PRJ,加入IX86L中的OS_CPU_C.C,
OS_CPU_A.ASM;OS中的uCOS_II.C;PC中的PC.C,加入SOURCE中的TEST.C。
4.设置BC编译环境中的TASM路径:Options->Transfer,选中Turbo Assembler更改其
路径,设置为实际TASM的路径,如D:/BORLANDC/BIN/TASM。
5.修改INCLUDES.H和uCOS_II.C中的一些路径,具体如下:
includes.h:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <setjmp.h>
#include "d:/software/mybaby/Ix86L/os_cpu.h"
#include "os_cfg.h"
#include "d:/software/mybaby/OS/ucos_ii.h"
#include "d:/software/mybaby/pc/pc.h"
uCOS_II.C:
#define OS_GLOBALS /* Declare GLOBAL variables
*/
#include "includes.h"
#define OS_MASTER_FILE /* Prevent the following
files from including includes.h */
#include "d:/software/mybaby/OS/os_core.c"
#include "d:/software/mybaby/OS/os_flag.c"
#include "d:/software/mybaby/OS/os_mbox.c"
#include "d:/software/mybaby/OS/os_mem.c"
#include "d:/software/mybaby/OS/os_mutex.c"
#include "d:/software/mybaby/OS/os_q.c"
#include "d:/software/mybaby/OS/os_sem.c"
#include "d:/software/mybaby/OS/os_task.c"
#include "d:/software/mybaby/OS/os_time.c"
6.进行了以上几步,就可以进行单个文件的编译了,如果此时说编译器说找不到可执
行的TASM2MSG,则可以将BC安装目录下(BIN)的TASM2MSG.EXE拷贝到工程目录下,则
所有.C文件都可以编译。
7.最后一步,拷贝原来书上例1即Ex1_x86l/bc45/test目录下的maketest.bat和
Test.mak文件到mybaby/test目录下,同时将Ex1_x86l/bc45/source目录下的
test.link拷贝到mybaby/source下。
8.修改工程的批处理文件maketest.bat,设置正确的make程序路径,如
D:/BORLANDC/BIN,即你所安装的BC中的make的路径。
9.修改工程的mak文件,主要是重新指定相应的路径,主要修改如下:
OS=../OS
PC=../PC
PORT=../Ix86L
10.再修改一下连接文件,SOURCE中的TEST.LINK文件,指定BC的实际路径,如:
D:/BORLANDC/LIB/EMU.LIB
11.OK,现在可以运行批处理文件MAKETEST.BAT,生成相应的可执行文件了。