HELLO WORLD里面的设置是:
memset( (void *) &sFlags, 0, sizeof(platform_init_flags));
memset( (void *) &sConfig, 0, sizeof(platform_init_config));
sFlags.pll = 0;
sFlags.ddr = 0;
sFlags.tcsl = 0; /* Time stamp counter */
sFlags.phy = 1; /* Ethernet */
sFlags.ecc = 0;
sConfig.pllm = 0;
pform_status = platform_init(&sFlags, &sConfig);
client里面的设置是:
memset( (void *) &sFlags, 0, sizeof(platform_init_flags));
memset( (void *) &sConfig, 0, sizeof(platform_init_config));
sFlags.pll = 0;
sFlags.ddr = 0;
sFlags.tcsl = 0; /* Time stamp counter */
sFlags.phy = 0; /* Ethernet */
sFlags.ecc = 0;
sConfig.pllm = 0;
pform_status = platform_init(&sFlags, &sConfig);
应该说默认情况下1才表示将要初始化,但是为什么在这两个工程里面设置大多数功能块都为0但是都正常运行呢?请问还有什么地方更改了这些初始化吗?既然这样这里何必再写呢?sFlags.phy一个设置为0另一个设置为1呢、虽然运行都没问题,但是一直不理解。
Kevin Cai:
Hi, 您好!
您说的是对的,1表示要在平台代码 platform_init.c 里初始化, 0表示不需要初始化。
对于您没有用到的部分,可以不初始化,比如
sFlags.pll = 0;sFlags.ddr = 0;sFlags.tcsl = 0; /* Time stamp counter */
sFlags.ecc = 0;等
在client里,您用到以太网了吗?
谢谢!
liang he2:
回复 Kevin Cai:
谢谢您的回答
client里面必然也用到以太网了啊?不然怎么能在电脑上ping到DSP地址然后输入DSP地址进入网页呢?
我本以为会在别的地方初始化以太网,我调试是发现是到NC_netStart函数时才输出EMAC初始化成功的,那么是不是之前那里无论是否初始化都无所谓呢?
如下是在NCstart之前打印输出一句网络即将开启的命令:
说明这里也对EMAC重新初始化了吗?