jetson-tx2平台mttcan驱动分析

本文详细分析了Jetson TX2平台上的MTTCAN驱动,包括驱动的网络设备注册、中断资源获取、设备分配及初始化过程,以及数据的发送和接收机制。驱动遵循platform架构,使用socket can,并涉及Bosch的CAN控制器硬件资源的配置和操作。
摘要由CSDN通过智能技术生成

       tx2内部集成了can控制器,用的是Bosch的芯片。can的驱动在tx2内核中被注册为网络设备也就是socket can,说到这里相信很多人已经猜到了驱动的大致架构,下面记录了我分析驱动的过程。

    首先该驱动还是遵循platform架构,所以我们这里就直接进入到probe函数了。

static int mttcan_probe(struct platform_device *pdev)
{
    struct net_device *dev;//网络设备,socket can
    struct mttcan_priv *priv;//mttcan私有结构体
    
    match = of_match_device(mttcan_of_table, &pdev->dev);//资源匹配
    
    irq = platform_g et_irq(pdev, 0);//获取中断资源
    alloc_mttcan_dev();//分配mttcan
    {
       dev = alloc_candev(sizeof(struct mttcan_priv), MTT_CAN_TX_OBJ_NUM);//分配can
       {
           //分配一个网络设备,分配大小size,size大小为对齐之后的值
           alloc_netdev(size, "can%d", NET_NAME_UNKNOWN, can_setup);
           priv = netdev_priv(dev);//使用私有数据
       }
    
        priv = netdev_priv(dev);//转为mttcan_priv私有结构体
        //时序固定值
        priv->can.bittiming_const = &mttcan_normal_bittiming_const;
        priv->can.data_bittiming_const = &mttcan_data_bittiming_const;
        //设置波特率,模式等函数
        priv->can.do_set_bittiming = mttcan_do_set_bittiming;
 

### 回答1: 首先,要手动安装Jetson TX2中的CUDA和CuDNN,需要按照以下步骤进行操作: 1. 下载CUDA Toolkit: - 首先,通过NVIDIA官方网站下载适用于Jetson TX2的CUDA Toolkit。 - 在下载页面上选择与您的Jetson TX2版本相对应的CUDA Toolkit版本,并下载该版本的.run文件。 2. 安装CUDA Toolkit: - 将下载的CUDA Toolkit文件拷贝到Jetson TX2设备上。 - 打开终端,进入到CUDA Toolkit文件所在的目录。 - 运行以下命令,以设置安装选项并启动安装过程: ``` chmod +x cuda_<version>_linux.run sudo ./cuda_<version>_linux.run ``` - 按照安装向导的指示进行操作,接受许可协议并选择相应的安装选项。 - 完成安装后,根据提示将必要的环境变量添加到系统配置文件中(如~/.bashrc)。 3. 下载CuDNN库文件: - 访问NVIDIA官方网站并下载与安装的CUDA Toolkit版本相对应的CuDNN库文件。 - 将下载的CuDNN库文件拷贝到Jetson TX2设备上。 4. 安装CuDNN库文件: - 将CuDNN库文件解压到一个指定目录中,例如'/usr/local/cuda/'。 - 打开终端,进入CuDNN库文件所在的目录。 - 运行以下命令以将CuDNN库文件拷贝到CUDA Toolkit的安装目录中: ``` sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* ``` 5. 配置环境变量: - 打开终端,编辑~/.bashrc文件: ``` nano ~/.bashrc ``` - 在文件末尾添加以下内容,并保存退出: ``` export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export CUDA_HOME=/usr/local/cuda ``` - 运行以下命令使环境变量配置生效: ``` source ~/.bashrc ``` 完成以上步骤后,您应该成功地手动安装了Jetson TX2中的CUDA和CuDNN。您可以通过在终端上运行`nvcc -V`来验证CUDA是否正确安装,并通过运行`cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2`来验证CuDNN是否正确安装。 ### 回答2: 首先,Jetson TX2是一款高性能边缘计算设备,用于深度学习、AI和计算机视觉等领域。CUDA和cuDNN是用于加速计算的关键软件,在Jetson TX2上手动安装这两个软件需要以下步骤: 1. 下载CUDA和cuDNN:首先,从NVIDIA官方网站下载适用于Jetson TX2的CUDA和cuDNN版本。确保选择与Jetson TX2硬件兼容的版本。 2. 安装CUDA:将下载的CUDA安装包复制到Jetson TX2上,并解压缩文件。然后,运行安装脚本来设置CUDA环境变量并安装CUDA。 3. 配置环境变量:为了正确地配置CUDA和cuDNN,需要设置环境变量。在终端中输入以下命令以打开.bashrc文件: ``` sudo nano ~/.bashrc ``` 然后,在文件的末尾添加以下行: ``` export CUDA_HOME=/usr/local/cuda export PATH=/usr/local/cuda/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH} ``` 保存并关闭文件,然后运行以下命令以使更改生效: ``` source ~/.bashrc ``` 4. 安装cuDNN:将下载的cuDNN安装包复制到Jetson TX2上,并解压缩文件。然后,将cuDNN库文件复制到CUDA的安装目录中。使用以下命令完成此操作: ``` sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* ``` 5. 验证安装:在终端中运行以下命令以验证CUDA和cuDNN是否安装成功: ``` nvcc -V ``` 如果输出中显示了CUDA版本信息,则说明CUDA安装成功。然后,可以使用深度学习框架(如TensorFlow,PyTorch等)来验证cuDNN的安装。 这些是手动安装CUDA和cuDNN的基本步骤。确保按照官方文档和说明进行操作,并根据自己的需求进行相应的配置和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值