工具/软件:Linux
大家好、
硬件说明、
- SoC 使用了 AM3354BZCZ60
- 定制电路板
SW 说明、
- SDK 版本- 03.03、内核版本- 4.4.4.41-gf9f6f0db2d、u-boot 版本- u-boot-2016.05+gitAUTOINC+4db46a6bd-g4db46a6bd
问题场景、
我通过引用以下链接中附加的脚本、将 timer7 (GPIO1_8)配置为用户空间下的 PWM、
在用户空间脚本中、我参考 AM335x TRM 的第20.1.5节、将 timer7寄存器配置为生成 PWM 信号。 Timer7被配置为使用24MHz 主时钟作为时钟源。一旦我运行脚本、它就会抱怨以下错误消息:
/ti.mer.sh:行54: 2229总线错误 (转储内核) evmem2 0x4804a04c w 0xFFFFFF9C
/dev/mem 已打开。
映射到地址 bb6fa0000的内存。[ 3036.452740]未处理故障:在 bb6fa0044的非线性获取(0x1018)上的外部中止
[3036.466501] PgD = d536c000
[3036.46921][b6fa0044]* PgD=9b623831、* Pte=4804a303、* Ppte=4804aa33
[3036.475712] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!
./timer.sh:第58行: 2231总线错误 (转储内核) devmem2 0x4804a044 w 0x00000000
/dev/mem 已打开。
映射在地址 bbb6f1b000处的内存。[ 3036.506486]未处理故障:在 bb6f1b010处的非线性获取(0x1018)上的外部中止
[3036.520767] PgD = d5300000
[3036.523486][b6f1b010]* PgD=9530a831、* Pte=4804a303、* Ppte=4804aa33
[3036.530003] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!
./timer.sh:第62行: 2233总线错误 (转储内核) devmem2 0x4804a010 w 0x8
/dev/mem 已打开。
映射在地址 bb6f8d000处的内存。[3036.560894]未处理故障:在 bb6f8d038处的非线性蚀刻(0x1018)上的外部中止
[3036.574340] PgD = d52b0000
[3036.577061][b6f8d038]* PgD=952d4831、* Pte=4804a303、* Ppte=4804aa33
[3036.583556] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!
./timer.sh:第65行: 2235总线错误 (转储内核) devmem2 0x4804a038 w 0x186B
定时器值1
/dev/mem 已打开。
映射到地址 bb6f97000的内存。[ 3036.615355]未处理故障:在 bb6f9703c 的非线性获取(0x1018)上的外部中止
[3036.629573] PgD = d536c000
[3036.632292][b6f9703c]* PgD=95366831、* Pte=4804a303、* Ppte=4804aa33
[3036.638811] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!
./timer.sh:第70行: 2237总线错误 (转储内核) devmem2 0x4804a03C
计时器正在运行!
定时器值2
/dev/mem 已打开。
映射到地址 bb6f67000的内存。[ 3037.683757]未处理故障:在 bb6f6703c 的非线性获取(0x1018)上的外部中止
[3037.695746] PgD = d52b0000
[3037.698479][b6f6703c]* PgD=9c533831、* Pte=4804a303、* Ppte=4804aa33
[3037.705103] EDMA 49000000.EDMA:dma_cerr_handler:无错误事件的错误中断!
./timer.sh:第70行: 2240总线错误 (转储内核) devmem2 0x4804a03C
计时器正在运行!
我的 timer7引脚始终保持低电平。 请帮助我 使用 timer7e2e.ti.com/.../8737.timer.doc 生成 PWM 信号。
请查看以下内核日志以了解计时器、
[0.000000] OMAP 时钟事件源:timer2为24000000 Hz
[0.000046] 时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
[0.000060] OMAP 时钟源:Timer1为24000000 Hz
[0.249064] 时钟源:切换到时钟源 Timer1
[0.267737] OMAP-TIMER4804a000.TIMER:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/timer7_pins_dee 的 pctldev
以下是我的器件树对 timer7的更改、
timer7_PINS_DEFAULT:timer7_PINS_DEFAULT{
pinctrl-single、pins =<
0x168 (PIN_OUTPUT | MUX_MODE5)/*(E18) uart0_CTSN.timer7 */
>;
};
&timer7{
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&timer7_PINS_DEFAULT>;
};
请查找随附的用户空间脚本以供参考。

