1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位好:
最近使用DM8148,使用DVRRDK_02.80.00.10,需要使用uart3,uart4,uart5,例uart5管脚使用VOUT[1]_R_CR[8]/EMAC[1]_MTXD[7]/VIN[1]A_D[19]/UART5_RXD/GP3[18]和VOUT[1]_R_CR[9]/EMAC[1]_MTXEN/VIN[1]A_D[20]/UART5_TXD/GP3[19],kernel中添加 以及时钟配置,当rootfs启动后不跑m3和dsp时可以正常使用uart5,当运行init.sh和load.sh后,即加载m3核和dsp核,出现uar3-uart5不能使用的情况,请问谁遇到过这样的问题,谢谢 |
|
相关推荐
9个回答
|
|
|
|
|
|
请问我怎么 pinmux寄存器是否被修改呢?有什么工具或者TI有什么接口提供测试吗?谢谢 |
|
|
|
Xu Jun, 你使用的软件版本有点旧了。新的版本里面在文件系统下都有mem_rdwr.out可以直接读取寄存器值,例如文件系统路径optdvr_rdkti814xbin下。 |
|
|
|
物是人非aaa 发表于 2018-6-23 06:28 你好,我使用./mem_rdwr.out --rd 48140b84 1 在不load M3和DSP的时候 读到的值是 0x48140b84: 00060020 当我load核心后读出的值是0x48140b84: 00050004说明这个值确实被改变了,我想问下这个dvr_rdk架构中M3核设置这些管脚复用是在那个位置,谢谢 |
|
|
|
linlin3105 发表于 2018-6-23 06:42 另外这个值只能读,我使用./mem_rdwr.out --wr 48140b84 00060020写入原来的值。但是不能写入返回ORG 0x48140b84: 50004 NEW 0x48140b84: 50004是怎么回事 |
|
|
|
linlin3105 发表于 2018-6-23 06:58 Xu Jun, 这个out文件是A8上用户态的可执行文件,但pinmux的修改必须是A8的supervior模式下才能修改,所以这个out文件不能写入pinmux寄存器是正常的。 你能在M3或者DSP侧找到修改修改这个寄存器的地方么?或者在m3或者DSP的代码里面再次修改这个寄存器。 |
|
|
|
物是人非aaa 发表于 2018-6-23 07:06 Chris Meng: 非常感谢你的解答, 我根据你说的修改代码后可以读出和写入数据,但是发现数据收发不正确,测试代码如下: int main(int argc, char *argv[]) [ int iFd, i = 0; int len; unsigned char ucBuf[1000]; unsigned char rBuf[1000]; struct termios opt; char path[30] = [0]; if(argc == 2)[ iFd = open(argv[1], O_RDWR | O_NOCTTY); if(iFd < 0) [ perror(path); return -1; ] ] else[ iFd = open(DEV_NAME, O_RDWR | O_NOCTTY); if(iFd < 0) [ perror(DEV_NAME); return -1; ] ] tcgetattr(iFd, &opt); if (tcgetattr(iFd, &opt)<0) [ return -1; ] opt.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG); opt.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); opt.c_oflag &= ~(OPOST); opt.c_cflag &= ~(CSIZE | PARENB); opt.c_cflag |= CS8; opt.c_cc[VMIN] = 150; opt.c_cc[VTIME] = 10; cfsetispeed(&opt, B19200); cfsetospeed(&opt, B19200); if (tcsetattr(iFd, TCSANOW, &opt)<0) [ return -1; ] tcflush(iFd,TCIOFLUSH); for (i = 0; i < 1000; i++)[ ucBuf = 0xff - i; ] len = write(iFd, ucBuf, 0xff); while(1)[ #if 1 len = read(iFd, rBuf, 0x1); printf("get data: %d n", len); for (i = 0; i < len; i++)[ printf("0x%xn", rBuf); ] #endif ] close(iFd); return 0; ] 程序运行后,接收到的数据如下 内核中时钟添加 static void __init init_uart3_clk(void)[ __raw_writel((2 << 3)|(__raw_readl(TI814X_PLL_CMGC_MCBSP_UART_CLKSRC)), TI814X_PLL_CMGC_MCBSP_UART_CLKSRC); /* sysclk10 as a reference clock */ ] static void __init init_uart4_clk(void)[ __raw_writel((2 << 5)|(__raw_readl(TI814X_PLL_CMGC_MCBSP_UART_CLKSRC)), TI814X_PLL_CMGC_MCBSP_UART_CLKSRC); /* sysclk10 as a reference clock */ ] static void __init init_uart5_clk(void)[ __raw_writel((2 << 7)|(__raw_readl(TI814X_PLL_CMGC_MCBSP_UART_CLKSRC)), TI814X_PLL_CMGC_MCBSP_UART_CLKSRC); /* sysclk10 as a reference clock */ ] |
|
|
|
linlin3105 发表于 2018-6-23 07:17 已经解决,谢谢 |
|
|
|
你好 请问 可以发一份 mem_rdwr.out 或者给一下sdk新版的url么 谢谢 bsyw8984@qq.com |
|
|
|
只有小组成员才能发言,加入小组>>
340 浏览 1 评论
533 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
777 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
653 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1132 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
63浏览 29评论
159浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
253浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
202浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
60浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 20:42 , Processed in 1.044804 second(s), Total 93, Slave 77 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号