4399|20

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教各位PXA270的主频在哪里设置? [复制链接]

请教各位PXA270的主频 在 WINCE下的BSP哪里设置?

最新回复

sorry各位: xlli_clks_init  FUNCTION 只是初始化寄存器函数 真正的设置在xlli_setClocks这个函数 我的主频应该是487M 是我看的不仔细造成的 感谢各位 特别感谢hzdysymbol 和shuiyan两大高手! 揭贴了!  详情 回复 发表于 2009-2-14 23:01
点赞 关注

回复
举报

61

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
一般都在起动最初的汇编里面设
xlli_lowlev_init.s
 
 

回复

50

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
哦谢谢hzdysymbol大侠!

我想看到目前我的机器的主频是多少

可是在xlli_lowlev_init.s里好象没看到主频相关的设置

主频应该是PCLK吧

是怎么设置的?

有哪些关键字呢,我搜一下就行了

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
在bootloader阶段就有了,并且是最开始那个汇编文件就有,
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
应该是在xlli_lowlev_init.s中的这个函数下吧?
xlli_clks_init   FUNCTION

; Turn Off ALL on-chip peripheral clocks for re-configuration
;
                ldr     r4,  =xlli_CLKREGS_PHYSICAL_BASE; Load clock registers base address
                ldr     r1,  =0x400000                  ; Forces memory clock to stay ON!!
                ldr     r2,  =xlli_CKEN_value           ; Get any other bits required from the include file
                orr     r1,  r1,  r2                    ; OR everything together
                str     r1,  [r4, #xlli_CKEN_offset]    ; ... and write out to the clock enable register
;
; Set Crystal: Memory Freq, Memory:RunMode Freq, RunMode, TurboMode Freq Multipliers,
; set RunMode & TurboMode to default frequency.
;
                ldr     r2,  =xlli_CCCR_value           ; Get CORE_CLK_DEFAULT value
                str     r2,  [r4, #xlli_CCCR_offset]    ; Write to the clock config register
;
; Enable the 32 KHz oscillator and set the 32KHz output enable bits
;
                mov     r1,  #(xlli_OSCC_OON :OR: xlli_OSCC_TOUT_EN)
                str     r1,  [r4, #xlli_OSCC_offset]    ; for RTC and Power Manager
;
; Init Real Time Clock (RTC) registers
;
                ldr     r4,  =xlli_RTCREGS_PHYSICAL_BASE ; Load RTC registers base address
                mov     r2,  #0                          ; Clear a work register
                str     r2,  [r4, #xlli_RTSR_offset]     ; Clear RTC Status register
                str     r2,  [r4, #xlli_RCNR_offset]     ; Clear RTC Counter Register
                str     r2,  [r4, #xlli_RTAR_offset]     ; Clear RTC Alarm Register
                str     r2,  [r4, #xlli_SWCR_offset]     ; Clear Stopwatch Counter Register
                str     r2,  [r4, #xlli_SWAR1_offset]    ; Clear Stopwatch Alarm Register 1
                str     r2,  [r4, #xlli_SWAR2_offset]    ; Clear Stopwatch Alarm Register 2
                str     r2,  [r4, #xlli_PICR_offset]     ; Clear Periodic Counter Register
                str     r2,  [r4, #xlli_PIAR_offset]     ; Clear Interrupt Alarm Register
;
; Check the Oscillator OK (OOK) bit in clock register OSCC to insure the timekeeping oscillator
; is enabled and stable before returning to the calling program.
;
xlli_6
                ldr     r1,  [r4, #xlli_OSCC_offset]    ; Get the status of the OSCC register
                ands    r1,  r1,  #xlli_OSCC_OOK        ; is the oscillator OK bit set?
                beq     xlli_6                          ; Spin in this loop until the bit is set

                mov     pc,  lr                         ; return to calling routine

                ENDFUNC
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
可是哪个是主频呢》?
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

7
 
主频应该是FCLK
但是我在BSP中搜都没搜到FCLK的字样
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
看看datasheet先吧,看寄存器名称
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
PCLK FCLK是三星cpu才有的,270没有。
在Startup.s里面有配置主频的,在eboot里没见过。在应用中我都是直接读取寄存器的,没有通过驱动来读过,当然这种方式肯定不规范。

xlli_CCCR_value就是主频相关的。你看一下datasheet,查到CCCR,[10:7]的2N和[4:0]的L是用来计算主频的。计算的公式就在CCCR寄存器说明的上方。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
张知识了!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
ldr    r4,  =xlli_CLKREGS_PHYSICAL_BASE; Load clock registers base address
                                       这个CCCR的物理基地址 = 0x4130_0000
ldr    r1,  =0x400000                  ; Forces memory clock to stay ON!!
ldr    r2,  =xlli_CKEN_value          ; Get any other bits required from the include file
                                        r2 = 0x0040_02c0
orr    r1,  r1,  r2                    ; OR everything together
                                        OR之后r1 = 0x0040_02c0
str    r1,  [r4, #xlli_CKEN_offset]    ; ... and write out to the clock enable register
;                                       xlli_CKEN_offset = 0x04
                                        这个操作之后使对应的CLK to the unit enable
; Set Crystal: Memory Freq, Memory:RunMode Freq, RunMode, TurboMode Freq Multipliers,
; set RunMode & TurboMode to default frequency.
;
ldr    r2,  =xlli_CCCR_value          ; Get CORE_CLK_DEFAULT value
                                        r2 = 0x0000_0107
str    r2,  [r4, #xlli_CCCR_offset]    ; Write to the clock config register
                                        xlli_CCCR_offset = 0x0
                                        这个操作使L=7,N=1


datasheet中:
10:7   R/W    2N    Turbo-Mode-to-Run-Mode Ratio, N
                    (Reset value 0b010 for N = 1)
                    0b000–0b010 = ratio (N) = 1
                    0b011–0b110 = ratio (N) = (2N / 2)
                    0b111 = reserved

6:5     —     —       reserved
4:0    R/W     L    Run-Mode-to-Oscillator Ratio
                    (Reset value 0b00111 for L=7)
                     0b00000–0b00010 = ratio = 2
                     0b00011–0b11110 = ratio = L
                      0b11111 = reserved

当L=7,N=1时:
         Turbo-mode frequency (T) = 13-MHz processor-oscillator frequency * L * N
          Run-mode frequency (R) = 13-MHz processor-oscillator frequency * L
          System-bus frequency = 13-MHz processor-oscillator frequency * L / B,
                   where B = 1 (when in fast-bus mode) or B = 2 (when not in fast-bus mode)
                    For CCCR[A] = 0
          Memory-controller frequency = 13-MHz processor-oscillator frequency * L / M,
                   where M = 1 (L = 2-10), M = 2 (L = 11-20), or M = 4 (L = 21-31)
          LCD frequency = 13-MHz processor-oscillator frequency * L / K,
                    where K = 1 (L = 2-7), K = 2 (L = 8-16), or K = 4 (L = 17-31)
                     For CLKCFG[B] = 0 and CCCR[A] = 1 (see Table 3-7):
          Memory-controller frequency = 13-MHz processor-oscillator frequency * L / 2
          LCD frequency = 13-MHz processor-oscillator frequency * L / K,
                     where K = 1 (L = 2-7), K = 2 (L = 8-16), or K = 4 (L = 17-31)
                     For CLKCFG[B] = 1 and CCCR[A] = 1 (see Table 3-7):
         Memory-controller frequency = 13-MHz processor-oscillator frequency * L
         LCD frequency = 13-MHz processor-oscillator frequency * L / K,
                     where K = 1 (L = 2-7), K = 2 (L = 8-16), or K = 4 (L = 17-31)
可是我怎么凑也凑不到400多MHZ的主频啊???
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
up
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
mark了。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

15
 
看这个表
对应L=7,2N=2
core Run Freq 才91MHz(这是什么频率?)

而Core Turbo Freq是“-”

难道当前我运行的主频才91MHz吗????

各位高手帮忙解答一下吧,这些种类繁多的频率!!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 
如果你的L是7,N是1,那系统就是跑在91M,Turbo模式有没有开好象是检查CLKCFG寄存器吧
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

17
 
哦??
难道我的系统主频才设置到91M?那还没有2410快啊

我看好几个开发板的主频设置这都是这样的!

我以为270默认的就会在400M以上呢
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

18
 
今天休息吧,是啥日子啊。...
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

19
 
默认是91MHz,在Startup.s都会配置的,一般选择是416MHz,如果是13x13的小封装,并且订购的是624的版本,可以设置成624MHz的。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

20
 
sorry各位:
xlli_clks_init  FUNCTION
只是初始化寄存器函数
真正的设置在xlli_setClocks这个函数
我的主频应该是487M
是我看的不仔细造成的
感谢各位
特别感谢hzdysymbol 和shuiyan两大高手!
揭贴了!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表