主题中讨论的其他器件: IPNC-RDK-CSK、 TMS320DM8127
我使用 TMDSCSK8127板并使用 IPNC-RDK-CSK (3_9_1)
我需要从终端更改和读取 PLLSS (以及任何其他)寄存器值
据我所知、Linux_prcm_ipcam 使用 WR_MEM_32 (addr、data)寄存器直接写入寄存器
和 RD_MEM_32 (addr)直接 从寄存器读取
我添加了下一个代码、允许我选择用于读/写寄存器操作的地址
到/IPNC_RDK-3.9.1/Sources/IPNC_RDK/IPNC_APP/utils/prcm_app/linux_prcm_ipcam
------------------------------
if (0=strcmp (argv[1]、"rd")) //read reg value 操作
{
if (argc>2)
{
RD_MEM_32 (((int) strtol (argv[2]、NULL、16));
}
}
其他
if (0=strcmp (argv[1]、"wr")) //写入寄存器值操作
{
if (argc>3)
{
int reg=(int) strtol (argv[2]、NULL、16);
int val=(int) strtol (argv[3]、NULL、16);
printf ("写入 reg %p val %p \n"、reg、val);
WR_MEM_32 (reg、 val);
RD_MEM_32 (reg); //查看写入 reg 操作的结果
}
}
其他
开关(argv[1][0]){
------------------
我从终端在目标上运行它。
我在0x48180D10 RM_ISP_RSTCTRL 寄存器上对其进行测试:
读取寄存器值、然后将其他值写入寄存器地址、
再次读取 reg 值并找到它
此寄存器的写入操作成功:
------------------------------------------------------
root@ti81xx:/opt/ipnc #./linux_prcm_ipcam rd 0x48180D10
/dev/mem 已打开。
PHY 地址:0x48180d10数据:0x00000007
root@ti81xx:/opt/ipnc #./linux_prcm_ipcam 电源0x48180D10 3.
/dev/mem 已打开。
写入寄存器0x48180d10 val 0x3
PHY 地址:0x48180d10数据:0x00000003
------------------------------------------------------
然后、在重新启动后、我尝试执行步骤来重新配置 VIDEO1PLL
e2e.ti.com/.../1161204
使用终端的"/linux_prcm_ipcam wer":
1.将 VIDEO1PLL_CLKCTRL[23] IDLE = 1 //这样您就开始从锁定/有效模式转换到旁路/空闲模式
PLLSS 外设寄存器基址:0x481C_5000 (TMS320DM8127 DaVinci 视频处理器数据表(修订版 C)的表3-6)
VIDEO1PLL_CLKCTRL 偏移: 1D4h (表2-42 MS320DM814x DaVinci 数字媒体处理器技术参考手册(SPRUGZ8))
------------------------------------------------------
root@ti81xx:/opt/ipnc #./linux_prcm_ipcam rd 0x481C51D4
PHY 地址:0x481c51d4数据:0x08910811
------------------------------------------------------
因此、VIDEO1PLL_CLKCTRL[23] IDLE = 1
等待 VIDEO1PLL_STATUS[8] BYPASSCK =1和 VIDEO1PLL_STATUS[0] BYPASS =1
VIDEO1PLL_CLKCTRL 偏移: 1F4h
------------------------------------------------------
root@ti81xx:/opt/ipnc #./linux_prcm_ipcam rd 0x481C51F4
PHY 地址:0x481c51f4数据:0xe0000161
------------------------------------------------------
因此、IDEO1PLL_STATUS[8] BYPASSCK == 1和 VIDEO1PLL_STATUS[0] BYPASS == 1
3、清零位 VIDEO1PLL_CLKCTRL[0] TINITZ = 0
------------------------------------------------------
root@ti81xx:/opt/ipnc。#./linux_prcm_ipcam 功率0x481C51D4 0x08910810
/dev/mem 已打开。
写入寄存器0x481c51d4 val 0x8910810
PHY 地址:0x481c51d4数据:0x08910811
------------------------------------------------------
因此、我尝试更改 IDEO1PLL_STATUS 寄存器的值、但它失败、值不变。
我应该如何使用 PLLSS 存储器映射寄存器来更改它们的值?
我能否从 linux_prcm_ipcam 使用任何存储器映射寄存器?