请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM3358 Thread 中讨论的其他器件:SysConfig
您好!
为了启用 PWM、我在 u-boot 中向 PWM 寄存器添加了几条读取/写入指令。 但是、当我运行以下代码时、我有数据中止:
#include
#include
#define PWMSS2_base 0x48304000
#define PWMS_EPWMCLK_EN 位(8)
/* PWMSS (来自 arch/arm/include/asm/arch-am33xx/CPU)*/
struct pwmss_regs{
unsigned int idver;
unsigned int SysConfig;
unsigned int clkconfig;
unsigned int clkstatus;
};
静态 int enable_PWM (void)
{
U16 val;
struct pwmss_regs * pwmss =(struct pwmss_regs *) PWMSS2_base;
PUT ("PWM:读取...\n");
Val = readw (&pwms->clkconfig);
PUT ("PWM:写入...\n");
writew (val | PWMSS_EPWMCLK_EN,&pwms->clkconfig);
/*--一些其他的东西--*/
}
输出:
U-Boot SPL 2013.11-g91321e5脏污(2017年4月21日- 13:55:44)
U-Boot 2013.11-g91321e5-脏(2017年4月21日- 13:55:44)
I2C:就绪
DRAM:512 MiB
NAND:512 MiB
MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
使用默认环境
PWM:读取...
数据中止
也许您应该阅读 doc/README.arm-unaligned 访问
PC:[<9ff8130>] LR:[<9ff813fc>]
SP:9fb60f00 IP:9ffb85b4 FP:80810fa4
R10:8082dadb R9:9fb60f38 R8:4030cdcc
R7:4030cb7c R6:00000002 R5:00028bac R4:48304000
r3:9ffa094c r2:00000001 r1:00000100 r0:48304000
标志:模式 SVC_32上 nZCv IRQ 关闭 FIQ
正在重置 CPU ...
同时、我尝试访问寄存器 I2C、并且在运行以下代码后未出现错误:
静态 int i2c_test_read (void)
{
struct i2c * i2c_base =(struct i2c *) I2C_DEFAULT_BASE;
readw(&i2c_base->stat);
PUT ("i2c 读取正常\n");
}
请告诉我出错了