欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK3568內(nèi)置MCU開發(fā)介紹之一

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

本文介紹RK3568內(nèi)置的MCU的開發(fā)流程,首先介紹MCU程序的構(gòu)建方法,然后介紹MCU核心與ARM CORTEX A55 AP核心之間的mailbox通信

RK3568內(nèi)置有4*cortex A55(下文簡(jiǎn)稱AP)和1個(gè)RISCV(下文簡(jiǎn)稱MCU)。

wKgZPGdLMg-AFkS0AAA5BGKqG3E264.png

硬件準(zhǔn)備

首先介紹一下硬件。主板為風(fēng)火輪科技的YY3568開發(fā)板,主控RK3568。此開發(fā)板的相關(guān)介紹可以參考

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

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

wKgZO2dLMhGANJMpAAPGb2edcmk906.png

RK3568內(nèi)置MCU介紹

RK3568內(nèi)置的MCU核心特性如下:

wKgZO2dLMhCAFtPyAAF0UXDw01o152.png

可以看出這是一個(gè)RV32I架構(gòu)的核心,此核心具體型號(hào)不明,主頻200MHz

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

軟件介紹

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

wKgZO2dLMg-AQVhVAABwV3Z8wiI266.png

RK3568新版的SDK目錄如下

wKgZPGdLMg-AKtx-AACu8LjOtV0718.png

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

打開hal目錄,內(nèi)容如下

wKgZO2dLMg-AEYGWAABqI-UiVbs084.png

application里面是一些應(yīng)用示例,board里面的內(nèi)容沒用,可以忽略

doc是開發(fā)文檔

lib里面是cmsis以及外設(shè)庫(kù)的源碼,類似于STM32工程的Drivers目錄

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

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

test和tools目錄也可以忽略

MCU bare-metal程序的構(gòu)建方法與打包

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

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

wKgZPGdLMg-APHdPAAAfE0BWw4w022.png

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

wKgZO2dLMg-AHKK9AACQMgh2NWU795.png

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

wKgZPGdLMg-AOx6NAAAlP8bbpqA502.png

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

TEST_USE_UART4M1的注釋,這樣MCU可以使用UART4進(jìn)行打印。

wKgZO2dLMg-AC9TpAAAIDZNKCUs800.png

4.rk3568-mcu的GCC目錄有構(gòu)建腳本。打開GCC目錄,在此目錄下面執(zhí)行make。編譯結(jié)果如下

wKgZPGdLMg-ARgKrAACQI8dbc2w138.png

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

5. rk3568-mcu目錄下的mkimage.sh,可以將TestDemo.bin轉(zhuǎn)換為分區(qū)映像,執(zhí)行此腳本,會(huì)在Image下生成amp.img,此分區(qū)映像需要燒寫到EMMC一個(gè)分區(qū)上面。

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

7.對(duì)AP端的部分內(nèi)容做修改。

分區(qū)表增加amp分區(qū)

wKgZO2dLMg-AaLPPAAAxfIufm6E975.png

package-file打包文件中增加amp分區(qū)映像

wKgZPGdLMg-ANcg3AAAx2n-v3Bw740.png

uboot端打開rk-amp.config,使能uboot階段加載MCU固件到指定DDR地址的操作??梢栽赿evice/rockchip/.chips/rk3566_rk3568的配置文件增加此配置項(xiàng)

wKgZO2dLMg-AH-IRAAAJRV7MASI387.png

kernel端修改設(shè)備樹,增加amp預(yù)留內(nèi)存。在使用的設(shè)備樹文件增加#include "rk3568-amp.dtsi"

wKgZPGdLMg-AA9YDAAAfBfptww4124.png

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

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

wKgZO2dLMg-Aca83AABYW1riQBc857.png

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

wKgZPGdLMg-ADKslAAAfBfptww4653.png

MCU與AP的mailbox通信

RK3568硬件上面有一組mailbox,用于實(shí)現(xiàn)MCU與AP通信

1.AP端做如下修改

在kernel的defconfig中增加

CONFIG_ROCKCHIP_MBOX_DEMO=m

打開mailbox的demo

在kernel的rk3568-amp.dtsi中關(guān)閉rpmsg對(duì)mailbox的占用

wKgZO2dLMg-Aac92AABMNikSKIo250.png

在板級(jí)dts文件中增加mailbox-demo配置

wKgZPGdLMg-AcYJIAAAnPaJLWHo699.png

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

修改之后,單獨(dú)構(gòu)建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

修改之后,重新構(gòu)建amp.img

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

執(zhí)行insmod操作之后,AP端的內(nèi)核日志中有如下信息

wKgZO2dLMhCAE4LOAABfe58m_0I897.png

MCU端的串口有如下信息

wKgZO2dLMhCASuDEAAAe5O9qYq4561.png

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

mbox_request_channel_byname

申請(qǐng)了名為test-rx test-tx的兩個(gè)mailbox通道,這個(gè)名稱是設(shè)備樹指定的。并且注冊(cè)了名為rk_mbox_rx_callback的回調(diào)函數(shù)。申請(qǐng)到通道之后,先用mbox_send_message發(fā)送一條數(shù)據(jù)出去

wKgZPGdLMhCAHyKbAADc3UtMCK4049.pngwKgZPGdLMhCATbLDAAAr23o3nbY715.png

然后在rk_mbox_rx_callback函數(shù)內(nèi)容如下

