您尚未登录。

楼主 # 2023-07-19 09:10:11

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,212
积分: 1148.5

t113-s3打开can失败,感觉象是没打开can时钟?

按aw-ol的这个帖子修改的。
之前用的mango sdk,也是按这个修改后,can功能可以正常使用。这次用了tina linux 2.1,结果按帖子配置后,配置can波特率失败。
https://bbs.aw-ol.com/topic/1383/t113-s3-can%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8%E7%9A%84%E5%85%A8%E9%83%A8%E4%BF%A1%E6%81%AF

root@TinaLinux:/# ip link set can0 type can bitrate 100000                      
[77081.499110] sunxi_can 2504400.can can0: 0-3343301252-0                       
[77081.504850] sunxi_can 2504400.can can0: bitrate error 100.0% too high        
RTNETLINK answers: Domain error 

在drive/net/can/dev.c里的
static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt, const struct can_bittiming_const *btc)
函数里找到了对应报错信息:

188      if (bitrate_error > CAN_CALC_MAX_ERROR) {
   1       netdev_err(dev, "%u-%u-%u\n", bitrate, bt-bitrate, priv->clock.freq); //any
   2       netdev_err(dev,
   3            "bitrate error %d.%d%% too high\n",
   4            bitrate_error / 10, bitrate_error % 10);
   5       return -EDOM;
   6     }

结果priv->clock.freq是0.
我觉得可能是没打开can时钟,那么,在哪里打开呢?

最近编辑记录 Gentlepig (2023-07-19 09:17:27)

离线

楼主 #1 2023-07-20 15:20:15

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,212
积分: 1148.5

Re: t113-s3打开can失败,感觉象是没打开can时钟?

linux-5.4/drivers/clk/sunxi-ng/ccu-sun8iw20.c
该文件里, 缺少这几行:

static SUNXI_CCU_GATE(bus_can0_clk, "bus-can0", "apb1", 0x92c, BIT(0), 0);
static SUNXI_CCU_GATE(bus_can1_clk, "bus-can1", "apb1", 0x92c, BIT(1), 0);
  &bus_can0_clk.common,
  &bus_can1_clk.common,

在mango sdk里,是默认就有这些的。
注意,修改后,再mp,结果还是会报同样的错误,但是在linux目录下make clean后,然后顶层目录下mp就没事了。

最近编辑记录 Gentlepig (2023-07-20 15:23:16)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn