6410运行在667频率!

hargendazs   2009-9-2 23:30 楼主
wince6下,怎么才能使S3C6410运行到667的频率呢,改怎么配置,在“S3C6410_SEC_V1\OAL\INC\soc_cfg.h”中需要修改哪些?
当我调整到666时,直接编译不通,在“dvs.h”跳出错误。没有“#define TARGET_ARM_CLK    CLK_667MHz”,我自己定义了一个,且在“s3c6410.h”中也添加了,正在编译!


  1. #define SYNCMODE        (TRUE)

  2. //------------------------------------------------------------------------------
  3. // Define : PRESET_CLOCK
  4. //
  5. // Use Predefined CLOCK SETTING.
  6. //------------------------------------------------------------------------------
  7. #define PRESET_CLOCK    (TRUE)

  8. //------------------------------------------------------------------------------
  9. // CPU Revision (S3C6410 has EVT0, EVT1)
  10. //------------------------------------------------------------------------------
  11. #define EVT0            (36410100)
  12. #define EVT1            (36410101)
  13. #define CPU_REVISION    (EVT1)

  14. //------------------------------------------------------------------------------
  15. // Predefined System Clock setting selection
  16. // Here are samples for clock setting that already tested.
  17. // For S3C410, ARM 533Mhz, SystemBus 133Mhz is recommended.
  18. // This values is only used on Driver written in C
  19. //------------------------------------------------------------------------------

  20. #if PRESET_CLOCK
  21. #define CLK_25MHz        25000000
  22. #define CLK_50MHz        50000000
  23. #define CLK_33_25MHz     33250000
  24. #define CLK_66_5MHz      66500000
  25. #define CLK_96MHz        96000000
  26. #define CLK_100MHz       100000000
  27. #define CLK_133MHz       133000000
  28. #define CLK_1333MHz      133333333
  29. #define CLK_133_2MHz     133200000
  30. #define CLK_150MHz       150000000
  31. #define CLK_200MHz       200000000
  32. #define CLK_233MHz       233000000
  33. #define CLK_266MHz       266000000
  34. #define CLK_266_4MHz     266400000
  35. #define CLK_300MHz       300000000
  36. #define CLK_400MHz       400000000
  37. #define CLK_450MHz       450000000
  38. #define CLK_532MHz       532000000
  39. #define CLK_600MHz       600000000
  40. #define CLK_634MHz       634000000
  41. #define CLK_1332MHz      1332000000
  42. #define CLK_666MHz       666000000
  43. #define CLK_667MHz       667000000
  44. #define CLK_798MHz       798000000
  45. #define CLK_800MHz       800000000
  46. #define CLK_900MHz       900000000

  47. // Change This Definition to choose BSP Clock !!! (and "s3c6410.inc")
  48. //#define TARGET_ARM_CLK    CLK_66_5MHz                        //< Sync 66.5:66.5:66.5 HCLKx2=266
  49. //#define TARGET_ARM_CLK    CLK_133MHz                        //< Sync 133:133:66.5 HCLKx2=266
  50. //#define TARGET_ARM_CLK    CLK_266MHz                        //< Sync 266:133:66.5 HCLKx2=266
  51. //#define TARGET_ARM_CLK    CLK_400MHz                        //< Async 400:100:50 HCLKx2=200
  52. //#define TARGET_ARM_CLK    CLK_450MHz                        //< Sync 450:150:37.5 HCLKx2=300
  53. #define TARGET_ARM_CLK    CLK_532MHz                        //< Sync 532:133:66.5 HCLKx2=266, Async is same
  54. //#define TARGET_ARM_CLK    CLK_600MHz                        //< Sync 600:150:75 HCLKx2=300
  55. //#define TARGET_ARM_CLK    CLK_666MHz                        //< Sync 666:133.2:66.6 HCLKx2=266.4, Async 666:133:66.5 HCLKx2=266
  56. //#define TARGET_ARM_CLK    CLK_798MHz                        //< Sync 798:133:66.5  HCLKx2=266
  57. //#define TARGET_ARM_CLK    CLK_800MHz                        //< Sync 800:133.33:33.33 HCLKx2=266.66, ASync 800:133:66.5  HCLKx2=266
  58. //#define TARGET_ARM_CLK    CLK_900MHz                        //< Sync 900:150:75, HCLKx2=300

  59. /// MPLL Setting
  60. #if (TARGET_ARM_CLK == CLK_400MHz)
  61. #define MPLL_CLK            (CLK_200MHz)
  62. #else   // 532, 634, 666, 800, 900, 133, 266, 66.5
  63. #define MPLL_CLK            (CLK_266MHz)
  64. #endif
  65. #define MPLL_DIV            2
  66. #define S3C6410_DoutMPLL    (MPLL_CLK/MPLL_DIV)     // 100 Mhz or 133Mhz


  67. #if (TARGET_ARM_CLK == CLK_666MHz && SYNCMODE) || (TARGET_ARM_CLK == CLK_450MHz) || (TARGET_ARM_CLK == CLK_266MHz)
  68. #define APLL_CLK            (TARGET_ARM_CLK*2)
  69. #elif (TARGET_ARM_CLK == CLK_133MHz)
  70. #define APLL_CLK            (TARGET_ARM_CLK*4)
  71. #elif (TARGET_ARM_CLK == CLK_66_5MHz)
  72. #define APLL_CLK            (TARGET_ARM_CLK*8)
  73. #else
  74. #define APLL_CLK            (TARGET_ARM_CLK)
  75. #endif

  76. #if (TARGET_ARM_CLK == CLK_450MHz) || (TARGET_ARM_CLK == CLK_666MHz) || (TARGET_ARM_CLK == CLK_266MHz)
  77. #define APLL_DIV            2
  78. #elif (TARGET_ARM_CLK == CLK_133MHz)
  79. #define APLL_DIV            4
  80. #elif (TARGET_ARM_CLK == CLK_66_5MHz)
  81. #define APLL_DIV            8
  82. #else
  83. #define APLL_DIV            1
  84. #endif
  85. #define HCLK_DIV            2
  86. #if (TARGET_ARM_CLK == CLK_66_5MHz)
  87. #define PCLK_DIV            2
  88. #else
  89. #define PCLK_DIV            4
  90. #endif


  91. /// APLL and A:H:P CLK configuration
  92. #if (SYNCMODE)
  93.     #if (TARGET_ARM_CLK == CLK_666MHz) && (CPU_REVISION == EVT1)
  94.         #define HCLKx2_DIV          5    // sync
  95.     #elif (TARGET_ARM_CLK == CLK_532MHz) || (TARGET_ARM_CLK == CLK_600MHz) || (TARGET_ARM_CLK == CLK_266MHz) || (TARGET_ARM_CLK == CLK_133MHz)
  96.         #define HCLKx2_DIV          2    // sync   
  97.     #elif (TARGET_ARM_CLK == CLK_798MHz) || (TARGET_ARM_CLK == CLK_900MHz) || (TARGET_ARM_CLK == CLK_450MHz) || (TARGET_ARM_CLK == CLK_800MHz)
  98.         #define HCLKx2_DIV          3    // sync        
  99.     #elif (TARGET_ARM_CLK == CLK_66_5MHz)
  100.         #define HCLKx2_DIV          4    // sync
  101.     #endif
  102. #else   // 400Mhz, 532Mhz, 666Mhz
  103. #define HCLKx2_DIV          1    // Async
  104. #endif

  105. #define S3C6410_ACLK        (APLL_CLK/APLL_DIV)           

  106. #if (SYNCMODE)
  107.     #define S3C6410_HCLKx2      (APLL_CLK/HCLKx2_DIV)     
  108. #else
  109.     #define S3C6410_HCLKx2      (MPLL_CLK/HCLKx2_DIV)
  110. #endif
  111. #define S3C6410_HCLK        (S3C6410_HCLKx2/HCLK_DIV)
  112. #define S3C6410_PCLK        (S3C6410_HCLKx2/PCLK_DIV)
  113. #else   // PRESET_CLOCK = FALSE
  114. #define APLLVALUE    (((S3C6410_SYSCON_REG*)(S3C6410_BASE_REG_PA_SYSCON))->APLL_CON)
  115. #define MPLLVALUE    (((S3C6410_SYSCON_REG*)(S3C6410_BASE_REG_PA_SYSCON))->MPLL_CON)
  116. #define CLKDIV      (((S3C6410_SYSCON_REG*)(S3C6410_BASE_REG_PA_SYSCON))->CLKD_IV0)



  117. #endif  // PRESET_CLOCK


  118. //------------------------------------------------------------------------------
  119. // SMDK6410 EPLL Output Frequency
  120. //------------------------------------------------------------------------------
  121. //#define S3C6410_ECLK        (CLK_96MHz)        // 96 MHz         for USB Host, SD/HSMMC..
  122. #define S3C6410_ECLK        (84666667)        // 84,666,667 Hz     for IIS Sampling Rate 44.1 KHz (384fs)
  123. //#define S3C6410_ECLK        (92160000)        // 92,160,000 Hz     for IIS Sampling Rate 48 KHz (384fs)

回复评论 (21)

怎么没人来看啊
点赞  2009-9-3 07:31
要修改PLL的配置,bootlaoder,OAL都要修改。
点赞  2009-9-3 10:14
spec上说的是需要1.2V电压的,具体软件需要怎么配置,不太懂,学习。
点赞  2009-9-3 11:53
关键是该怎么改呢,有没有哪位兄弟实现了的啊
点赞  2009-9-3 12:36
bootlaoder,OAL都要修改吧,你可以参考其它是怎么实现的?
点赞  2009-9-3 12:44
1G都可以跑起来了。。。
点赞  2009-9-3 12:56
有没有bsp_cfg.h这个文件:
里面定义:
#if         (CPU_NAME == S3C6410)
#define CLK_667MHz                667000000
#define CLK_800MHz                800000000                        // Just for the Test, Remove when release
#define CLK_1066MHz                1066000000                // Just for the Test, Remove when release
#endif
...
#elif        (S3C6410_APLL_CLK == CLK_667MHz)                        // ARM:HCLK:PCLK = 667:133:33.25 (Async Mode)
#if                (CPU_NAME == S3C6410)
#define APLL_CLK                                (S3C6410_APLL_CLK)
#define MPLL_CLK                                (CLK_266MHz)

#define APLL_DIV                                1
#define MPLL_DIV                                2
#define HCLKx2_DIV                        1        // Async
#define HCLK_DIV                                2
#define PCLK_DIV                                8