這里是在不超過MSG_LIMIT的情況下,收到mbox一條數(shù)據(jù),就通過mbox發(fā)送一條數(shù)據(jù)出去。發(fā)送的數(shù)據(jù)內(nèi)容為0x524D5347U

MCU端的邏輯如下

wKgZPGdLMhCAGPylAAETeabhdcY643.png

MCU端也是先注冊(cè)了一個(gè)通道,然后注冊(cè)名為mbox_remote_isr中斷函數(shù),然后中斷函數(shù)中再調(diào)用mbox_remote_cb回調(diào)

這個(gè)回調(diào)函數(shù)中收到一條數(shù)據(jù),即發(fā)一條數(shù)據(jù)。發(fā)送的數(shù)據(jù)內(nèi)容為0x98765432

因此就可以看到上面的現(xiàn)象,MCU先收到AP的一條數(shù)據(jù),然后發(fā)給AP,AP再發(fā)給MCU,重復(fù)100次。

總結(jié)

本文介紹RK3568內(nèi)置的MCU的開發(fā)流程,并介紹了AP和MCU之間通過mailbox進(jìn)行通信。多數(shù)的產(chǎn)品應(yīng)用中,RK3568都會(huì)搭配一個(gè)外置的MCU,來實(shí)現(xiàn)一些高實(shí)時(shí)的業(yè)務(wù),而自帶MCU是閑置的,如果能夠利用此MCU,可以省去外部MCU,降低復(fù)雜度。同時(shí),使用片上的mailbox進(jìn)行通信,速度更快,可靠性更高。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17347

    瀏覽量

    352730
  • RK3568
    +關(guān)注

    關(guān)注

    4

    文章

    526

    瀏覽量

    5241
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3568原理圖及規(guī)格書資料

    RK3568 IoT設(shè)備官方參考原理圖
    發(fā)表于 02-07 15:28 ?0次下載

    迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

    迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 01-23 11:02 ?1824次閱讀
    迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)</b>板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

    RK3568內(nèi)置MCU開發(fā)介紹之二

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

    【迅為】瑞芯微RK3588開發(fā)RK3568開發(fā)板區(qū)別及優(yōu)勢(shì)

    RK3568開發(fā)
    的頭像 發(fā)表于 11-18 14:19 ?598次閱讀
    【迅為】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)</b>板區(qū)別及優(yōu)勢(shì)

    瑞芯微RK3568 USB驅(qū)動(dòng)

    瑞芯微RK3568 USB驅(qū)動(dòng)程序
    發(fā)表于 11-11 14:18 ?2次下載

    RK3568燒錄工具

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

    開發(fā)更便利!迅為RK3568/RK3588 定制分區(qū)鏡像發(fā)布

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

    迅為iTOP-RK3568/RK3588開發(fā)板獲麒麟軟件適配認(rèn)證

    迅為iTOP-RK3568/RK3588開發(fā)板獲麒麟軟件適配認(rèn)證
    的頭像 發(fā)表于 10-18 14:56 ?647次閱讀
    迅為iTOP-<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)</b>板獲麒麟軟件適配認(rèn)證

    迅為RK3568驅(qū)動(dòng)指南|如何在Linux中使用模擬SPI

    瑞芯微RK3568芯片是款定位中高端的通用型SOC,采用22nm制程工藝,搭載顆四核Cortex-A55處理器和MaliG522EE圖形處理器。RK3568支持4K解碼和1080P
    的頭像 發(fā)表于 08-01 13:37 ?2315次閱讀
    迅為<b class='flag-5'>RK3568</b>驅(qū)動(dòng)指南|如何在Linux中使用模擬SPI

    RK3568核心板橋梁監(jiān)測(cè)設(shè)備接口應(yīng)用

    RK3568核心板橋梁監(jiān)測(cè)設(shè)備接口應(yīng)用-迅為電子
    的頭像 發(fā)表于 07-24 15:18 ?412次閱讀
    <b class='flag-5'>RK3568</b>核心板橋梁監(jiān)測(cè)設(shè)備接口應(yīng)用

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)

    大家期待已久的迅為RK3568開發(fā)板終于迎來了鴻蒙4.1系統(tǒng)的強(qiáng)勢(shì)支持!想知道如何實(shí)現(xiàn)快速開發(fā)學(xué)習(xí)嗎?跟著我們起來探索吧! 迅為RK3568
    發(fā)表于 07-23 10:44

    RK3568開發(fā)板支持AMP雙系統(tǒng)

    RK3568開發(fā)板支持AMP雙系統(tǒng)
    的頭像 發(fā)表于 06-04 15:33 ?828次閱讀
    <b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)</b>板支持AMP雙系統(tǒng)

    鴻蒙OpenHarmony南向:【RK3568開發(fā)介紹

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

    基于HD-RK3568-CORE設(shè)計(jì)的HD-RK3568-OPS主板上新!

    HD-RK3568-OPS主板基于HD-RK3568-CORE 工業(yè)級(jí)核心板設(shè)計(jì),支持標(biāo)準(zhǔn)OPS接口,具有即插即用、操作簡(jiǎn)單的特點(diǎn),適用于數(shù)字標(biāo)牌、自助終端、教育體機(jī)等應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 04-19 18:08 ?1125次閱讀
    基于HD-<b class='flag-5'>RK3568</b>-CORE設(shè)計(jì)的HD-<b class='flag-5'>RK3568</b>-OPS主板上新!

    迅為RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)

    迅為RK3568開發(fā)板驅(qū)動(dòng)開發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?1004次閱讀
    迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)</b>板驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>指南-輸入子系統(tǒng)