问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在c语言中“config.h"是什么意思

发布网友 发布时间:2024-09-30 01:47

我来回答

2个回答

热心网友 时间:2024-10-12 07:14

config.h注解,比较长。

config.h

/*
This file contains the configuration parameters for the CPU evaluation board.
*/

#ifndef INCconfigh
#define INCconfigh

/* BSP version/revision identification, before configAll.h */
#define BSP_VER_1_2 1
#define BSP_VER_1_1 1
#define BSP_VERSION "1.2" /* A Tornado 2.0 BSP */
#define BSP_REV "/3" /* 0 for first revision */

#include "configAll.h" /* 这个文件定义了VxWorks所有的缺省设置 */

/*
* Define ONE of the following to specify the revision of the PPC405GP chip
* you are using. Undefine all others. sysModel() will return
* "Unknown processor" if the correct selection is not made.
*/

/*
* Default boot line
*/

/*

解释: 这一行对配置网络,连通Target Server及下载调试程序非常重要

DEFAULT_BOOT_LINE 的原意是为没有NVRAM的target设计的,这样用户就不需要在每次系统启动是手工输入这些参数了.

系统启动网络时xxxEndLoad()会解释这一行并按这一行的定义进行加载.

Emac(0,0) : 启动设备,可是是软盘,硬盘,PCMCIA卡等 其他的设备名称如:

fd为软盘,(0,0)表示第一个软驱,3.5寸盘.
dc则表示从DEC 21x4x 芯片启动,即系统有NVRAM存在,这种方式现在已不采用.
elpci表示启动设备为3COM EtherLink XL PCI网卡.
fei:Intel 82559 EtherExpress网卡.
ene: NE2000网卡
ELT: 3COM以太网卡
EEX: Intel网卡
ata: ATA/IDE 硬盘 ............

405GP: 主机名
vXworks 从主机加载的VxWorks文件
h=172.16.1.159 主机的IP地址

e=172.16.254.52 目标机的IP地址,若网络启动Target Server时,这个IP必须和主机上Target Server配置的Target IP地址一致,且设置Back End选项为wdbrpc
u=xxx 用户名,pw=xxx 密码: 若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同
tn=vxTarget 目标机名称

*/

#define DEFAULT_BOOT_LINE \
"Emac(0,0)405GP:vxWorks h="172".16.1.159 e="172".16.254.52 \
u="xxx" pw="xxx" tn="vxTarget""

/*
* 内存设置.
* 如果定义了LOCAL_MEM_AUTOSIZE则SDRAM的大小会在Boot时指定
*/

#undef LOCAL_MEM_AUTOSIZE /* 运行时内存大小 */
#define LOCAL_MEM_SIZE 0x02000000 /* 32MB 内存缺省 */
#define LOCAL_MEM_LOCAL_ADRS 0x00000000 /* 内存基地址为 0 */
#define USER_RESERVED_MEM 0 /* see sysMemTop() */

/*
* Define SDRAM_ECC_ENABLE to enable ECC if an ECC SDRAM DIMM is detected
* during SDRAM auto-configuration. If not defined, ECC will not be enabled
* if an ECC SDRAM DIMM is detected, and the DIMM will be used as a normal DIMM.
*/

#undef SDRAM_ECC_ENABLE

/* 解释: 这里主要设置系统的内存分配定义,若分配不当,则系统不能正常加载和运行.

ROM_TEXT_ADRS, ROM_SIZE, RAM_HIGH_ADRS, 和RAM_LOW_ADRS 在config.h和Makefile文件中都要定义,且必须要保持一致,这些地址的定义一定要参照VxWorks 加载执行过程,硬件手册,MMU和VxWorks的大小进行.主要原则是保证VxWorks image 在ROM和RAM中都要有一定的运行空间且高效运行,可参见 VxWorks BSP和启动过程.

*/
#define ROM_BASE_ADRS 0xfff80000 /* ROM的基地址 */
#define ROM_TEXT_ADRS (ROM_BASE_ADRS + 0x100) /* 程序指针和堆栈指针 */
#define ROM_WARM_ADRS (ROM_TEXT_ADRS+0x0004) /* 热启动入口地址 */
#define ROM_SIZE 0x0007f000 /* ROM大小 512KB */
#define RAM_LOW_ADRS 0x00010000 /* RAM 低地址运行 vxWorks */
#define RAM_HIGH_ADRS 0x00C00000 /* RAM 高地址存储 bootrom */
#define USER_RESERVED_MEM 0 /* 用户保留地址 */

/*
* Cache options 定义缓存
*/

#define INCLUDE_CACHE_SUPPORT

