Vxworks的文档.docx

上传人:b****4 文档编号:4453702 上传时间:2022-12-01 格式:DOCX 页数:27 大小:50.46KB
下载 相关 举报
Vxworks的文档.docx_第1页
第1页 / 共27页
Vxworks的文档.docx_第2页
第2页 / 共27页
Vxworks的文档.docx_第3页
第3页 / 共27页
Vxworks的文档.docx_第4页
第4页 / 共27页
Vxworks的文档.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Vxworks的文档.docx

《Vxworks的文档.docx》由会员分享,可在线阅读,更多相关《Vxworks的文档.docx(27页珍藏版)》请在冰豆网上搜索。

Vxworks的文档.docx

Vxworks的文档

Vxworks的文档

Createbyzaken06-11-6

Tornado的安装:

1.1进入WINDRIVER.TORNADO.V2.2.FOR.POWERPC.CD1目录,运行setup.exe

1.2KEY=TcS5i-Zq%J+-4XVu#-3&bjv-M63&g

1.3安装完毕后拷贝license.dat到c:

\flexlm目录,该license.dat内容如下

FEATUREtornado2wrsd2.2permanentuncountedHOSTID=ANY\

ISSUER=RORiSOSIGN=CBB253963374

FEATUREwindview2wrsd2.2permanentuncountedHOSTID=ANY\

ISSUER=RORiSOSIGN=B2D1B8162764

FEATUREDIAB_PPCwrsd5.0permanentuncountedHOSTID=ANY\

ISSUER=RORiSOSIGN=A8F5FB26AC00

1.4设置环境变量LM_LICENSE_FILE=c:

\flexlm\license.dat

1.5安装mpc827xBSP补丁

2.如何配置SIMNT调试环境

2.1设置环境变量CPU=SIMNT

2.2如果vxsim无法启动,在注册表内查找KB917422,找到后在运行框内输入卸载这个补丁

2.3建新工程,选择编译器为simntgnu,编译成*.out即可下载(如果有杀毒软件必须关掉)

Tornado的使用:

参看《VxWorks开发指南和Tornado实用手册》电力出版社

BSP的基础:

1.导入:

在tornado下新建一个VxWorks工程,在Step2选择从BSP导入。

2.Tornado/Target/Config/All目录下的文件

Config_all.h文件:

所有VxWorks映像的默认配置。

该配置可以被BSP中的config.h修改。

BootConfig.c文件:

引导ROM映像的主初始化。

Tornado下Build菜单选择BuildBootROM生成bootrom文件时需要此文件。

BootInit.c文件:

ROM初始化的第二阶段。

生成bootrom文件时需要此文件。

在romInit.s后,完成BootROM的第二步初始化.程序从romInit.s中的romInit()跳到这个文件中的romStart().来执行必要的解压和ROMimage的放置.

bootConfig.c:

完成BootROMimage的初始化和控制.

usrConfig.c:

VxWorksimage的初始化代码.

3.Tornado/Target/Config/Comps/VxWorks目录下的文件

此目录下的文件是VxWorks内核的基本组件的描述文件(CDF)

4.Tornado/Target/Config/Comps/Src目录下的文件

此目录下的文件包括与内核组件相关的配置文件

5.Tornado/Target/Config/ads827x

该目录下包含了有关mpc8272的BSP系统和依赖文件

readme文件:

该BSP的版本信息和补丁描述。

Makefile文件:

重要,编译控制文件,注意:

对该文件不需要手动修改,可以通过Tornado对该工程进行配置自动生成。

注意对关键的硬件配置的修改(Tornado下Build属性中的Marco可以修改)。

注意,实际使用的是prj目录下的makefile文件,以下为一些重要的宏说明

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

CPU=PPC603CPU的体系

TOOL=diab编译连接工具

TOOL_FAMILY=diab工具体系

DEFAULT_RULE=vxWorks默认的生成规则

AR=darC库生成器*.a

AS=dcc汇编编译器

BOOT_EXTRA=

CC=dccC编译器

CC_ARCH_SPEC=C语言的CPU参数

CFLAGS=C语言编译参数

CFLAGS_AS=汇编语言编译参数

EXTRA_MODULES=外部依赖模块

EXTRA_OBJS=外部依赖的OBJ文件

LD=链接器

LDFLAGS=链接参数

