1.概述
Remi Pi瑞米派采用瑞薩RZ/G2L作為核心處理器,該處理器搭載雙核Cortex-A55@1.2GHz+Cortex-M33@200MHz處理器,其內部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和視頻處理單元(支持H.264硬件編解碼),16位的DDR4-1600 / DDR3L-1333內存控制器、千兆以太網控制器、USB、CAN、SD卡、MIPI-CSI等外設接口,在工業、醫療、電力等行業都得到廣泛的應用。
在開發階段,建議配合核心板配套的評估套件 MYD-YG2L23-8E1D-120-C-REMI來加速開發。評估套件的詳細信息請訪問:
- https://www.myir.cn/shows/23/14.html
本文主要介紹如何搭建協處理器Cortex-M33的開發環境以及如何在Cortex-M33核上運行一個FreeRTOS示例。
2.協處理器Cortex-M33
2.1.1. 開發環境搭建
Cortex M33核開發主要使用的是瑞薩官方的e2 studio工具,可以到瑞薩官網進行下載,https://www.renesas.cn/cn/zh/software-tool/e2studio-information-rz-family?dow_secondary=visible#download,也可以到米爾該平臺下的資源包03_Tools/myir tools路徑下獲取setup_e2_studio_2024-01_1.exe和RZG_FSP_Packs_v2.0.0.exe文件,雙擊打開setup_e2_studio_2024-01_1.exe,選擇[All Users],如圖2-1:
圖2-1. 安裝選擇
選擇[Custom Install]->[Next],如圖2-2:
圖2-2. 路徑指定
選擇[Change...],用于指定安裝路徑,指定安裝路徑后,點擊OK繼續,如圖2-3:
圖2-3. 路徑選擇
選擇要安裝的設備族,單擊[Next]按鈕繼續,如圖2-4:
圖2-4. 設備族選擇
額外的功能選擇需要安裝的“額外功能”(即:語言包、SVN & Git支持……),點擊next繼續,如圖2-5:
圖2-5. 額外功能選擇
選擇要安裝的組件,然后單擊[Next]按鈕繼續,請檢查是否確實選擇了“Renesas FSP Smartl Configurator Core”,否則,FSP將無法在e2 studio上成功構建,如圖2-6:
圖2-6. FSP選擇
選擇要安裝的其他軟件(即編譯器、實用程序、QE…),點擊next繼續,如圖2-7:
圖2-7. 編譯器選擇
許可協議閱讀并接受軟件許可協議,點擊[Next]按鈕繼續,如圖2-8:
圖2-8. 許可協議選擇
選擇開始菜單的快捷方式名稱,如圖2-9:
圖2-9. 快捷方式選擇
選擇開始安裝,如圖2-10:
圖2-10. 開始安裝
安裝過程會彈出安裝GNU ARM 10.3-2021.10嵌入式工具鏈的界面,根據具體情況安裝即可,如圖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文件,進行fsp包的安裝,如圖2-14:
圖2-14. fsp安裝
3.FreeRTOS示例
3.1.1. 創建一個新的工程
本節主要以點燈為例進行介紹。新創建工程之前,需要根據第2章節搭建好環境,打開 e2 studio 工具,選擇以后創建新的工程要工作的目錄,具體根據自己的情況選擇,注意,這里不能有中文路 徑,否則有可能會出現編譯工程失敗的現象,如圖3-1:
圖3-1. 工程路徑選擇
依次點擊[File]->[New]->[C/C++ Project]->[Renesas RZ] > [Renesas RZ/G C/C++ FSP Project],如圖3-2:
圖3-2. 新建工程選擇窗口
命名工程,如圖3-3:
圖3-3. 工程命名
FSP版本,工具鏈等相關參數配置,如圖3-4:
圖3-4.?FSP、工具鏈選擇
選擇構建工件和RTOS,如果不選用RTOS,則選用No RTOS,如圖3-5:
圖3-5.?RTOS選擇
選擇RTOS模板并完成,如圖3-6:
圖3-6. RTOS模板
創建工程成功,如圖3-7:
圖3-7. 創建工程成功
3.1.2. 配置gpio
由底板原理圖可知道P43_1這個GPIO的高低電平可以控制一盞燈的亮滅,gpio的參數配置如圖3-8:
圖3-8. P43_1配置
3.1.3. 創建led_task0任務
依次選Stacks->New Thread來創建一個任務,如圖3-9:
圖3-9. 創建一個任務
重新根據自己的需要命名任務名稱,如圖3-10:
圖3-10. 重新命名任務名稱
3.1.4. 代碼生成與編譯
生成代碼
點擊Generate Project Content來生成代碼即可,如圖3-11:
圖3-11. 代碼生成
生成源碼結構如圖3-12:
圖3-12. 代碼結構
以上pin_data.c里面即是配置gpio的代碼生成,生成的freertos代碼如圖3-13:
圖3-13. rtos代碼結構
在main.c中會進行任務的創建與調度,這部分生成代碼時已有,不需要重新手動增加,如圖3-14:
圖3-14.任務調度函數
增加控制led代碼
以上代碼生成后,對應的gpio配置,rtos的相關代碼都會自動配置好的了,只需要在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腳本
右鍵點擊script后,選擇New->File,增加postbuild.sh腳本,如圖3-16:
圖3-16.增加postbuild.sh
postbuild.sh內容如圖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內容
l編譯代碼
依次點擊Project->Build Project進行編譯,編譯成功如圖3-18:
圖3-18.源碼編譯成功
l查看編譯生成的文件
編譯生成文件如圖3-19:
圖3-19. 編譯生成文件
3.1.5. 運行freertos程序
點擊Project->Build Project,進行工程的編譯,編譯成功會生成一個debug目錄,里面存放的是編譯出來的二進制文件。
把debug生成的如下文件拷貝到sd卡上,用于在uboot進行CM33工程調用。
GPIO_non_secure_code.binGPIO_non_secure_vector.binGPIO_secure_code.binGPIO_secure_vector.bin
把sd卡插入到開發板的sd卡槽(J6接口),啟動板子并在uboot階段執行如下調用。
查看sd卡里面的內容,如下
=> 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)
加載編譯出來的固件,如下:
=> 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
當加載完以上命令之后可以看到藍燈在閃爍,如圖3-20:
圖3-20.藍燈閃爍
-
處理器
+關注
關注
68文章
19259瀏覽量
229651 -
RTOS
+關注
關注
22文章
811瀏覽量
119593 -
米爾
+關注
關注
0文章
51瀏覽量
7931
發布評論請先 登錄
相關推薦
評論