0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

迅为2K1000龙芯开发板pmon BSP移植之配置CAN总线

北京迅为电子 2022-01-20 14:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

移植pmon要比移植uboot难吗?

和 uboot 移植相比,给开发板移植 pmon 难吗?有什么区别呢。我们在移植 uboot 的时候,基本上是不 会在 uboot 的官网去下载纯净的 uboot 镜像的,而是用的半导体厂家提供的 bsp 包里面的 uboot。为什么要 这么做呢?并不是说 uboot 官网里面的 uboot 源码不能用,不能移植,而是 uboot 官网里面的 uboot 对相应的 CPU 的支持不是很好。你想哈,谁对 CPU 最熟悉呢?肯定是半导体厂家是不是,他们对自己的 CPU 肯定 是最熟悉的。所以他们提供的 bsp 里面的 uboot 是对他们的 CPU 支持最好的,驱动最全的。所以我们不会 在 uboot 官网去下载,然后在去移植。而且使用半导体厂家提供的 BSP 还有一个好处,就是移植非常简单。

就拿 uboot 移植来说,只需要基于半导体厂家的 BSP 来针对自己的开发板适配即可。所需要的工作并不多。

同理,在 LS2K1000 上我们使用的是 pmon,那这个 pmon 我们要去找原生的吗,显然不是。pmon 现在是龙 芯中科在进行维护,所以,龙芯中科提供的 pmon 会对自己的 CPU 支持的非常友好。基本上就是我们拿到 BSP 以后,稍加修改就可以完美的在开发板上来运行了。所以,pmon 的移植要比 uboot 的移植更加简单。

9.9.2 获取原厂 pmon 源码

源码 pmon 源码在:LS2K1000 开发板资料\12_原厂 BSP\1_pmon 源码

接着我们将 pmon 源码拷贝到 Ubuntu 虚拟机的任意目录下,然后按照手册 7.1 编译和 6.6 烧写 pmon 到开发板。可以发现,源码的 pmon 源码直接编译成功就可以在开发板上运行。非常友好。

9.9.3 配置 can 总线

我就进到 pmon 源码的 pmon-loongson3/Targets/LS2K/conf 路径下,使用命令 cp LS2K.dts LS2K.dts_back 备份一下设备树文件,如下图所示:

接着我们使用命令 vim LS2K.dts 打开设备树文件,找到 can0 和 can1 的设备节点,可以发现,在 BSP 里 面已经默认配置好了,不需要我们在额外配置,如下图所示:

接着我们来配置引脚的复用关系,通过 LS2K1000 的数据手册,可知地址 0x1fe10420 的第 16 到 17 位配置的是 can 引脚的复用关系,如下图所示:

通过上表可知,如果我们要把 GPIO 设置为 CAN 功能,我们需要将 16 到 17 位设置为 1,我们可以直接在 pmon 里面操作这个寄存器,比如使用在 Targets/LS2K/ls2k/tgt_machdep.c 文件中增加代码(volatile int *)0xbfe10420 |=(2<<16)将这俩位设置为 1,但是在 pmon 的 bsp 里面这些工作已经给我们做好了,只不过是没有编译进去而已。

在 Targets/LS2K/ls2k/tgt_machdep.c 文件的第 464 行使用了宏定义 PAI2 来决定包不包含 pai2.c 文件,如下图所示:

pai2.c 文件在路径 Targets/LS2K/ls2k/pai2.c 下,这个文件里面通过宏定义 SEL_CAN 来对 CAN 的管脚复用进行了配置,如下图所示:

所以我们是不是就不用在自己单独来添加代码了呢,我们只需要加上这 PAI2 和 SEL_CAN 这来个宏定义即可,我们打开 Targets/LS2K/conf/ls2k 文件,取消注释 option PAI2 并增加宏定义 option SEL_CAN,如下图所示:

然后我们重新编译 pmon 源码并烧写到开发板上,使用命令 devmem 0x1fe10420 来查看有没有成功将这俩个管脚的复用设置成 can,如下所示:

将 0x00131D49 换算成 2 进制,可以发现 16 到 17 位已经成功设置成了 1,所以这俩个 GPIO 已经成功被设置成 CAN。接着我们就可以来测试开发板的 CAN 功能了。

3.2.7 CAN 接口测试

开发板板载了两路 CAN 接口, 我们可以使用这两路 CAN 接口验证 CAN 的数据收发。首先我们使用电缆线连接 CAN1 和 CAN2(can 连接的时候: H 接 H、 L 接 L) , 如下图所示:

开发板上的两路 CAN 默认是关闭的, 我们在调试串口终端输入“ip link set can0 up type can bitrate

125000 triple-sampling on” 命令, 设置 CAN0 的波特率是 125000, 并打开 CAN0, 运行结果如下图所示:

然后我们在调试串口终端输入“

ip link set can1 up type can bitrate 125000 triple-sampling on” 命令, 设

置 CAN1 的波特率是 125000( CAN 总线在进行数据收发的时候,通信双方的波特率要设置成一致),并

打开 CAN1, 运行结果如下图所示:

接下来我们使用 CAN0 作为数据接收端, 我们需要在调试串口终端输入“candump can0 &” 命令, 运行结果如下图所示:

然 后 我 们 使 用 CAN1 作 为 数 据 发 送 端 , 我 们 在 调 试 串 口 终 端 输 入 “cansend can1 6A0#11.22.33.44.55.66.77.88”命令, 发送数据, 其中的 6A0 是帧 ID, #后面的是数据, 共 8 个字节。 运行结果如下图所示:

上图我们可以看到 CAN1 发送数据以后, 后台运行的 CAN0 接收程序收到了 CAN0 的数据, 并显示出来, 接收到的数据和发送的数据内容一致。

数据接收端和发送端也可以互换,可以参考上面的命令(主要是解释和发送程序的 CAN 接口设置对)。

相应视频教程:https://www.bilibili.com/video/BV1mT4y117eN?p=1

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 龙芯
    +关注

    关注

    3

    文章

    445

    浏览量

    32933
  • PMON
    +关注

    关注

    0

    文章

    8

    浏览量

    8464
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    iTOP-Hi3516CV610开发板SDK升级更新

    为了让大家在使用iTOP-Hi3516CV610开发板进行产品开发时,拥有更强大的性能和更丰富的功能,我们对开发板的底层SDK进行了重大
    的头像 发表于 03-27 14:26 376次阅读

    性能猛兽再进化!iTOP-3588开发板新增LPDDR5商业级16G+64G旗舰配置

    性能猛兽再进化!iTOP-3588开发板新增LPDDR5商业级16G+64G旗舰配置
    的头像 发表于 02-26 15:03 825次阅读
    性能猛兽再进化!<b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-3588<b class='flag-5'>开发板</b>新增LPDDR5商业级16G+64G旗舰<b class='flag-5'>配置</b>!

    iTOP-Hi3403开发板:解锁多目拼接相机的10.4TOPS强“芯”动力,开启4K智能视觉新纪元

    iTOP-Hi3403开发板:解锁多目拼接相机的10.4TOPS强“芯”动力,开启4K智能视觉新纪元
    的头像 发表于 01-29 11:05 1128次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-Hi3403<b class='flag-5'>开发板</b>:解锁多目拼接相机的10.4TOPS强“芯”动力,开启4<b class='flag-5'>K</b>智能视觉新纪元

    驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略

    驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略
    的头像 发表于 12-30 15:42 1228次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>驱动<b class='flag-5'>开发</b>实战:iTOP-RK3568<b class='flag-5'>开发板</b>eDP屏幕<b class='flag-5'>移植</b>全攻略

    探索UCANS32K1系列CAN节点开发板:设计、应用与实战指南

    、工业自动化、无人机等众多领域得到广泛应用。NXP的UCANS32K1系列CAN节点开发板开发者提供了一套强大且灵活的解决方案,可用于构
    的头像 发表于 12-25 11:40 603次阅读

    RK3588开发板Android系统烧写及注意事项

    RK3588开发板Android系统烧写及注意事项
    的头像 发表于 12-03 15:17 7378次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3588<b class='flag-5'>开发板</b>Android系统烧写及注意事项

    开发板到工业核心:RK3576的金属外壳,为何是行业应用的“点睛笔”?

    开发板到工业核心:RK3576的金属外壳,为何是行业应用的“点睛笔”?
    的头像 发表于 11-26 13:45 921次阅读
    从<b class='flag-5'>开发板</b>到工业核心:<b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3576的金属外壳,为何是行业应用的“点睛<b class='flag-5'>之</b>笔”?

    iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验

    iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验
    的头像 发表于 11-24 15:29 943次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-3568<b class='flag-5'>开发板</b> Linux驱动<b class='flag-5'>开发</b>实战:menuconfig图形化<b class='flag-5'>配置</b>实验

    3568开发板从零学习Linux驱动开发一站式资料包如何让我效率翻倍

    3568开发板从零学习Linux驱动开发一站式资料包如何让我效率翻倍
    的头像 发表于 11-05 11:16 530次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>3568<b class='flag-5'>开发板</b>从零学习Linux驱动<b class='flag-5'>开发</b>:<b class='flag-5'>迅</b><b class='flag-5'>为</b>一站式资料包如何让我效率翻倍

    iTOP-RK3576开发板再升级全新金属外壳

    iTOP-RK3576开发板再升级全新金属外壳
    的头像 发表于 10-22 15:48 1409次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-RK3576<b class='flag-5'>开发板</b>再升级全新金属外壳

    RK3568开发板模型推理测试实战LPRNet 车牌识别

    RK3568开发板模型推理测试实战LPRNet 车牌识别
    的头像 发表于 08-25 14:55 1545次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3568<b class='flag-5'>开发板</b>模型推理测试实战LPRNet 车牌识别

    RK3562开发板 Ubuntu系统功能测试

    RK3562开发板 Ubuntu系统功能测试
    的头像 发表于 07-10 13:46 1521次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3562<b class='flag-5'>开发板</b> Ubuntu系统功能测试

    RK3576开发板NPUrknn-toolkit2环境搭建和使用docker环境安装

    RK3576开发板NPUrknn-toolkit2环境搭建和使用docker环境安装
    的头像 发表于 06-18 15:22 1461次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3576<b class='flag-5'>开发板</b>NPUrknn-toolkit<b class='flag-5'>2</b>环境搭建和使用docker环境安装

    RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用

    RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用
    的头像 发表于 06-17 13:46 1977次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3576<b class='flag-5'>开发板</b>NPU例程测试-rknn-toolkit<b class='flag-5'>2</b>环境搭建和使用

    RK3562开发板Buildroot系统功能测试

    RK3562开发板Buildroot系统功能测试
    的头像 发表于 06-13 13:46 2262次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>RK3562<b class='flag-5'>开发板</b>Buildroot系统功能测试