1.概述
Remi Pi瑞米派采用瑞薩RZ/G2L作為核心處理器,該處理器搭載雙核Cortex-A55@1.2GHz+Cortex-M33@200MHz處理器,其內(nèi)部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和視頻處理單元(支持H.264硬件編解碼),16位的DDR4-1600 / DDR3L-1333內(nèi)存控制器、千兆以太網(wǎng)控制器、USB、CAN、SD卡、MIPI-CSI等外設(shè)接口,在工業(yè)、醫(yī)療、電力等行業(yè)都得到廣泛的應(yīng)用。
在開(kāi)發(fā)階段,建議配合核心板配套的評(píng)估套件 MYD-YG2L23-8E1D-120-C-REMI來(lái)加速開(kāi)發(fā)。評(píng)估套件的詳細(xì)信息請(qǐng)?jiān)L問(wèn):
- https://www.myir.cn/shows/23/14.html
本文主要介紹如何搭建協(xié)處理器Cortex-M33的開(kāi)發(fā)環(huán)境以及如何在Cortex-M33核上運(yùn)行一個(gè)FreeRTOS示例。
2.協(xié)處理器Cortex-M33
2.1.1. 開(kāi)發(fā)環(huán)境搭建
Cortex M33核開(kāi)發(fā)主要使用的是瑞薩官方的e2 studio工具,可以到瑞薩官網(wǎng)進(jìn)行下載,https://www.renesas.cn/cn/zh/software-tool/e2studio-information-rz-family?dow_secondary=visible#download,也可以到米爾該平臺(tái)下的資源包03_Tools/myir tools路徑下獲取setup_e2_studio_2024-01_1.exe和RZG_FSP_Packs_v2.0.0.exe文件,雙擊打開(kāi)setup_e2_studio_2024-01_1.exe,選擇[All Users],如圖2-1:
圖2-1. 安裝選擇
選擇[Custom Install]->[Next],如圖2-2:
圖2-2. 路徑指定
選擇[Change...],用于指定安裝路徑,指定安裝路徑后,點(diǎn)擊OK繼續(xù),如圖2-3:
圖2-3. 路徑選擇
選擇要安裝的設(shè)備族,單擊[Next]按鈕繼續(xù),如圖2-4:
圖2-4. 設(shè)備族選擇
額外的功能選擇需要安裝的“額外功能”(即:語(yǔ)言包、SVN & Git支持……),點(diǎn)擊next繼續(xù),如圖2-5:
圖2-5. 額外功能選擇
選擇要安裝的組件,然后單擊[Next]按鈕繼續(xù),請(qǐng)檢查是否確實(shí)選擇了“Renesas FSP Smartl Configurator Core”,否則,F(xiàn)SP將無(wú)法在e2 studio上成功構(gòu)建,如圖2-6:
圖2-6. FSP選擇
選擇要安裝的其他軟件(即編譯器、實(shí)用程序、QE…),點(diǎn)擊next繼續(xù),如圖2-7:
圖2-7. 編譯器選擇
許可協(xié)議閱讀并接受軟件許可協(xié)議,點(diǎn)擊[Next]按鈕繼續(xù),如圖2-8:
圖2-8. 許可協(xié)議選擇
選擇開(kāi)始菜單的快捷方式名稱(chēng),如圖2-9:
圖2-9. 快捷方式選擇
選擇開(kāi)始安裝,如圖2-10:
圖2-10. 開(kāi)始安裝
安裝過(guò)程會(huì)彈出安裝GNU ARM 10.3-2021.10嵌入式工具鏈的界面,根據(jù)具體情況安裝即可,如圖2-11:
圖2-11. 工具鏈選擇
安裝工具鏈完成,如圖2-12:
圖2-12. 工具鏈安裝完成
e2 studio工具安裝完成,如圖2-13:
圖2-13.?e2 studio安裝完成
2.2.2. FSP安裝
雙擊03_Tools/myir tools路徑下的RZG_FSP_Packs_v2.0.0.exe文件,進(jìn)行fsp包的安裝,如圖2-14:
圖2-14. fsp安裝
3.FreeRTOS示例
3.1.1. 創(chuàng)建一個(gè)新的工程
本節(jié)主要以點(diǎn)燈為例進(jìn)行介紹。新創(chuàng)建工程之前,需要根據(jù)第2章節(jié)搭建好環(huán)境,打開(kāi) e2 studio 工具,選擇以后創(chuàng)建新的工程要工作的目錄,具體根據(jù)自己的情況選擇,注意,這里不能有中文路 徑,否則有可能會(huì)出現(xiàn)編譯工程失敗的現(xiàn)象,如圖3-1:
圖3-1. 工程路徑選擇
依次點(diǎn)擊[File]->[New]->[C/C++ Project]->[Renesas RZ] > [Renesas RZ/G C/C++ FSP Project],如圖3-2:
圖3-2. 新建工程選擇窗口
命名工程,如圖3-3:
圖3-3. 工程命名
FSP版本,工具鏈等相關(guān)參數(shù)配置,如圖3-4:
圖3-4.?FSP、工具鏈選擇
選擇構(gòu)建工件和RTOS,如果不選用RTOS,則選用No RTOS,如圖3-5:
圖3-5.?RTOS選擇
選擇RTOS模板并完成,如圖3-6:
圖3-6. RTOS模板
創(chuàng)建工程成功,如圖3-7:
圖3-7. 創(chuàng)建工程成功
3.1.2. 配置gpio
由底板原理圖可知道P43_1這個(gè)GPIO的高低電平可以控制一盞燈的亮滅,gpio的參數(shù)配置如圖3-8:
圖3-8. P43_1配置
3.1.3. 創(chuàng)建led_task0任務(wù)
依次選Stacks->New Thread來(lái)創(chuàng)建一個(gè)任務(wù),如圖3-9:
圖3-9. 創(chuàng)建一個(gè)任務(wù)
重新根據(jù)自己的需要命名任務(wù)名稱(chēng),如圖3-10:
圖3-10. 重新命名任務(wù)名稱(chēng)
3.1.4. 代碼生成與編譯
生成代碼
點(diǎn)擊Generate Project Content來(lái)生成代碼即可,如圖3-11:
圖3-11. 代碼生成
生成源碼結(jié)構(gòu)如圖3-12:
圖3-12. 代碼結(jié)構(gòu)
以上pin_data.c里面即是配置gpio的代碼生成,生成的freertos代碼如圖3-13:
圖3-13. rtos代碼結(jié)構(gòu)
在main.c中會(huì)進(jìn)行任務(wù)的創(chuàng)建與調(diào)度,這部分生成代碼時(shí)已有,不需要重新手動(dòng)增加,如圖3-14:
圖3-14.任務(wù)調(diào)度函數(shù)
增加控制led代碼
以上代碼生成后,對(duì)應(yīng)的gpio配置,rtos的相關(guān)代碼都會(huì)自動(dòng)配置好的了,只需要在led_task0_entry.c中添加控制led部分代碼即可,如圖3-15:
R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_43_PIN_01, BSP_IO_LEVEL_LOW);vTaskDelay(500);R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_43_PIN_01, BSP_IO_LEVEL_HIGH);vTaskDelay(500);
圖3-15.增加led控制代碼
增加postbuild.sh腳本
右鍵點(diǎn)擊script后,選擇New->File,增加postbuild.sh腳本,如圖3-16:
圖3-16.增加postbuild.sh
postbuild.sh內(nèi)容如圖3-17:
echo "Post build script started"if [ -n "$BuildArtifactFileName" ]; theninputfilename=$BuildArtifactFileNamefiif [ -n "$BUILDARTIFACTFILENAME" ]; theninputfilename=$BUILDARTIFACTFILENAMEfifilebody=${inputfilename%.*}arm-none-eabi-objcopy -O binary -j .text.secure_vector ${inputfilename} ${filebody}_secure_vector.binarm-none-eabi-objcopy -O binary -j .text.non_secure_vector ${inputfilename} ${filebody}_non_secure_vector.binarm-none-eabi-objcopy -O binary -j .text.secure_code ${inputfilename} ${filebody}_secure_code.binarm-none-eabi-objcopy -O binary -j .text.non_secure_code -j .data ${inputfilename} ${filebody}_non_secure_code.bin
圖3-17. postbuild.sh內(nèi)容
l編譯代碼
依次點(diǎn)擊Project->Build Project進(jìn)行編譯,編譯成功如圖3-18:
圖3-18.源碼編譯成功
l查看編譯生成的文件
編譯生成文件如圖3-19:
圖3-19. 編譯生成文件
3.1.5. 運(yùn)行freertos程序
點(diǎn)擊Project->Build Project,進(jìn)行工程的編譯,編譯成功會(huì)生成一個(gè)debug目錄,里面存放的是編譯出來(lái)的二進(jìn)制文件。
把debug生成的如下文件拷貝到sd卡上,用于在uboot進(jìn)行CM33工程調(diào)用。
GPIO_non_secure_code.binGPIO_non_secure_vector.binGPIO_secure_code.binGPIO_secure_vector.bin
把sd卡插入到開(kāi)發(fā)板的sd卡槽(J6接口),啟動(dòng)板子并在uboot階段執(zhí)行如下調(diào)用。
查看sd卡里面的內(nèi)容,如下
=> switch_sdhi1 sdcardswitch to sdcard=> ls mmc 1:1 System Volume Information/ 64 GPIO_secure_vector.bin 16926 GPIO_non_secure_code.bin 1984 GPIO_non_secure_vector.bin 480 GPIO_secure_code.bin
4 file(s), 1 dir(s)
加載編譯出來(lái)的固件,如下:
=> dcache off=> mmc dev 1switch to partitions #0, OKmmc1 is current device=> fatload mmc 1:1 0x0001FF80 GPIO_secure_vector.bin64 bytes read in 24 ms (2 KiB/s)=> fatload mmc 1:1 0x42EFF440 GPIO_secure_code.bin480 bytes read in 25 ms (18.6 KiB/s)=> fatload mmc 1:1 0x00010000 GPIO_non_secure_vector.bin1984 bytes read in 26 ms (74.2 KiB/s)=> fatload mmc 1:1 0x40010000 GPIO_non_secure_code.bin16926 bytes read in 29 ms (569.3 KiB/s)=> cm33 start_debug 0x1001FF80 0x00010000
當(dāng)加載完以上命令之后可以看到藍(lán)燈在閃爍,如圖3-20:
圖3-20.藍(lán)燈閃爍
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229811 -
RTOS
+關(guān)注
關(guān)注
22文章
813瀏覽量
119631 -
米爾
+關(guān)注
關(guān)注
0文章
52瀏覽量
7932
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論