zoukankan      html  css  js  c++  java
  • μC/OS II(一) PC编译环境的搭建

    这个系列博文是关于对《嵌入式实时操作系统 μC-/OS II》(第二版)的学习笔记

    μC-/OS II (一)  PC编译器环境的搭建

    1.关于编译器

    采用Borland C++ 4.5作为μC-/OS II源代码的编译器。

    下载地址

    还需要TASM 5.0

      TASM是Borland公司推出的汇编编译器,也是一种使用很广泛的编译器,到目前为止,TASM的最后一个版本是5.0版,这个版本支持WIN32编程,并单独为WIN32编程附带有一整套32位程序:32位的编译器TASM32.EXE、连接器TLINK32.EXE和资源编译器BRC32.EXE。

    下载地址

     

    2.编译器安装

    1.将Borland C++ 4.5解压,运行INSTALL.EXE,尽量选择默认安装路径“C:\BC45”

    2.将TASM.EXE复制到Borland C++ 4.5的安装路径,即"C:\BC45\BIN"中。

    3.编译器设置

    首先在硬盘中新建一个文件夹用来放置整个调试工程文件:

    E:\6_OS\TEST1

    在TEST1下分别新建了三个文件夹分别用于存放源代码,目标文件,

    E:\6_OS\TEST1\OBJ

    E:\6_OS\TEST1\PROJECT

    E:\6_OS\TEST1\RELEASE

    E:\6_OS\TEST1\SOURCE

     新建Project->New Project

    选择Dos标准平台

    工程文件设置

    选择好路径后确认保存

     高级设置

    生成的工程界面如下:

    添加源文件节点

    • 将μc/os II源码中\SOFTWARE\uCOS-II\EX1_x86L\BC45\SOURCE中的INCLUDES.H,OS_CFG.H和TEST.C三个文件拷贝到你第一步创建的放置源文件的文件夹内,我的是  E:\6_OS\TEST1\SOURCE
    • 添加

    \SOFTWARE\uCOS-II\Ix86L\BC45\OS_CPU_A.ASM

    \SOFTWARE\uCOS-II\Ix86L\BC45\OS_CPU_C.C

    \SOFTWARE\uCOS-II\SOURCE\uCOS_II.C

    \SOFTWARE\BLOCKS\PC\BC45\PC.C

    E:\6_OS\TEST1\SOURCE\TEST.C

     到代码节点中

     设置工程参数

     会有错误,找不到头文件。

    主要是因为源文件中的引用路径不对

    双击报错的位置打开源文件,将其中的包含头文件代码改为绝对路径:

    /*
    *********************************************************************************************************
    * uC/OS-II
    * The Real-Time Kernel
    *
    * (c) Copyright 1992-1999, Jean J. Labrosse, Weston, FL
    * All Rights Reserved
    *
    * MASTER INCLUDE FILE
    *********************************************************************************************************
    */

    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <dos.h>
    #include <setjmp.h>

    #include "\software\ucos-ii\ix86l\bc45\os_cpu.h"
    #include "os_cfg.h"
    #include "\software\ucos-ii\source\ucos_ii.h"
    #include "\software\blocks\pc\bc45\pc.h"

    改为:

    INCLUDES.H
    /*
    *********************************************************************************************************
    * uC/OS-II
    * The Real-Time Kernel
    *
    * (c) Copyright 1992-1999, Jean J. Labrosse, Weston, FL
    * All Rights Reserved
    *
    * MASTER INCLUDE FILE
    *********************************************************************************************************
    */

    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <dos.h>
    #include <setjmp.h>

    #include "E:\6_OS\UcOS\software\ucos-ii\ix86l\bc45\os_cpu.h"
    #include "os_cfg.h"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\ucos_ii.h"
    #include "E:\6_OS\UcOS\\software\blocks\pc\bc45\pc.h"

    2

    /*
    *********************************************************************************************************
    * uC/OS-II
    * The Real-Time Kernel
    *
    * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
    * All Rights Reserved
    *
    * File : uCOS_II.C
    * By : Jean J. Labrosse
    *********************************************************************************************************
    */

    #define OS_GLOBALS /* Declare GLOBAL variables */
    #include "includes.h"


    #define OS_MASTER_FILE /* Prevent the following files from including includes.h */
    #include "\software\ucos-ii\source\os_core.c"
    #include "\software\ucos-ii\source\os_flag.c"
    #include "\software\ucos-ii\source\os_mbox.c"
    #include "\software\ucos-ii\source\os_mem.c"
    #include "\software\ucos-ii\source\os_mutex.c"
    #include "\software\ucos-ii\source\os_q.c"
    #include "\software\ucos-ii\source\os_sem.c"
    #include "\software\ucos-ii\source\os_task.c"
    #include "\software\ucos-ii\source\os_time.c"

    改为:

    /*
    *********************************************************************************************************
    * uC/OS-II
    * The Real-Time Kernel
    *
    * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
    * All Rights Reserved
    *
    * File : uCOS_II.C
    * By : Jean J. Labrosse
    *********************************************************************************************************
    */

    #define OS_GLOBALS /* Declare GLOBAL variables */
    #include "includes.h"


    #define OS_MASTER_FILE /* Prevent the following files from including includes.h */
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_core.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_flag.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_mbox.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_mem.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_mutex.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_q.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_sem.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_task.c"
    #include "E:\6_OS\UcOS\software\ucos-ii\source\os_time.c"

    接着编译一次:

    此时没有编译错误了,只有警告,不用理他,直接运行:


    终于成功了


    BC工程文件
     

    参考了http://www.cnblogs.com/lazygunner/archive/2011/07/02/2096318.html

    http://www.cnblogs.com/lazygunner/articles/2096250.html

    上的内容,感谢上两个博文的作者

  • 相关阅读:
    编程语言
    MySQL之常用函数
    Java常用工具类
    数据结构
    Java对接SAP平台接口
    Maven项目依赖管理工具
    Java设计模式--抽象工厂
    Java基础--抽象类与接口
    Java集合--ArrayList遍历删除元素
    Java注解(Annotation )--结合拦截器实现是否登录验证
  • 原文地址:https://www.cnblogs.com/because/p/2309262.html
Copyright © 2011-2022 走看看