吴忠躺衫网络科技有限公司

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

    文章

    349

    瀏覽量

    31362
  • PMON
    +關注

    關注

    0

    文章

    7

    瀏覽量

    8252
收藏 人收藏

    評論

    相關推薦

    龍芯2K1000開發板/核心流暢運行Busybox、Buildroot、Loognix、QT5.12系統

    視頻教程 新增龍芯2K1000開發環境搭建系列、系統編譯與燒寫系列、PMON基礎知識及啟動流程分析系列、pmon
    發表于 01-21 14:38

    龍芯LS2K1000LA和LS2K1000有何區別?

    則是使用mips架構。所以倆個不同架構的處理器使用的源碼略有不同,但是硬件上基于2k10002k1000la的開發板&核心
    發表于 11-14 11:06

    電子】龍芯LS2K1000LA和LS2K1000有何區別?

    電子】龍芯LS2K1000LA和LS2K1000有何區別?
    的頭像 發表于 11-13 14:13 ?343次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>電子】<b class='flag-5'>龍芯</b>LS<b class='flag-5'>2K1000</b>LA和LS<b class='flag-5'>2K1000</b>有何區別?

    itop-3568開發板AMP雙系統使用手冊燒寫AMP鏡像

    itop-3568開發板AMP雙系統使用手冊燒寫AMP鏡像
    的頭像 發表于 11-04 15:00 ?643次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>itop-3568<b class='flag-5'>開發板</b>AMP雙系統使用手冊<b class='flag-5'>之</b>燒寫AMP鏡像

    【北京】itop-龍芯2k1000開發指南Linux基礎入門vim 編輯器

    【北京】itop-龍芯2k1000開發指南Linux基礎入門vim 編輯器
    的頭像 發表于 10-25 14:56 ?361次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】itop-<b class='flag-5'>龍芯</b><b class='flag-5'>2k1000</b><b class='flag-5'>開發</b>指南Linux基礎入門vim 編輯器

    國產龍芯處理器選擇2K1000開發板有資料

    視頻教程 新增龍芯2K1000開發環境搭建系列、系統編譯與燒寫系列、PMON基礎知識及啟動流程分析系列、pmon
    發表于 10-16 14:23

    龍芯2K0300蜂鳥試用】龍芯2K0300蜂鳥開發板引腳定義及體驗開發板

    今天大家隆重介紹這塊龍芯2K0300蜂鳥開發板你詳細介紹開發板引腳定義及
    發表于 09-19 18:54

    【作品合集】龍芯2K0300蜂鳥開發板試用精選

    廣東龍芯2K0300蜂鳥開發板采用核心加擴展板的模式設計,核心上集成了CPU 、DDR4 、PHY芯片、EMMC、NOR FLASH等
    發表于 09-10 18:17

    龍芯2K0300蜂鳥試用】龍芯2K0300蜂鳥開發板開發環境搭建

    的需求,開發者提供了廣闊的應用空間。 龍芯2K0300蜂鳥開發板開發環境通過下面的方法來搭
    發表于 09-05 21:16

    北京RK3568開發板嵌入式學習Linux驅動全新更新-CAN+

    北京RK3568開發板嵌入式學習Linux驅動全新更新-CAN+
    的頭像 發表于 09-04 15:29 ?614次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3568<b class='flag-5'>開發板</b>嵌入式學習<b class='flag-5'>之</b>Linux驅動全新更新-<b class='flag-5'>CAN</b>+

    【北京龍芯iTOP-LS2K0500開發板快速啟動手冊-第3章 Windows安裝串口終端

    龍芯iTOP-LS2K0500開發板
    的頭像 發表于 08-28 15:13 ?619次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】<b class='flag-5'>龍芯</b>iTOP-LS<b class='flag-5'>2K</b>0500<b class='flag-5'>開發板</b>快速啟動手冊-第3章 Windows安裝串口終端

    【北京】itop-龍芯2k1000 sylixos 嵌入式實時系統燒寫手冊-第一章與第二章 詳細步驟

    【北京】itop-龍芯2k1000 sylixos 嵌入式實時系統燒寫手冊-第一章與第二章 詳細步驟
    的頭像 發表于 08-26 14:18 ?784次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】itop-<b class='flag-5'>龍芯</b><b class='flag-5'>2k1000</b> sylixos 嵌入式實時系統燒寫手冊-第一章與第二章 詳細步驟

    2K0500開發板硬件連接快速測試

    2K0500開發板硬件連接快速測試
    的頭像 發表于 08-13 15:40 ?370次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>2K</b>0500<b class='flag-5'>開發板</b>硬件連接快速測試

    Banana Pi開源社區推出BPI-5202開發板,國產龍芯Loongson 2K1000LA

    BPI-5202作為單純的嵌入式通用控制器軟硬件開發平臺,采用龍芯2K1000LA芯片設計,基本配置中有2個獨立MAC以太網端口、
    的頭像 發表于 04-13 16:14 ?1162次閱讀
    Banana Pi開源社區推出BPI-5202<b class='flag-5'>開發板</b>,國產<b class='flag-5'>龍芯</b>Loongson <b class='flag-5'>2K1000</b>LA

    [廣東龍芯2K1000/2K500開發板] OpenWRT 使用說明

    如何編譯 從BSP 包的文件系統目錄下找到OpenWrt 的源碼并解碼。 ##源碼中已包含2k500和2k1000板卡的配置 ##2k50
    發表于 02-19 14:40
    威尼斯人娱乐棋牌是真的吗| 大发888娱乐场1888| 评测百家乐博彩网站| 索罗门百家乐官网的玩法技巧和规则 | 玩百家乐技巧看| 百家乐官网娱乐城体验金| 百家乐官网做中介赚钱| 大发888娱乐捕鱼游戏| 百家乐赢钱的技巧是什么| 澳门百家乐官网博牌| 单张百家乐官网论坛| 网上棋牌室| 威尼斯人娱乐场五星| 百家乐长龙如何判断| 自贡百家乐官网赌场娱乐网规则| 互博百家乐官网现金网| 老江死了| 澳门顶级赌场金沙| 金沙百家乐的玩法技巧和规则| 百家乐正网包杀| 什么叫百家乐官网的玩法技巧和规则 | 线上百家乐官网的玩法技巧和规则 | 池州市| 六合彩网址| 大发888 这类平台| 试玩百家乐1000| 澳门百家乐实战| 百家乐官网平注常赢玩法| 百家乐官网有人玩吗| 永利博百家乐官网现金网| 长宁县| 丹凤县| 澳门博彩足球| 易胜博足球开户| 六合彩彩图| 申博太阳城娱乐网| 百家乐怎么才能包赢| 百家乐庄闲的冷热| 八卦24山| 百家乐赌博机吧| 百家乐官网博娱乐网赌百家乐官网的玩法技巧和规则 |