#define S3C6410_ACLK                (APLL_CLK/APLL_DIV)                        // 667 MHz
#define S3C6410_DoutMPLL         (MPLL_CLK/MPLL_DIV)                        // 133 MHz
#define S3C6410_HCLKx2                (MPLL_CLK/HCLKx2_DIV)                // 266 MHz
#define S3C6410_HCLK                (S3C6410_HCLKx2/HCLK_DIV)        // 133 MHz
#define S3C6410_PCLK                (S3C6410_HCLKx2/PCLK_DIV)        // 33.25 MHz
点赞  2009-9-3 17:48
做个记号.
点赞  2009-9-3 20:34
晚上再来
点赞  2009-9-4 07:57
好像还需要更改s3c6410.inc文件中的内容吧
点赞  2009-9-4 12:52
是滴,要一致嘛,不知道还有没有其他的相关文件,很头疼的!
点赞  2009-9-4 15:15
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-9-4 16:02
引用: 引用 12 楼 lh806732 的回复:
从532MHz->666MHz需要修改s3c6410.inc和soc_cfg.h文件,其他不需要修改。除非你的BSP有问题。


只有更改到666的时候才需要修改s3c6410.inc吗,但是我查看了一下,这个inc里面使用的是533.
是否可以不用修改,想再次确认一下,等会儿编译试试。

当6410运行在667的时候,使用什么才能看到这个呢。或者是需要怎么写个软件

谢谢
点赞  2009-9-4 19:25
编译是能正常编译通过,但是少些上去之后不能正常运行,串口输出是乱码。并且一直停在开机画面上,不能进入系统,开机画面的滚动条任然在滚动。

我没有重新烧写bootloader。
点赞  2009-9-5 23:44
667跑起来了
不过不知道是不是真的运行在667了,只是启动时串口调试输出为667了
点赞  2009-9-6 10:28
需要更改s3c6410.inc文件,要重新编译和重新烧写bootloader 。
点赞  2009-9-6 11:01
这个地方调试输出显示ARMCLK已经是667了,难道是假像?
有没有什么办法验证
谢谢
点赞  2009-9-6 14:50
学习了
点赞  2009-9-7 10:41
手册中有计算时钟的公式,你计算一下就行了。。。。。。。。。
把PLL和分频寄存器值打印出来。。。。。
印象中,修改俩个头文件就行了。。。。。。。。
比较简单的。。。。。。。。。。
点赞  2009-9-7 20:51
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复