国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—RISC-V案例开发手册(上)
本帖最后由 陈工-创龙科技 于 2025-8-27 14:07 编辑前言本文档主要介绍T113-i处理器的RISC-V案例开发,演示RISC-V核心RTOS案例的编译与加载方法。适用开发环境如下。Windows开发环境:Windows 7 64bit、Windows 10 64bit虚拟机:VMware15.5.5Linux开发环境:Ubuntu18.04.4 64bit
U-Boot:U-Boot-2018.07Kernel:Linux-5.4.61、Linux-RT-5.4.61LinuxSDK:T113_Tina5.0-V1.0(Linux)玄铁C906是一款超高能效处理器,兼容RV64IMAC指令集,是业界最早量产的向量扩展RISC-V指令集处理器。采用5-8级变长流水线,典型工作频率>1GHz,标配内存管理单元,可运行Linux等操作系统,并可选性能优异的单精度浮点和矢量运算单元。应用于消费类IPC、多媒体、消费类电子等领域。我司提供的RISC-V案例基于官方T113_Tina5.0-V1.0 LinuxSDK。RTOS案例位于产品资料“4-软件资料\Demo\risc-v-demos\”目录下,案例目录说明如下表所示,其中bin目录存放程序可执行文件,src目录存放案例工程源文件。
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBYGAEpXZAAAtd3b3ACY425.png
备注:
[*]无特殊说明情况下,本文默认使用NAND FLASH配置评估板,默认从Linux系统启动卡启动系统(SD启动模式)进行测试。
[*]Linux系统默认会初始化相关外设,不影响案例测试。
[*]本文默认使用评估板RS232 UART2串口作为RISC-V的调试串口,请使用RS232交叉串口母母线、USB转RS232**串口线,将评估板的RS232 UART2串口连接至PC机的USB接口,如下图所示。
https://file1.elecfans.com/web3/M00/25/DA/wKgZPGiBynKAe6AoAA201HVtKsQ159.png
图 1开发环境搭建RISC-V核心的RTOS案例基于Linux开发环境进行编译。执行如下命令,进入LinuxSDK的rtos目录,并配置环境变量和选择编译方案。请手动输入"t113_i_c906_evb1_auto"对应的编号"3",按回车键确定。备注:由于官方未提供相关IDE软件和工程调试方法,因此案例使用Linux环境开发。Host# cd /home/tronlong/T113/tina5.0_v1.0/rtos/Host # source envsetup.sh //配置环境变量Host # lunch_rtos //选择编译方案
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBZeAPo0wAAFwSzpfw1k970.png
图 2
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBZ-AbX5gAADmEzsbyhY456.png
图 3
工程编译本章节以led_flash工程为例演示RISC-V案例的编译方法。led_flash案例功能为控制评估底板用户可编程指示灯进行闪烁。请将位于产品资料“4-软件资料\Demo\risc-v-demos\led_flash\src\”目录下的main.c文件拷贝至Ubuntu共享目录下,并执行如下命令,备份工程源码,将main.c工程源码拷贝至LinuxSDK目录"rtos/lichee/rtos/projects/t113_i_c906/evb1_auto/src/"下。Host# cd /home/tronlong/T113/tina5.0_v1.0/rtos/lichee/rtos/projects/t113_i_c906/evb1_auto/src/Host# cp main.c main.c.bakHost# cp /mnt/hgfs/SharedFolders/main.c ./main.c
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBaiACQYOAAC45Prmsz0138.png
图 4
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBbGAUU-wAACaY52M-hI342.png
图 5
重新打开Ubuntu终端。执行如下命令,配置Linux内核、内核版本、处理器型号、评估板型号、显示方式、编译器等信息。Host# cd /home/tronlong/T113/tina5.0_v1.0/Host# ./build.sh config
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBbqAJTvkAAEzCWfhfeo803.png
图 6
Config具体配置如下:
========ACTION List: mk_config ;========options :All available platform: 0. android 1. linuxChoice : 1All available linux_dev: 0. bsp 1. buildroot 2. openwrtChoice : 1All available ic: 0. t113 1. t113_i 2. t113_s3p 3. t113_s4 4. t113_s4p 5. t113_s2Choice : 1All available board: 0. evb1 1. evb1_auto 2. evb1_auto_nand 3. evb1_auto_nor 4. tlt113-evm-emmc 5. tlt113-evm-nand 6. tlt113-minievm-emmc 7. tlt113-minievm-nandChoice : 5All available output_configs: 0. hdmi 1. lvds-lcd 2. mipi-lcd 3. tft-lcd 4. cvbsChoice : 0All available flash: 0. default 1. norChoice : 0
执行如下命令,编译程序。Host# ./build.sh rtos
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBcS***8E4AAEeD7SaZ4g791.png
图 7
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBcuAQ3OyAAHpwQQySdA459.png
图 8
编译完成后,生成RISC-V工程镜像为"rtos/lichee/rtos/build/t113_i_c906_evb1_auto/img/rt_system.bin"和"/home/tronlong/T113/tina5.0_v1.0/device/config/chips/t113_i/bin/amp_rv0.bin"。
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBdKALrzPAADTpQfOoL0637.png
图 9
程序固化本章节主要提供通过Linux系统镜像固化RISC-V工程镜像的方法,并说明如何更新评估板系统RISC-V工程镜像。1.通过Linux系统镜像固化RISC-V工程镜像
请确保已参考“工程编译”章节,编译生成工程镜像amp_rv0.bin。执行如下命令,进入tina5.0_v1.0目录(即LinuxSDK开发包目录),编译生成包含RISC-V工程镜像的Linux系统镜像。
Host# cd /home/tronlong/T113/tina5.0_v1.0/Host# ./build.sh && ./build.sh pack
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBdqAWR6HAAD2rWh5zJ8586.png
图 10
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBeSAEmi3AAFg_KcuEU4330.png
图 11
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBe-***rdzAAFviOWRNOs645.png
图 12
编译生成的Linux镜像位于"/home/tronlong/T113/tina5.0_v1.0/out/"目录下。请参考Linux系统启动卡制作及系统固化文档,将Linux系统镜像文件固化至Micro SD卡或NAND FLASH即可。备注:eMMC配置核心板请参考eMMC配置核心板使用说明文档生成Linux系统镜像。2.更新评估板系统RISC-V工程镜像
此方法可通过ARM端加载RISC-V工程镜像。请将编译生成的RISC-V工程镜像拷贝至评估板系统的"/lib/firmware/"目录下替换原有的镜像。
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBfeAW0HYAAAP9soqxLo046.png
图 13
启用RISC-V核心系统默认不启用RISC-V核心,请执行如下命令,启用RISC-V核心并加载工程镜像。Target# echo amp_rv0.bin > /sys/class/remoteproc/remoteproc1/firmware //指定加载的工程镜像Target# echo start > /sys/class/remoteproc/remoteproc1/state //启用RISC-V核心并加载工程镜像
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBf-AHrI0AABGu0DyWY8928.png
图 14
RISC-V核心启动后将自动运行程序,RS232 UART2串口终端将会打印如下类似信息,并可看到评估底板用户可编程指示灯每隔0.5s闪烁一次。
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBgaADfWYAAAko1pK6jQ514.png
图 15
测试完成后,执行如下命令,关闭RISC-V核心。Target# echo stop > /sys/class/remoteproc/remoteproc1/state
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBg6AHSnYAAASsDDGiRA224.png
图 16
RISC-V案例演示说明本章节提供RISC-V核心的RTOS案例说明。请使用Type-C线连接PC机和评估板的USB TO UART0串口;使用RS232交叉串口母母线、USB转RS232**串口线,将评估板的RS232 UART2串口连接至PC机的USB接口。备注:案例基于ARM端加载RISC-V工程镜像的方法测试。led_flash案例
案例功能控制评估底板用户可编程指示灯每隔0.5s闪烁一次。程序流程如下图所示。
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBhaAclytAAA0KIcb_fk844.png
图 17
案例测试将本案例bin目录下的可执行文件amp_rv0.bin拷贝至评估板系统的"/lib/firmware/"目录下,并在可执行文件程序目录下请执行如下命令,启动RISC-V核心并加载工程镜像。Target# echo amp_rv0.bin > /sys/class/remoteproc/remoteproc1/firmware //指定加载的工程镜像Target# echo start > /sys/class/remoteproc/remoteproc1/state //启用RISC-V核心并加载工程镜像
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBf-AHrI0AABGu0DyWY8928.png
图 18
RISC-V核心启动后将自动运行RISC-V程序,RS232 UART2串口终端将会打印如下类似信息,并可看到评估底板用户可编程指示灯每隔0.5s闪烁一次。
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBgaADfWYAAAko1pK6jQ514.png
图 19
执行如下命令,关闭RISC-V核心,程序将停止运行。Target# echo stop > /sys/class/remoteproc/remoteproc1/state
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBg6AHSnYAAASsDDGiRA224.png
图 20
关键代码1.创建任务。
https://file1.elecfans.com/web3/M00/29/72/wKgZO2icBmmAP_0zAACdixHo9t0515.png
图 21
2.配置及控制GPIO。
https://file1.elecfans.com/web3/M00/29/62/wKgZPGicBnCA***57AAB2Untyvos879.png
图 22
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
页:
[1]