国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

七步實現(xiàn)STM32MP157多核協(xié)同工作(Cortex-A7與CortexM4通信)

2020-11-18 15:21 作者:華清遠見研發(fā)中心  | 我要投稿

寫在前面:

STM32MP157是ST進軍Linux的首款微處理器,采用MCU+MPU的組合,集成兩顆主頻微800MHz的Cortex-A7應用處理器內(nèi)核(支持開源linux操作系統(tǒng)),和一顆主頻微209M的Cortex-M4微控制器內(nèi)核(完美沿用現(xiàn)有的STM32 MCU生態(tài)系統(tǒng)),既充分滿足多種應用的靈活性需求,又實現(xiàn)了最佳性能和低功耗特性,還支持3D圖形處理單元(3D GPU)。

那STM32MP1系列A核和M核是如何進行通信的呢?

簡單的說,A7和M4兩個核心的通信,是通過底層的IPCC控制器(Inter-Processor communication controller)去通信的,linux中使用RPMsg框架與用戶進行交互。

RPMsg框架(Remote Processor Messaging Framework)是實現(xiàn)對遠程處理器信息傳遞。它是基于VirtIO的消息總線,允許內(nèi)核驅(qū)動程序與系統(tǒng)上可用的遠程處理器進行通信。

STM32MP1多核通信框架如下圖。

A7在RPMsg和Virtio框架創(chuàng)建一個面向用戶態(tài)的/dev/ttyRPMSG接口,ST提供OpenAMP相關庫,M4在OpenAMP上創(chuàng)建虛擬串口,兩個內(nèi)核之間通過串口通信模式,速度非??臁?/p>

Linux系統(tǒng)都封裝好了,ST官方提供的內(nèi)核已經(jīng)默認配置了RPMSG_TTY驅(qū)動,這個環(huán)節(jié)我們就不需要做什么了。

下面我們就通過七個步驟來實現(xiàn)A7和M4之間的通信。

1. 啟動STM32CubeIDE

2. 導入已有工程

點擊File->Import…,選擇Existing Projects into Workspace,點擊NEXT。

瀏覽目錄選擇工程OpenAMP_ TTY _echo,光盤路徑為:

【華清遠見-FS-MP1A開發(fā)資料\02-程序源碼\ARM體系結(jié)構(gòu)與接口技術\Cortex-M4\STM32Cube_FW_MP1_V1.2.0\Projects\STM32MP157C-FSMP1\Applications\OpenAMP\OpenAMP_TTY_echo\STM32CubeIDE】

3. 編譯工程

選擇項目OpenAMP_ TTY _echo_CM4并單擊Build按鈕


4. 開發(fā)板連接

這里使用的是華清遠見FS-MP1A開發(fā)板。

確認開發(fā)板已燒寫系統(tǒng),可運行l(wèi)inux,啟動撥碼撥至010。

開發(fā)板上電,并如下圖連接開發(fā)板USB和ST-Link至PC。

可通過點擊STM32 butterfly按鈕來打開串口控制臺

如果控制臺窗口顯示linux日志或提示信息,則連接成功

5. USB虛擬網(wǎng)線網(wǎng)絡配置

打開控制面板的網(wǎng)絡連接界面,在使用USBmini線連接開發(fā)板和PC后可以在網(wǎng)絡連接界面可看到多了一個Remote NDIS網(wǎng)卡,如下圖。

選中Remot NDIS網(wǎng)卡,右鍵選擇屬性,配置IPv4,選中后點擊屬性,配置IP地址為192.168.7.100,如下圖。

6. 下載固件

選擇項目OpenAMP_ TTY _echo_CM4

選擇Debug按鍵

選擇STM32 Cortex-M C/C++ Application

調(diào)試器 下選擇thru Linux core(Production mode)

選擇Serial Port,可打開設備管理器查看

檢查IP地址,可通過串口控制臺輸入ifconfig指令查看usb0網(wǎng)卡IP地址

如下圖,配置完成后點擊Debug

提示關閉控制臺,點擊Yes

彈出如下窗口,默認無密碼,直接點擊OK

點擊Switch

7. 測試固件

OpenAMP_ TTY _echo_CM4固件主要功能:
CPU2(CM4)初始化OpenAMP MW,后者通過HAL初始化/配置IPCC外設并設置openamp-rpmsg框架基礎結(jié)構(gòu)
CPU2(CM4)為2個虛擬UART實例(UART0和UART1)創(chuàng)建2個 rpmsg通道
CPU2(CM4)在這兩個通道上等待來自CPU1(CA7)的消息
當CPU2(CM4)在1個虛擬UART實例/ rpmsg通道上收到消息時,它將消息發(fā)送回同一虛擬UART實例上的CPU1(CA7)


加載完固件后,重新打開STM32CubeIDE的串行控制臺。

輸入以下命令

初始化ttyRPMSG0配置

stty -onlcr -echo -F /dev/ttyRPMSG0

不斷讀取ttyRPMSG0通道

cat /dev/ttyRPMSG0 &

在一個ttyRPMSG0通道上發(fā)送消息”LED ON”或”LED OFF”可控制開發(fā)板上LED燈點滅狀態(tài),并在同一ttyRPMSG0通道上同時接收回顯

echo "LED ON" > /dev/ttyRPMSG0

本文摘自《華清遠見FS-MP1A開發(fā)板實驗指導手冊》第42章

七步實現(xiàn)STM32MP157多核協(xié)同工作(Cortex-A7與CortexM4通信)的評論 (共 條)

分享到微博請遵守國家法律
东台市| 松江区| 德惠市| 武宣县| 繁峙县| 蒙城县| 仙桃市| 合水县| 盐山县| 上虞市| 临澧县| 常德市| 长兴县| 平泉县| 宁安市| 莱州市| 祁门县| 松桃| 甘泉县| 文山县| 固始县| 黑河市| 安仁县| 积石山| 钟山县| 许昌市| 大方县| 达日县| 天柱县| 赤壁市| 柘荣县| 额济纳旗| 孝义市| 瓦房店市| 兴海县| 射洪县| 隆子县| 镇原县| 司法| 大足县| 临海市|