TI中文支持网
TI专业的中文技术问题搜集分享网站

AM5728 非OS驱动DCAN

【目的】把PRU当作单片机,通过CCS裸机C语言编程,编写DCAN驱动,达到与外部设备DCAN通信的功能。

【IDE】CCS10.1

【OS】linux,kernel version:4.9.69-rr-1.1+

【遇到的问题】通过映射DCAN1寄存器的地址的方式,读取及修改DCAN1寄存器的配置,但通过这种方式,读取到的值一直是0x00000000。用同样的方式可以驱动内部总线上的GPO。

【实现方式】

#define DCAN1_CTL             0x4AE3C000

#define HWREG(x)                (*((volatile unsigned int *)(x)))

volatile unsigned int ReadDCAN1Reg(void)

{

volatile unsigned int r_DCAN1_CTL = 0;

r_DCAN1_CTL = HWREG(DCAN1_CTL);

return r_DCAN1_CTL ;

}

【假想】

1. 是否存在资源冲突

2. 访问保护机制,如防火墙?

【尝试】

针对第一点,我把OS的设备树中的DCAN1资源,不给OS层,但结果还是一样,返回的值一直是0x00000000

针对第二点,我正在查阅数据手册,L3,L4防火墙的机制,但是现在还是没有方向。

请问是否有什么建议或者我不知道的机制?

Nancy Wang:

参考以下帖子看一下是否有帮助。
e2e.ti.com/…/522451
您在英文论坛发布的帖子,我再帮您发邮件问一下。

,

Nancy Wang:

您在英文论坛发布的帖子已有工程师回复,请跟进。

赞(0)
未经允许不得转载:TI中文支持网 » AM5728 非OS驱动DCAN
分享到: 更多 (0)