LD_LINK_PATH=CPU库路径

RAM_HIGH_ADRS=00d00000引导ROM映像将要复制倒内存中的地址

RAM_LOW_ADRS=00010000VxWorks内核将要复制到内存中的地址

ROM_LINK_ADRS=fff00000

ROM_WARM_ADRS=fff00108CPU热启动时ROM的入口地址

SIZE=sizeppc生成的映像大小计算工具

USR_ENTRY=usrInit用户程序进入点(main函数)

//以下的宏只有在选择rom编译规则时存在

ROM_LINK_ADRS=fff00000ROM的连接起始地址,如果不定义使用ROM_TEXT_ADRS作为起始地址,前0x100为硬件配置字等。

实际程序入口在0x100处

ROM_SIZE=00100000ROM的大小

ROM_TEXT_ADRS=fff00100ROM入口地址_start:

标号处,偏移0x100

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

depend.ads827x文件:

BSP依赖文件,自动生成。

Config.h文件:

重要,该文件包含着板的硬件配置。

需要修改。

以下为一些配置的说明

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#defineOSCILLATOR_FREQ100000000//CPU时钟频率

#defineBRGCLK_DIV_FACTOR1//波特率产生器的预分频系数

#defineM8260_BRGC_DIVISOR1//波特率产生器的预分频系数

#defineINCLUDE_MMU_BASIC//是否使能内存管理单元

#ifdefINCLUDE_MMU_BASIC

#defineUSER_I_MMU_ENABLE//使能指令内存管理单元

#defineUSER_D_MMU_ENABLE//使能数据内存管理单元

#endif

#defineINCLUDE_CACHE_SUPPORT//使能高速缓存

#ifdefINCLUDE_CACHE_SUPPORT

#defineUSER_D_CACHE_ENABLE//使能数据高速缓存

/*Doesnothingaboutcopybackvswritethroughinh/w,mustusesysPhysMemDesc*/

#undefUSER_D_CACHE_MODE

#defineUSER_D_CACHE_MODECACHE_COPYBACK

#defineUSER_I_CACHE_ENABLE//使能指令高速缓存

#undefUSER_I_CACHE_MODE

#defineUSER_I_CACHE_MODECACHE_COPYBACK

#endif

#undefNUM_TTY

#defineNUM_TTYN_SIO_CHANNELS/*definedinads827x.h*/系统终端个数

#undefINCLUDE_TFFS//不使用dosFs文件系统

#ifdefINCLUDE_TFFS

#defineINCLUDE_DOSFS/*dosFsfilesystem*/

#defineINCLUDE_SHOW_ROUTINES/*showroutinesforsystemfacilities*/

#endif

#defineSYS_CLK_RATE_MIN1//最小系统时钟速率

#defineSYS_CLK_RATE_MAX8000//最大系统时钟速率

#defineAUX_CLK_RATE_MIN1//最小系统辅助时钟速率

#defineAUX_CLK_RATE_MAX8000//最大系统辅助时钟速率

/*

*DRAMrefreshfrequency-ThismacrodefinestheDRAMrefreshfrequency.

*e.i:

ADRAMwith1024rowstorefreshin16ms:

*DRAM_REFRESH_FREQ=1024/16E-3=64E3hz

*/

#defineDRAM_REFRESH_FREQ64000//内部RAM刷新频率

#defineINCLUDE_SECURITY_ENGINE//使能安全技术

//#defineINCLUDE_PCI//使能PCI功能

#ifdefINCLUDE_NETWORK//是否包含网络功能

#defineINCLUDE_MOTFCCEND//使能FCC驱动

#endif

#ifdefINCLUDE_MOTFCCEND

#ifndefINCLUDE_END

#defineINCLUDE_END/*onlyEND-styledriverforFCC*/

#endif/*INCLUDE_END*/

#endif/*INCLUDE_MOTFCCEND*/

#ifdefINCLUDE_MOTFCCEND

#defineINCLUDE_FCC1/*primary*/使能第一个FCC网口

#defineINCLUDE_FCC2使能第二个FCC网口

#undefINCLUDE_FCC3/*notavailable*/

#undefINCLUDE_FCC4/*notavailable*/

#endif/*INCLUDE_MOTFCCEND*/

#defineINCLUDE_FLASH//使能flash

#ifdefINCLUDE_FLASH

