主题 : tiny210开发板,PWM定时器TCON寄存器读写不了。为什么? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 76716
精华: 0
发帖: 47
金钱: 235 两
威望: 47 点
综合积分: 94 分
注册时间: 2012-08-28
最后登录: 2013-01-11
楼主  发表于: 2012-09-05 15:29

 tiny210开发板,PWM定时器TCON寄存器读写不了。为什么?

tiny210开发板,PWM定时器TCON寄存器读写不了。为什么?

PWM定时器控制寄存器TCON、TCFG0、TCFG1、TCNPB(2)等配置寄存器为什么读写不了?

使用的读写指令为:__raw_readl  和__raw_writel

TCON地址为0xE2500000,
TCFG0地址为0xE2500004,
TCFG1地址为0xE2500008,
TCNPB(2)地址为0xE2500024,
TCMPB(2)地址为0xE2500028,

通过测试程序执行这一段,超级终端会刷好几次屏幕,报错最后一行内容为:Segmentation fault

请大侠支持!!
附程序如下:
static int pwmSetup(unsigned long pwm_freq)
{
    unsigned long tcon, tcfg1, tcfg0;
    unsigned long flags,g_tcnt, g_tcmp;
    unsigned long tcnt, tcmp;
    local_irq_save(flags);
    tcnt = 0xffffffff;    
    tcon = __raw_readl(S5PV210_PA_TIMER);
    tcfg1 = __raw_readl(S5PV210_PA_TIMER + 0x0008);
    tcfg0 = __raw_readl(S5PV210_PA_TIMER + 0x0004);
    printk("tcnt = %lu, tcon = %lu, tcfg1 = %lu, tcfg0 =%lu \n", tcnt, tcon, tcfg1, tcfg0 );
    */
    pclk = getpclk();
    g_tcnt = pclk/pwm_freq/4 - 1;                    //pwm_freq:PWM频率(Hz)
    g_tcmp = g_tcnt/2;
    s3c_gpio_cfgpin(S5PV210_GPD0(2),1);

    tcon &= ~(7<<12);    
    tcon |= S3C2410_TCON_T2RELOAD;            
    __raw_writel(tcon, S3C2410_TCON);
    printk("tcon = %lu, \n",tcon );
    
    tcnt = g_tcnt;                                          
    __raw_writel(tcnt, S5PV210_PA_TIMER + 0x0024);
    
    tcmp = g_tcmp;                                            
    __raw_writel(tcmp, S5PV210_PA_TIMER + 0x0028);

/*    tcon |= S3C2410_TCON_T2MANUALUPD;                            
    __raw_writel(tcon, S3C2410_TCON);    
    printk("tcon = %lu, \n",tcon );
    tcon |= S3C2410_TCON_T2START;  
    tcon &= ~S3C2410_TCON_T2MANUALUPD;                          
    __raw_writel(tcon, S3C2410_TCON);
    printk("tcnt = %lu, tcon = %lu, tcmp = %lu \n", tcnt, tcon, tcmp );*/
    pwm_enable(pwm4IC);
    local_irq_restore(flags);
    return 0;
}
级别: 新手上路
UID: 89466
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
综合积分: 52 分
注册时间: 2013-03-28
最后登录: 2014-07-30
1楼  发表于: 2014-07-08 17:04
同问!