首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >迅为2K1000龙芯开发板pmon BSP移植之配置CAN总线

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

原创
作者头像
用户6335423
发布于 2022-01-20 06:47:13
发布于 2022-01-20 06:47:13
7570
举报

移植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 接口设置对)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
国产软硬件龙芯系列迅为2K1000开发板配置 nand flash
更新包含了开发环境搭建、系统编译与烧写和pmon基础知识、启动流程分析、网络加载系统、烧写系统到nand以及新增pmon 移植教程、新增pmon下操作GPIO章节和pmon下Ejtag使用章节等。
用户9167207
2022/04/12
1K0
国产软硬件龙芯系列迅为2K1000开发板配置 nand flash
迅为2K1000龙芯开发板pmon 下操作 GPIO
我们可以来学习如何在 pmon 下操作 gpio 了, 为什么要把这个需求单独拿出来讲呢? 因为有的时候我们做了一款产品, 在特定的环境下需要让 GPIO 在上电时就是就保证是一个确定的电平, 如高电平或者低电平。 Uboot 上这些资料非常的多, 所以我们别的板子对于这个需求就没单独拿出来给大家讲, 但是龙芯用的是 pmon, pmon 上相关的资料太少了, 所以有必要单独作为一章给大家讲解。
用户9167207
2022/06/02
7840
迅为2K1000龙芯开发板pmon 下操作 GPIO
【迅为干货】龙芯2k1000开发板opencv 测试
采用龙芯2K1000处理器集成2个64位GS264处理器核,主频1GHz,以及各种系统IO接口。
用户9167207
2022/06/10
6080
【迅为干货】龙芯2k1000开发板opencv 测试
迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘
龙芯的系统可以存放在 Nand Flash,SD 卡,U 盘,固态或者是网络加载,迅为的龙芯开发板核心板默认没有焊接 Nand Flash,是将文件系统存储在底板的固态硬盘上,这一章节我们将系统烧写到 U 盘,也可以称之为 U 盘启动。
用户9167207
2021/11/24
1.2K0
迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘
龙芯ls2k1000开发板移植rt-thread笔记
本文主要针对龙芯2k1000的龙芯派的开发板进行rt-thread移植,通过这篇文章,基本上掌握rt-thread对于一个新的体系架构上的移植过程,同时也可以很好的掌握mips64体系架构上的相关知识,同时熟悉使用龙芯派2k1000。
bigmagic
2020/05/08
3.2K0
龙芯ls2k1000开发板移植rt-thread笔记
迅为2K1000开发板龙芯平台Ejtag 单步调试 PMON 的汇编阶段
在 9.6 小节中,我们在汇编节点实现了 led 闪烁的功能,如果您自己写的程序没有成功,我们该如何调 试呢?就可以利用 Ejtag 仿真器进行单步调试。
用户9167207
2022/03/21
7020
迅为2K1000开发板龙芯平台Ejtag 单步调试 PMON 的汇编阶段
迅为2K1000龙芯开发板-pmon 下常用命令
进入到 pmon 命令行下我们是开机后通过按键盘上的 C 按键进去的,进到命令行以后,我们就可以使
用户6335423
2021/11/29
6750
迅为2K1000龙芯开发板-pmon 下常用命令
「干货」基于TMS320C6678开发板,ZYNQ Linux应用案例开发手册分享
本篇文章与大家分享基于TMS320C6678开发板的ZYNQ Linux应用案例开发测试分享,内容包含有开发案例基础说明、Linux常用开发案例和Python开发案例,后续还将分享更多ZYNQ端、DSP端、DSP+ZYNQ端的通信开发测试案例等,欢迎大家多多关注。
创龙科技Tronlong
2022/07/25
1.1K0
「干货」基于TMS320C6678开发板,ZYNQ Linux应用案例开发手册分享
i.MX6ULL嵌入式Linux开发1——uboot移植初探
本系列教程以「i.MX6ULL」处理器的ARM开发板为实验基础,学习记录嵌入式Linux开发的各种知识与经验,主要内容包括嵌入式Linux移植,嵌入式Linux驱动开发,嵌入式Linux应用开发等。
xxpcb
2021/07/20
2.8K0
全国产!瑞芯微 RK3576 ARM 八核 2.2GHz 工业开发板—Linux应用开发手册
本文涉及的开发案例位于产品资料“4-软件资料\Demo\”路径下的base-demos和python-demos目录。
创龙科技Tronlong
2025/06/25
1570
全国产!瑞芯微 RK3576 ARM 八核 2.2GHz 工业开发板—Linux应用开发手册
嵌入式测试手册——基于NXP iMX6ULL开发板(2)
基于测试板卡:创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
创龙科技Tronlong
2023/05/04
1.6K0
嵌入式测试手册——基于NXP iMX6ULL开发板(2)
IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM
i.MX8MM开发板采用四核Cortex-a53,单核cortex-m4,多达五个内核,主频高达,1.8GHz,开发板提供强大音视频处理能力,8路PDM接口,5路SAI接口,2路Speaker。支持H264,VP8格式的视频编码,H264,H265,VP8,VP9视频硬解码,最大支持1080P,并提供相关历程。
用户9167207
2022/06/01
1.4K0
IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM
迅为国产RK3568开发板Android移植 LCD 屏幕
rk3568 芯片非常强大,可以支持的屏幕接口有很多,显示接口支持可是非常丰富的,
用户9167207
2022/04/13
3.7K0
迅为国产RK3568开发板Android移植 LCD 屏幕
迅为RK3588S开发板多屏同显多屏异显多屏异触
迅为电子RK3588 S开发板最多可以支持 7 个屏幕显示,这主要取决于 RK3588 芯片内置了 VOP 控制器, 支持四路视频同显或异显,可有效提高行业定制的拓展性。本章节我们将介绍在 RK3588S 的 Android12 系统上实现多屏显示。
用户10555372
2024/11/29
3640
迅为RK3588S开发板多屏同显多屏异显多屏异触
北京迅为- 2K1000龙芯开发板芯片特点
n 支持标准读、连续地址读、快速读、 双路 I/O 等 SPI Flash 读模式
用户9167207
2021/11/09
6160
北京迅为- 2K1000龙芯开发板芯片特点
迅为iTOP-3A5000龙芯开发板安装UOS操作系统
3A5000板卡采用全国产龙芯3A5000处理器,基于龙芯自主指令系统(LoongArch®),市面上龙芯3A5000主板价格都在上万元,可以说是非常贵了,
用户9167207
2023/02/14
1.1K0
迅为iTOP-3A5000龙芯开发板安装UOS操作系统
迅为RK3588开发板Android多屏显示之多屏同显和多屏异显
迅为RK3588开发板是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP,内置NPU,支持INT4/INT8/INT16/FP16混合运算能力,支持安卓12和、Debian11、Build root、Ubuntu20和22版本登系统。了解更多信息可点击迅为官网
用户10555372
2024/11/05
5150
迅为RK3588开发板Android多屏显示之多屏同显和多屏异显
迅为i.MX6Q开发板Openwrt 文件系统构建
配套资料在网盘资料的“iTOP-i.MX6 系列开发板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 开发板资料汇总(不含光盘资料)\12_iTOP-i.MX6 开发板 buildroot 系统 OTA 升级” Cisco/Linksys 在 2003 年发布了 WRT54G 这款无线路由器,同年有人发现它的 IOS 是基于 Linux 的,然而Linux 是基于 GPL 许可证发布的,按照该许可证 Cisco 应该把 WRT54G 的 IOS 的源代码公开。
用户9167207
2022/04/19
1.4K0
迅为i.MX6Q开发板Openwrt 文件系统构建
【北京迅为】itop-3588开发板快速测试手册-银河麒麟系统功能测试
背光的亮度设置范围为(0--255),255 表示亮度最高,0 表示关闭背光亮度。进入系统
用户10555372
2024/09/09
2320
【北京迅为】itop-3588开发板快速测试手册-银河麒麟系统功能测试
全志T3开发板——嵌入式入门学习测试教程(4)
本文主要为嵌入式入门开发者的接口、网口等板卡基础快速测试,当初级学习的开发者拿到板卡,如何在最快时间内测试板卡正常?,接下来是等是否正常。继续测试教程(3)的测试板卡的SATA接口、USB接口读写、USB HOST模式测试、USB DEVICE模式、串口测试等测试部分,接下来是CAN测试、VGA接口、7英寸LCD触摸屏、10.4英寸LVDS触摸屏、7英寸MIPI触摸屏等测试部分是否正常。
创龙科技Tronlong
2022/03/31
3.6K0
全志T3开发板——嵌入式入门学习测试教程(4)
推荐阅读
相关推荐
国产软硬件龙芯系列迅为2K1000开发板配置 nand flash
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档