#define USER_D_CACHE_ENABLE
#define USER_I_CACHE_ENABLE
#undef USER_D_CACHE_MODE
#define USER_D_CACHE_MODE (CACHE_COPYBACK)

/*
* 405 timers (PIT, FIT, WDT) 可由外部时钟驱动或者CPU驱动
*/

#define TIMER_CLOCK_EXTERNAL

/*
* Optional timestamp support
*/

#undef INCLUDE_TIMESTAMP

/*
* Auxilliary Timer rates 定义辅助计时器频率
*/

#ifdef TIMER_CLOCK_EXTERNAL
#define AUX_CLK_RATE_MIN (EXT_TIMER_CLK_FREQ / (1 << 21) )
#define AUX_CLK_RATE_MAX (EXT_TIMER_CLK_FREQ / (1 << 9) )
#define AUX_CLK_RATE_DEFAULT (EXT_TIMER_CLK_FREQ / (1 << 17) )
#else

/* ZZZZZZZZZZZ todo put rates in for system clock derived timer clock */

#endif

/*
* Watchdog Timer rates
*/

#define WDT_RATE_MIN 1 /* minimum watchdog timer rate */
#define WDT_RATE_MAX 5000 /* maximum watchdog timer rate */

/* 实时时钟设置 */

#define INCLUDE_RTC

/* 去除不需要的网络驱动 */

#undef INCLUDE_EI
#undef INCLUDE_EX
#undef INCLUDE_ENP
#undef INCLUDE_LN
#undef INCLUDE_SM_NET
#undef INCLUDE_SM_SEQ_ADDR

/* #define for software floating point support */

#undef INCLUDE_SW_FP

/* 定义串口 Serial port configuration */

#define INCLUDE_SERIAL

/* PCI 设置,PCI configuration */

#define INCLUDE_PCI

#ifdef INCLUDE_PCI
/*
* Three programmable processor local memory address to PCI memory address
* mappings. If a region is enabled, PMMx_LOCAL_ADRS must be between
* PCI_MEMORY_START and PCI_MEMORY_END. If PMMx_PCI_HIGH_ADRS is non-zero in
* an enabled region, 64 bit dual cycle addresses will be generated on the
* PCI bus for this region.
*/

//定义PCI设备的初始化地址 参见 PCI设备(网卡)初始化代码分析

# define PMM0_LOCAL_ADRS PCI_MEMORY_START // 定义PCI空间起始地址
# define PMM0_PCI_LOW_ADRS 0x80000000 // 定义PCI空间低位地址
# define PMM0_PCI_HIGH_ADRS 0x00000000 // 定义PCI空间高位地址
# define PMM0_PCI_MASK_ATTRIB (PMM_MASK_512MB | PMM_ENABLE)

# define PMM1_LOCAL_ADRS PMM_UNUSED
# define PMM1_PCI_LOW_ADRS PMM_UNUSED
# define PMM1_PCI_HIGH_ADRS PMM_UNUSED
# define PMM1_PCI_MASK_ATTRIB PMM_UNUSED

# define PMM2_LOCAL_ADRS PMM_UNUSED
# define PMM2_PCI_LOW_ADRS PMM_UNUSED
# define PMM2_PCI_HIGH_ADRS PMM_UNUSED
# define PMM2_PCI_MASK_ATTRIB PMM_UNUSED

/*
* PCI memory address to processor local memory address mapping. If a region
* is enabled, PTMx_LOCAL_ADRS must be within the two Local memory / peripheral
* regions (0x00000000-0x7FFFFFFF, or 0F0000000-0xFFFFFFFF)
*/
# define PTM1_LOCAL_ADRS LOCAL_MEM_LOCAL_ADRS
# define PTM1_SIZE_ATTRIB PTM_SIZE_2GB | PTM_ENABLE

# define PTM2_LOCAL_ADRS PTM_UNUSED
# define PTM2_SIZE_ATTRIB PTM_UNUSED

#endif /* INCLUDE_PCI */

/*
* 如果支持网络,本地EMAC和PCI网卡,必须有一个被选取,两者都是END形式驱动
*/
#define INCLUDE_NETWORK /* 支持网络 */
#define INCLUDE_EMAC_NETWORK /* 405GP 本地 EMAC 网络 */
#undef INCLUDE_PCI_NETWORK /* PCI 网络 */

/*
* The board does not have the Ethernet MAC address of the EMAC stored
* in any sort of NVRAM. Modify the 12 digit string below to match the decal
* that is on your board.
*/

#ifdef INCLUDE_EMAC_NETWORK
#define DEFAULT_EMAC_HW_ADDR "xxxxxxxxxxxx" /* 网络硬件地址,即MAC地址 */
#endif

