uC OS工程建立liWord格式.docx
《uC OS工程建立liWord格式.docx》由会员分享,可在线阅读,更多相关《uC OS工程建立liWord格式.docx(10页珍藏版)》请在冰豆网上搜索。
\SOFTWARE
——这是根目录,是所有软件相关的文件都放在这个目录下。
+C:
\SOFTWARE\BLOCKS
——子程序模块目录。
作者将例子中μC/OS-II用到的与PC相关的函数模块编译以后放在这个目录下。
\SOFTWARE\HPLISTC
——这个目录中存放的是与范例HPLIST相关的文件。
HPLIST.C存放在C:
\SOFTWARE\HPLISTC\SOURCE目录下。
DOS下的可执行文件(HPLIST.EXE)存放在C:
\SOFTWARE\TO\EXE中。
\SOFTWARE\TO
——这个目录中存放的是和范例TO相关的文件。
源文件TO.C存放在C:
\SOFTWARE\TO\SOURCE中,DOS下的可执行文件(TO.EXE)存放在C:
注意TO需要一个TO.TBL文件,它必须放在根目录下。
用户可以在C:
\SOFTWARE\TO\EXE目录下找到TO.TBL文件。
如果要运行TO.EXE,必须将TO.TBL复制到根目录下。
\SOFTWARE\uCOS-II
——与μCOS-II相关的文件都放在这个目录下。
#C:
\SOFTWARE\uCOS-II\EX1_x86L
\SOFTWARE\uCOS-II\EX2_x86L
\SOFTWARE\uCOS-II\EX3_x86L
\SOFTWARE\uCOS-II\Ix86L
——这些是作者给出的例程
\SOFTWARE\uCOS-II\SOURCE
——这个目录里包括与处理器类型无关的源代码。
这些代码完全可移植到其
它架构的处理器上。
说完了操作系统,再说下编译环境的问题。
由于整个uC/OS-II都是在borlandC++3下写出来的,所以推荐使用borlandC。
3也可以,不过4.5支持asm的内嵌编译,故推荐。
5.0以上没试过,不过4.5就可以,何必找更复杂的呢?
VC在中国虽说随处可见,不过据说不支持编译uC/OS-II。
没试过,不过VC参数设置之复杂,就算能编译,估计也要让人抓狂!
当然,要移植,就不得不和底层的硬件打交道,就不得不使用汇编,那么还差TASM这个利器。
在此我使用的是TASM5.0。
以上两个软件如果带安装程序(install.exe)的就方便许多了。
否则还要在相关参数设置中设置正确的路径,否则连最简单的helloworld都遍不同。
两个软件安装完以后是最重要的一步:
设置环境变量!
不设置的话bc就会提示“cannotlocatetasm.exe”此时就算你亲自把tasm.exe拷到bc45/bin下都没有用。
本人就在此干卡两天,其间试过各江湖大虾的偏方如:
找高版本TASM,用默认路径等等,均不管用。
其实就是个路径问题,使得bc找不到TASM。
解决方法:
右键单击我的电脑--->
属性--->
高级--->
环境变量--->
弹出“环境变量”对话框。
在“用户变量”列表中找到path,不出意外,路径里面没有包含TASM的正确路径,添加之(C:
\TASM\BIN;
)。
编译方法,上星期的一篇文章中已经讲得很明白了,有两种方法。
第一种利用例子中给出的MAKETEST.BAT文件通过调用BC下相关命令编译连接出可执行文件。
这种方法适合在纯DOS的环境下操作,不存在路径的问题。
不过前提是你要会编写批处理文件。
第二种方法是用BC这个集成开发环境,如果你已经正确设置了BC45。
向BC45下INCLUDE目录拷贝这几个文件:
INCLUDES.H、OS_CFG.H、OS_CPU.H、PC.H四个文件,当然,在INCLUDES.H中要修改其路径为BC45下的路径即
/*
#include
"
\software\ucos-ii\ix86l\bc45\os_cpu.h"
os_cfg.h"
\software\ucos-ii\source\ucos_ii.h"
\software\blocks\pc\bc45\pc.h"
*/
#include"
c:
\bc45\include\os_cpu.h"
\bc45\include\os_cfg.h"
\bc45\include\pc.h"
\bc45\include\ucos_ii.h"
然后在BC45的IDE中新建ide工程,应用工程、DOS(standard)、Large。
然后添加工程所需要的文件,当然,这就是你裁剪功能后的uCOS_II系统文件以及你自己的应用程序源文件了。
当然,这里因为是在PC上,PC功能函数模块也需要添加,这在其他CPU上应该是不一样的。
具体文件是:
OS_CPU_C.C、OS_CPU_A.ASM、uCOS_II.C、PC.C、test.c。
如果要编译例程一,相关文件具体路径如下:
SOFTWARE\ucos_ii\ix86\os_cpu_a.asm
SOFTWARE\ucos_ii\ix86\os_cpu_c.c
SOFTWARE\ucos_ii\ex1_x86l\bc45\source\test.c
SOFTWARE\blocks\pc\bc45\pc.c
SOFTWARE\ucos_ii\source\ucos_ii.c
这样,就可以compile、makeall、buildall了。
如果要编译例二,只需要把例二的test.c替换即可。
当然最好是自己写。
asm等文件的编写可参见原作者的那本书,讲得很透彻,毕竟就是他自己写的系统啊!
最后在此总结一句:
其实没什么大不了的就是路径的问题。
附:
环境变量
是包含关于系统及当前登录用户的环境信息的字符串,一些软件程序使用此信息确定在何处放置文件(如临时文件).
环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关.比如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找;
再如tc或vc++中,setinclude=path1;
path2;
是告诉编译程序到哪里去找.h类型的文件;
当然不仅仅是指定什么路径,还有其它的作用的,如setdircmd=/4设置一个环境变量的作用是在使用dir命令时会把/4作为缺省的参数添加到你的dir命令之后,就像你的每个命令都加了/4参数,它实际上是给命令解释程序command设置的一个环境变量,并且是给dir这个内部命令设置的。
很多朋友会在自己的计算机上安装双系统,例如C盘安装Windows98,D盘安装WindowsXP。
可是某些软件往往只在Windows98系统中安装,WindowsXP系统中是无法正常使用的,比较麻烦却有效的方法是再安装一遍。
当我们了解了环境变量中的用途后就可以很好解决双系统的软件共用问题。
(注:
修改环境变量的方法可行,但对于某些大型软件来说,需要修改的参数太多,还不如重新安装一边省事!
)
环境变量设置方法
在windows操作系统中可以通过我的电脑-〉属性-〉高级,来设置系统的环境变量,然而在此设置的环境变量是否在注册表中具有对应的项呢?
答案是肯定的。
而在.net中提供了一个类来获取系统的环境变量及其值。
环境变量分为两类:
用户变量与系统变量,在注册表中都有对应的项。
其中用户变量所在位置:
HKEY_CURRENT_USER\Environment;
系统变量所在位置为:
\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001
\Control\SessionManager\Environment。
另外也可以右击我的电脑——高级——环境变量——在系统变量里有path选项——双击打开——在原有变量的基础上添加英文状态下的分号——然后将路径名输入即可。
(切记,不要删除原先的系统变量,只要用分号隔开,然后添加)
常见环境变量
%ALLUSERSPROFILE%局部返回所有“用户配置文件”的位置。
%APPDATA%局部返回默认情况下应用程序存储数据的位置。
%CD%局部返回当前目录字符串。
%CMDCMDLINE%局部返回用来启动当前的Cmd.exe的准确命令行。
%CMDEXTVERSION%系统返回当前的“命令处理程序扩展”的版本号。
%COMPUTERNAME%系统返回计算机的名称。
%COMSPEC%系统返回命令行解释器可执行程序的准确路径。
%DATE%系统返回当前日期。
使用与date/t命令相同的格式。
由Cmd.exe生成。
有关date命令的详细信息,请参阅Date。
%ERRORLEVEL%系统返回最近使用过的命令的错误代码。
通常用非零值表示错误。
%HOMEDRIVE%系统返回连接到用户主目录的本地工作站驱动器号。
基于主目录值的设置。
用户主目录是在“本地用户和组”中指定的。
%HOMEPATH%系统返回用户主目录的完整路径。
%HOMESHARE%系统返回用户的共享主目录的网络路径。
%LOGONSEVER%局部返回验证当前登录会话的域控制器的名称。
%NUMBER_OF_PROCESSORS%系统指定安装在计算机上的处理器的数目。
%OS%系统返回操作系统的名称。
Windows2000将操作系统显示为Windows_NT。
%PATH%系统指定可执行文件的搜索路径。
%PATHEXT%系统返回操作系统认为可执行的文件扩展名的列表。
%PROCESSOR_ARCHITECTURE%系统返回处理器的芯片体系结构。
值:
x86,IA64。
%PROCESSOR_IDENTFIER%系统返回处理器说明。
%PROCESSOR_LEVEL%系统返回计算机上安装的处理器的型号。
%PROCESSOR_LEVEL%系统返回处理器的版本号。
%PROMPT%局部返回当前解释程序的命令提示符设置。
%RANDOM%系统返回0到32767之间的任意十进制数字。
%SYSTEMDRIVE%系统返回包含WindowsXP根目录(即系统根目录)的驱动器。
%SYSTEMROOT%系统返回WindowsXP根目录的位置。
%TEMP%and%TMP%系统和用户返回对当前登录用户可用的应用程序所使用的默认临时目录。
有些应用程序需要TEMP,而其它应用程序则需要TMP。
%TIME%系统返回当前时间。
使用与time/t命令相同的格式。
有关time命令的详细信息,请参阅Time。
%USERDOMAIN%局部返回包含用户帐户的域的名称。
%USERNAME%局部返回当前登录的用户的名称。
%UserPrefix%局部返回当前用户的配置文件的位置。
%WINDIR%系统返回操作系统目录的位置。
用BC++V4.5编译调试uC/OS-II的步骤(图文)
2007年05月29日星期二21:
41
BorlandC++4.5可以直接生成32位的Windows程序,即Win32s程序。
同Windows95和WindowsNT的Win32程序比较,Win32s不支持长文件名、多线程和RPC。
要生成Win32s程序,首先要保证BorlandC++4.5已经被正确安装,32位的编译器、库文件、头文件必须被安装到指定的目录。
用户到底需要哪些文件,您可以参考FILELIST.DOC文件,在此不赘述了。
如果是在Windows3.x下运行BorlandC++4.5,还要保证微软的Win32s被安装到Windows目录下,在没有Win32s的情况下,32位编译器无法运行。
如果没有安装Win32s,可以运行BorlandC++4.5安装盘上的SETUP.EXE进行安装。
同一般的编译选项不同,建立Win32s程序必须通过TargetExpert实现,而不是通过修改Option菜单或SpeedMenu的EditLocalOption中的选项来实现的。
具体步骤如下:
首先,选择Project菜单下的NewProject项,此时显示TargetExpert对话框,从Platform下拉框中选择Win32,然后选择OK按钮生成一个工程文件,在其中加入各种源文件,最后编译这个工程文件就可以生成Win32s的应用程序了。
对于一个已存在的工程文件,先打开该文件,在工程文件窗口中点击鼠标右键,从弹出的菜单中选择TargetExpert项,调用TargetExpert改变工程文件的Platform属性。
除了这两种方法外,还可以选择Project菜单下的NewTerget项激活TargetExpert,在工程文件中建立一个新的编译目标,并将其Platform属性置为Win32。
需要指出的是,BorlandC++4.5的集成环境(IDE)不能调试Win32s程序,调试工作要由TurboDebugger的32位Windows版本来完成。
1、安装uC/OS-II在根目录下(如D:
\);
2、打开BC++V4.5,新建一个项目:
3、如图所示,设置各个参数:
4、修改项目路径为TEST.C所在路径(本例即为:
d:
\software\ucos-ii\ex1_x86l\bc45\source\)
5、点击OK完成设置如图所示:
6、往项目中添加源文件:
共5个:
TEST.C
\software\ucos-ii\Ix86L\bc45\OS_CPU_C.C
\software\ucos-ii\Ix86L\bc45\OS_CPU_A.ASM
\software\BLOCKS\PC\bc45\PC.C
\software\ucos-ii\source\uCOS_II.C
添加完毕如图所示:
7、编译项目: