如何在CCS3.3下建立基于DSP-BIOS和XDC的工程详解
首先我们要先配置一下XDC工具链,什么叫做配置呢,实际上就是要让这条工具链写入到系统的注册表中间去,下面是整个工具链的配置过程:
1、运行windows命令行工具。
2、进入到XDC工具目录
3、运行命令:cd packages/xdc/tools/configuro/ccs
4、运行命令regsvr32 btiXdc
如果成功的话,会弹出一个对话框出来:
这样XDC工具链就在系统中注册好了,接下来就可以建立整个工程了,步骤如下:
1、首先建立一个CCS3.3工程
2、建立.cfg配置文件,并加入到工程中,我是直接copy的自带例程中video-black-white例程,内容如下:
/* set up OSAL */
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.DSPBIOS;
osalGlobal.defaultMemSegId = "DDR2";
Program.main = Program.system = null;
/* get various codec modules; i.e., implementation of codecs */
/*
* ?======== Engine Configuration ========
*/
var Engine = xdc.useModule('ti.sdo.ce.Engine');
/* Include DSKT2 and DMAN3 configuration common to DVSDK examples: ?*/
xdc.includeFile('dskt2_dman3.cfg'); ?// This is in examples/common/evmDM6437/
3、建立一个main.c文件,加入空main函数:
void main()
{
}
4、加入xdpaths.dat文件,包含dvsdk的各种文件路径
// include top-level XDC paths definition
load( "../../xdcpaths_evmDM6437.dat" );
5、建立一个DSPBIOS配置文件,模板为evmDM6437,并将生成的tcf文件加入到工程中去。
6、修改build option选项
打开compiler选项卡,配置如下:
-g-@"=$(Proj_dir)/xdcconfig/compiler.opt" -pdr -fr"$(Proj_dir)/Debug" -i"$(Proj_dir)" -i"." -i"%BIOSDVSDK_INSTALL_DIR%/examples/common/evmDM6437" -i"%BSL_EVMDM6437_INSTALLDIR%/include" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/drivers/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/soc/dm6437/dsp/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/edma3/inc" -d"_DEBUG" -mv6400+
打开linker选项卡,配置如下:
-a -c -m"./Debug/BIOS_XDC_Project_Test.map" -o"./Debug/BIOS_XDC_Project_Test.out" -w -x -i"%BIOS_INSTALL_DIR%/packages/ti/rtdx/lib/c6000" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/i2c_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/palos_bios.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/prev_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/video_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/vpbe_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/vpfe_bios_drv.lib"
打开dspbiosbulider选项卡,配置如下:
-Dconfig.importPath="C:/CCStudio_v3.3/bios_5_31_02/packages;"
打开XDC选项卡,配置如下:
--xdcpathsfile="xdcpaths.dat" -tti.targets.C64P -pti.platforms.evmDM6437 -Dconfig.importPath=".../%BIOSDVSDK_INSTALL_DIR%/examples/common/evmDM6437" --tcf
以上配置我也是直接copy那个例程的配置,当然这里面的配置可以按照自己的需要进行相应的修改以适应自己的工程需求
7、修改DSPBIOS的memory配置需求,因为至少要有一个堆heap(否则会编译出错的),所以我们首先要建立一个堆,DSPBIOS默认的配置中是没有的
8、修改DSPBIOS编译配置
9、编译整个工程
如果建立成功的话就会有上面所示的提示信息,呵呵~~~~~
这样一个完整的基于XDC工具的DSPBIOS工程就建立好了。
一、在安装11g GI 之前备份10g CRS环境配置文件的操作步骤
1、disable服务器自动启动CRS
以root用户执行:
$CRS_HOME/bin/crsctl disable crs
2、在/etc目录下新建/etc/10gcrs_bak目录作为备份文件存放的目录
以root用户登录
cd /etc
mkdir 10gcrs_bak
3、将以下需要备份的文件和文件夹进行备份
以root用户登录,备份文件:
cp -p /etc/inittab /etc/10gcrs_bak/inittab
cp -p /etc/init.crs /etc/10gcrs_bak/init.crs
cp -p /etc/init.crsd /etc/10gcrs_bak/init.crsd
cp -p /etc/init.cssd /etc/10gcrs_bak/init.cssd
cp -p /etc/init.evmd /etc/10gcrs_bak/init.evmd
cp -p /etc/oratab /etc/10gcrs_bak/oratab
cp -p /etc/oraInst.loc /etc/10gcrs_bak/oraInst.loc
cp -p /usr/local/bin/dbhome /etc/10gcrs_bak/dbhome
cp -p /usr/local/bin/coraenv /etc/10gcrs_bak/coraenv
cp -p /usr/local/bin/oraenv /etc/10gcrs_bak/oraenv
备份目录:
rm -rf /etc/10gcrs_bak/oracle
cp -pr /etc/oracle /etc/10gcrs_bak
查看/etc/rc.d/rc2.d下链接:
ls -lrt /etc/rc.d/rc2.d/*init.crs
结果应该返回2个文件名:
lrwxrwxrwx 1 root system 13 Apr 25 14:17 S96init.crs -> /etc/init.crs
lrwxrwxrwx 1 root system 13 Apr 25 14:17 K96init.crs -> /etc/init.crs
4、enable服务器自动启动CRS
以root用户执行:
$CRS_HOME/bin/crsctl enable crs
二、安装完11g GI环境之后,备份11g GI环境的操作步骤
1、disable服务器启动GI自动启动
以root用户执行:
$GRID_HOME/bin/crsctl disable crs
2、在/etc目录下新建/etc/11ggi_bak目录作为备份文件存放的目录
以root用户登录:
cd /etc
mkdir 11ggi_bak
3、将以下需要备份的文件和文件夹进行备份
以root用户登录,备份文件:
cp -p /etc/inittab /etc/11ggi_bak/inittab
cp -p /etc/init.ohasd /etc/11ggi_bak/init.ohasd
cp -p /etc/ohasd /etc/11ggi_bak/ohasd
cp -p /etc/oratab /etc/11ggi_bak/oratab
cp -p /etc/oraInst.loc /etc/11ggi_bak/oraInst.loc
cp -p /usr/local/bin/dbhome /etc/11ggi_bak/dbhome
cp -p /usr/local/bin/coraenv /etc/11ggi_bak/coraenv
cp -p /usr/local/bin/oraenv /etc/11ggi_bak/oraenv
备份目录:
rm -rf /etc/11ggi_bak/oracle
cp -pr /etc/oracle /etc/11ggi_bak/
查看/etc/rc.d/rc2.d下链接:
ls -lrt /etc/rc.d/rc2.d/*init.crs
结果应该返回2个文件名:
lrwxrwxrwx 1 root system 10 Apr 12 14:50 K19ohasd -> /etc/ohasd
lrwxrwxrwx 1 root system 10 Apr 12 14:50 S96ohasd -> /etc/ohasd
4、enable服务器自动启动GI
$GRID_HOME/bin/crsctl enable crs
三、10g CRS切换到11g GI环境的操作步骤
1、停止10g crs
$CRS_HOME/bin/crsctl stop crs
2、检查10g crs剩余进程
ps -ef | grep -v grep|grep -E 'init|d.bin|ocls|evmlogger|UID'
结果应该会返回以下4个进程列表:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:07:31 - 0:00 /etc/init
root 139314 1 0 15:32:40 - 0:00 /bin/sh /etc/init.cssd fatal
root 364692 1 0 15:32:40 - 0:00 /bin/sh /etc/init.crsd run
root 630962 1 0 15:32:39 - 0:00 /bin/sh /etc/init.evmd run
3、删除/tmp/.oracle目录下的socket文件
rm -rf /tmp/.oracle/*
4、从11ggi_bak目录恢复11g环境
恢复目录:
rm -rf /etc/oracle
cp -pr /etc/11ggi_bak/oracle /etc/
恢复文件:
cp -p /etc/11ggi_bak/init.ohasd /etc/init.ohasd
cp -p /etc/11ggi_bak/ohasd /etc/ohasd
cp -p /etc/11ggi_bak/oratab /etc/oratab
cp -p /etc/11ggi_bak/oraInst.loc /etc/oraInst.loc
cp -p /etc/11ggi_bak/dbhome /usr/local/bin/dbhome
cp -p /etc/11ggi_bak/coraenv /usr/local/bin/coraenv
cp -p /etc/11ggi_bak/oraenv /usr/local/bin/oraenv
cp -p /etc/11ggi_bak/inittab /etc/inittab
删除10g crs链接,恢复11g GI链接
rm -rf /etc/rc.d/rc2.d/S96init.crs
rm -rf /etc/rc.d/rc2.d/K96init.crs
ln -s -f /etc/ohasd /etc/rc.d/rc2.d/K19ohasd
ln -s -f /etc/ohasd /etc/rc.d/rc2.d/S96ohasd
5、再次检查10g crs剩余进程
ps -ef | grep -v grep|grep -E 'init|d.bin|ocls|evmlogger|UID'
结果应该会返回以下2个进程列表:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:07:31 - 0:00 /etc/init
root 630962 1 0 15:32:39 - 0:00 /bin/sh /etc/init.evmd run
进程/etc/init.evmd run ,无法通过命令直接停止,需要kill它:
kill -9 [init.evmd 进程号]
再次查看进程
ps -ef | grep -v grep|grep -E 'init|d.bin|ocls|evmlogger|UID'
此时,应该可以观察到如下2个进程,其中init.ohasd进程:属于11g GI,
如果没有init.ohasd进程,那么可以等待几秒钟,再使用 ps命令查看进程情况,
直到看到此进程,才能进入下一步。
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:07:31 - 0:00 /etc/init
root 270354 1 0 15:42:00 - 0:00 /bin/sh /etc/init.ohasd run
6、启动11g gi 集群软件
$GRID_HOME/bin/crsctl start crs
7、检查11g gi init进程启动状态
$GRID_HOME/bin/crsctl stat res -t -init
结果中,除了"ora.diskmon"(AIX默认是offline)资源外,其它的"TARGET"和"STATE"必须为ONLINE:
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE maclean07 Started
ora.cluster_interconnect.haip
1 ONLINE ONLINE maclean07
ora.crf
1 ONLINE ONLINE maclean07
ora.crsd
1 ONLINE ONLINE maclean07
ora.cssd
1 ONLINE ONLINE maclean07
ora.cssdmonitor
1 ONLINE ONLINE maclean07
ora.ctssd
1 ONLINE ONLINE maclean07 OBSERVER
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE maclean07
ora.gipcd
1 ONLINE ONLINE maclean07
ora.gpnpd
1 ONLINE ONLINE maclean07
ora.mdnsd
1 ONLINE ONLINE maclean07
8、检查11g cluster 资源状态
$GRID_HOME/bin/crsctl stat res -t
结果中,除了"ora.gsd" 资源外,其它的"TARGET"和"STATE"必须为ONLINE
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.OCRVOTE.dg
ONLINE ONLINE maclean07
ora.asm
ONLINE ONLINE maclean07 Started
ora.gsd
OFFLINE OFFLINE maclean07
ora.net1.network
ONLINE ONLINE maclean07
ora.ons
ONLINE ONLINE maclean07
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE maclean07
ora.cvu
1 ONLINE ONLINE maclean07
ora.oc4j
1 ONLINE ONLINE maclean07
ora.scan1.vip
1 ONLINE ONLINE maclean07
ora.maclean07.vip
1 ONLINE ONLINE maclean07
9、enable服务器自动启动GI
$GRID_HOME/bin/crsctl enable crs
此时,10g集群环境已经成功切换到11g集群。
四、11g GI环境切换(恢复)到10g CRS环境的操作步骤
1、停止11g GI
$grid_home/bin/crsctl stop crs -f
2、检查11g GI剩余进程
ps -ef | grep -v grep|grep -E 'init|d.bin|ocls|evmlogger|UID'
结果应该会返回以下2个进程列表:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:07:31 - 0:00 /etc/init
root 270354 1 0 15:42:00 - 0:00 /bin/sh /etc/init.ohasd run
为了保证10g crs后台进程能正常启动,需要停止init.ohasd进程。
修改inittab文件,删除ohasd的入口:
vi /etc/inittab
删除行 "h1:2:respawn:/etc/init.ohasd run >/dev/null 2>&1
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!