C6678根据自己板卡修改官方平台配置
修改platform平台配置
我正在配置的代码有部分是引用于pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l
这个包是含在了bios_mcsdk_02_01_02_06_setupwin32里面
在我新建的sysbios工程之中使用了evmc6678l的库,这个库对应的板卡使用的是100mhz的晶振。相当于板级支持包吧。你还可以修改DDR,spi等相关的外设。
修改时钟配置
当你的板卡时钟不是100mhz时,就需要修改时钟的配置。
首先将工程载入进来,主要是platform_lib
板卡的时钟配置是在platform_internal.h中
其中包含了
1.PLATFORM_BASE_CLK_RATE_MHZ(晶振频率)
2.PLATFORM_PLL_PREDIV_val
2.PLATFORM_PLL_POSTDIV_val
3.PLATFORM_PLL1_PLLM_val
计算公式:主频=PLATFORM_BASE_CLK_RATE_MHZ/PLATFORM_PLL_PREDIV_val(PLATFORM_PLL1_PLLM_val/PLATFORM_PLL_POSTDIV_val)
最后的计算公式是:
1Ghz=PLATFORM_BASE_CLK_RATE_MHZ / PLATFORM_PLL_PREDIV_val(PLATFORM_PLL_POSTDIV_val / 2)
如果大家不想使用1Ghz运行板卡的话,就需要自己去修改参数,包括但不限于以上的三个宏定义哦
应用时钟配置
现在大家的库已经编译好了,可以在自己的工程中进行应用了。
需要使用的函数是platform_init。
这是我的初始化函数:
需要使用init_flags.pll = 1;将时钟配置打开才可以将刚才设定的默认参数给应用上。
platform_init_flags init_flags;
platform_init_config init_config;
// plaform initialize
memset(&init_flags, 0, sizeof(platform_init_flags));
init_flags.phy = 0;
memset(&init_config, 0, sizeof(platform_init_config));
init_flags.pll = 1; /* PLLs for clocking */
init_flags.ddr = 0; /* External memory */
init_flags.tcsl = 1; /* Time stamp counter */
init_flags.phy = 0; /* Ethernet */
init_flags.ecc = 0; /* Memory ECC */
Platform_STATUS st=platform_init(&init_flags, &init_config);