色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RK3568內置MCU開發介紹之一

chen ? 來源:chen ? 作者:chen ? 2024-12-01 16:09 ? 次閱讀

本文介紹RK3568內置的MCU的開發流程,首先介紹MCU程序的構建方法,然后介紹MCU核心與ARM CORTEX A55 AP核心之間的mailbox通信

RK3568內置有4*cortex A55(下文簡稱AP)和1個RISCV(下文簡稱MCU)。

wKgZPGdLMg-AFkS0AAA5BGKqG3E264.png

硬件準備

首先介紹一下硬件。主板為風火輪科技的YY3568開發板,主控RK3568。此開發板的相關介紹可以參考

https://wiki.youyeetoo.cn/zh/YY3568

RK3568的MCU核心需要使用串口調試,筆者這里使用的是UART4,這里也可以選擇其他的,不要跟AP核心的調試串口UART2沖突就行。UART4的位置如下

wKgZO2dLMhGANJMpAAPGb2edcmk906.png

RK3568內置MCU介紹

RK3568內置的MCU核心特性如下:

wKgZO2dLMhCAFtPyAAF0UXDw01o152.png

可以看出這是一個RV32I架構的核心,此核心具體型號不明,主頻200MHz

另外從介紹上面看,這個核心沒有獨立的RAM和flash,所以需要從RK3568的EMMC和DDR上面劃分出flash和RAM來支持其運行。

軟件介紹

目前RK新版本的Linux SDK已經支持了AMP功能。AMP(Asymmetric Multi-Processing)系統是一種非對稱多核異構系統,即在同一芯片內,通過分組CPU,并在不同組的CPU內運行不同的系統。在RK3568上,將Cortex-A55 * 4作為主要核心,運行Linux系統; RISC-V * 1`作為輔助核心跑裸核系統,輔助Linux系統實現快速響應和控制。軟件支持如下所示

wKgZO2dLMg-AQVhVAABwV3Z8wiI266.png

RK3568新版的SDK目錄如下

wKgZPGdLMg-AKtx-AACu8LjOtV0718.png

相比舊版本的SDK,這里增加了rtos目錄,是用于存放RTT源碼的,此外external目錄下有個hal目錄,用于存放bare-metal,也就是裸機的源碼。本文重點介紹bare-metal部分,后面的文章會介紹RTT的。

打開hal目錄,內容如下

wKgZO2dLMg-AEYGWAABqI-UiVbs084.png

application里面是一些應用示例,board里面的內容沒用,可以忽略

doc是開發文檔

lib里面是cmsis以及外設庫的源碼,類似于STM32工程的Drivers目錄

middleware里面是中間件的源碼,包括rpmsg openamp等

project包含了目前RK所有平臺(ap+mcu)的啟動文件,main.c,以及編譯,打包腳本

test和tools目錄也可以忽略

MCU bare-metal程序的構建方法與打包

1.下載RISC-V的交叉工具鏈,這里使用的是xpack-riscv-none-embed-gcc-10.2.0-1.2-linux-x64,這個交叉工具鏈可以從https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases處下載

下載之后將這個交叉工具鏈解壓到工程根目錄的prebuilts/gcc/linux-x86/riscv64下面,注意目錄不要搞錯,不然后面的構建腳本會找不到工具鏈

wKgZPGdLMg-APHdPAAAfE0BWw4w022.png

2.在工程根目錄下打開external/hal/project/common/GCC/riscv.mk文件,進行如下修改,指定工具鏈位置

wKgZO2dLMg-AHKK9AACQMgh2NWU795.png

3.在工程根目錄下打開external/hal/project/rk3568-mcu目錄。此為rk3568-mcu工程

wKgZPGdLMg-AOx6NAAAlP8bbpqA502.png

源碼在src目錄下,這里添加MCU的打印信息。打開src目錄里面的main.c,取消

TEST_USE_UART4M1的注釋,這樣MCU可以使用UART4進行打印。

wKgZO2dLMg-AC9TpAAAIDZNKCUs800.png

4.rk3568-mcu的GCC目錄有構建腳本。打開GCC目錄,在此目錄下面執行make。編譯結果如下

wKgZPGdLMg-ARgKrAACQI8dbc2w138.png

編譯之后在此目錄下可以看到TestDemo.bin文件,即為可執行程序

5. rk3568-mcu目錄下的mkimage.sh,可以將TestDemo.bin轉換為分區映像,執行此腳本,會在Image下生成amp.img,此分區映像需要燒寫到EMMC一個分區上面。

6.按照RK的默認配置構建整個Linux工程。這個構建工程可以參考RK SDK下面的Rockchip_Developer_Guide_Linux_Software_CN.pdf文檔,這里不贅述。構建之后可以在SDK的output目錄下可以得到firmware目錄,這個為當前打包使用的各個分區映像的軟鏈接。

7.對AP端的部分內容做修改。

分區表增加amp分區

wKgZO2dLMg-AaLPPAAAxfIufm6E975.png

package-file打包文件中增加amp分區映像

wKgZPGdLMg-ANcg3AAAx2n-v3Bw740.png

uboot端打開rk-amp.config,使能uboot階段加載MCU固件到指定DDR地址的操作。可以在device/rockchip/.chips/rk3566_rk3568的配置文件增加此配置項

wKgZO2dLMg-AH-IRAAAJRV7MASI387.png

kernel端修改設備樹,增加amp預留內存。在使用的設備樹文件增加#include "rk3568-amp.dtsi"

wKgZPGdLMg-AA9YDAAAfBfptww4124.png

8.將步驟5生成的amp.img,復制到步驟6所述的firmware目錄中

然后再次構建整個固件,如果操作無誤,則可以生成一個update.img文件。這里明確會將amp.img添加到燒錄包里面

wKgZO2dLMg-Aca83AABYW1riQBc857.png

9.將生成的固件燒錄到板上,串口4上面配置為1500000波特率,可以看到如下所示的log

wKgZPGdLMg-ADKslAAAfBfptww4653.png

MCU與AP的mailbox通信

RK3568硬件上面有一組mailbox,用于實現MCU與AP通信

1.AP端做如下修改

在kernel的defconfig中增加

CONFIG_ROCKCHIP_MBOX_DEMO=m

打開mailbox的demo

在kernel的rk3568-amp.dtsi中關閉rpmsg對mailbox的占用

wKgZO2dLMg-Aac92AABMNikSKIo250.png

在板級dts文件中增加mailbox-demo配置

wKgZPGdLMg-AcYJIAAAnPaJLWHo699.png

這里使用mailbox的通道0作為rx,通道3作為tx

修改之后,單獨構建kernel鏡像,在kernel目錄下得到boot.img,另外在kernel/drivers/mailbox下得到rockchip-mbox-demo.ko

2.MCU端做如下修改

打開external/hal/project/rk3568-mcu,打開src/main.c,打開TEST_DEMO

wKgZO2dLMhCATtZfAAAn_bJLDVY607.png

再打開src/test_demo.c,打開mbox配置

wKgZPGdLMhCAcKlMAAA6CeYBIwY539.png

修改之后,重新構建amp.img

然后用rk的燒錄工具,單獨燒錄boot分區和amp分區,然后重啟,將rockchip-mbox-demo.ko通過adb或者其他方式,放到板上

執行insmod操作之后,AP端的內核日志中有如下信息

wKgZO2dLMhCAE4LOAABfe58m_0I897.png

MCU端的串口有如下信息

wKgZO2dLMhCASuDEAAAe5O9qYq4561.png

這里通過源碼簡單介紹一下這個測試demo。首先是AP端的,在kernel/drivers/mailbox/rockchip-mbox-demo.c的probe函數中,先通過

mbox_request_channel_byname

申請了名為test-rx test-tx的兩個mailbox通道,這個名稱是設備樹指定的。并且注冊了名為rk_mbox_rx_callback的回調函數。申請到通道之后,先用mbox_send_message發送一條數據出去

wKgZPGdLMhCAHyKbAADc3UtMCK4049.pngwKgZPGdLMhCATbLDAAAr23o3nbY715.png

然后在rk_mbox_rx_callback函數內容如下

這里是在不超過MSG_LIMIT的情況下,收到mbox一條數據,就通過mbox發送一條數據出去。發送的數據內容為0x524D5347U

MCU端的邏輯如下

wKgZPGdLMhCAGPylAAETeabhdcY643.png

MCU端也是先注冊了一個通道,然后注冊名為mbox_remote_isr中斷函數,然后中斷函數中再調用mbox_remote_cb回調

這個回調函數中收到一條數據,即發一條數據。發送的數據內容為0x98765432

因此就可以看到上面的現象,MCU先收到AP的一條數據,然后發給AP,AP再發給MCU,重復100次。

總結

本文介紹RK3568內置的MCU的開發流程,并介紹了AP和MCU之間通過mailbox進行通信。多數的產品應用中,RK3568都會搭配一個外置的MCU,來實現一些高實時的業務,而自帶MCU是閑置的,如果能夠利用此MCU,可以省去外部MCU,降低復雜度。同時,使用片上的mailbox進行通信,速度更快,可靠性更高。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17156

    瀏覽量

    351280
  • RK3568
    +關注

    關注

    4

    文章

    514

    瀏覽量

    5060
收藏 人收藏

    評論

    相關推薦

    RK3568內置MCU開發介紹之二

    本文重點介紹RK3568內置MCU與AP之間的通信功能,首先介紹RPMsg的框架,然后介紹
    的頭像 發表于 12-16 09:09 ?292次閱讀
    <b class='flag-5'>RK3568</b><b class='flag-5'>內置</b><b class='flag-5'>MCU</b><b class='flag-5'>開發</b><b class='flag-5'>介紹</b>之二

    【迅為】瑞芯微RK3588開發RK3568開發板區別及優勢

    RK3568開發
    的頭像 發表于 11-18 14:19 ?405次閱讀
    【迅為】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>開發</b>板<b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板區別及優勢

    RK3568燒錄工具

    RK3568 燒錄工具
    發表于 11-11 14:16 ?5次下載

    開發更便利!迅為RK3568/RK3588 定制分區鏡像發布

    開發更便利!迅為RK3568/RK3588 定制分區鏡像發布
    的頭像 發表于 11-11 14:00 ?481次閱讀
    <b class='flag-5'>開發</b>更便利!迅為<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 定制分區鏡像發布

    RK3568開發板支持AMP雙系統

    RK3568開發板支持AMP雙系統
    的頭像 發表于 06-04 15:33 ?732次閱讀
    <b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板支持AMP雙系統

    鴻蒙OpenHarmony南向:【RK3568開發介紹

    RK3568開發板基于Rockchip RK3568芯片,集成雙核心架構GPU以及高效能NPU;搭載四核64位Cortex-A55處理器,采用22nm先進工藝,主頻高達2.0GHz;支持藍牙
    的頭像 發表于 05-07 10:13 ?862次閱讀
    鴻蒙OpenHarmony南向:【<b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>介紹</b>】

    迅為RK3568開發板驅動開發指南-輸入子系統

    迅為RK3568開發板驅動開發指南-輸入子系統
    的頭像 發表于 02-23 15:11 ?888次閱讀
    迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板驅動<b class='flag-5'>開發</b>指南-輸入子系統

    rv1126和rk3568對比

    rv1126和rk3568對比: 瑞芯微智能視覺芯片RV1126是瑞芯微新代智能視覺芯片,基于四核ARM Cortex-A7內核,內置2T算力 NPU,支持4K30FPS H.264/H.265
    的頭像 發表于 01-23 18:05 ?1.1w次閱讀
    rv1126和<b class='flag-5'>rk3568</b>對比

    RK3568-IgH EtherCAT主站開發案例

    RK3568-IgH EtherCAT主站開發案例
    的頭像 發表于 01-19 15:20 ?1848次閱讀
    <b class='flag-5'>RK3568</b>-IgH EtherCAT主站<b class='flag-5'>開發</b>案例

    RK3568--Acontis EtherCAT主站開發案例

    RK3568--Acontis EtherCAT主站開發案例
    的頭像 發表于 01-19 14:59 ?849次閱讀
    <b class='flag-5'>RK3568</b>--Acontis EtherCAT主站<b class='flag-5'>開發</b>案例

    RK3568---NPU開發案例

    RK3568---NPU開發案例
    的頭像 發表于 01-19 13:50 ?946次閱讀
    <b class='flag-5'>RK3568</b>---NPU<b class='flag-5'>開發</b>案例

    RK3568-ISP圖像處理開發案例

    RK3568-ISP圖像處理開發案例
    的頭像 發表于 01-19 11:46 ?1092次閱讀
    <b class='flag-5'>RK3568</b>-ISP圖像處理<b class='flag-5'>開發</b>案例

    RK3568-ARM+FPGA通信案例開發手冊 (

    RK3568-ARM+FPGA通信案例開發手冊 (
    的頭像 發表于 01-19 10:31 ?1175次閱讀
    <b class='flag-5'>RK3568</b>-ARM+FPGA通信案例<b class='flag-5'>開發</b>手冊 (<b class='flag-5'>一</b>)

    RK3568--基于AMP的多通道AD采集開發

    RK3568--基于AMP的多通道AD采集開發
    的頭像 發表于 01-19 10:03 ?978次閱讀
    <b class='flag-5'>RK3568</b>--基于AMP的多通道AD采集<b class='flag-5'>開發</b>案

    RK3568-視頻開發案例

    RK3568-視頻開發案例
    的頭像 發表于 01-18 15:51 ?883次閱讀
    <b class='flag-5'>RK3568</b>-視頻<b class='flag-5'>開發</b>案例
    主站蜘蛛池模板: yellow2019在线观看视频| 国产成人精品亚洲线观看| 精品国产乱码久久久久久软件| 亚洲精品第一页中文字幕| 精品国产国产精2020久久日| 伊人久久国产精品| 欧美黑人巨大xxxxx| 国产精品A久久777777| 亚洲综合国产在不卡在线| 嗯啊快停下我是你老师啊H| 国产成人无码精品久久久按摩| 亚洲免费观看视频| 免费无码一区二区三区蜜桃大| 荡乳乱公小说| 亚洲天堂一区二区三区| 欧美成人无码A区在线观看免费| 国产精品XXXXX免费A片| 中文字幕日本久久2019| 色婷婷AV国产精品欧美毛片| 嗨嗨快播电影| 苍井空教师BD在线观看全集| 亚洲欧美日韩另类精品一区二区三区| 嫩草成人国产精品| 国产中文在线观看| qvod理论电影| 伊人久久亚洲精品一区| 色欲人妻AAAAAAA无码| 久久人妻少妇嫩草AV蜜桃35I| 动漫成人片| 97国产视频| 亚洲国产精品综合久久一线| 欧美日韩精品| 久久精品亚洲国产AV涩情| 国产成在线观看免费视频| 99精彩免费观看| 一个吃奶两个添下面H| 天天爽夜夜爽| 欧美精品高清在线观看| 精品一区二区三区高清免费观看 | 白人大战34厘米黑人BD| 亚洲成人精品|