/*
* WDB 通过网络Enhanced Network Driver加载调试程序,若网络加载调试,必须定义此项
*/

#define WDB_COMM_TYPE WDB_COMM_SERIAL /*首先默认使用串口通信*/
#define WDB_TTY_CHANNEL 0 /*使用第一个串口

#ifdef INCLUDE_NETWORK
#define INCLUDE_END
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_END /* 定义网络通信, END 驱动 */
#else
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL /* 定义串口通信,和PC机串口连接 */
#undef WDB_TTY_CHANNEL
#define WDB_TTY_CHANNEL 0 /* 串口1 */
#endif /* INCLUDE_NETWORK */

/*************** 此处定义一些杂项 */

#ifdef NUM_TTY
#undef NUM_TTY
#endif
#define NUM_TTY 2 /* 定义了两个串口终端,*/

#ifdef WDB_TTY_BAUD
#undef WDB_TTY_BAUD
#endif
#define WDB_TTY_BAUD 57600 /* 波特率设置 9600, 19200, 38400, 57600, 115200 */

#ifdef CONSOLE_BAUD_RATE
#undef CONSOLE_BAUD_RATE
#endif
#define CONSOLE_BAUD_RATE 57600

#undef INCLUDE_ENV_VARS /* unix compatable environment variables */
#undef INCLUDE_TIMEX /* timexLib for exec timing */
#undef INCLUDE_HW_FP
#undef INCLUDE_TFTP_CLIENT /* used by autoboot from ftp server*/

#define INCLUDE_SW_FP
#define INCLUDE_ELF
#define INCLUDE_NET_SHOW
#define INCLUDE_PING
#undef INCLUDE_DEMO /* only for vxWorks bsp test */
#define ETHERNET_ADR_SET /* only for bootrom used */
#define INCLUDE_USER_APPL /* Startup the user's application in dos makefile project */
#undef PCIDEBUG

#ifdef INCLUDE_USER_APPL
#define USER_APPL_INIT _appEntry()
#endif

#endif /* INCconfigh */
#if defined(PRJ_BUILD)
#include "prjParams.h"
#endif

热心网友 时间:2024-10-12 07:10

是某个叫config.h的头文件
里面可能定义了一些类型,变量,常量,函数,宏等等
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
镇海立人中学好吗 镇海立人中学升学率 自考学位申请在什么时候 电子科大自考本科申请学士学位要多久 浙江自考毕业两年后还能考学士学位吗 自考学士学位申请超过时限怎么办 自考本科毕业后多久能申请学士学位 自考本科毕业后多久能申请学位 自考要在几年内考完才能申请学位证 春天可以种白菜吗 春天能不能种白菜 emacu是什么意思 emac中文是什么意思? 彻底解决C盘不够用的问题(Windows 10) 公司交非税是什么意思 非税是什么意思啊? 初级绿化工内容简介 园林绿化工程施工员培训教材图书信息 园林绿化工培训教材基本信息 园林绿化高级教程内容简介 绿化工岗位培训教材内容简介 绿化工基本技能内容简介 泊字的意思是什么呀? 怎么发布58同城的广告信息啊 怎么在58同城免费发布广告信息? 在58同城发布免费广告的方法是什么? 卡尔·潘参与影片 ...一部国外的片子 是关于机器人的 主角叫卡尔 还有一个叫吉它的 B股... 同名之人主 演 印度电影男主角在电影里叫卡尔的电影有哪些? 韩国池安结婚了吗 图站(博克图站)介绍_图站(博克图站)是什么 求好看的电影/电视剧,类型不限,但是要强烈推荐的那种,要国产的。谢谢... foxmail邮件文件夹怎么合并 foxmail附件与文本如何合并一页打印? foxmail邮箱收件分组混乱怎么办? 大家注意了,这是一个支付宝骗子温柔钱多香,账号看不到认证姓名徐杰 被支付宝有实名认证的人骗了7000块钱,我把骗子的身份证号码给了警方_百... 手机1mbps网速下如何查看并应对卡顿问题? 体检检查哪些项目多少钱 还有两个月就过期的面膜能用不 婧氏牙膏好用吗?卖多少钱?卖吗?怎么卖 婧氏牙膏多少钱一对?怎么代理?代理价格多少钱 家里只有白糖可以做什么 白糖属什么产品 捍卫者分集剧情 电影《捍卫者》:历史不容忘却! 如何评价电影《捍卫者》? 鸡翅有哪些食用功效? 全新胜达刹车片的更换方法 胜达刹车片多久换一次?