#defineFLASH_ADRS_8M0xff800000/*baseaddressof8Megflash*/

#defineFLASH_ADRS_16M0xff000000/*baseaddressof16Megflash*/

#defineFLASH_ADRS_32M0xfe000000/*baseaddressof32Megflash*/

#defineFLASH_BASE_ADRSFLASH_ADRS_8MFlash基地址

#defineFLASH_ADRS0xffec0000

#defineFLASH_BLOCK_SIZE0x40000//flash块大小

#defineFLASH_BOOTLINE_OFFSET0x0

#defineFLASH_WIDTH4//flash位数字节数32bit

#defineFLASH_SIZE0x800000flash大小

#defineFLASH_SIZE_WRITEABLE256flash最大访问字节数

#defineSYS_FLASH_TYPEFLASH_28F016flash的类型定义

#endif

/*Memoryaddresses*/

#defineLOCAL_MEM_SIZE0x04000000本地RAM大小

#defineLOCAL_MEM_LOCAL_ADRS0x00000000RAM基地址

#defineROM_BASE_ADRS0xfff00000ROM基地址

#defineROM_TEXT_ADRSROM_BASE_ADRS+0x100ROM进入点

#defineROM_SIZE0x100000ROM大小

#defineROM_WARM_ADRS(ROM_TEXT_ADRS+8)CPU热启动进入点

/*RAMaddressforROMboot*/

#defineRAM_HIGH_ADRS(LOCAL_MEM_LOCAL_ADRS+0x00d00000)

//引导程序(BOOT)从ROM中要复制到RAM的内存地址

/*RAMaddressforsysimage*/

#defineRAM_LOW_ADRS(LOCAL_MEM_LOCAL_ADRS+0x00010000)

//VxWorks内核从ROM中要复制到RAM的内存地址

/*HardResetConfigurationWords*/

//硬件复位配置字

#defineHRCW_BYTE_00x0C/*32bitbootport,MSR(IP)=1*/

#defineHRCW_BYTE_10x72/*IMMR[0-14]=0x0F00_0000,noL2cachesignals*/

#defineHRCW_BYTE_20x36/*bit[20:

21]LBPC=01,setlocalbusasPCIbus*/

#defineHRCW_BYTE_30x5A/*bit[26]ALD_EN=1*/

#defineDEFAULT_POWER_MGT_MODEVX_POWER_MODE_DISABLE

//电源管理模式

//以下为ads827x.h中的一些宏定义

#defineM82XX_STANDARD_DPRAM_START0x100系统内部内存池在内部RAM中的起始地址

#defineM82XX_STANDARD_DPRAM_LIMIT0x1000系统内部内存池大小

#defineM82XX_FCC_DPRAM_START0x1000FCC内存块在DPRAM中的起始地址

#defineM82XX_FCC_DPRAM_LIMIT0x2000FCC内存块的大小(BD包?

NV_RAM的配置

#undefBOOT_LINE_SIZE

#defineBOOT_LINE_SIZE256保留给VXWorks引导行使用的NVRAM字节数

#undefNV_RAM_SIZE

#defineNV_RAM_SIZE256NVRAM的大小

#defineNV_RAM_SIZE_WRITEABLENV_RAM_SIZE/*forceVTStoonlyuse128bytes*/最大访问的字节数

#defineNV_RAM_READ(x)sysNvRead(x)NV_RAM读函数

#defineNV_RAM_WRITE(x,y)sysNvWrite(x,y)写函数

#undefCPU

#defineCPUPPC603/*CPUtype*/

#defineN_SIO_CHANNELS2串口IO通道/*No.serialI/Ochannels*/

 

/*definethedecrementerinputclockfrequency*/

#defineDEC_CLOCK_FREQOSCILLATOR_FREQ预分频输入频率(是否与预分频中断有关?

//根据硬件配置字决定启动的内存映射基地址()

#if((HRCW_BYTE_1&0x07)==0)

#defineRST_INTERNAL_MEM_MAP_ADDR0x00000000

#elif((HRCW_BYTE_1&0x07)==1)

#defineRST_INTERNAL_MEM_MAP_ADDR0x00F00000

#elif((HRCW_BYTE_1&0x07)==2)

#defineRST_INTERNAL_MEM_MAP_ADDR0x0F000000

