RISCV开发环境使用指南
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 10/30/2022 |
1. 概述¶
RISCV开发环境基于MounRiver Studio。MRS(www.mounriver.com)是一款针对嵌入式项目(RISC-V/ARM)的集成开发环境,提供了包括编辑器、C编译器、宏汇编、链接器、库管理、仿真调试器等在内的完整开发资源。
2. MounRiver Studio安装¶
2.1. 下载¶
从MounRiver官网下载安装包(MounRiver_Studio_Setup_V183.zip):
http://www.mounriver.com/download
2.2. 安装¶
解压安装包,双击Setup进行安装
2.3. MounRiver帮助文档¶
2.3.1. 在线帮助文档¶
2.3.2. IDE集成帮助文档¶
离线帮助文档打开步骤:
-
点击IDE上面Help按钮
-
在弹窗中选择“Help Manual”
-
在打开的“Help Manual”窗口左边,选择“帮助手册(中文)”
-
后边就会显示帮助手册的目录,可以依次或按需浏览。
3. Python环境安装¶
3.1.下载¶
从python官网下载3.8版本的安装包,推荐3.8.10版本:
https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe
3.2. 安装¶
双击下载好的安装程序进行安装,记得要勾选上”Add Python to PATH”选项
4. 安装SDK模板¶
4.1. FreeRTOS SDK模板安装¶
-
通过"Project"菜单,打开模板管理器
-
在模板管理器中,导入FreeRTOS SDK模板
4.2. NonOS SDK模板安装¶
-
通过"Project"菜单,打开模板管理器
-
在模板管理器中,导入NonOS SDK模板
5. FreeRTOS项目¶
5.1. 创建FreeRTOS项目¶
-
点击File->New->MounRiver Project
-
选择项目模板
步骤说明:
-
步骤一选择项目名称
-
步骤二去掉ARM Core前面的够,过滤掉ARM MCU
-
步骤三选择FreeRTOS
-
步骤四选择SSTAR SSU [RISCV-V]
-
步骤五选择SSU9383
-
步骤六点击Finish完成项目创建
-
5.2. 目录结构¶
目录说明:
-
目录1,hdrs,是sdk的头文件目录,所有以library形式release的库,其对应的头文件都在这个目录中
-
目录2,libs/product,是sdk的库文件目录,所有以library形式release的库,都在这个目录下
-
目录3,obj,是MounRiver编译的输出目录,里面有自动生成的makefile,以及编译结果文件,如SSU9383.fw就是可以烧入到flash上,让RISCV运行的固件。
-
目录4,sc,是sdk中以源代码形式release的库和app所在的目录,其中application下的是demo程序,而driver目录下的是驱动
-
目录5,scatter,是link script所在目录
-
目录6,tools,是存放需要用用到的tools的目录,比如把ELF转换成可以烧入到flash上被执行的固件的脚本(postprocess.py)就在这个目录下面。
5.3. Demo application介绍¶
-
目录1,inc,存放的是模块(module)内部的头文件,不被其他模块使用的头文件
-
目录2,pub,存放的是会被其他模块使用的头文件
-
目录3,src,则是模块的源代码文件
-
函数4,rtos_application_initcall(),用来指定application模块的入口函数,第一个参数是函数名,第二个参数用于设置模块入口函数的执行顺序,一般都配置为0,当存在多个application模块时,可以通过配置参数0,1,2,3来决定application函数的执行顺序
-
Bench模块的入口函数RtosAppMainEntry()只是单纯的调用coremark_main()函数,执行coremark操作
5.4. 编译¶
-
点击按钮1,Build,就可以进行Build了
-
点击按钮2,Rebuild,会先进行clean操作,然后再执行Build操作
-
Build完成后,就可以在obj目录下生成固件SSU9383.fw,覆盖烧入images中的riscvfw文件,把它烧入到flash中,重新开机系统会使用它启动RISCV。
6. NoNOS项目¶
6.1. 创建NonOS项目¶
-
点击File->New->MounRiver Project
-
选择项目模板
步骤说明:
-
步骤一选择项目名称
-
步骤二去掉ARM Core前面的够,过滤掉ARM MCU
-
步骤三选择NonOS
-
步骤四选择SSTAR SSU [RISCV-V]
-
步骤五选择SSU9383
-
步骤六点击Finish完成项目创建
-
6.2. 目录结构¶
目录说明:
-
目录1,hdrs,是sdk的头文件目录,所有以library形式release的库,其对应的头文件都在这个目录中
-
目录2,libs/product,是sdk的库文件目录,所有以library形式release的库,都在这个目录下
-
目录3,obj,是MounRiver编译的输出目录,里面有自动生成的makefile,以及编译结果文件,如SSU9383.fw就是可以烧入到flash上,让RISCV运行的固件。
-
目录4,sc,是sdk中以源代码形式release的库和app所在的目录,其中application下的是demo程序,而driver目录下的是驱动
-
目录5,scatter,是link script所在目录
-
目录6,tools,是存放需要用用到的tools的目录,比如把ELF转换成可以烧入到flash上被执行的固件的脚本(postprocess.py)就在这个目录下面。
6.3. Demo application介绍¶
-
目录1,inc,存放的是模块(module)内部的头文件,不被其他模块使用的头文件
-
目录2,pub,存放的是会被其他模块使用的头文件
-
目录3,src,则是模块的源代码文件
-
函数4,rtos_application_initcall(),用来指定application模块的入口函数,第一个参数是函数名,第二个参数用于设置模块入口函数的执行顺序,一般都配置为0,当存在多个application模块时,可以通过配置参数0,1,2,3来决定application函数的执行顺序
-
Bench模块的入口函数RtosAppMainEntry()只是单纯的调用coremark_main()函数,执行coremark操作
6.4. 编译¶
-
点击按钮1,Build,就可以进行Build了
-
点击按钮2,Rebuild,会先进行clean操作,然后再执行Build操作
Build完成后,就可以在obj目录下生成固件SSU9383.fw,覆盖烧入images中的riscvfw文件,把它烧入到flash中,重新开机系统会使用它启动RISCV。
添加project的方式:
SSU9383.fw替换project/board/p5/riscv/pioneer5_ssc028a_riscv_isw.bin