#elif((HRCW_BYTE_1&0x07)==3)

#defineRST_INTERNAL_MEM_MAP_ADDR0x0FF00000

#elif((HRCW_BYTE_1&0x07)==4)

#defineRST_INTERNAL_MEM_MAP_ADDR0xF0000000

#elif((HRCW_BYTE_1&0x07)==5)

#defineRST_INTERNAL_MEM_MAP_ADDR0xF0F00000

#elif((HRCW_BYTE_1&0x07)==6)

#defineRST_INTERNAL_MEM_MAP_ADDR0xFF000000

#elif((HRCW_BYTE_1&0x07)==7)

#defineRST_INTERNAL_MEM_MAP_ADDR0xFFF00000

#endif

#defineINTERNAL_MEM_MAP_SIZE0x00020000/*128Kbytes*/内部RAM大小

#defineIMMR_OFFSET0x01a8/*offsetfromSIUbase*/

IMMR寄存器的偏移地址相对于IMMR的基地址0xf0010000

#defineIMMR_ISB_MASK0xfffe0000/*InternalSpaceBasemask*/

#defineIMMR_PARTNUM_MASK0x0000ff00/*PartNumbermask*/

#defineIMMR_MASKNUM_MASK0x000000ff/*MaskNumbermask*/

#defineDPRAM1_SIZE0x00004000/*16KbytesofDPRAMinbank1*/

/*BoardStatusandControlRegisters-uniquetoADS*/

//CPLD的设置

#defineBCSR_BASE_ADRS0x04500000/*BCSRbaseaddress*/

#defineBCSRS_SIZE0x00008000/*32Kofaddressspace*/

#defineBCSRS_MASK~(BCSRS_SIZE-1)/*set32KmaskforBCSRs*/

//BCSR的寄存器地址配置

#ifdef_ASMLANGUAGE

#defineBCSR0BCSR_BASE_ADRS/*Register0*/

#defineBCSR1BCSR_BASE_ADRS+0x04/*Register1*/

#defineBCSR2BCSR_BASE_ADRS+0x08/*Register2*/

#defineBCSR3BCSR_BASE_ADRS+0x0c/*Register3*/

#defineBCSR2_BREVN_MASK0x00000f00/*Boardrevisionnumber*/

#else

#defineBCSR0((uint32_t*)(BCSR_BASE_ADRS))/*Register0*/

#defineBCSR1((uint32_t*)(BCSR_BASE_ADRS+0x04))/*Register1*/

#defineBCSR2((uint32_t*)(BCSR_BASE_ADRS+0x08))/*Register2*/

#defineBCSR3((uint32_t*)(BCSR_BASE_ADRS+0x0c))/*Register3*/

#endif/*_ASMLANGUAGE*/

/*CPUtypeinthePVR*/

CPU的类型码,用于CPU类型判别

#defineCPU_TYPE_82600xAAAA/*valueforPPC8260*/

#defineCPU_TYPE_82660xBBBB/*valueforPPC8266*/

#defineCPU_REV_A1_MASK_NUM0x0010/*revisionmasknum*/

#defineHIP4_ID0x80810000/*deviceIDviaPVR*/

#defineHIP4_MASK0xFFFF0000/*maskupperword*/

#defineHIP7_ID0x80820000

//各种参数在CPM静态RAM(16K)中的偏移地址

#defineSCC1_PRAM(INTERNAL_MEM_MAP_ADDR+0x8000)

#defineSCC2_PRAM(INTERNAL_MEM_MAP_ADDR+0x8100)

#defineSCC3_PRAM(INTERNAL_MEM_MAP_ADDR+0x8200)

#defineSCC4_PRAM(INTERNAL_MEM_MAP_ADDR+0x8300)

#defineFCC1_PRAM(INTERNAL_MEM_MAP_ADDR+0x8400)

#defineFCC2_PRAM(INTERNAL_MEM_MAP_ADDR+0x8500)

#defineFCC3_PRAM(INTERNAL_MEM_MAP_ADDR+0x8600)

#defineMCC1_PRAM(INTERNAL_MEM_MAP_ADDR+0x8700)

#defineSMC1_BASE(INTERNAL_MEM_MAP_ADDR+0x87FC)

#defineIDMA1_BASE(INTERNAL_MEM_MAP_ADDR+0x87FE)

#defineMCC2_P

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1